基于16位控制器的汽車車身電子控制系統(tǒng)解決方案(一)
隨著汽車車身控制應(yīng)用復(fù)雜性的提高,對16位微控制器(MCU)的性能要求也越來越高。以前曾用機械方法實現(xiàn)的門控、座椅調(diào)節(jié)、車內(nèi)照明和空調(diào)系統(tǒng)現(xiàn)在都改成了電子控制。這樣一個電子化汽車車身控制系統(tǒng)包括電源系統(tǒng)、CAN收發(fā)器、多開關(guān)檢測接口、輸出系統(tǒng)、電子馬達控制、嵌入式仿真以及內(nèi)存編程等幾個主要部分,本文不僅介紹了一系列芯片,而且將使設(shè)計工程師對汽車電子控制系統(tǒng)有一個比較概要和全面的認識。
本文引用地址:http://cafeforensic.com/article/201809/388715.htm隨著汽車車身控制應(yīng)用復(fù)雜性的提高,對16位微控制器(MCU)的性能要求也越來越高。以前曾用機械方法控制的門控、座椅調(diào)節(jié)、車內(nèi)照明和空調(diào)系統(tǒng)現(xiàn)在都改成了電子控制。許多半導(dǎo)體廠商包括摩托羅拉公司所提供的大量專用半導(dǎo)體解決方案使這些新的電子控制應(yīng)用成為可能。這些新的解決方案不僅提供了必要的控制功能,還提供了舊機械系統(tǒng)所不能提供的高級診斷能力。消費者希望新型汽車中的控制系統(tǒng)能及時對車內(nèi)發(fā)生的任何系統(tǒng)工作故障發(fā)出報警信息。
本文介紹摩托羅拉公司的MC9S12DP256 16位MCU和若干個外圍IC產(chǎn)品,這些產(chǎn)品專為適應(yīng)汽車系統(tǒng)中常見的惡劣環(huán)境而設(shè)計,此外,還詳細討論這些產(chǎn)品提供的高級診斷功能。圖1給出了所用方案的方框圖。
電源系統(tǒng)
電源系統(tǒng)是任何汽車系統(tǒng)設(shè)計中最重要的子系統(tǒng)之一。整體功耗、電池反極保護、汽車跳啟、車輛噪聲和汽車休眠功率都是必須考慮的因素。如果電源設(shè)計比較糟糕的話再好的系統(tǒng)也不能正常發(fā)揮作用。摩托羅拉公司提供的智能化電源半導(dǎo)體產(chǎn)品能很好地管理電源子系統(tǒng)的所有方面。
摩托羅拉公司的系統(tǒng)級芯片(SBC)MC33989具有二個電源整流器,專為MCU和外圍器件提供電源。片上還提供1個速度為1兆波特的CAN接口、4個高壓喚醒輸入端以及系統(tǒng)保護功能。這個智能化的半導(dǎo)體器件可以提供所有必需的系統(tǒng)電壓,它內(nèi)部有一個低噪聲的200mA整流器用來給MCU子系統(tǒng)供電。另外,還有一個控制外部導(dǎo)通晶體管的裝置用來給外圍設(shè)備供電。這個外部導(dǎo)通晶體管允許調(diào)整二次電源,使之滿足每種特殊應(yīng)用所需的功耗極限要求。二次供電電源還能根據(jù)要求切斷所選外圍設(shè)備的供電,并以此達到降低功耗的目的。
輸入電源直接來自車載電池。只需加一個外部二極管就能達到電池極性保護的目的。SBC可以在所有過壓條件下完成保護動作。功率MOSFET工藝技術(shù)的應(yīng)用也使本器件在電池電壓低至4.5V時還能正常工作,當(dāng)電池電壓低至3V時能輸出電池故障告警信號。該電源系統(tǒng)還有過溫保護功能,溫度到160攝氏度時將進行內(nèi)部熱關(guān)斷處理,溫度在130攝氏度時會輸出一個告警信號。另外,SBC還能提供低功耗的休眠模式,該模式下系統(tǒng)的電流能減小至40μA。
CAN收發(fā)器
除了提供系統(tǒng)電源外,SBC內(nèi)部還集成了一個1兆波特的CAN收發(fā)器。該收發(fā)器具有主控狀態(tài)超時檢測、內(nèi)部熱保護以及CAN+和CAN-輸入端短路保護等功能。收發(fā)器內(nèi)部還對CAN+和CAN-輸入端進行了跳啟、電池反接以及短接至電源或地的保護。
4個高壓喚醒輸入端使器件具備了強大的喚醒功能。這些喚醒輸入端的最大耐壓能達40V。輸入端的上拉源能在芯片上產(chǎn)生。由于只需用上拉源就能隨時檢測開關(guān)輸入的變化,因此能較好地降低功耗。該器件還具有周期性喚醒功能。另外,SBC還提供了針對MCU的復(fù)位調(diào)節(jié)與低壓檢測功能。
多開關(guān)檢測接口
由于需要特殊的觸點濕性電流(wetting currents)和電路故障檢測功能,汽車電子設(shè)備需要高復(fù)雜度的輸入傳感電路來檢測開關(guān)狀態(tài)。摩托羅拉公司的多開關(guān)檢測接口(MSDI)器件MC33993正是為此而設(shè)計的。
需要大量開關(guān)接口的系統(tǒng)具有許多分立元件,而這些分立元件會占用標準印刷線路板上的大量空間,并且必須進行焊點連接完整性檢測。而集成化方案能減少焊點數(shù)量,占用的空間也少,并能提供更寬的工作電壓,因此具有更大的靈活性。MSDI器件執(zhí)行的就是開關(guān)檢測功能,最多能檢測22個開關(guān)觸點的開閉狀態(tài),這些檢測到的開閉狀態(tài)再通過一條高速串行鏈路傳送給MCU。在輸入端只需加一個合適的靜電放電電容就能實現(xiàn)對瞬態(tài)干擾的保護。同樣,所有輸入端都具備電池反接、跳啟和負載拆卸保護功能。
MSDI還具有可選的濕性電流。這些內(nèi)部電流源極大地減少了系統(tǒng)部件數(shù)量,并使金屬或橡膠開關(guān)的使用成為可能。用于檢測金屬開關(guān)的大濕性電流能在檢測過程中有選擇的使用,從而達到降低功耗的目的。利用內(nèi)部電流源可以將輸入端作為輕型負載的供電電源使用,如傳感器、LED或MOSFET門等負載。這種方法進一步增強了系統(tǒng)的設(shè)計性能,使這些輸入端在不需要開關(guān)檢測的情況下能作其它用途。
高阻抗的模擬電路特別容易受到來自電路板上其它信號噪聲的影響??s短模擬信號路徑,并允許器件對信號進行緩沖可以減少這種影響。MC33993具有強大的模擬接口功能。與傳統(tǒng)系統(tǒng)相比,這種方法能減少系統(tǒng)布線和故障模式。另外MC33993還集成了22比1的模擬復(fù)接器來提升器件性能。通道選擇是通過一條高速串行鏈路實現(xiàn)的。該器件不僅能提供先進的開關(guān)診斷功能,還允許使用模擬傳感器接口和梯形阻抗接口。
MCU輸出電路不能直接驅(qū)動汽車負載,還需要燈、繼電器、馬達、量程表和LED驅(qū)動器等集成電路。這些特殊的輸入接口器件同樣也提供保護與錯誤檢測功能。
輸出系統(tǒng)
在電源系統(tǒng)與輸入調(diào)整確認后就必須考慮輸出系統(tǒng)。許多汽車負載不能被MCU或低電流接口器件直接驅(qū)動,包括馬達和燈。繼電器或機械式開關(guān)是當(dāng)今汽車車身控制結(jié)構(gòu)中主要的大電流開關(guān)器件。由于電磁系統(tǒng)成本低,設(shè)計成熟,不少系統(tǒng)結(jié)構(gòu)師仍樂于選用。然而使用電磁系統(tǒng)會產(chǎn)生很多問題,例如:
1. 機械觸點的有限壽命限制了繼電器的開關(guān)頻率。由于觸點在打開或閉合的時候具有一定的慣性,在穩(wěn)定到下一個狀態(tài)前會有一定程度的跳動。這一跳動限制了最大的工作頻率,如果超過這一頻率繼電器的壽命將大大縮短。
2. 電磁系統(tǒng)不具備診斷功能。在惡劣的汽車環(huán)境中,這些器件的可靠性是個大問題。
利用專為這類負載設(shè)計的驅(qū)動器可以方便地把這些負載集成到系統(tǒng)中去。摩托羅拉公司提供的具有4個高端與8個低端的MC33888開關(guān)就是專為驅(qū)動汽車負載設(shè)計的。這種器件能直接控制4個功率達60W的高端負載和8個小電流(2.5W)的低端負載。MC33888器件還內(nèi)建了處理與白熾燈有關(guān)的浪涌電流的功能。從圖2可以看出由白熾燈引起的浪涌電流能達到正常工作電流的10到15倍,這會給沒有這些大浪涌電流處理電路的系統(tǒng)帶來很大的問題。對這類負載的最常見措施是觸發(fā)過流保護電路來切斷這些負載。
MC33888很好地解決了這個問題,它采用了一個啟動定時器,允許白熾燈在過流保護電路工作前進行預(yù)熱。過流保護電路的啟動需要檢測調(diào)節(jié)輸出驅(qū)動器到器件可接受電平的狀態(tài)和脈寬信號。圖3給出了過流保護的動作波形。完整的電池反極保護、負載傾卸保護和低功耗特性都有助于降低系統(tǒng)的復(fù)雜性,并減少外部元器件的數(shù)量。診斷功能包括負載開路檢測、短路檢測和過溫檢測。作為附加的保護功能,該器件還內(nèi)建了一個看門狗定時器,當(dāng)器件與MCU之間的通信發(fā)生中斷時可以用來關(guān)閉器件。對該器件的控制是通過一個高速串行接口實現(xiàn)的,因此大大減少了所需的MCU引腳數(shù)量。
電子馬達控制
最后一個需要考慮的問題是電子馬達控制。MC33887馬達驅(qū)動器能很好地完成這一任務(wù),它是一個完整的H型橋式驅(qū)動器。該器件具有大于5A的連續(xù)電流驅(qū)動能力,因此非常適合用于鎖定馬達、天線馬達或雨刷泵。MC33887還具有高端電流傳感反饋功能。高端電流傳感反饋功能可根據(jù)實時的馬達電流反饋修正馬達的驅(qū)動頻率和負載循環(huán)。就象燈驅(qū)動器那樣,當(dāng)檢測到過流狀態(tài)時它能自動對輸出進行脈寬調(diào)制。
MC33887器件能夠完全控制H橋激活方向和負載的中斷控制。
嵌入式仿真器
專門設(shè)計用于復(fù)雜的汽車電子應(yīng)用的MC33993、MC33887和MC33888器件提供了具有先進性能和診斷功能的解決方案。
復(fù)雜的多引腳MCU常會引起開發(fā)問題。MC9S12DP256提供了一個單線的后臺調(diào)試接口,可以方便地在汽車環(huán)境中實現(xiàn)廣泛的調(diào)試工作,并且不會遇到使用傳統(tǒng)電路嵌入式仿真器時常見的困難。這一接口還能用來在生產(chǎn)線末端進行主要閃存的編程,甚至可以用來在車內(nèi)執(zhí)行再編程操作。
現(xiàn)代的汽車微控制器常采用閃存來存儲主操作程序。編程閃存的最佳方法是在最終組裝后把主程序編程進完整的電子控制模塊中,與在模塊組裝前通過第三方把主程序編程進MCU相比,這種方法能有效地避免風(fēng)險和延時。通過簡單的串行接口將主程序編程進MCU是在模塊組裝后完成的,一般是在最終測試過程中執(zhí)行的。一些制造商采用便宜的獨立編程器完成這一操作,而另外一些廠商則將編程操作集成在生產(chǎn)線末端的測試設(shè)備中。
摩托羅拉的相關(guān)器件則提供一個單線的后臺調(diào)試接口用來實現(xiàn)閃存編程、檢驗和一般的調(diào)試操作。在設(shè)備正常工作時,串行通信引腳在復(fù)位時是被拉高的,因此后臺系統(tǒng)不被激活。當(dāng)有編程器或調(diào)試系統(tǒng)連接到這個引腳時,該引腳在復(fù)位時會被拉到低電平,從而迫使MCU進入激活的后臺模式,而不是去啟動應(yīng)用程序。為了方便調(diào)試,可以在設(shè)備正常工作時將一個主機系統(tǒng)連接到目標MCU系統(tǒng),從而在不干擾設(shè)備運行的條件下實現(xiàn)對閃存或寄存器內(nèi)容的監(jiān)測。所連接的調(diào)試系統(tǒng)也能取代MCU的控制來讀寫CPU寄存器、設(shè)置硬件斷點或跟蹤單條指令。
傳統(tǒng)的電路嵌入式仿真器與目標系統(tǒng)之間通常需要30到40個連接,而上述后臺調(diào)試接口只需要2到4個連接。單根BKGD通信信號和公共地是必須的。增加復(fù)位信號能使主機更容易地強迫和控制系統(tǒng)復(fù)位,在某些情況下增加VDD能允許調(diào)試夾具從目標系統(tǒng)中“竊取”電源。這種簡單的接口為汽車電子設(shè)計師提供了對安裝在運動汽車電子控制模塊中的MCU的調(diào)試訪問能力。當(dāng)汽車在正常路況下行進時許多問題只能經(jīng)過調(diào)試才能發(fā)現(xiàn)。
內(nèi)存編程
與閃存編程相關(guān)的最重要因素是速度與方便性。編程速度取決于閃存單元的編程時間以及從編程器到目標MCU的數(shù)據(jù)傳輸速度,當(dāng)然還有一些其它因素,如編程前擦除陣列的時間,用于驗證編程操作成功與否的時間。MC9S12DP256編程任意16位字的時間是45ms,但一個突發(fā)編程操作允許對同一排32字閃存中的任意附加字以20ms的速度編程。理論上采用單線后臺調(diào)試接口可以在27ms內(nèi)傳送一個字的信息,這要比閃存的實際編程時間稍微慢一些。實際編程還需要額外的任務(wù)開銷,如驗證開銷。獨立編程器工具SCBDMPGMR12能在稍少于10s的時間內(nèi)完成256KB閃存的擦除、編程和驗證操作。
驗證是產(chǎn)生開銷的重要因素之一。重傳所有的數(shù)據(jù)以實現(xiàn)字對字的驗證將使編程時間加倍。一個快速的辦法是在數(shù)據(jù)編程進閃存時進行CRC計算,然后在整個閃存編程完成后重讀閃存內(nèi)容來驗證CRC值。這一操作完全能以總線速度進行,而且無需重傳數(shù)據(jù)。
將數(shù)據(jù)到目標的傳送分離出來,使它在數(shù)據(jù)編程進閃存前完成也會使編程時間加倍。較好的方法是數(shù)據(jù)傳送與編程操作并行展開。一般來說,要先把編程算法發(fā)送到目標MCU,從而便于管理收到的數(shù)據(jù)并把數(shù)據(jù)送入RAM緩沖器,然后控制擦除與編程操作。該編程算法利用二個數(shù)據(jù)緩沖器來接收將被編程進閃存的數(shù)據(jù)。當(dāng)?shù)谝粋€緩沖器裝滿數(shù)據(jù)后,編程算法就開始把這些數(shù)據(jù)編程進閃存,同時新的數(shù)據(jù)被裝載到第二個緩沖器。后臺接口可以用來接收數(shù)據(jù)并把它們寫入RAM,這一操作不會干擾目標CPU的工作,因為CPU是從另外一個緩沖器讀取數(shù)據(jù)并編程進閃存的。
MC9S12DP256中的閃存被分成4個獨立的64KB塊,因此可以獨立地對這4個塊執(zhí)行擦除與編程操作。在基于后臺調(diào)試的閃存編程情況下,由于數(shù)據(jù)傳送速度要稍慢于閃存的平均字編程速度,因此試圖交織進行獨立陣列的編程操作是不切實際的,不過對所有4個塊并行執(zhí)行批量擦除操作則是可行的。
后臺訪問給首次閃存編程提供了極其便利的途徑,但一些用戶仍希望采用其它系統(tǒng)總線如CAN總線、J1850總線或串行接口總線來完成所有的現(xiàn)場再編程操作。在主應(yīng)用程序中包含合適的啟動裝載(bootloader)程序能方便地做到這一點。為了對來自于成品汽車中某根總線的某些特殊代碼作出響應(yīng),啟動裝載程序應(yīng)能擦除閃存并接受新的編程數(shù)據(jù)。
評論