[發(fā)明專利]一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710796835.6 | 申請(qǐng)日: | 2017-09-06 |
| 公開(kāi)(公告)號(hào): | CN107766265B | 公開(kāi)(公告)日: | 2020-06-30 |
| 發(fā)明(設(shè)計(jì))人: | 回永利;劉武;曹新強(qiáng);楊佳君;侯國(guó)超;何昊;曹井連 | 申請(qǐng)(專利權(quán))人: | 中國(guó)航空工業(yè)集團(tuán)公司西安飛行自動(dòng)控制研究所 |
| 主分類號(hào): | G06F13/12 | 分類號(hào): | G06F13/12;G06F13/38;G06F13/42 |
| 代理公司: | 中國(guó)航空專利中心 11008 | 代理人: | 杜永保 |
| 地址: | 710065 陜*** | 國(guó)省代碼: | 陜西;61 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 支持 定長(zhǎng) 變長(zhǎng) 混合 串口 數(shù)據(jù) 提取 方法 | ||
1.一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法,其特征在于,包括以下步驟:
步驟1初始配置;
步驟2核對(duì)端口號(hào):當(dāng)輸入的端口號(hào),在系統(tǒng)串口列表中時(shí),繼續(xù)后續(xù)操作;否則返回異常代碼;
步驟3串口數(shù)據(jù)溢出:當(dāng)系統(tǒng)無(wú)法及時(shí)處理串口控制器FIFO中的數(shù)據(jù)時(shí),會(huì)發(fā)生數(shù)據(jù)溢出,執(zhí)行清FIFO數(shù)據(jù)操作,并清除串口控制器中的溢出標(biāo)志字;
步驟4判斷FIFO中數(shù)據(jù)計(jì)數(shù)是否變化,若計(jì)數(shù)值變大,則備份該計(jì)數(shù)值,統(tǒng)計(jì)并復(fù)位計(jì)數(shù)器;否則將計(jì)數(shù)器累加1;
步驟5判斷是否“空閑觸發(fā)”:計(jì)時(shí)器超時(shí),且FIFO的數(shù)據(jù)計(jì)數(shù)大于0;若滿足條件,則判定數(shù)據(jù)傳輸完畢,F(xiàn)IFO中的數(shù)據(jù)處于可以提取并能進(jìn)一步處理的狀態(tài),并觸發(fā)CPU內(nèi)部中斷;若計(jì)時(shí)器超時(shí),但FIFO計(jì)數(shù)值為0,將計(jì)時(shí)器的值設(shè)置為“門(mén)限值+1”;
步驟6計(jì)時(shí)器復(fù)位,并根據(jù)設(shè)置的包格式完成數(shù)據(jù)包提取。
2.根據(jù)權(quán)利要求1所述的一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法,其特征在于,所述步驟1包括以下步驟:
步驟1.1配置包格式、串口通道號(hào),所述包格式包括定長(zhǎng)包、變長(zhǎng)包、混合包;
步驟1.2配置包頭長(zhǎng)度、包尾長(zhǎng)度、總長(zhǎng)度;
步驟1.3配置包頭字符、包尾字符、超時(shí)門(mén)限。
3.根據(jù)權(quán)利要求2所述的一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法,其特征在于,步驟6所述的包格式為定長(zhǎng)包時(shí),所述步驟6具體包括以下步驟:
6.1a讀取串口控制器FIFO中全部數(shù)據(jù)至軟件緩沖區(qū);
6.2a根據(jù)已設(shè)定的包頭,在軟件緩沖區(qū)中搜索該包頭,搜索到時(shí),返回第一個(gè)包頭的軟件緩沖區(qū)索引,并且執(zhí)行步驟3;若未發(fā)現(xiàn)包頭,則返回異常代碼;
6.3a數(shù)據(jù)長(zhǎng)度符合性判斷,若軟件緩沖區(qū)中的數(shù)據(jù)長(zhǎng)度小于包長(zhǎng)度,返回異常代碼;若軟件緩沖區(qū)中的數(shù)據(jù)長(zhǎng)度滿足條件,則根據(jù)指定長(zhǎng)度,在軟件緩沖區(qū)中順序讀取數(shù)據(jù),并返回實(shí)際讀取的數(shù)據(jù)長(zhǎng)度及數(shù)據(jù)包。
4.根據(jù)權(quán)利要求2所述的一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法,其特征在于,步驟6所述的包格式為變長(zhǎng)包時(shí),所述步驟6具體包括以下步驟:
6.1b讀取串口控制器FIFO中全部數(shù)據(jù)至軟件緩沖區(qū);
6.2b根據(jù)已設(shè)定的包頭,在軟件緩沖區(qū)中搜索該包頭,搜索到時(shí),返回第一個(gè)包頭的軟件緩沖區(qū)索引,并且執(zhí)行步驟3;若未發(fā)現(xiàn)包頭,則返回異常代碼;
6.3b根據(jù)已設(shè)定的包尾,從軟件緩沖區(qū)中包頭位置向后搜索該包尾,搜索到時(shí),返回第一個(gè)包尾的軟件緩沖區(qū)索引,并且執(zhí)行步驟4;若未發(fā)現(xiàn)包尾,則返回異常代碼;
6.4b讀取軟件緩沖區(qū)中包頭和包尾之間的全部數(shù)據(jù),返回讀取的實(shí)際長(zhǎng)度和全部數(shù)據(jù)。
5.根據(jù)權(quán)利要求2所述的一種支持定長(zhǎng)包、變長(zhǎng)包、混合包的串口數(shù)據(jù)提取方法,其特征在于,步驟6所述的包格式為混合包,所述混合包為多個(gè)變長(zhǎng)包組成,所述步驟6具體包括以下步驟:
6.1c讀取串口控制器FIFO中全部數(shù)據(jù)至軟件緩沖區(qū);
6.2c根據(jù)已定義的變長(zhǎng)包序列,按照以下變長(zhǎng)包的數(shù)據(jù)提取步驟,依次在軟件緩沖區(qū)中提取,并生成相應(yīng)的變長(zhǎng)包更新標(biāo)志,若提取到某個(gè)變長(zhǎng)包,則置位該變長(zhǎng)包更新標(biāo)志;
6.1b讀取串口控制器FIFO中全部數(shù)據(jù)至軟件緩沖區(qū);
6.2b根據(jù)已設(shè)定的包頭,在軟件緩沖區(qū)中搜索該包頭,搜索到時(shí),返回第一個(gè)包頭的軟件緩沖區(qū)索引,并且執(zhí)行步驟3;若未發(fā)現(xiàn)包頭,則返回異常代碼;
6.3b根據(jù)已設(shè)定的包尾,從軟件緩沖區(qū)中包頭位置向后搜索該包尾,搜索到時(shí),返回第一個(gè)包尾的軟件緩沖區(qū)索引,并且執(zhí)行步驟4;若未發(fā)現(xiàn)包尾,則返回異常代碼;
6.4b讀取軟件緩沖區(qū)中包頭和包尾之間的全部數(shù)據(jù),返回讀取的實(shí)際長(zhǎng)度和全部數(shù)據(jù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)航空工業(yè)集團(tuán)公司西安飛行自動(dòng)控制研究所,未經(jīng)中國(guó)航空工業(yè)集團(tuán)公司西安飛行自動(dòng)控制研究所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710796835.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類





