久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于CAN/LIN息線的混合網關設計

基于CAN/LIN息線的混合網關設計

作者: 時間:2009-07-08 來源:網絡 收藏

2.1 主控制器的選擇
實現數據的高效率、高質量的存儲轉發是的重要目標,而主控制器是的核心器件,它的性能好壞直接決定了的效率高低。主控器對接收到的數據進行緩存,因此主控制器需要有較高的存儲容量。主控器還要對它所接收與轉發的數據進行協議轉換等數據處理,因此還要有較強的運算能力。
選用了Atml公司的AT91SAM7A3作為網關的核心控制器。這是一顆ARM7TDMI內核的32位RISC處理器,具有執行速度快、效率高的特點,能夠滿足網關的數據處理要求。該芯片內置32 KB的SRAM和256 KB的高速Flash存儲器,存儲能力強,能夠滿足網關對數據存儲的要求。另外,該芯片內部集成有2個功能強大的2.OB的控制器,可以處理所有類型的幀結構(數據幀、遠程幀、錯誤幀及過載幀),每個控制器有16個獨立的緩存區(mailbox),十分有利于實現網關高速、大容量的數據處理。集成的 控制器還能夠減少器件數目和PCB布線數量,有利于提高系統的抗干擾性能。
2. 2 節點
常用的CAN節點電路如圖3所示,它主要由MCU、CAN控制器及CAN收發器組成。為了增強電路的抗干擾性,還需要在控制器與收發器之間增加一個隔離電路。

本網關中的CAN節點共有2個:高速CAN節點和低速CAN節點。由于在汽車中電磁干擾現象非常嚴重,僅靠單個的CAN收發器難以滿足通信品質的要求,需要加上適當的隔離電路以提高電路的抗干擾性。
2個節點的MCU的功能由主控制芯片AT91SAM7A3實現,且AT91SAM7A3中集成了兩個高性能的CAN控制器,可以分別作為高低速CAN節點的控制器。
常用的隔離電路采用高速光耦6N137實現CAN節點之間的信號隔離,并且采用電源隔離模塊實現高速光耦的兩個電源的隔離。但是這種無疑增加了PCB的走線,使電路的沒計變得復雜,同時隔離電路的隔離效果也受到影響。
本設計采用廣州致遠電子有限公司生產的CTM系列的CTM1050和CTM1054,分別作為高低速CAN收發器。CTM系列的CAN收發器集成了CAN 收發器以及必需的隔離,即在一塊芯片上實現了隔離電路和CAN收發器的功能。這樣就不必單獨設計隔離電路,提高了集成度,使得抗干擾性得到增強。
高速CAN收發器CTM1050,最高速率可達1 Mb/s,完全符合ISO11898-2標準的高速CAN通信,用它作為高速CAN網絡接口的收發器(電路連接方法見圖2)。容錯CAN收發器 CTM1054,最高通信速率可達125 kb/s,完全符合ISO11898-3標準,用它作為低速CAN網絡接口的收發器(電路連接方法見圖2)。需要注意的是,在CTM1054的連接中,有 2個電阻R1和R2的阻值要根據低速CAN網絡中節點的個數來確定。具體值的算法見CTM1054使用手冊。
2.3 接口設計
總線是一主多從的總線連接方式,節點有主從之分。在本設計中,將節點設計為主節點。LIN是一個單線串行的通信協議,對于硬件的要求比較簡單。通常一個有SCI/UART接口的單片機和一個LIN收發器就可組成LIN節點。本設計利用AT91SAM7A3的UART口和LIN收發器 TJA1020組成一個LIN主節點。
TJA1020使用的波特率可從2.4~20 kb/s,有較好的保護功能:總線終端和電池引腳可防止汽車環境下的瞬變、總線終端對電池和地的短路保護以及過熱保護等,可以作為汽車通信中的LIN通信接口(具體電路連接見圖2)。

3 網關軟件設計
網關的軟件系統主要包括主監控程序、數據的發送、數據的接收、數據的處理(包括協議轉換和緩沖區內數據的讀寫處理)等幾部分。
3.1 主監控程序
如圖4所示,在主控制器AT91SAM7A3中劃出4塊緩沖區BUF1~BUF4,每一塊緩沖區中的數據都有明確而且唯一的來源和目的地。主監控程序主要通過循環依次查詢BUF1~BUF4中的存儲情況,來決定是否發送數據以及將數據發送給誰。

當高速CAN網絡上有數據需要接收的時候,通過高速CAN模塊接收數據,對接收到的數據進行處理后,將其存到緩沖區BUF1中,再由低速CAN模塊將其發送到低速CAN網絡上;當LIN網絡上有數據需要接收時,通過LIN總線模塊接收數據,對接收到的數據進行數據格式轉換(LIN格式的報文幀轉換為CAN 格式的報文幀),再將其存入到緩沖區BUF4中,并由低速CAN模塊將其發送到低速CAN網絡上;當低速CAN網絡上有數據需要接收時,先接收數據,然后判斷數據是發送到高速CAN總線,還是發送到LIN總線,根據判斷結果對數據進行處理,存入相應的緩沖區(如數據是發往高速CAN總線,則存入BUF2,否則存入BUF3)。
3.2 數據的發送
數據的發送由發送子程序完成,網關中主要有3個發送子程序,分別對應兩路CAN控制器以及一路 LIN發送器。高速CAN的發送子程序負責發送BUF1中的數據,LIN的發送子程序負責發送BUF3中的數據,低速CAN的發送子程序負責發送BUF2 和BUF4中的數據。數據的發送采用查詢總線狀態的發送方式:查詢總線的忙閑情況,如果總線忙,則退出發送子程序,進行其他的工作;如果總線空閑,則發送數據。發送完1幀數據后,再檢查與之相應的緩沖區的狀態。如果為空,則退出發送子程序;如果非空,則再檢查總線的忙閑狀態。如果忙,則退出發送子程序;如果空閑,則發送數據。然后再開始新一輪的數據查詢發送過程。圖5為高速CAN向低速CAN發送的流程,其他的發送子程序過程與此類似。



評論


相關推薦

技術專區

關閉