[發明專利]一種支持定長包、變長包、混合包的串口數據提取方法有效
| 申請號: | 201710796835.6 | 申請日: | 2017-09-06 |
| 公開(公告)號: | CN107766265B | 公開(公告)日: | 2020-06-30 |
| 發明(設計)人: | 回永利;劉武;曹新強;楊佳君;侯國超;何昊;曹井連 | 申請(專利權)人: | 中國航空工業集團公司西安飛行自動控制研究所 |
| 主分類號: | G06F13/12 | 分類號: | G06F13/12;G06F13/38;G06F13/42 |
| 代理公司: | 中國航空專利中心 11008 | 代理人: | 杜永保 |
| 地址: | 710065 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 支持 定長 變長 混合 串口 數據 提取 方法 | ||
本發明涉及一種串口數據包提取的通用方法,支持定長包、變長包、混合包三種幀格式。本發明使用的方案如下:基于“空閑觸發”的機制,偵測串口數據包是否傳輸完成,當判定傳輸完成時,按照已配置的包格式,在接收的串口數據中,提取所需的串口數據包。
技術領域
本發明屬于嵌入式系統串口數據處理領域,涉及一種支持定長包、變長包、混合包的串口數據提取方法。
背景技術
在嵌入式應用中,設備間數據交互很多是以串口數據包形式進行的。通常情況下,接收方通過以下兩種方式接收串口數據包:嵌入式系統的CPU集成具有“空閑中斷”特性的串口控制器,數據包傳輸完畢時,觸發中斷,中斷服務程序讀取控制器中的數據;嵌入式系統集成單獨的串口協處理器,該協處理器可以是FPGA、SOC、專用IC等形式,通過軟件設置包格式,該協處理器自動處理串口數據,將符合包格式的數據傳送給CPU做進一步處理。
以上兩種數據包接收形式,都對硬件有特殊需求,不僅增加了物料成本,還給后期應用帶來了功耗等其它影響。本發明是通過軟件完成數據包接收,軟件動態配置包格式,完成系統的快速部署。
發明內容
本發明的目的是提供一種串口數據包的提取方法,通過軟件動態配置,完成串口數據包的接收,包格式支持定長包、變長包、混合包。
本發明的技術方案是:一種支持定長包、變長包、混合包的串口數據提取方法,包括以下步驟:
步驟1初始配置;
步驟2核對端口號:當輸入的端口號,在系統串口列表中時,繼續后續操作;否則返回異常代碼;
步驟3串口數據溢出:當系統無法及時處理串口控制器FIFO中的數據時,會發生數據溢出,執行清FIFO數據操作,并清除串口控制器中的溢出標志字;
步驟4判斷FIFO中數據計數是否變化,若計數值變大,則備份該計數值,統計并復位計數器;否則將計數器累加1;
步驟5判斷是否“空閑觸發”:計時器超時,且FIFO的數據計數大于0;若滿足條件,則判定數據傳輸完畢,FIFO中的數據處于可以提取并能進一步處理的狀態,并觸發CPU內部中斷;若計時器超時,但FIFO計數值為0,將計時器的值設置為“門限值+1”;
步驟6計時器復位,并根據設置的包格式完成數據包提取。
所述的一種支持定長包、變長包、混合包的串口數據提取方法,所述步驟1包括以下步驟:
步驟1.1配置包格式、串口通道號,所述包格式包括定長包、變長包、混合包;
步驟1.2配置包頭長度、包尾長度、總長度;
步驟1.3配置包頭字符、包尾字符、超時門限。
所述的一種支持定長包、變長包、混合包的串口數據提取方法,步驟6所述的包格式為定長包時,所述步驟6具體包括以下步驟:
6.1a讀取串口控制器FIFO中全部數據至軟件緩沖區;
6.2a根據已設定的包頭,在軟件緩沖區中搜索該包頭,搜索到時,返回第一個包頭的軟件緩沖區索引,并且執行步驟3;若未發現包頭,則返回異常代碼;
6.3a數據長度符合性判斷,若軟件緩沖區中的數據長度小于包長度,返回異常代碼;若軟件緩沖區中的數據長度滿足條件,則根據指定長度,在軟件緩沖區中順序讀取數據,并返回實際讀取的數據長度及數據包。
所述的一種支持定長包、變長包、混合包的串口數據提取方法,步驟6所述的包格式為變長包時,所述步驟6具體包括以下步驟:
6.1b讀取串口控制器FIFO中全部數據至軟件緩沖區;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國航空工業集團公司西安飛行自動控制研究所,未經中國航空工業集團公司西安飛行自動控制研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710796835.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:調節并發寫命令數量的方法與裝置
- 下一篇:網絡安全服務器





