<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于未知上位機串行通信波特率檢測

基于未知上位機串行通信波特率檢測

作者: 時(shí)間:2017-06-12 來(lái)源:網(wǎng)絡(luò ) 收藏
隨著(zhù)計算機應用的日益普及,與計算機進(jìn)行信息交互的終端也越來(lái)越多,其中是終端與計算機之間的主要通信方式。通常情況下,接收方必須知道發(fā)送方的發(fā)送速率,幀結構,并采用相同的速率及幀結構進(jìn)行接收,才能保證接收到正確的信息。幀結構信息包括起始位、停止位、數據位的個(gè)數,及是否有校驗位,若有,是以何種形式校驗,這樣才能在接收到正確信息的基礎上進(jìn)行校驗,并把起始位、停止位、校驗位剔除掉,將有用信息識別出來(lái)。在不知道發(fā)送速率的情況下,下位機無(wú)法采用傳統的方法進(jìn)行通信信號的正確接收和數據提取。很多情況下,終端設備通信時(shí)都沒(méi)有使用校驗位。本文提供了一種沒(méi)有校驗位的情況下的檢測算法。此方法適用于黑匣子終端的檢測,尤其間斷串口通訊的情況(如果是連續發(fā)送,只對最后一個(gè)字節使用兩個(gè)接收)。

1 串口通信

串口通信是以幀為單位。幀由4部分組成:起始位,停止位,數據位及校驗位。其校驗位可有可無(wú),通常終端設置為無(wú)。如回車(chē)符的發(fā)送,回車(chē)符的ASC II值為0x0D。時(shí)附加一個(gè)起始位和終止位,位的傳輸順序一般是先傳低位再傳高位。此時(shí)回車(chē)符的二進(jìn)制表示方式如圖1所示。

本文引用地址:http://dyxdggzs.com/article/201706/353789.htm利用的串口或串口調試工具接收數據時(shí),如果幀格式不正確,通常只會(huì )將此幀數據丟棄,不報告出錯,并且不允許做其他的工作,同樣,不能同時(shí)用不同的波特率接收數據。若在電平跳變時(shí)采樣,則采樣其前一時(shí)刻的電平,當停止位是0時(shí),等待一個(gè)其1/2波特率是電平應持續的時(shí)間后再判斷起始位。本方案基于此方法利用軟件實(shí)現普通管腳的串口使用。

是終端和主機之間的主要通信方式,通信波特率一般選擇110 b/s,300×2n(n=0,…,7)b/s,利用串口協(xié)議及接收數據的特點(diǎn),采用高速接收的方法進(jìn)行波特率的自動(dòng)識別與檢測。

2 基于波特率串口通訊分析

串行通信中一個(gè)二進(jìn)制位的傳輸時(shí)間T取決于通信的波特率,如9 600 b/s時(shí)一個(gè)二進(jìn)制位的傳輸時(shí)間是19 200 b/s時(shí)一個(gè)二進(jìn)制位傳輸時(shí)間的兩倍,即2×T19200=T9600。在串行通信中,若主機設定接收波特率為9 600 b/s,終端只能以9 600 b/s發(fā)送數據,只有這樣才能保證主機正確地接收數據。表1中列舉不同發(fā)送、接收波特率情況下接收的數據。

以n b/s發(fā)送序列m:Ox1x2x3x4x5x6x7x81,則2n b/s接收到的序列mm:00 x1x1x2x2x3x3x4x4x5x5x6x6x7x7x8x811。若n b/s接到的數是oxf0~oxf8的字節, 即序列m是0x1x2x3x411111, 則mm是00x1x1x2x2x3x3x4x1111111111。

以n/2 b/s發(fā)送序列m:0x1x2x3x4x5x6x7x81,n b/s接到的序列mm:00 x1x1x2x2x3x3x4x4x5x5x6x6x7x7x8x811,2π b/s接到韻第一個(gè)字符序列:x2x1x1x1x1000,欲使幀結構正確,x2須是1。同樣欲使x4x4 x3x3x2x2 x1x1 0不小于oxf0且幀結構正確,x4,x3,x2必須是1時(shí)收到的數才不大于oxf8。假設x5,x6,x7,x8有一個(gè)是0,則還能接收數據,例如x6是0,則還能收到一個(gè)字節,此字節是11x8x8x7x7x6x60,在保證接收到的數據不小于oxf0的情況下,必須使x8x7是1,此數據大于oxf8。若x5是1,x6是0,收到的第二個(gè)字節是1111x8x8 x7x70,若使其不小于oxf0,則x8須是1,測試仍大于oxf8。若x5,x6是1,x7是0,此時(shí)收到的字符是11111x8x80,不大于oxf8。若x5,x6,x7是1,x8是0,收到的字符是11111110,是oxfe。

以同樣的分析方法,可以得出n/3 b/s,n/4 b/s,3n b/s發(fā)送序列情況下,所接收的序列及數據。

3 算法設計

由上面分析可設計出檢測算法:首先,從高的波特率逐個(gè)嘗試,判斷波特率是不是發(fā)送的波特率,若不是嘗試其二分之一的波特率,重復上面的過(guò)程。其次57 600 b/s與38 400 b/s不是相差一倍,需要單獨測試。最后,115 200 b/s與57 600 b/s單獨測試,若均被排除,從38 400 b/s開(kāi)始新一輪的測試。若57 600 b/s不能被排除,多次則比較是57 600 b/s與38 400 b/s,以確定其中一個(gè)。若能排除57 600 b/s,從38 400 b/s開(kāi)始測試。若均被排除,從19 200 b/s開(kāi)始測試。檢測算法示意圖如圖2所示。

若接收波特率是發(fā)送波特率的16倍或16倍以上,因起始位是0,將會(huì )接到10個(gè)以上的連續0,幀格式不正確,只需接收一個(gè)字符就可否定當前波特率。若接收波特率是發(fā)送波特率的8倍,若想使其發(fā)送的波特率的4倍與8倍波特接收的字符合法,不能有兩個(gè)或兩個(gè)以上的連續的0出現,且最低位為1又要使4倍波特接收的數不小于f0,可能發(fā)送的字節只有DB BB 7B B7 776F FB F7 EF DF BF 7F FF這13種。即接收一個(gè)字節不能排除當前波特率的概率約為5%。接收波特率分別是發(fā)送波特率的2倍與4倍時(shí),若使2倍波特接收的字節不小于f8,則發(fā)送的格式須為0x111,故有13種情況,與上輪相同。若接收波特率分別為發(fā)送的2倍與相同時(shí),符合條件的字符有F8 F9 FA FB FC FD FE FF8種,接收一個(gè)字符不拋棄2倍波特率的概率為1/32。若是38 400 b/s,接收一個(gè)字符就可排除57 600 b/s的概率:(ff-eo)/2560.125。故通常情況下,很快就可鎖定波特率。對于相差一倍的情況,只要發(fā)送一個(gè)小于80的字符就可確定了,即接收一個(gè)字符就可確定波特率的概率是50%。若是57 600 b/s,接收到flag_count合法的字符后就可認為是57 600 b/s,理論上flagcount越大越可靠。





關(guān)鍵詞: 串行通信 波特率 單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>