張虎


摘 ?要:針對某型號客車軸溫報警器的通訊模塊故障率偏高、檢修工作量大的問題,文章設計了基于STM32的程序實現通訊模塊的數據收發功能測試。介紹了采用調制解調器實現RS232串口的遠距離傳輸數據,詳細介紹了通過設計實現客車軸溫報警器各自獨立對等的工作,軟件采用IAR編譯環境。試驗結果表明,該方案可以有效解決客運列車軸溫報警器通訊模塊故障率偏高的問題。
關鍵詞:軸溫報警器;STM32;獨立對等
中圖分類號:TP274.2 ? ? 文獻標識碼:A ? ? ?文章編號:1006-8937(2015)36-0009-01
1 ?概 ?述
鐵路運輸是現代交通運輸中的重要手段,為了確保高速運行下列車安全運行,列車上都安裝了超速防護和集中式客車軸溫報警器等安全裝置。客車軸溫報警器在軸溫達到警戒值以后會自動報警,提醒有關人員及時采取防范措施,確保列車運行安全[1]。我國鐵路干線密布,客運列車數量多,一列客車可以掛20多節車廂,運行時每節車廂都要配備一個軸溫報警器。因此,軸溫報警器的數量需求龐大。
某型號軸溫報警器主要由單片機控制器、液晶顯示器、直流開關電源和調制解調器等組成。該型號軸溫報警器在數模兼容、數字濾波、抗干擾和可靠性等方面的優勢使其很快在客運列車軸報器的使用中占據了市場。由于各種原因,此型軸報器的通訊模塊故障率偏高,檢修工作量大,故需設計程序實現通訊模塊的數據收發功能測試。
2 ?系統硬件設計
測試時將待測軸溫報警器報與標準軸溫報警器用廣播線對接(不分主從),兩者通過Modem(調制解調器)相連接,待測機通過J-Link JTAG連接到PC機,通過IAR編譯器調試程序,若數據收發正常則設備內通訊模塊的軟硬件合格,測試結果顯示在PC機屏幕上。根據設計要求,設計選用Cortex-M3內核的STM32F107VCT6單片機,該處理器資源豐富能對多個操作并行執行,滿足設計的要求[2]。
根據EIA-RS-232C 接口標準:遠距離通信采用Modem時,需要9根信號線;近距離只需要3根信號線。這些信號線由接口電路提供,以便與Modem或終端進行聯絡與控制。測試系統提供了2個標準RS232串口,連接STM32中的異步串行收發器。工作中Modem還需經過了一個變壓器獲得更大的輸出功率后與另一個Modem相連接。Modem的外接變壓器的原理圖,如圖1所示。
3 ?系統軟件設計
3.1 ?多主機網絡
一般的分主從模式的通訊中主機需要不停的詢問從機是否需要發送數據,從機之間不能相互通信,需通過主機作為中間中轉站。而當主機需要處理某個緊急問題時,不得不等待問詢叢機結束后再處理,即浪費了主機和從機的時間,又容易在處理緊急情況時出現系統的崩潰。該型號軸溫報警系統中,每一臺控制顯示器既是主機,也是從機。它是通過順序發送的方式來完成信息交換的。當某一臺儀器發送信息時,其它機器都處于接收狀態,發送完成后就轉變成接收狀態,克服了主從模式主機輪詢的缺點,各個終端軸溫報警器也由被動變為了主動。這種方式的優點是所有的信息全部共享,速度快,即使某一臺儀器發生故障,也不會使網絡癱瘓。這種通訊模式也稱之為多主機網絡模式[3]。
3.2 ?主程序編寫
通信協議的設計是軟件設計的重點。在實際應用中,很多時候單機片之間的通信環境都是比較好的,協議不是很復雜。測試通信程序流程圖,如圖2所示。
①數據雙方均使用9 600 kbps的速率傳輸數據,A機和B機不分主從通信,使用查詢方式互相接收和發送信息,下面以A機發送數據時B機接收數據為例。
②雙機開始數據傳輸時,A機發送呼叫信號11H啟動握手過程,詢問B機是否可以接收數據。
③B機接收到握手信號后,如果同意接收數據則應當信號01H,表示等待接收,否則發應答信號00H,表示暫時不能接收數據。
④A機在發送呼叫信號后等待,直接接收B機的應答信號00H,才確認完成握手協議過程,開始發送數據,否則,A機繼續發送呼叫信號。
⑤B機在接收完數據后,將根據最后的檢驗結果判斷接收是否正確,正確就向主機發送AAH,表示接收成功,發送FFH,表示錯誤,要求重發。
⑥A機接收到AAH字節,則表示通信結束,否則A機重發這組數據。根據流程圖進行了通信主體程序的編寫。
4 ?結 ?語
串行通信具有結構簡單、可靠性高等優點,而且串行通信有一定的糾錯力,并且成本比較低。實驗結果在串口調試助手的調試界面運行得到了通過,結果表明該程序與設計思想可以有效解決此型軸報器的通訊模塊故障率偏高的問題,該通訊模塊已經運用于實際產品。
參考文獻:
[1] 張家棟,田宏萍.關于列車安全狀態監測和診斷系統的研究[J].內燃機 ? 車,2000,(11).
[2] 李寧.基于MDK的STM32處理器開發應用[M].北京:北京航空航天大
學出版社,2008.
[3] 胡明飛,楊艷,漆靜群,等.基于RS485的多主機通信協議的設計[J].自動 ? 化儀表,2015,(7).