[發明專利]一種面向離散數據流的可靠異步通信方法有效
| 申請號: | 201710256778.2 | 申請日: | 2017-04-19 |
| 公開(公告)號: | CN107135049B | 公開(公告)日: | 2020-08-14 |
| 發明(設計)人: | 高飛;崔宇;劉思東;邱楓;隋強強;丁萬兵;葉紹凱;李慧;張磊;仲宇 | 申請(專利權)人: | 北京航天自動控制研究所;中國運載火箭技術研究院 |
| 主分類號: | H04L1/00 | 分類號: | H04L1/00;H04L29/06 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 龐靜 |
| 地址: | 100854 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 離散 數據流 可靠 異步 通信 方法 | ||
1.一種面向離散數據流的可靠異步通信方法,其特征在于通過下述步驟實現:
(1)定義數據的結構化協議:
幀頭 數據區 校驗區 數據長度 幀尾
發送順序為從幀頭到幀尾,其中:幀頭至少包含2字節,每個字節至少包含4組以上采用不同數值的相鄰位;數據區由1~166個有效字節構成,用于傳輸需要傳輸的數據;校驗區包含2個字節,前面字節固定為0,后面字節為校驗碼;數據長度由1個字節構成,表示數據區的字節的個數,幀尾至少包含2字節,每個字節至少包含4組以上采用不同數值的相鄰位,并保證與幀頭不同;將幀尾定義為整個數據幀中一個唯一的標識符,以收到真正的幀尾作為收到一個完整數據幀的一個重要標志;數據長度包含有效數據和插入的轉義字符,有效范圍為1~249,其中有效數據最多166字節;幀尾由2字節構成,用0x5A,0xFE表示,0x5A在前,0xFE在后;所述的轉義字符為0x00;
(2)發送方按照上述定義的數據結構化協議對離散的數據流進行組幀,以查詢或中斷方式將整幀數據發出;
(3)接收方以查詢或中斷方式將接收到的數據幀存入緩沖隊列中,然后根據數據的結構化協議對緩沖隊列中的數據幀進行提取和解析,從而獲取數據幀中的有效數據;
所述提取和解析步驟如下:
(3.1)從緩沖隊列頭開始向后,遍歷每個元素,直到找到一個數據幀幀尾;
(3.2)從幀尾位置沿隊列向前移動一個字節找到數據長度字段以及校驗區;
(3.3)根據數據長度計算出幀頭所在的位置,并沿隊列向前找到幀頭位置的隊列元素值,校驗幀頭的正確性,若正確,則轉(3.4),否則將幀尾之前的所有數據作為錯誤數據進行處理,并從緩沖隊列中刪除,轉步驟(3.5);
(3.4)根據幀頭的位置獲取緩沖隊列中緊隨其后的數據區的數據,根據數據區的數據計算校驗碼,并與(3.2)中校驗區中的校驗碼進行校核,若二者一致,則提取數據區內的數據并剔除轉義字符,并將幀頭至幀尾所有數據從緩沖隊列中刪除,完成本數據幀的提取;否則,將幀尾之前的所有數據作為錯誤數據進行處理,并從緩沖隊列中刪除,轉步驟(3.5);
(3.5)判斷緩沖隊列是否為空,若不為空,則轉步驟(3.1),否則處理結束。
2.根據權利要求1所述的方法,其特征在于:步驟(2)中的組幀步驟如下:
(2.1)根據定義的數據結構化協議確定本次通信過程中的幀頭及幀尾以及數據區的有效字節個數,將離散數據流中的每個數據按順序依次排列到幀頭之后,若數據中出現與幀尾一致的數據,則在該數據前插入一個轉義字符,直至數據區有效字節排列完畢;
(2.2)根據數據區內的數據確定校驗碼,填寫校驗區;
(2.3)根據數據區的有效字節個數、轉義字符的個數計算數據長度并占用1個字節;
(2.4)在數據長度之后排列(2.1)中確定的幀尾,得到一個數據幀。
3.根據權利要求1所述的方法,其特征在于:步驟(3)中對緩沖隊列中的數據幀進行提取和解析,獲取數據幀中的有效數據必須識別一個完整合格幀,識別完整合格幀必須同時具備如下條件:
a)收到合格的幀尾標識;
b)收到幀頭標識;
c)校驗碼正確。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航天自動控制研究所;中國運載火箭技術研究院,未經北京航天自動控制研究所;中國運載火箭技術研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710256778.2/1.html,轉載請聲明來源鉆瓜專利網。





