基于dsPIC30F6011的CAN總線擴展技術
3 網關的軟件設計
CAN網關作為消息的轉發(fā)器,要準確、實時地接收兩個CAN發(fā)送的信息,并且要實時發(fā)出去。對于不斷發(fā)出信息的問題節(jié)點要及時屏蔽,避免錯誤信息蔓延到另 一個CAN網絡。如果CAN網關被設置成透明網關則直接把一個CAN網絡的信息轉發(fā)到另外一個網絡中即可,如果CAN網關被設置成和某個區(qū)間ID相關,則 要做一些信息過濾和屏蔽處理。當CAN網關檢測到總線有錯誤時,要通過備用的UART口將錯誤信息上發(fā)到上位機或其他信息處理主機。
CAN網關的信息接收通過硬件中斷來完成。當總線上有消息時,引起硬件中斷,進入中斷程序后根據中斷標志位的區(qū)別把接收到的信息存放到相應的緩沖區(qū)中。緩 沖區(qū)是一個FIFO的存儲區(qū)。而主程序則一直檢測兩個CAN控制器對應的兩個接收緩沖區(qū),當檢測到緩沖區(qū)不為空時則把緩沖區(qū)內的信息順序發(fā)送到另一個網絡 中。從而形成一個具有一定的錯誤檢測能力的雙向通道,完成了兩個CAN網絡的信息轉發(fā)。CAN網關的主程序框圖如圖4所示,中斷程序框圖如圖5所示。
4 結 語
詳細介紹了CAN總線擴展技術的網絡拓撲結構和系統(tǒng)構成,給出了CAN網關的硬件設計原理及軟件設計框圖。這樣的CAN總線擴展網絡,因為引入CAN網關 而增加了消息的傳遞時間,但是這個增加的時間很小,是微秒級的,可以忽略不計。而帶來的優(yōu)勢明顯,因為把CAN網絡在物理層上劃分為幾個網絡,彼此之間不 相互影響,因而增加了CAN網絡的抗干擾性,同時,擴展靈活,只需要增加一個CAN網關來增加子網即可;通信速率可通過增加網關來提高,通信距離可以擴展 到很遠。通過CAN網關增加了CAN總線的容量、提高了CAN總線的通信速率、擴展了CAN總線的傳輸距離。
隔離器相關文章:隔離器原理
評論