隨著電子控制系統單元(ecu)在汽車上廣泛應用,汽車電子化程度越來越高。電控系統的增加雖然提高了汽車的動力性、經濟性和舒適性,但隨之增加的復雜電路,必然導致車身布線龐大而且復雜,安裝空間短缺。同時,為了提高電控單元信息利用率,要求大批的數據信息能在不同的電子單元間共享,汽車綜合控制系統中大量的控制信號也需要實時交換,不同功能電子控制系統單元間的數據通信變得越來越重要。因此對電子控制系統單元的設計提出了越來越高的要求,不僅要求通信網絡應具有通信速率高、準確、可靠性高的特點,同時要求控制模塊上應具有控制實效性高、空間小等優點。
本文采用了基于can總線技術,設計開發了應用于汽車網絡系統中的電子控制系統單元。
1 電子控制系統單元can通信模塊的設計
根據can通信原理,電子控制系統單元can通信模塊硬件主要由can控制器、can驅動器及中心微處理器構成。傳統的can通信模塊采用51系列的單片機作為中心處理器,sja1000作為can控制器,pca82c250作為can驅動器。這種方案所占空間大,外圍接口擴展局限,同時功耗高。本設計中,我們采用內嵌有can控制器的lpc2119和tja1050總線驅動器構成電子控制系統單元的can通信模塊。can通信模塊硬件圖如圖1所示。
lpc2119內帶有arm7內核,具有封裝小、功耗低、多個32位定時器、4路10位adc、2路can以及多達9個外部中斷等優點。tja1050是philips公司生產的,用以替代pca82c250的高速can總線驅動器。該器件提供了can控制器與物理總線之間的接口以及對can總線的差動發送和接收功能。對于由"弱"終端構成的端節點,tja1050外圍的電阻和電容能改善系統的emc性能。實踐證明,采用lpc2119和tja1050構造can通信模塊,外圍擴展能力強,空間小,同時改進電磁輻射(eme)性能和抗電磁干擾(emi)性能。
2 電子控制系統單元控制模塊的設計
傳統的"蜘蛛網式"控制模塊,電路復雜,維修難度高。本設計中,我們采用功率模塊、人機通信模塊、狀態量輸入模塊的結合,構造出電子控制系統單元控制模塊,提高了整個系統的可觀性和實效性。控制模塊硬件圖如圖2所示。
2.1 功率模塊
考慮到汽車功率負載大及lpc2119的i/o口驅動的局限,系統中采用功率模塊作為中心微處理器與功率負載之間的橋梁。
設計中,我們采用摩托羅拉公司生產的mc33888功率器件控制遠光燈、近光燈、倒車燈、剎車燈。mc33888內部集成有四路高端燈驅動器和8路繼電器或發光二極管驅動器,是一個可控制網絡,具有在板診斷、與微控制器通信報錯能力及故障軟化等優點。考慮到車內燈和示廊燈的功率相對比較大,我們采用mc33487功率器件進行控制。mc33487內部集成兩路帶有電流感應的20毫歐姆高端驅動器,電流輸出4.5a.感性負載以及大電流的短路保護是整個設計的難點。mc33887具有功耗低、等待模式下電流25微安、輸出電流超過8安的短路關斷等優點,所以系統采用mc33887功率器件對電機、鎖、天線、洗滌泵進行控制。
2.2 人機通信模塊
為了提高駕駛員和乘客的舒適性、安全性,整個系統必須在人和機器之間建立良好的人機通信模塊。bc7281、鍵盤模塊及外圍的led之間的結合,構造出人機通信模塊。bc7281是比高公司推出的16位數碼管顯示及鍵盤接口專用芯片。該芯片通過外接移位寄存器(74hc164、74ls595等)可控制16位數碼管或者128只獨立的led。bc7281的驅動輸出極性及輸出時序均可通過軟件進行控制,從而和各種驅動電路配合,適合任何尺寸的數碼管。通過人機通信模塊,人的意識能夠為機器所識別,同時機器也可以將一些相應的狀態信息反饋到led或者lcd上,達到人機通信的可視化效果。
2.3 狀態量輸入模塊
狀態量輸入模塊主要是將一些人為操作的效果(如大燈開關、轉向燈開關)、車身狀態(如車門、窗的開關)及內部狀態信息(如油量、水溫)反饋給中心處理器。中心處理器對反饋信息進行分析處理,就可以準確判斷本車所處的狀況,并做出相應的操作。
外部狀態信息可以分為開關量和模擬量。通過一系列外圍電路(如整形防顫電路),我們將開關量轉換成cpu可識別的0v和+5v高低電平。在模擬量處理上,先經過歸一化處理電路,將水溫、油量、氣壓、室溫的變化轉化為0v到5v之間電信號,然后通過lpc2119內嵌的4路10位ad轉換器轉換成相應的數字量。利用現有的can通信模塊將這些數字量傳輸到駕駛員附近的電子控制系統單元,再經過d/a轉換器,反應在儀器儀表上。
3 電子控制系統單元軟件設計
對于lpc2119微處理器來說,can控制器完全是基于事件觸發的,即在本身狀態發生改變時,can控制器會將狀態變化的結果告訴微處理器。因此中心微處理器可以采用中斷的方式或者輪詢的方式對can控制器作出相應的處理。完整的can固件編程層次結構圖如圖3所示。
各電子控制系統單元按規定格式和周期發送數據到總線上,同時根據需要各取所需的報文。對于接收數據,本系統采用中斷的方式實現,一旦中斷發生,即將接收的數據自動裝載到相應的報文寄存器中。此時利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時設定的標識符進行有選擇地逐位比較,只有標識符匹配的報文才能進入接收緩沖器,那些不符合要求的報文將被屏蔽于接收緩沖器外,從而減輕cpu處理報文的負擔。各電子控制系統單元的應用層程序都不一樣,但是通信模塊的應用程序基本上一致,可分為can初始化、發送數據、接收數據。
3.1 can初始化程序
can初始化程序主要用來實現can工作時的參數設置,其初始化主要內容包括:硬件使能can、設置can報警界限、設置總線波特率、設置中斷工作方式、設置can驗收濾波器的工作方式、設置can控制器的工作模式等。初始化流程圖如圖4所示。
3. 2 發送數據程序
對can模塊初始化成功后,就可以用它來傳送報文。節點向總線上發送報文的過程是:
lpc2119將待發送的數據按can格式組成一幀報文,寫入can模塊發送緩沖區,然后啟動發送命令,將報文發送到總線上。發送流程圖如圖5所示。
在使用發送函數時有一點必須注意,因為在啟動發送數據的命令后,can控制器要將緩沖區內的數據發送完畢后,才會將該幀數據是否發送成功的狀態返回。這樣如果在函數里一直等待數據發送完畢,會使整個微處理器的性能下降。為了避免這種情況,該函數在啟動發送后便立即返回,通過發送中斷或者利用查詢tcs狀態位判斷是否發送成功。
3.3 接收數據程序
本設計中,我們采用中斷的方式進行can總線上的數據接收。當lpc2119的can控制器出現內部中斷時,我們先識別中斷寄存器的ri位,判斷是否為接收中斷,然后讀取接收緩沖區的內容。其接收流程圖如圖6所示。
4 結論
實踐證明,基于can總線技術,帶arm7內核的汽車電子控制系統單元空間小,實效性高。特別是它的數據通信具有很強的實時性、更高的可靠性和更好的抗干擾能力,即使在重負荷下也不會出現網絡癱瘓的情況,但投入實用化仍需要進一步的研究和改進,且程序的通信處理能力、糾錯和容錯能力有待進一步的提高。
本文采用了基于can總線技術,設計開發了應用于汽車網絡系統中的電子控制系統單元。
1 電子控制系統單元can通信模塊的設計
根據can通信原理,電子控制系統單元can通信模塊硬件主要由can控制器、can驅動器及中心微處理器構成。傳統的can通信模塊采用51系列的單片機作為中心處理器,sja1000作為can控制器,pca82c250作為can驅動器。這種方案所占空間大,外圍接口擴展局限,同時功耗高。本設計中,我們采用內嵌有can控制器的lpc2119和tja1050總線驅動器構成電子控制系統單元的can通信模塊。can通信模塊硬件圖如圖1所示。
lpc2119內帶有arm7內核,具有封裝小、功耗低、多個32位定時器、4路10位adc、2路can以及多達9個外部中斷等優點。tja1050是philips公司生產的,用以替代pca82c250的高速can總線驅動器。該器件提供了can控制器與物理總線之間的接口以及對can總線的差動發送和接收功能。對于由"弱"終端構成的端節點,tja1050外圍的電阻和電容能改善系統的emc性能。實踐證明,采用lpc2119和tja1050構造can通信模塊,外圍擴展能力強,空間小,同時改進電磁輻射(eme)性能和抗電磁干擾(emi)性能。
2 電子控制系統單元控制模塊的設計
傳統的"蜘蛛網式"控制模塊,電路復雜,維修難度高。本設計中,我們采用功率模塊、人機通信模塊、狀態量輸入模塊的結合,構造出電子控制系統單元控制模塊,提高了整個系統的可觀性和實效性。控制模塊硬件圖如圖2所示。
2.1 功率模塊
考慮到汽車功率負載大及lpc2119的i/o口驅動的局限,系統中采用功率模塊作為中心微處理器與功率負載之間的橋梁。
設計中,我們采用摩托羅拉公司生產的mc33888功率器件控制遠光燈、近光燈、倒車燈、剎車燈。mc33888內部集成有四路高端燈驅動器和8路繼電器或發光二極管驅動器,是一個可控制網絡,具有在板診斷、與微控制器通信報錯能力及故障軟化等優點。考慮到車內燈和示廊燈的功率相對比較大,我們采用mc33487功率器件進行控制。mc33487內部集成兩路帶有電流感應的20毫歐姆高端驅動器,電流輸出4.5a.感性負載以及大電流的短路保護是整個設計的難點。mc33887具有功耗低、等待模式下電流25微安、輸出電流超過8安的短路關斷等優點,所以系統采用mc33887功率器件對電機、鎖、天線、洗滌泵進行控制。
2.2 人機通信模塊
為了提高駕駛員和乘客的舒適性、安全性,整個系統必須在人和機器之間建立良好的人機通信模塊。bc7281、鍵盤模塊及外圍的led之間的結合,構造出人機通信模塊。bc7281是比高公司推出的16位數碼管顯示及鍵盤接口專用芯片。該芯片通過外接移位寄存器(74hc164、74ls595等)可控制16位數碼管或者128只獨立的led。bc7281的驅動輸出極性及輸出時序均可通過軟件進行控制,從而和各種驅動電路配合,適合任何尺寸的數碼管。通過人機通信模塊,人的意識能夠為機器所識別,同時機器也可以將一些相應的狀態信息反饋到led或者lcd上,達到人機通信的可視化效果。
2.3 狀態量輸入模塊
狀態量輸入模塊主要是將一些人為操作的效果(如大燈開關、轉向燈開關)、車身狀態(如車門、窗的開關)及內部狀態信息(如油量、水溫)反饋給中心處理器。中心處理器對反饋信息進行分析處理,就可以準確判斷本車所處的狀況,并做出相應的操作。
外部狀態信息可以分為開關量和模擬量。通過一系列外圍電路(如整形防顫電路),我們將開關量轉換成cpu可識別的0v和+5v高低電平。在模擬量處理上,先經過歸一化處理電路,將水溫、油量、氣壓、室溫的變化轉化為0v到5v之間電信號,然后通過lpc2119內嵌的4路10位ad轉換器轉換成相應的數字量。利用現有的can通信模塊將這些數字量傳輸到駕駛員附近的電子控制系統單元,再經過d/a轉換器,反應在儀器儀表上。
3 電子控制系統單元軟件設計
對于lpc2119微處理器來說,can控制器完全是基于事件觸發的,即在本身狀態發生改變時,can控制器會將狀態變化的結果告訴微處理器。因此中心微處理器可以采用中斷的方式或者輪詢的方式對can控制器作出相應的處理。完整的can固件編程層次結構圖如圖3所示。
各電子控制系統單元按規定格式和周期發送數據到總線上,同時根據需要各取所需的報文。對于接收數據,本系統采用中斷的方式實現,一旦中斷發生,即將接收的數據自動裝載到相應的報文寄存器中。此時利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時設定的標識符進行有選擇地逐位比較,只有標識符匹配的報文才能進入接收緩沖器,那些不符合要求的報文將被屏蔽于接收緩沖器外,從而減輕cpu處理報文的負擔。各電子控制系統單元的應用層程序都不一樣,但是通信模塊的應用程序基本上一致,可分為can初始化、發送數據、接收數據。
3.1 can初始化程序
can初始化程序主要用來實現can工作時的參數設置,其初始化主要內容包括:硬件使能can、設置can報警界限、設置總線波特率、設置中斷工作方式、設置can驗收濾波器的工作方式、設置can控制器的工作模式等。初始化流程圖如圖4所示。
3. 2 發送數據程序
對can模塊初始化成功后,就可以用它來傳送報文。節點向總線上發送報文的過程是:
lpc2119將待發送的數據按can格式組成一幀報文,寫入can模塊發送緩沖區,然后啟動發送命令,將報文發送到總線上。發送流程圖如圖5所示。
在使用發送函數時有一點必須注意,因為在啟動發送數據的命令后,can控制器要將緩沖區內的數據發送完畢后,才會將該幀數據是否發送成功的狀態返回。這樣如果在函數里一直等待數據發送完畢,會使整個微處理器的性能下降。為了避免這種情況,該函數在啟動發送后便立即返回,通過發送中斷或者利用查詢tcs狀態位判斷是否發送成功。
3.3 接收數據程序
本設計中,我們采用中斷的方式進行can總線上的數據接收。當lpc2119的can控制器出現內部中斷時,我們先識別中斷寄存器的ri位,判斷是否為接收中斷,然后讀取接收緩沖區的內容。其接收流程圖如圖6所示。
4 結論
實踐證明,基于can總線技術,帶arm7內核的汽車電子控制系統單元空間小,實效性高。特別是它的數據通信具有很強的實時性、更高的可靠性和更好的抗干擾能力,即使在重負荷下也不會出現網絡癱瘓的情況,但投入實用化仍需要進一步的研究和改進,且程序的通信處理能力、糾錯和容錯能力有待進一步的提高。
評論
查看更多