張微 王韻琪 楊博云


【摘 要】RS-485是一種工業控制環境中常用的串口通信協議,它具有抗干擾能力強,傳輸距離遠的特點。本文利用RS-485實現上位機與STM32的數據發送與接收,并在不同環境下對其通信穩定性進行了測試。
【關鍵詞】RS-485;STM32;數據通信
中圖分類號: TP334.3;TP368.1 文獻標識碼: A 文章編號: 2095-2457(2019)29-0094-002
DOI:10.19694/j.cnki.issn2095-2457.2019.29.043
Stability Analysis of RS485 Data Communication Based on STM32
ZHANG Wei WANG Yun-qi YANG Bo-yun
(College of Electornic & Information Engineering,Suzhou Vocational University,Suzhou Jiangsu 215021,China)
【Abstract】RS-485 is a communication protocol widely used in industrial control environment.It has the characteristics of strong anti-interference and long transmission distance.This paper introduce how to use RS485 to send and receive data between host computer and STM32,and analyse its communication stability in different harsh environments.
【Key words】RS-485;STM32;Date Commucation
0 引言
RS-485通信是由RS-232通信改進而來,其協議層不變,只是改進了物理層。與此同時,傳輸的信號由單端信號改為差分信號,因此具有傳輸距離長,傳輸效率高,可適用于多機通訊的特點[1]。如今,其應用范圍已擴展到了機械工業、交通工業、醫療設備、建筑、環境控制等。本課題使用嵌入式微控制器STM32編寫程序,實現上位機與STM32的RS-485通訊,并在不同環境下對其通信穩定性進行測試。
1 硬件線路設計
硬件部分結構圖如圖1,CPU類型為STM32F107VC,STM32F107VC是意法半導體公司推出的性能較強的全新STM32互連型系列微控制器,此芯片集成了各種高性能工業標準接口,工作溫度范圍–40~+105°C,最大工作頻率72MHz,為低功耗設計應用提供了一組完整的節電模式[2]。
Max3485是一種+3.3V低功耗半雙工收發器,它可以滿足RS-485串行協議通信要求。同時兼容工業標準規范,帶負載條件下數據傳輸速率高達10Mbs。自帶低功耗關斷模式,輸出短路保護功能。工作溫度范圍為-40℃-85℃。
如圖1所示,上位機通過RS-485串口調試軟件向STM32發送數據,微處理控制器接收到數據后返回原數據到上位機,設置上位機串口調試軟件的參數為波特率為115200bit/s,8個數據位,1個停止位,偶校驗。上位機串口調試軟件顯示接收到的數據表示通信成功。通過在不同溫度,不同電磁干擾條件下不間斷發送數據,測試數據傳輸的穩定性。
圖1 RS-485通信硬件結構示意圖
2 軟件程序設計
軟件部分結構圖如圖2,軟件部分主要包括初始化、數據接收檢測和數據發送三部分。
圖2 RS-485通信軟件結構示意圖
初始化部分包括標識定義,時鐘使能,GPIO端口使能等等。主程序部分通過定義一個標識符RS485_REC_Flag代表是否接收到數據,如果標識符為1,表示STM32接收到數據,后通過數據發送程序將接收到的數據返回到上位機串口調試軟件。
通過恒溫箱分別在高溫45℃和低溫-25℃下進行實驗,自動發送10000條重復數據,并計算誤差率,誤差率為0。通過EMI測試儀分別將RS-485通訊數據線放置在不同的噪聲環境中,自動發送10000條數據,誤差率為0,可以看出采用差分信號傳輸的RS-485通信穩定性很高[3]。部分主程序代碼如下:
int main(void)
{
...
while (1)
{
if(RS485_REC_Flag == 1)
{
RS485_REC_Flag = 0;
RS485_Send_Data(RS485_buff,RS485_rec_counter);
RS485_rec_counter = 0;
}
}
}
3 結束語
本文主要講述了利用RS-485實現上位機和STM32的數據接收與發送,并在不同實驗環境下測試了其通信穩定性,測試結果表明采用差分信號傳輸的RS-485通信傳輸數據穩定性較好,驗證了理論分析。學校在目前的《工業數據通信與控制網絡》課程教學過程中,有profibubus總線通訊實驗,CAN總線通訊實驗,本實驗為后續RS-485串口通訊實驗的開展打下了一定的基礎。
【參考文獻】
[1]吳皓月,淺談RS232與RS485串行通訊,《中國新通信》,2016.10.
[2]姚宇陽,基于SJA1000的雙CAN收發器通信實現,《科技視界》,2019.4.
[3]姜傳彥,工業現場RS485通訊干擾問題處理,《科技創新與應用》,2019.2.