基于CAN總線技術在車站信號系統中的應用
信息從CAN總線到CAN接收緩沖區是由CAN控制器自動完成的。接收程序只需從接收緩沖區讀取要接收的信息即可。需要注意的是,讀取接收緩存器(RBF0或 RBF1)的內容后,CPU必須通過置位釋放接收緩存位來釋放緩存器,使得另一個報文立即變得有效。數據發送和接收中斷流程圖如圖5所示。
4.3 總線出錯和異常處理
CAN總線作為一種優良的串行通信局域網絡,它自身的查錯和排錯能力相當強大,因此在設計時必須充分利用這一點,提高通信系統的可靠性。CAN協議規定網絡上的任何一個節點,根據其錯誤計數器中的數值,可能處于下列3種狀態之一:“錯誤—激活”狀態、“錯誤—認可”狀態、“總線脫離”狀態。處于前兩種狀態時節點都可以參與總線通信,而當處于“總線脫離”狀態時節點既不發送,也不接收任何數據幀。同時CAN協議還對脫離總線節點重新參與總線通信有嚴格規定。
由于節點自身的原因或是其它原因,節點脫離總線,不參與通信,出現這種情況程序要做到及時發現,并且迅速做出有效處理,使之恢復參與總線通信。判斷節點是否脫離總線同樣既可通過查詢方式,又可通過中斷方式。而處于“總線脫離”狀態的節點通信功能的恢復,必須嚴格依照CAN協議規定的流程做,否則節點將一直處于“總線脫離”狀態。
5、總結
在車站信號系統中,用CAN總線代替RS-485總線,其數據通信具有突出的可靠性、實時性和靈活性,而且通信距離也有了很大的提高,這些都在現場運行中得到了證實,具有較強的實用價值。
本文作者創新點:用CAN總線代替車站信號系統所使用的RS-485總線,在軟/硬件設計中均采用了模塊化的方案,具有更高的靈活性和廣泛的適用性;同時,用Atmega128單片機代替車站信號系統中所使用的Atmel8535單片機,使運行的速度也得到了提高。
參考文獻:
[1].RS-485datasheethttp://www.dzsc.com/datasheet/RS-485_584821.html.
[2].2.0datasheethttp://www.dzsc.com/datasheet/2.0_1758666.html.
[3].SJA1000datasheethttp://www.dzsc.com/datasheet/SJA1000_609075.html.
[4].PCA82C200datasheethttp://www.dzsc.com/datasheet/PCA82C200_.html.
[5].Atmega128datasheethttp://www.dzsc.com/datasheet/Atmega128_.
[6].TJA1050datasheethttp://www.dzsc.com/datasheet/TJA1050_649182.html.
評論