• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      RS485通信最優(yōu)波特率研究

      2020-04-09 04:42彭韜劉根利楊寶軍翟淵
      無線互聯(lián)科技 2020年3期
      關(guān)鍵詞:自適應(yīng)波特率

      彭韜 劉根利 楊寶軍 翟淵

      摘? ?要:在RS485總線中,主機(jī)和從機(jī)通常使用固定的波特率進(jìn)行通信;而在實(shí)際應(yīng)用中,波特率的大小和傳輸?shù)木嚯x是成反比的,波特率越高傳輸?shù)木嚯x越短,誤碼率增加越大。為避免波特率過高通信不可靠的問題,根據(jù)硬件波特率自適應(yīng)的機(jī)制,文章采用從機(jī)數(shù)量來計(jì)算最優(yōu)的波特率的方式進(jìn)行主從機(jī)通信。經(jīng)過實(shí)驗(yàn)驗(yàn)證,可提高RS485通信系統(tǒng)的穩(wěn)定性。

      關(guān)鍵詞:RS485總線;自適應(yīng);波特率

      在RS485總線型中,主機(jī)和從機(jī)的通信是構(gòu)成整個(gè)系統(tǒng)的生命線,通信波特率大小的選擇是一個(gè)困擾開發(fā)者的問題[1]。設(shè)計(jì)者都是憑著自身的經(jīng)驗(yàn)進(jìn)行設(shè)定,在能夠滿足通信的情況下,采用固定大小的波特率進(jìn)行通信。但是在實(shí)際情況中,條件是會(huì)變化的,當(dāng)波特率不變的情況下,RS485總線越長,連接的從機(jī)數(shù)量越多,數(shù)據(jù)的傳輸效率就會(huì)越慢,從機(jī)設(shè)備的動(dòng)態(tài)增加變得極其困難,在實(shí)際應(yīng)用中具有一定的局限性[2]。因此,根據(jù)從機(jī)數(shù)量的多少,計(jì)算出最優(yōu)波特率進(jìn)行通信傳輸變得尤為重要。本方案為解決主從機(jī)之間通信波特率的選擇提供了最優(yōu)解,面對(duì)不同的從機(jī)數(shù)量,主機(jī)采用不同的波特率進(jìn)行通信,經(jīng)過幾個(gè)月應(yīng)用在智能抄表的實(shí)驗(yàn)來看,采用本方案不僅通信穩(wěn)定,而且從機(jī)設(shè)備可動(dòng)態(tài)增加。

      1? ? 系統(tǒng)硬件設(shè)計(jì)

      RS485總線型采用了半雙工通信方式,每臺(tái)從機(jī)和主機(jī)呈并聯(lián)結(jié)構(gòu)建立連接,主從機(jī)默認(rèn)為接收狀態(tài),主機(jī)對(duì)從機(jī)進(jìn)行輪詢,主機(jī)發(fā)送信息給從機(jī)后,馬上轉(zhuǎn)為接收狀態(tài),從機(jī)接收到信息再回復(fù)給主機(jī),如圖1所示。主機(jī)和所有從機(jī)輪詢一遍稱為一個(gè)通信周期,理論上從機(jī)接收到主機(jī)命令再執(zhí)行的時(shí)間范圍小于一個(gè)時(shí)間周期。當(dāng)主機(jī)接到指令要求對(duì)應(yīng)從機(jī)執(zhí)行命令時(shí),主機(jī)剛好輪詢到該目標(biāo)從機(jī),則從機(jī)立即執(zhí)行,此時(shí)時(shí)間最短。若主機(jī)剛好輪詢過該目標(biāo)從機(jī),則只有在下一個(gè)周期的輪詢中主機(jī)才能夠和從機(jī)通信,此時(shí)主機(jī)發(fā)送命令到從機(jī)執(zhí)行的理論時(shí)間為輪詢一個(gè)周期的時(shí)間。

      2? ? 實(shí)現(xiàn)依據(jù)

      目前,主流的ARM內(nèi)核的單片機(jī)比如STM32芯片中,自動(dòng)波特率檢測(Auto Baud Rate,ABR)使接收設(shè)備能夠接收來自各種以不同速率工作的發(fā)送設(shè)備數(shù)據(jù),無需事先設(shè)定數(shù)據(jù)速率。ABR可在事先不知道系統(tǒng)的通信速度或者系統(tǒng)正在使用精確度相對(duì)較低的時(shí)鐘源且該機(jī)制允許在不測量時(shí)鐘偏差的情況下,獲得正確的波特率。

      硬件自動(dòng)波特率檢測是基礎(chǔ),為實(shí)現(xiàn)主機(jī)根據(jù)不同的從機(jī)數(shù)量和總線長度進(jìn)行對(duì)應(yīng)的波特率通信,提供了硬件依據(jù)。

      波特率表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),是衡量數(shù)據(jù)傳送速率的指標(biāo),用單位時(shí)間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來表示。波特率的大小直接影響了通信速率的快慢,波特率越高,單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)就越多,傳輸?shù)木嚯x越短,即波特率大小和傳輸距離成反比。在本方案中,輪詢一個(gè)周期的時(shí)間為T,排除從機(jī)本身的計(jì)算響應(yīng)等時(shí)間,從機(jī)自主機(jī)發(fā)送命令到響應(yīng)的時(shí)間為0~T。所以根據(jù)設(shè)定,假設(shè)一個(gè)輪詢固定周期時(shí)間T,傳輸?shù)臄?shù)據(jù)量一定,則主機(jī)和一個(gè)從機(jī)的通信時(shí)間就一定,當(dāng)從機(jī)的數(shù)量變化時(shí),波特率也隨著變化,在輪詢周期固定的情況下,波特率和從機(jī)數(shù)量成正比,從機(jī)數(shù)量越多波特率就越高。

      3? ? ABR檢測模式

      STM32產(chǎn)品上的自動(dòng)波特率檢測功能內(nèi)置了4種檢測模式。

      模式0:在模式0下,接收端接收的字符以字符‘1開頭,接收端會(huì)通過測量起始位也即下降沿到上升沿的持續(xù)時(shí)間來計(jì)算出發(fā)送端的波特率。

      模式1:在模式1下,發(fā)送端會(huì)發(fā)送以10XX模式開頭的任意字符,接收端會(huì)測量起始位和第一個(gè)數(shù)據(jù)位的持續(xù)時(shí)間,相對(duì)于模式0,此時(shí)接收端測量的是波形下降沿到下降沿的持續(xù)時(shí)間,因此,在信號(hào)斜率較小的情況下仍能獲得較高的精度。

      模式2:在模式2下,發(fā)送端發(fā)送固定字符0X7F,在此模式下,接收端首先在起始位結(jié)束處計(jì)算起始位持續(xù)時(shí)間然后更新波特率,然后在第6位結(jié)束時(shí)計(jì)算6個(gè)高位持續(xù)的時(shí)間再次更新波特率。

      模式3:在模式3下,發(fā)送端發(fā)送固定字符0X55,接收端首先在起始位結(jié)束處計(jì)算起始位持續(xù)時(shí)間然后更新波特率,然后在位0結(jié)束處再次更新波特率,最后在位6的結(jié)束處同樣更新波特率。同時(shí)接收端還會(huì)對(duì)接收線路的每個(gè)中間轉(zhuǎn)換執(zhí)行其他檢查。

      在以上4種工作模式下,STM32都會(huì)在同步數(shù)據(jù)接收期間多次檢測波特率,并將每一次的檢測值與上一次的檢測值進(jìn)行比較,從而確保發(fā)送端與接收端波特率的一致性,進(jìn)而提高通信可靠性。

      4? ? ABR通信誤差

      STM32的通信速率范圍由USART時(shí)鐘源也即FCK決定,為提高通信魯棒性,接收器可以采用過采樣技術(shù),通過過采樣技術(shù)可區(qū)分有效輸入數(shù)據(jù)和噪聲,從而可以在最大通信速率與抗噪聲及時(shí)鐘不準(zhǔn)確性之間實(shí)現(xiàn)平衡。STM32支持16倍過采樣及8倍過采樣,可通過編程USARTx_CR1寄存器中的OVER8位來選擇過哪種過采樣模式。16倍過采樣時(shí),波特率介于FCK/65535與FCK/16之間,8倍過采樣時(shí),波特率介于FCK/65535與FCK/8之間。

      波特率誤差取決于USART時(shí)鐘源、過采樣方法和ABR模式。當(dāng)時(shí)鐘頻率為72 MHz,預(yù)期波特率為115 200時(shí),通過官方測試數(shù)據(jù)可知:ABR模式2和3的精確度高于模式0和1,它們的波特率誤差值更低。不過,由于預(yù)期波特率與實(shí)際波特率之間的誤差小于1%,因此所有模式均可正常工作。

      5? ? 最優(yōu)波特率計(jì)算

      設(shè)主機(jī)輪詢所有從機(jī)的周期時(shí)間為T,輪詢一個(gè)從機(jī)的時(shí)間為t,主機(jī)輪詢幀長度為L1,從機(jī)回復(fù)的數(shù)據(jù)幀長度為L2,從機(jī)數(shù)量為n,波特率為BR(baud rate)。假設(shè)只有一個(gè)從機(jī)的情況下,一個(gè)輪詢傳輸單元包含的數(shù)據(jù)字節(jié)位數(shù)為Q,則Q= L1+L2。

      6? ? 實(shí)驗(yàn)結(jié)果

      對(duì)RS485總線下的智能抄表系統(tǒng)進(jìn)行實(shí)驗(yàn)研究,數(shù)據(jù)通信格式為8位數(shù)據(jù)位,1位起始位,1位停止位,無奇偶校驗(yàn)位。主機(jī)發(fā)送一幀數(shù)據(jù)為3個(gè)字節(jié),分別為地址碼、功能碼和CRC校驗(yàn)碼。從機(jī)回復(fù)一幀數(shù)據(jù)為6個(gè)字節(jié),分別為地址碼、數(shù)據(jù)碼和CRC校驗(yàn)碼。其中,數(shù)據(jù)碼占用4個(gè)字節(jié),輪詢一個(gè)從機(jī)總的字節(jié)數(shù)9個(gè)字節(jié),每個(gè)字節(jié)有8個(gè)bit,則輪詢一個(gè)從機(jī)的信息量為72 bit。測試中從機(jī)首先接入5個(gè),輪詢所有從機(jī)的周期T定為1 s,經(jīng)實(shí)際測試波特率為360,理論計(jì)算結(jié)果為BR=72/1×5=360,實(shí)際測試與理論相符,從機(jī)增加到10個(gè),波特率經(jīng)測試為720,也與理論計(jì)算相符合,由于波特率較低,單片機(jī)收發(fā)切換帶來的誤差可忽略不計(jì)。系統(tǒng)運(yùn)行幾個(gè)月未出現(xiàn)波特率變化或通信錯(cuò)誤問題,系統(tǒng)運(yùn)行效果良好。

      7? ? 結(jié)語

      實(shí)際RS485通信應(yīng)用中,從機(jī)的數(shù)量會(huì)出現(xiàn)動(dòng)態(tài)增加,通過采用自適應(yīng)波特率進(jìn)行主從機(jī)之間的通信,在可滿足通信要求的情況下降低系統(tǒng)通信的波特率,進(jìn)而減小誤碼率小并可提高傳輸距離,提升通信穩(wěn)定性。本方案在主控器支持自適應(yīng)波特率的場合均可以使用,具有良好的擴(kuò)展性。

      猜你喜歡
      自適應(yīng)波特率
      基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
      波特率自適應(yīng)的CAN驅(qū)動(dòng)在嵌入式Linux下的實(shí)現(xiàn)①
      淺談網(wǎng)絡(luò)教育領(lǐng)域的自適應(yīng)推送系統(tǒng)
      電子節(jié)氣門非線性控制策略
      多天線波束成形的MIMO-OFDM跨層自適應(yīng)資源分配
      C*Core芯片SCI串口波特率容限優(yōu)化
      UART波特率發(fā)生電路設(shè)計(jì)
      計(jì)算機(jī)多設(shè)備接口波特率不匹配的研究
      香河县| 遂昌县| 中西区| 福贡县| 九江县| 奉贤区| 吉安市| 龙门县| 陇川县| 怀来县| 西盟| 沾益县| 平武县| 咸宁市| 泰州市| 乌拉特前旗| 通化市| 日喀则市| 深圳市| 上虞市| 柏乡县| 绵竹市| 信阳市| 房山区| 武冈市| 黑河市| 罗平县| 怀宁县| 彭阳县| 昌图县| 县级市| 枣强县| 舞阳县| 安西县| 靖江市| 读书| 仪征市| 班戈县| 临江市| 瑞昌市| 威宁|