呂晉超,葉玖林,李世超
(電子科技大學,微電子與固體電子學院,四川成都610054)
基于MCS-51的CAN/LIN網關設計
呂晉超,葉玖林,李世超
(電子科技大學,微電子與固體電子學院,四川成都610054)
CAN總線和LIN總線在汽車工業中大規模應用后,如何有效地解決CAN總線和LIN總線相互轉換已然成為一個問題。論文基于MCS-51提供了一個有效的解決方案,運用MCS-51定時器的定時功能,定時向各節點發起通訊來達到實現數據傳輸的目的。
MCS-51;CAN總線;LIN總線;網關
在汽車電子工業的發展過程中,CAN總線協議和 LIN總線協議在其中扮演著重要的角色。CAN適用于要求高速長距離傳輸的場合,而對于低速廉價的要求,LIN更加適用,但因為一個系統內出現了兩個不同的總線協議,并且兩個協議之間要進行數據交換,所以我們就需要CAN/LIN網關對速率、其數據等進行轉換,下面我們對CAN和LIN協議進行簡單介紹。
1.1 CAN協議
CAN總線是德國BOSCH公司從80年代初為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行數據通信協議。CAN總線具有如下特點:可在各節點之間實現自由通信。CAN總線采用了多主競爭式總線結構,具有多主站運行和分散仲裁的串行總線以及廣播通信的特點;通信速率快,通信速率最高可達1Mbps;結構簡單,只有2根線與外部相連,并且內部集成了錯誤探測和管理模塊。CAN總線的數據傳輸采用短幀的格式,可分為標準格式幀和擴展格式幀,幀則可分為:數據幀、遠程幀、錯誤幀、過載幀。
1.2 LIN協議
LIN總線是由1999年成立的LIN聯盟所推出的專門用于汽車控制的串行通信協議。在對通訊速率要求不高的應用中(在門窗、空調、照明燈等),LIN總線是CAN總線的低成本的有效補充。LIN總線具有如下特點:低成本:基于通用UART接口幾乎所有微控制器都具備LIN必需的硬件;單主控器/多從設備模式無需仲裁機制;傳輸速率最高可達20Kbit/s。LIN總線的傳輸(報文傳輸)由報文幀的格式形成和控制,一個報文幀是由主機節點發送的報頭和由主機或一個從機節點發送的響應組成。報文幀的報頭包括同步間隔場、同步場和標識符場。報文幀的響應則由字節場組成:數據場和校驗和場。
CAN總線和LIN總線是一個系統中兩個不同的總線,并且要進行數據交換,CAN/LIN網關就是充當一個橋梁的角色,在網關內部實現協議的轉換,除此之外網關還要匹配兩種總線的傳輸速率。就硬件邏輯實現的角度,可采用“CAN接口驅動—中央控制器—LIN接口驅動”的結構。

2.1 CAN接口驅動
一個CAN接口驅動由一個CAN控制器、CAN收發器。CAN控制器完成CAN協議的所要求的報文格式的發送和接收,CAN收發器為CAN控制器和CAN總線提供物理接口。本文的CAN控制器采用 Philips公司的 SJA1000,SJA1000具有支持CAN2.0,包括標準的和擴展的數據和遠程幀、具有擴展的64字節FIFO接收緩沖器、具有仲裁丟失捕獲寄存器的特點;CAN的收發器采用的是Philips公司的 TJA1050,TJA1050具有高速率(最高達1Mbps)、電磁抗干擾EMI性極高、驅動能力強等的特點。
2.2 LIN接口驅動
由于LIN協議相較于CAN協議較為簡單并且對速度要求不高,所以LIN的接口驅動中沒有LIN控制器,LIN總線的協議只需具有UART串口的微處理器軟件編寫,所以LIN接口驅動只有單獨的LIN收發器組成。LIN 收發器采用 Philips公司的TJA1020,TJA1020具有波特率高達20Kbps、高抗電磁干擾性、控制輸入電平和3.3V以及5V的器件兼容等的特點。
2.3 中央控制器
中央控制器是CAN/LIN網關的核心,它起著控制系統的數據發送和接收、報文格式的轉換等功能。中央控制器采用MCS-51單片機,它具有操作簡單、成本低、穩定性高等的特點,下圖為CAN/LIN網關的硬件電路圖。

