亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        串口數(shù)據(jù)解包方法的研究

        2020-04-11 07:07:24夏志飛趙雷凌云科技集團(tuán)有限責(zé)任公司
        航空維修與工程 2020年2期
        關(guān)鍵詞:反推通信協(xié)議校驗(yàn)

        ■ 夏志飛 趙雷/凌云科技集團(tuán)有限責(zé)任公司

        串口通信常用于計(jì)算機(jī)及嵌入式設(shè)備的數(shù)據(jù)通信,尤其是在遠(yuǎn)程控制、測(cè)試測(cè)量等工業(yè)應(yīng)用中,數(shù)據(jù)經(jīng)常以數(shù)據(jù)包的形式傳輸,發(fā)送數(shù)據(jù)時(shí)需封包,接收數(shù)據(jù)時(shí)需解包,準(zhǔn)確無(wú)誤地解包是一項(xiàng)非常重要的工作。

        1 串口通信

        目前常見(jiàn)的串口通信接口標(biāo)準(zhǔn)有RS-232、RS-422、RS-485等, 其 中,RS-232是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)在20世紀(jì)60年代發(fā)布的通信協(xié)議,方便不同廠家產(chǎn)品之間數(shù)據(jù)的通信;RS-422在RS-232的基礎(chǔ)上提高了傳輸距離和抗干擾能力;RS-485又在RS-422的基礎(chǔ)上增加了多點(diǎn)雙向通信能力[1]。這幾種標(biāo)準(zhǔn)只規(guī)定了通信接口的物理層電氣標(biāo)準(zhǔn),在此基礎(chǔ)上,用戶可以建立自己的高層通信協(xié)議。

        對(duì)于工程應(yīng)用而言,信息傳輸?shù)姆€(wěn)定性以及正確性非常重要,如果每次傳輸?shù)臄?shù)據(jù)超過(guò)一幀,一般就采用數(shù)據(jù)包的形式傳輸。如圖1所示,每個(gè)數(shù)據(jù)幀由多個(gè)連續(xù)的位(Bite)構(gòu)成,通常包括起始位、數(shù)據(jù)位、校驗(yàn)位和停止位,數(shù)據(jù)位長(zhǎng)度一般為5~9,每個(gè)數(shù)據(jù)包又由多個(gè)連續(xù)的數(shù)據(jù)幀構(gòu)成。串口通信的速率相對(duì)較低,一般數(shù)據(jù)量有限,采用單數(shù)據(jù)包機(jī)制,少數(shù)也有采用類似網(wǎng)絡(luò)通信分層處理方式的,但中間層一般還是采用數(shù)據(jù)包機(jī)制。

        2 數(shù)據(jù)包格式分析

        為了避免數(shù)據(jù)傳輸中的混亂與錯(cuò)誤,便于數(shù)據(jù)的解釋與分析,數(shù)據(jù)包之間必須有明顯的標(biāo)志,通常基于以下兩種方式。

        1)基于特殊字符

        以特殊字符作為數(shù)據(jù)包的開始,再根據(jù)幀尾或幀長(zhǎng)確定整個(gè)數(shù)據(jù)包,具體的格式很多,如包頭+數(shù)據(jù)+校驗(yàn)+包尾、包頭+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù)+校驗(yàn)值等,優(yōu)點(diǎn)是特殊字符識(shí)別容易、邏輯簡(jiǎn)單,缺點(diǎn)是數(shù)據(jù)域中不能包含包頭、包尾,當(dāng)然可通過(guò)增加轉(zhuǎn)義符的方式來(lái)避免,只是要增加額外的處理。

        圖1 數(shù)據(jù)包結(jié)構(gòu)

        2)基于時(shí)間

        數(shù)據(jù)包內(nèi)數(shù)據(jù)連續(xù)傳輸,數(shù)據(jù)包間存在一定的間隔時(shí)間。優(yōu)點(diǎn)是比較通用,絕大部分串口通信都不是滿負(fù)荷傳輸,數(shù)據(jù)包間都存在較大的時(shí)間間隙;缺點(diǎn)是處理稍復(fù)雜,需要判定時(shí)間。

        當(dāng)然,以上兩種方法經(jīng)常結(jié)合在一起使用,可以減少數(shù)據(jù)傳輸中出現(xiàn)的異常,共同保證了數(shù)據(jù)傳輸?shù)目煽俊?/p>

        3 實(shí)用解包方法

        串口數(shù)據(jù)包的解包過(guò)程通常分為數(shù)據(jù)包分割、數(shù)據(jù)提取與分析兩部分,在不清楚串口通信協(xié)議的情況下,還需反推數(shù)據(jù)幀和數(shù)據(jù)包的格式。

        1)數(shù)據(jù)幀格式反推

        在缺少資料的情況下,可直接基于串口通信物理接口進(jìn)行分析,采用示波器分析可知串口通信的類型。RS-232一般采用三線制傳輸數(shù)據(jù),少數(shù)采用五線制傳輸數(shù)據(jù),標(biāo)準(zhǔn)RS-232信號(hào)電平為±12V;單片機(jī)之間的通信有時(shí)也采用TTL電平標(biāo)準(zhǔn)。RS-422/RS-485采用四線或雙線差分傳輸,差分電壓一般為±5V。

        確定串口通信標(biāo)準(zhǔn)后,還需確定數(shù)據(jù)幀的格式。采用邏輯分析儀進(jìn)行分析較為方便,部分邏輯分析儀如Saleae Logic等包含了串行總線數(shù)據(jù)分析功能(見(jiàn)圖2)[2],設(shè)定串口數(shù)據(jù)幀的波特率、數(shù)據(jù)位長(zhǎng)度、停止位、校驗(yàn)位等參數(shù)后再分析采樣數(shù)據(jù),嘗試幾次便可確定數(shù)據(jù)幀的格式。

        2)數(shù)據(jù)包分割

        絕大部分?jǐn)?shù)據(jù)包之間都存在一定的時(shí)間間隙,可據(jù)此判定分割。數(shù)據(jù)量較多時(shí),一般需借助計(jì)算機(jī)程序自動(dòng)分割,下面介紹一種數(shù)據(jù)包分割識(shí)別的方案。

        圖3為數(shù)據(jù)包分割的基本流程,無(wú)論是計(jì)算機(jī)還是單片機(jī)都可使用。對(duì)于計(jì)算機(jī)而言,Windows操作系統(tǒng)下定時(shí)器精度一般只達(dá)到1ms,無(wú)數(shù)據(jù)時(shí)長(zhǎng)(數(shù)據(jù)包間隔)一般要求大于10ms;對(duì)于單片機(jī)而言,由于不少型號(hào)的單片機(jī)沒(méi)有串口硬件緩存,定時(shí)查詢的時(shí)間需小于單個(gè)數(shù)據(jù)幀傳輸?shù)臅r(shí)間。

        依據(jù)數(shù)據(jù)包間隔超時(shí)分割數(shù)據(jù)包時(shí),還可同時(shí)依據(jù)數(shù)據(jù)包頭、數(shù)據(jù)包尾、校驗(yàn)等進(jìn)行判定及篩選,圖4是基于此原理開發(fā)的UART splitter軟件數(shù)據(jù)包分割的設(shè)置界面。

        3)數(shù)據(jù)包格式反推

        反推數(shù)據(jù)包格式時(shí),首先確定數(shù)據(jù)包的構(gòu)成。一般數(shù)據(jù)的包頭、包尾、包長(zhǎng)度的位置是固定的,較容易識(shí)別;校驗(yàn)通常有和校驗(yàn)、CRC校驗(yàn)等幾種,需要猜測(cè)幾次才能確定;余下的一般就是數(shù)據(jù)區(qū)。

        圖2 Saleae Logic邏輯分析儀串口總線分析設(shè)置界面

        圖3 數(shù)據(jù)包分割的基本流程

        圖4 UART splitter軟件數(shù)據(jù)包分割設(shè)置界面

        確定數(shù)據(jù)包的構(gòu)成后,需要重點(diǎn)分析的便是數(shù)據(jù)區(qū)。常見(jiàn)的數(shù)據(jù)編碼有BNR(按2的補(bǔ)碼小數(shù)記法表示的二進(jìn)制)碼、BCD碼或ASCII碼等,少數(shù)采用自定義編碼,或由多個(gè)數(shù)據(jù)組合成一個(gè)數(shù)據(jù)包,甚至涉及加密,這樣的數(shù)據(jù)需要大量采樣后統(tǒng)計(jì)、分析其規(guī)律。

        4)數(shù)據(jù)提取與分析

        數(shù)據(jù)包中的數(shù)據(jù)通常不能直接處理,其處理方式需根據(jù)工程的需求而定,一般需將有效數(shù)據(jù)提取出來(lái)并進(jìn)行一定的轉(zhuǎn)換處理后再進(jìn)行分析。若數(shù)據(jù)量很大或計(jì)算復(fù)雜時(shí),Windows操作系統(tǒng)下一般需另開線程處理,單片機(jī)中一般需在低級(jí)別的中斷中處理,以確保數(shù)據(jù)包分割的實(shí)時(shí)性。

        4 結(jié)束語(yǔ)

        本文主要介紹了串口數(shù)據(jù)解包的基本原理和方法,該方法已應(yīng)于筆者參與的多個(gè)工程中,取得了較好的效果,此外,該方法對(duì) SPI、I2C、CSDB、Manchester等串行總線數(shù)據(jù)的解包也有借鑒意義。

        猜你喜歡
        反推通信協(xié)議校驗(yàn)
        737NG飛機(jī)反推系統(tǒng)故障淺析
        737NG飛機(jī)反推燈亮故障分析
        基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
        爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
        二元機(jī)翼顫振的指令濾波反推自適應(yīng)約束控制
        基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
        基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
        一種基于開源軟件的OD反推求解算法
        大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
        基于加窗插值FFT的PMU校驗(yàn)方法
        亚洲最新国产av网站| 97精品国产手机| 91av手机在线观看| 精品手机在线视频| 中文字幕日韩熟女av| 开心激情网,开心五月天| 一区二区三区国产在线视频 | 久久九九有精品国产尤物| 亚欧乱色束缚一区二区三区| 蜜臀av中文人妻系列| 日本亚洲系列中文字幕| 午夜免费啪视频| 成人综合婷婷国产精品久久蜜臀| 亚洲乱码国产一区三区| 正在播放亚洲一区| 手机在线免费看av网站| 日本淫片一区二区三区| 免费大片黄国产在线观看| 国产成人精品一区二区三区视频| a级毛片在线观看| 国产成人精品电影在线观看18 | 午夜不卡亚洲视频| 一区二区三区精品免费| 国产精品久久久久久一区二区三区 | 久久久亚洲一区二区三区| 久久久精品人妻一区二区三区游戏| 中国一级特黄真人片久久| 未满十八勿入av网免费| 真实国产老熟女粗口对白| 国产精品白浆无码流出| 自拍偷拍韩国三级视频| 亚洲国产日韩欧美综合a| 八区精品色欲人妻综合网| 国产情侣一区在线| 久久精品亚洲热综合一本色婷婷| 在线观看免费日韩精品| 欧美交换配乱吟粗大25p| 亚洲深夜福利| 日韩极品在线观看视频| 五月丁香综合激情六月久久| 欧美专区在线|