MC9S12DG128在汽車高低速CAN網絡中的應用
在現代汽車中,車用電氣設備隨著人們對汽車各方面性能要求的不斷提高也在逐漸地增加,從發動機控制傳動系統控制,從行駛、制動、轉向系統控制到安全保證系統及儀表報警系統,從電源管理到為提高舒適性而做出的各種努力,使汽車電氣系統形成一個復雜的大系統,原有的汽車電氣控制系統模式已遠遠不能達到設計者以及用戶的要求,can總線技術以及硬件連接簡單,良好的可靠性,實時性和性價比已經漸漸被眾多的半導體廠家以及汽車企業所接受,并廣泛應用與汽車領域。
目前,眾多半導體廠商(如motorola,infineon、philips、fujitsu等)都紛紛推出了具有can功能的微控制器芯片,本設計使用的是motorola公司hc9s12系列的mc9s12dg128微控制器。
1 can總線技術簡介
can(controller area network)即控制器局域網[1],是德國bosch公司為解決現代汽車中眾多的控制和數據交換問題開發出的一種現場總線通信結構,其最高速率可達1mbps(40m內)以多主方式工作,與一般的通信總線相比,can總線數據通信具有突出的可靠性、實時性和靈活性,是目前使用最廣泛的一種汽車網絡。
2 mc9s12dg128的介紹
mc9s12dg128微控制器[2]是motorola公司m68hc12系列16位單片機中的一種,其內部結構主要有單片機基本部分和can功能塊部分組成,基本結構包括:中央處理器單元
hcs12(cpu)、2個異步串行通信口sci、2個同步串行通信口spi,8通道輸入捕捉/輸出比較定時器,1個8通道脈寬調制模塊以及49個獨立數字i/o口(其中20個具有外部中斷及喚醒功能),在片內還擁有128kb的flash
rom,8kb的ram和2kb的eeprom,can功能塊包括兩個兼容can2.0a/b協議的mscan控制器組成,這些豐富的內部資源和外部接口資源可以滿足ecu對各種數據的處理、can網絡數據的發送和接收要求,芯片集成了兩個mscan12模塊,能夠實現高低速can網絡的網關節點功能。
mscan是motorola scaleable can的縮寫[3],而mscan12模塊則是mscan在m68hc12系列mcu上的具體實現,其內部結構如圖1所示,它遵循can2.0a/b協議,集成了除收發器外can總線控制器的所有功能,此外它還采用先進的緩沖器布置改善了實時性能,簡化了應用軟件的設計,can報文發送時,cpu將數據送入發送緩沖期,然后通過設置寄存器發出命令,數據組成報文后通過發送引擎送到txcan,再經過外部收發器送到總線,報文接收時,收發引擎通過外部收發器將總線上的數據位流引入rxcan,經過解碼、錯誤檢查、校驗和報文過濾后送到接收緩沖區,并通過中斷或標志通知cpu。

3 "長安之星"cc6350汽車網絡設計
"長安之星"sc6350汽車的電控單元主要就主控制器、發動機控制系統、懸架控制系統、制動防抱死控制系統(abs)、自動變速系統、asr控制系統、儀表管理系統、故障診斷系統、中央門鎖系統、車窗升降系統和車燈控制系統等。
所有這些電控單元在整個控制系統中對響應的實時性的要求都有所不同,而且汽車在實際運行過程中眾多節點之間需要進行大量的實時數據交換[4],若整個汽車的所有節點都掛在一個can網絡上,則眾多節點通過一條can總線進行通信,一旦信息管理配置稍有不妥,就很容易出現總線負荷過大,導致系統實時響應速度下降的情況,這在實時系統中是不允許的,因此根據不同的要求,可將汽車網絡分為高速can網絡、低速can網絡和lin網絡3個速率等級。高速的can網絡由abs、amt和電噴等節點組成;這些電控單元個數少、實時性和穩定性要求高,設計組成傳輸速率為500kbps的高速can網絡。低速網絡,即低速can網絡和lin網絡,由眾多的車身電機和車燈節點組成,這些電控單元數量多,傳輸的數據紛繁復雜,對準確性、穩定性和要求勝于實時性,設計組成傳輸速率為125kbps的中低速can網絡或速率為20kbps
lin網絡進行控制。
對于不同速率網絡之間的通信,必須有相應的網關進行數據的過濾和速率的轉換,以實現不同速率網絡節點之間的數據通信。高低速can網關的設計采用mc9s12dg128實現。
圖2為整車("長安之星"sc6350)can-lin通信及控制網絡拓撲圖。

