基于LPC2194的4路CAN網橋設計
中國礦業大學 金勇 趙宗平 于寧寧 杜存功
摘要: 4路CAN網橋可以延長CAN傳輸距離,擴展CAN通信網絡;同時具有路由功能,可實現不同CAN網絡之間的不同路由、不同通信速率的轉換,能夠在大型CAN網絡中起到關鍵作用。
Abstract:
Key words :
CAN總線以其設計獨特、成本低、可靠性高、實時性和抗干擾能力強等特點,在汽車工業、機械工業、紡織工業、機器人、數控機床、醫療器械等領域得到了廣泛的應用。從高速網絡到低速的多路接線網絡都可以使用CAN總線,其最高傳輸速率可以達到1 Mbps,最遠傳輸距離可達10 km(傳輸速率在5 kbps以下時)。但是當要求傳輸速率較高且傳輸距離較遠時,單條總線就無法完成;而且在大型的網絡中,經常需要多條總線的接入。這就需要同時有中繼與路由功能的CAN網橋來實現以上功能。
本文設計的4路CAN網橋可以延長CAN傳輸距離,擴展CAN通信網絡;同時具有路由功能,可實現不同CAN網絡之間的不同路由、不同通信速率的轉換,能夠在大型CAN網絡中起到關鍵作用。
1 4路CAN網橋的設計方案
1.1 CAN網橋的優點
使用4路CAN網橋對網絡性能的改善有著很大的幫助,在大型網絡的組網中有以下優點:
①可以延長網絡的傳輸距離,特別是經過幾個CAN網橋的中繼之后,可以極大地延長傳輸距離,能夠達到幾千米甚至幾十千米。
②可以增大CAN網絡的規模,4路CAN網橋有4個CAN支路,每條支路又可以增加新的CAN網橋,因此可以組成大規模的CAN網絡。
③可以實現不同網絡之間不同路由的選擇,增強了CAN網絡的可靠性。
1.2 設計方案
CAN網橋的設計方案一般分為單MCU和多MCU兩種。單MCU速度較慢,不適用于高速網絡;多MCU方案結構復雜,穩定性較差。針對以上情況,本設計采用了自帶4路CAN控制器的ARM微控制器LPC2194,同時避免了MCU速度慢和多MCU網絡復雜的情況。
LPC2194的特點如下:
①具有32位的ARM7微控制器,帶有256 KB的嵌入式高速Flash存儲器。32位代碼能夠在最高時鐘頻率下運行,且功耗極低,處理速度極快。
②自帶4路互聯的CAN控制器,完全支持CAN2.0B和ISO1198-1的標準,每個CAN控制器均可以實現1Mbps的速率。其全局驗收濾波器可識別所有總線的11位和29位Rx標識符,相對于SJA1000的CAN控制器有著明顯的優勢。
2 4路CAN網橋的硬件設計
2.1 總體設計
由于LPC2194集成4路CAN控制器,因此能夠方便地實現4路CAN總線接口,既減小了系統的規模,又提高了系統的穩定性。本設計采用LPC2194作為主控芯片,具有隔離和保護的CTM8251T作為CAN收發器。系統的整體結構如圖1所示。

2.2 微控制器與CTM8251T的接口設計
CTM8251T是一款帶隔離的通用CAN收發器模塊。該模塊內部集成了所有必需的CAN隔離及CAN收發器件,具有2 500 V的隔離功能和CAN-bus總線過壓保護作用。該模塊符合ISO11898標準,因此可以與其他遵從ISO11898標準的CAN收發器相互操作。由于微控制器LPC2194集成的4路CAN控制器完全相同,因此本設計中只給出1路CAN控制器與CTM8251T的連接圖,如圖2所示。

3 4路CAN網橋的軟件設計
4路CAN網橋不同于一般的CAN中繼器,可以選擇不同的路由和不同的通信速率。本設計中,4路CAN接口均可以實現與其他3路之間不同路由的選擇和不同通信速率之間的轉換,極大地增強了網絡的可擴展性。4路CAN網橋的工作模式分為兩種:配置模式,可以選擇路由和不同支路的CAN通信速率;正常工作模式,根據所配置的狀態來進行工作。
3.1 配置模式
配置模式的主要工作是將配置信息寫入EEPROM中,在正常工作時可以讀取配置的信息。配置模式的程序流程如圖3所示。

3.2 正常工作模式
在配置模式下配置好各信息后,系統重新上電可以進入正常工作模式。根據配置模式配置的狀態,4路網橋對網絡中的信息進行存儲轉發。在LPC2194中,4路CAN控制器是同時工作的,因此能夠提高系統的速度和實時性。每一路的結構和程序是相同的,因此本設計僅給出1路CAN控制器正常工作的程序設計。
為了提高系統的轉換速度和穩定性,本設計采用了中斷接收和查詢發送的方式。系統中斷接收CAN總線上的數據,并根據路由選擇和標識符的分配選擇發送到其他3路,從而完成網橋的工作。系統主程序和中斷程序流程分別如圖4和圖5所示。

4 實驗結果
為了驗證系統的可靠性,設計了一個通信收包率的實驗。通過PC機間隔一定的時間,向CAN網橋一條支路發送8字節的數據,網橋的另一條支路向PC機回復接收到的8字節數據。通過對比發送和接收的字節數來驗證收包率。分別以100 ms、10 ms、5 ms、1 ms的間隔來發送8字節的數據,發送和接收到的字節數為:
①間隔100 ms時,發送1 336個字節,接收1 336個字節,收包率為100%;
②間隔10 ms時,發送3 376個字節,接收3 376個字節,收包率為100%;
③間隔5 ms時,發送4 056個字節,接收4 056個字節,收包率為100%;
④間隔1 ms時,發送5 336個字節,接收5 336個字節,收包率為100%。
其中,間隔1 ms時的發送和接收圖如圖6所示。

實驗結果表明,在以不同間隔發送數據時,網橋都能很好地完成工作,可滿足實際應用的需要。
結 語
本文設計的4路CAN網橋采用功能強大的ARM芯片LPC2194作為主控芯片,因此能夠及時地處理4路CAN總線的數據傳輸。通過具體實驗證明,該網橋工作穩定、可靠、使用方便,完全滿足現場的需求。
此內容為AET網站原創,未經授權禁止轉載。