999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RS485通信最優波特率研究

2020-04-09 04:42:13彭韜劉根利楊寶軍翟淵
無線互聯科技 2020年3期

彭韜 劉根利 楊寶軍 翟淵

摘? ?要:在RS485總線中,主機和從機通常使用固定的波特率進行通信;而在實際應用中,波特率的大小和傳輸的距離是成反比的,波特率越高傳輸的距離越短,誤碼率增加越大。為避免波特率過高通信不可靠的問題,根據硬件波特率自適應的機制,文章采用從機數量來計算最優的波特率的方式進行主從機通信。經過實驗驗證,可提高RS485通信系統的穩定性。

關鍵詞:RS485總線;自適應;波特率

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

1? ? 系統硬件設計

RS485總線型采用了半雙工通信方式,每臺從機和主機呈并聯結構建立連接,主從機默認為接收狀態,主機對從機進行輪詢,主機發送信息給從機后,馬上轉為接收狀態,從機接收到信息再回復給主機,如圖1所示。主機和所有從機輪詢一遍稱為一個通信周期,理論上從機接收到主機命令再執行的時間范圍小于一個時間周期。當主機接到指令要求對應從機執行命令時,主機剛好輪詢到該目標從機,則從機立即執行,此時時間最短。若主機剛好輪詢過該目標從機,則只有在下一個周期的輪詢中主機才能夠和從機通信,此時主機發送命令到從機執行的理論時間為輪詢一個周期的時間。

2? ? 實現依據

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

硬件自動波特率檢測是基礎,為實現主機根據不同的從機數量和總線長度進行對應的波特率通信,提供了硬件依據。

波特率表示每秒鐘傳送的碼元符號的個數,是衡量數據傳送速率的指標,用單位時間內載波調制狀態改變的次數來表示。波特率的大小直接影響了通信速率的快慢,波特率越高,單位時間內傳輸的數據就越多,傳輸的距離越短,即波特率大小和傳輸距離成反比。在本方案中,輪詢一個周期的時間為T,排除從機本身的計算響應等時間,從機自主機發送命令到響應的時間為0~T。所以根據設定,假設一個輪詢固定周期時間T,傳輸的數據量一定,則主機和一個從機的通信時間就一定,當從機的數量變化時,波特率也隨著變化,在輪詢周期固定的情況下,波特率和從機數量成正比,從機數量越多波特率就越高。

3? ? ABR檢測模式

STM32產品上的自動波特率檢測功能內置了4種檢測模式。

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

模式1:在模式1下,發送端會發送以10XX模式開頭的任意字符,接收端會測量起始位和第一個數據位的持續時間,相對于模式0,此時接收端測量的是波形下降沿到下降沿的持續時間,因此,在信號斜率較小的情況下仍能獲得較高的精度。

模式2:在模式2下,發送端發送固定字符0X7F,在此模式下,接收端首先在起始位結束處計算起始位持續時間然后更新波特率,然后在第6位結束時計算6個高位持續的時間再次更新波特率。

模式3:在模式3下,發送端發送固定字符0X55,接收端首先在起始位結束處計算起始位持續時間然后更新波特率,然后在位0結束處再次更新波特率,最后在位6的結束處同樣更新波特率。同時接收端還會對接收線路的每個中間轉換執行其他檢查。

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

4? ? ABR通信誤差

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

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

5? ? 最優波特率計算

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

6? ? 實驗結果

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

7? ? 結語

實際RS485通信應用中,從機的數量會出現動態增加,通過采用自適應波特率進行主從機之間的通信,在可滿足通信要求的情況下降低系統通信的波特率,進而減小誤碼率小并可提高傳輸距離,提升通信穩定性。本方案在主控器支持自適應波特率的場合均可以使用,具有良好的擴展性。

主站蜘蛛池模板: 精品人妻无码区在线视频| 国产三级韩国三级理| 男女性午夜福利网站| 亚洲91精品视频| 国产理论一区| 日韩无码黄色| 亚洲视频免| 欧美亚洲国产日韩电影在线| 人妻21p大胆| 国产成人凹凸视频在线| 亚洲午夜天堂| 国产日韩欧美视频| 中文字幕在线一区二区在线| 久久人体视频| 日本欧美中文字幕精品亚洲| 一区二区三区毛片无码| 亚洲欧美另类日本| 国产亚洲欧美在线中文bt天堂| 亚洲中文字幕手机在线第一页| 在线国产欧美| 国产精品手机在线观看你懂的| 国产黄色片在线看| 精品福利国产| 日韩黄色在线| 久久无码av一区二区三区| 丰满少妇αⅴ无码区| 老司国产精品视频91| 国内老司机精品视频在线播出| 一级毛片免费的| 欧美成人精品在线| 毛片在线播放网址| 欧美a在线看| 亚洲精品无码人妻无码| 人妖无码第一页| 欧美黄网在线| 国产精品露脸视频| 综合色天天| 国产99精品视频| 国产精品天干天干在线观看| 无码丝袜人妻| 国产日本欧美亚洲精品视| 亚洲丝袜第一页| 中国毛片网| 欧美国产综合色视频| 亚洲综合一区国产精品| 中文字幕丝袜一区二区| 久久久久久国产精品mv| 国产精品毛片一区视频播| 伊人久久婷婷| yjizz国产在线视频网| 国产激情无码一区二区免费| 高清免费毛片| 日本欧美中文字幕精品亚洲| 毛片手机在线看| 极品国产一区二区三区| 国产日本欧美在线观看| 乱人伦99久久| 国产导航在线| 国产真实乱子伦视频播放| 成年女人a毛片免费视频| 亚洲人成网站18禁动漫无码| 亚洲精品无码久久毛片波多野吉| 国产精品视频999| 日本免费a视频| 国产精品无码AⅤ在线观看播放| 2021国产乱人伦在线播放| 91无码人妻精品一区| 青青操视频在线| 国产国产人免费视频成18 | 日韩精品专区免费无码aⅴ| 免费视频在线2021入口| 欧美成人午夜视频免看| 国产高清不卡| 超清无码一区二区三区| 99久久精品国产自免费| 五月婷婷亚洲综合| 国产综合精品日本亚洲777| 久久不卡国产精品无码| 国产成人毛片| 亚洲av无码牛牛影视在线二区| 国产自在自线午夜精品视频| 成人国产小视频|