3.1 基本can節點硬件電路設計
基本的can節點硬件電路主要包括:帶有can控制器的微控制器和用于數據收發的can收發器,本設計中使用的是motorola公司的16位微控制器mc9s12dg128,它帶有mscan的控制器,主要負責can的初始化和數據的處理,can的收發器種類有很多,主要有philips公司的82c250、tja1050以及motorola公司的mc33997、mc33388、mc33889和mc33989等,它們之間很多都具有可兼容的特點,本例中采用的是philips公司的tja1050,它是can高速收發器。can基本節點結構及部分實際電路如圖3所示。

3.2 高低速can網關節點硬件電路設計
網關的主要作用是協調各網絡之間數據的共享,負責各節點之間的通信,其硬件結構與can節點非常相似,由于它負責高速與低速網絡之間的數據共享,所以,必須同時跨接兩個網絡之間,can總線網關硬件結構如圖4所示。

3.3 高低速can網絡報文監測電路
為了便于隨時因測試需要監測跟蹤網關中高低速can網之間報文的接收發送情況,利用mc9s12dg128的sci口設計了可與pc通信的rs232的接口電路,可通過軟件的設計來隨時進行網關處報文的監測,以測試網關的工作情況,其硬件原理和部分電路如圖5所示。

3.4 高低速can網關軟件設計
網關軟件設計部分主要實現的功能是各節點的數據收發,特別是網關可以實現高低速網絡數據的轉換,根據圖2所示網絡結構分布,對實時性要求不高的車燈控制和電動車窗控制電路采用低速can網絡,所設波特率為125kbps,對實時性要求較高的制動防抱死控制系統(abs)和自動變速系統(amt)等采用高速can網絡,所設波特率為500kbps,can初始化程序如下:
為了降低網絡資源的占用率,提高網絡通信實時性性能,在高低速的can網絡之間除了必要的通信外,其余各自網絡的報文是相互獨立傳輸的,這就需要使用mscan中的標識符驗收過濾器進行報文的過濾,可以通過對于過濾器寄存器的設置實現這一功能。can0與can4寄存器的驗收寄存器與屏蔽寄存器的設置如下:
由于傳輸速率不同,高低速can網絡之間的數據傳輸是不同的,當高速can網絡數據向低速can傳輸時,需要加入軟緩存進行暫時的存儲;當低速can網絡數據向高速can網路數傳輸時,可直接傳輸,整體流程如圖6所示。

4 高低速can網絡通信測試
為了監測高低速can網絡之間通信的準確性和實時性,本文給出了一個典型的can報文監測測試實例,通過測試,可以看到can報文在高低速can網絡之間傳輸,并可以實現控制跨網絡間的節點動作,測試的具體過程:首先在高速can上模擬產生一組數作為傳輸器參數,經過cpu的分析通過高速can網絡傳到高低速網關節點,然后經過網關節點的對can報文的傳輸速率轉換、傳遞到低速can網絡中,最后控制車身儀表節點和車燈節點的實際動作,can報文顯示及其測試結果如圖7所示。

結論
本文給出了一個具有高低速can網絡的汽車車身控制的網絡設計方案,介紹了motorola公司的16位單片機mc9s12dg128在該can網絡中作為高低速網關的軟硬件設計,以及上位機對其報文進行監測顯示的結果,用此芯片設計的網關電路具有結構簡單、易于升級、成本低廉但功能強大的特點,該網絡方案已經在"長安之星"sc6350汽車車身上試驗成功,控制網絡及電路運行穩定,證明方案可行,采用can網絡來控制汽車車身電器具有結構簡單、實時性好、可靠性高的優點,是現代汽車電器控制的發展趨勢。
評論