有了硬件的基礎,就需要軟件的實現來完成網關的功能。網關的功能主要功能是實現 CAN/LIN協議的轉換,但同時網關是CAN總線上的一個節點,它能實現CAN總線的相互通信,網關也是LIN總線上的主機,由它來控制LIN總線上節點之間的通信。無論是CAN協議向LIN協議的轉換還是LIN協議向CAN協議轉換都需要向網關發送數據,網關處理發送過來的數據,傳輸到另一條總線上。如下圖所示,CAN(或LIN)節點分別將數據發送到總線上,中間的網關接收總線上的數據,經數據處理,發到LIN(或CAN)總線上,最終LIN(或CAN)節點接收總線的數據,需要注意的是網關中的4個緩沖器并不是硬件緩沖器,而是軟件緩沖器,是程序模塊,起對數據進行處理的作用。

本文利用的是分時向各節點發起通訊,具體的軟件實現可利用MCS-51單片機的定時功能,采用依次向各節點發起通信的方式來進行數據交換。將MSC-51的定時器0設置一定的時間T,每隔時間T就去檢測各節點的狀態,如下圖所示,最初是初始化MCS-51單片機和CAN控制器,而后檢查定時器0是否有置位,如果說置位了則檢測LIN節點是否有數據發出,有的話將LIN節點的發送緩沖器數據發送到網關的LIN接收緩沖器,然后依次將數據一層層地發送到CAN節點上,之后再檢測網關的CAN接收緩沖器,如果有數據則發送到網關的LIN發送緩沖器,網管的LIN發送緩沖器有數據,此時將這個數據發到LIN節點上。具體的邏輯結構如下圖所示。

為了驗證算法的可行性和程序的正確性以及網關性能,完成了一個測試系統在測試系統中,由控制臺、CAN節點1、LIN節點1和LIN節點2組成,其中控制臺連接到CAN總線,它既是CAN總線上的節點同時也是測試系統的控制臺。由控制臺可對其它三個節點進行通信,而其它三個節點又可通過故障開關對控制臺進行通訊,可通過各節點上的指示燈來獲知數據的發送也接收。上圖為測試系統,下圖為測試網關。


在CAN/LIN網關中,實時性是評估系統的重要性能數據,可以通過數據發送也接收的時間差異來判斷系統實現的好壞。為了評估此系統的實時性,在不同LIN波特率(Kbps)和CAN波特率(Kbps)測試延時時間。

延時時間(m s)L I N波特率( 2 . 4 4 . 8 9 . 6 1 4 . 4 1 9 . 2 1 0 0 5 6 4 8 4 0 3 1 2 1 2 5 0 5 6 4 7 3 9 3 0 2 1 1 0 2 4 5 3 4 5 3 8 2 7 1 9
從上表數據可以看出,高速總線CAN的波特率提升對于延時時間的減小影響較小,而通過對低速總線LIN波特率的提升對于延時時間的減小效果較為明顯。所以說 LIN波特率是延時時間的主要因素,CAN波特率是延時時間的次要因素。在對實時性要求不高的場合,可通過提高LIN波特率來達到較小延時時間的目的,而對實時性要求較高的場合,可通過同時提高LIN波特率和CAN波特率來減小延時時間。
基于MCS-51單片機的CAN/LIN網關設計有效地解決了CAN總線與LIN總線的相互數據傳輸問題,并且采用分時向各節點發起通訊的方法具有程序結構清晰、程序移植性好、通用性好、成本低廉等優勢。利用MCS-51單片機實現的CAN/LIN網關設計也存在一定的局限性,在硬件電路的集成度方面還存在不足,有待今后進一步改善。
[1]崔俊鋒,袁濤.車身混合網絡中CAN/LIN網關的設計與實現[J].微計算機信息,2006,22(3).
[2]王豐華.汽車上CAN/LIN混合網絡組網技術的應用研究[D].鎮江:江蘇大學,2006.
[3]甘永梅,李慶豐等.現場總線技術及其應用[M].北京:機械工業出版社,2005.
[4]饒運濤,鄒繼軍等.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2004.
[5]張毅剛.單片機原理及應用[M].北京:高等教育出版社,2007.
(責任編輯:王 林)
CAN/LIN Gateway Based on the MCS-51
LV Jin-chao,YE Jiu-lin,LI Shi-chao
(Schoolof Micro-Electronics andSolid-StateElectronics,University of Electronic Science andTechnology ofChina,Chengdu 610054,China)
The CANbus and LINbus have been large-scalely applied in automobile industry.Howto effectively solve the transformation between the CAN bus and LIN bus has become a problem,and this article,based on MCS-51,provides an effective solution,using MCS-51 timer timing function,timing on each node communication,to achieve the purpose of realization of data transmission.
MCS-51;CAN bus;LIN bus;gateway
TN915
A
1009-3583(2014)-0079-03
2014-05-06
呂晉超,男,貴州貴陽人,大學本科生,主要從事CAN總線技術的應用和系統設計的研究。