基于16位控制器的汽車(chē)車(chē)身電子控制系統解決方案(一)
隨著(zhù)汽車(chē)車(chē)身控制應用復雜性的提高,對16位微控制器(MCU)的性能要求也越來(lái)越高。以前曾用機械方法實(shí)現的門(mén)控、座椅調節、車(chē)內照明和空調系統現在都改成了電子控制。這樣一個(gè)電子化汽車(chē)車(chē)身控制系統包括電源系統、CAN收發(fā)器、多開(kāi)關(guān)檢測接口、輸出系統、電子馬達控制、嵌入式仿真以及內存編程等幾個(gè)主要部分,本文不僅介紹了一系列芯片,而且將使設計工程師對汽車(chē)電子控制系統有一個(gè)比較概要和全面的認識。
本文引用地址:http://dyxdggzs.com/article/201809/388715.htm隨著(zhù)汽車(chē)車(chē)身控制應用復雜性的提高,對16位微控制器(MCU)的性能要求也越來(lái)越高。以前曾用機械方法控制的門(mén)控、座椅調節、車(chē)內照明和空調系統現在都改成了電子控制。許多半導體廠(chǎng)商包括摩托羅拉公司所提供的大量專(zhuān)用半導體解決方案使這些新的電子控制應用成為可能。這些新的解決方案不僅提供了必要的控制功能,還提供了舊機械系統所不能提供的高級診斷能力。消費者希望新型汽車(chē)中的控制系統能及時(shí)對車(chē)內發(fā)生的任何系統工作故障發(fā)出報警信息。
本文介紹摩托羅拉公司的MC9S12DP256 16位MCU和若干個(gè)外圍IC產(chǎn)品,這些產(chǎn)品專(zhuān)為適應汽車(chē)系統中常見(jiàn)的惡劣環(huán)境而設計,此外,還詳細討論這些產(chǎn)品提供的高級診斷功能。圖1給出了所用方案的方框圖。

電源系統
電源系統是任何汽車(chē)系統設計中最重要的子系統之一。整體功耗、電池反極保護、汽車(chē)跳啟、車(chē)輛噪聲和汽車(chē)休眠功率都是必須考慮的因素。如果電源設計比較糟糕的話(huà)再好的系統也不能正常發(fā)揮作用。摩托羅拉公司提供的智能化電源半導體產(chǎn)品能很好地管理電源子系統的所有方面。
摩托羅拉公司的系統級芯片(SBC)MC33989具有二個(gè)電源整流器,專(zhuān)為MCU和外圍器件提供電源。片上還提供1個(gè)速度為1兆波特的CAN接口、4個(gè)高壓?jiǎn)拘演斎攵艘约跋到y保護功能。這個(gè)智能化的半導體器件可以提供所有必需的系統電壓,它內部有一個(gè)低噪聲的200mA整流器用來(lái)給MCU子系統供電。另外,還有一個(gè)控制外部導通晶體管的裝置用來(lái)給外圍設備供電。這個(gè)外部導通晶體管允許調整二次電源,使之滿(mǎn)足每種特殊應用所需的功耗極限要求。二次供電電源還能根據要求切斷所選外圍設備的供電,并以此達到降低功耗的目的。
輸入電源直接來(lái)自車(chē)載電池。只需加一個(gè)外部二極管就能達到電池極性保護的目的。SBC可以在所有過(guò)壓條件下完成保護動(dòng)作。功率MOSFET工藝技術(shù)的應用也使本器件在電池電壓低至4.5V時(shí)還能正常工作,當電池電壓低至3V時(shí)能輸出電池故障告警信號。該電源系統還有過(guò)溫保護功能,溫度到160攝氏度時(shí)將進(jìn)行內部熱關(guān)斷處理,溫度在130攝氏度時(shí)會(huì )輸出一個(gè)告警信號。另外,SBC還能提供低功耗的休眠模式,該模式下系統的電流能減小至40μA。
CAN收發(fā)器
除了提供系統電源外,SBC內部還集成了一個(gè)1兆波特的CAN收發(fā)器。該收發(fā)器具有主控狀態(tài)超時(shí)檢測、內部熱保護以及CAN+和CAN-輸入端短路保護等功能。收發(fā)器內部還對CAN+和CAN-輸入端進(jìn)行了跳啟、電池反接以及短接至電源或地的保護。
4個(gè)高壓?jiǎn)拘演斎攵耸蛊骷邆淞藦姶蟮膯拘压δ?。這些喚醒輸入端的最大耐壓能達40V。輸入端的上拉源能在芯片上產(chǎn)生。由于只需用上拉源就能隨時(shí)檢測開(kāi)關(guān)輸入的變化,因此能較好地降低功耗。該器件還具有周期性喚醒功能。另外,SBC還提供了針對MCU的復位調節與低壓檢測功能。
多開(kāi)關(guān)檢測接口
由于需要特殊的觸點(diǎn)濕性電流(wetting currents)和電路故障檢測功能,汽車(chē)電子設備需要高復雜度的輸入傳感電路來(lái)檢測開(kāi)關(guān)狀態(tài)。摩托羅拉公司的多開(kāi)關(guān)檢測接口(MSDI)器件MC33993正是為此而設計的。
需要大量開(kāi)關(guān)接口的系統具有許多分立元件,而這些分立元件會(huì )占用標準印刷線(xiàn)路板上的大量空間,并且必須進(jìn)行焊點(diǎn)連接完整性檢測。而集成化方案能減少焊點(diǎn)數量,占用的空間也少,并能提供更寬的工作電壓,因此具有更大的靈活性。MSDI器件執行的就是開(kāi)關(guān)檢測功能,最多能檢測22個(gè)開(kāi)關(guān)觸點(diǎn)的開(kāi)閉狀態(tài),這些檢測到的開(kāi)閉狀態(tài)再通過(guò)一條高速串行鏈路傳送給MCU。在輸入端只需加一個(gè)合適的靜電放電電容就能實(shí)現對瞬態(tài)干擾的保護。同樣,所有輸入端都具備電池反接、跳啟和負載拆卸保護功能。
MSDI還具有可選的濕性電流。這些內部電流源極大地減少了系統部件數量,并使金屬或橡膠開(kāi)關(guān)的使用成為可能。用于檢測金屬開(kāi)關(guān)的大濕性電流能在檢測過(guò)程中有選擇的使用,從而達到降低功耗的目的。利用內部電流源可以將輸入端作為輕型負載的供電電源使用,如傳感器、LED或MOSFET門(mén)等負載。這種方法進(jìn)一步增強了系統的設計性能,使這些輸入端在不需要開(kāi)關(guān)檢測的情況下能作其它用途。
高阻抗的模擬電路特別容易受到來(lái)自電路板上其它信號噪聲的影響??s短模擬信號路徑,并允許器件對信號進(jìn)行緩沖可以減少這種影響。MC33993具有強大的模擬接口功能。與傳統系統相比,這種方法能減少系統布線(xiàn)和故障模式。另外MC33993還集成了22比1的模擬復接器來(lái)提升器件性能。通道選擇是通過(guò)一條高速串行鏈路實(shí)現的。該器件不僅能提供先進(jìn)的開(kāi)關(guān)診斷功能,還允許使用模擬傳感器接口和梯形阻抗接口。
MCU輸出電路不能直接驅動(dòng)汽車(chē)負載,還需要燈、繼電器、馬達、量程表和LED驅動(dòng)器等集成電路。這些特殊的輸入接口器件同樣也提供保護與錯誤檢測功能。
輸出系統


在電源系統與輸入調整確認后就必須考慮輸出系統。許多汽車(chē)負載不能被MCU或低電流接口器件直接驅動(dòng),包括馬達和燈。繼電器或機械式開(kāi)關(guān)是當今汽車(chē)車(chē)身控制結構中主要的大電流開(kāi)關(guān)器件。由于電磁系統成本低,設計成熟,不少系統結構師仍樂(lè )于選用。然而使用電磁系統會(huì )產(chǎn)生很多問(wèn)題,例如:
1. 機械觸點(diǎn)的有限壽命限制了繼電器的開(kāi)關(guān)頻率。由于觸點(diǎn)在打開(kāi)或閉合的時(shí)候具有一定的慣性,在穩定到下一個(gè)狀態(tài)前會(huì )有一定程度的跳動(dòng)。這一跳動(dòng)限制了最大的工作頻率,如果超過(guò)這一頻率繼電器的壽命將大大縮短。
2. 電磁系統不具備診斷功能。在惡劣的汽車(chē)環(huán)境中,這些器件的可靠性是個(gè)大問(wèn)題。
利用專(zhuān)為這類(lèi)負載設計的驅動(dòng)器可以方便地把這些負載集成到系統中去。摩托羅拉公司提供的具有4個(gè)高端與8個(gè)低端的MC33888開(kāi)關(guān)就是專(zhuān)為驅動(dòng)汽車(chē)負載設計的。這種器件能直接控制4個(gè)功率達60W的高端負載和8個(gè)小電流(2.5W)的低端負載。MC33888器件還內建了處理與白熾燈有關(guān)的浪涌電流的功能。從圖2可以看出由白熾燈引起的浪涌電流能達到正常工作電流的10到15倍,這會(huì )給沒(méi)有這些大浪涌電流處理電路的系統帶來(lái)很大的問(wèn)題。對這類(lèi)負載的最常見(jiàn)措施是觸發(fā)過(guò)流保護電路來(lái)切斷這些負載。
MC33888很好地解決了這個(gè)問(wèn)題,它采用了一個(gè)啟動(dòng)定時(shí)器,允許白熾燈在過(guò)流保護電路工作前進(jìn)行預熱。過(guò)流保護電路的啟動(dòng)需要檢測調節輸出驅動(dòng)器到器件可接受電平的狀態(tài)和脈寬信號。圖3給出了過(guò)流保護的動(dòng)作波形。完整的電池反極保護、負載傾卸保護和低功耗特性都有助于降低系統的復雜性,并減少外部元器件的數量。診斷功能包括負載開(kāi)路檢測、短路檢測和過(guò)溫檢測。作為附加的保護功能,該器件還內建了一個(gè)看門(mén)狗定時(shí)器,當器件與MCU之間的通信發(fā)生中斷時(shí)可以用來(lái)關(guān)閉器件。對該器件的控制是通過(guò)一個(gè)高速串行接口實(shí)現的,因此大大減少了所需的MCU引腳數量。
電子馬達控制
最后一個(gè)需要考慮的問(wèn)題是電子馬達控制。MC33887馬達驅動(dòng)器能很好地完成這一任務(wù),它是一個(gè)完整的H型橋式驅動(dòng)器。該器件具有大于5A的連續電流驅動(dòng)能力,因此非常適合用于鎖定馬達、天線(xiàn)馬達或雨刷泵。MC33887還具有高端電流傳感反饋功能。高端電流傳感反饋功能可根據實(shí)時(shí)的馬達電流反饋修正馬達的驅動(dòng)頻率和負載循環(huán)。就象燈驅動(dòng)器那樣,當檢測到過(guò)流狀態(tài)時(shí)它能自動(dòng)對輸出進(jìn)行脈寬調制。
MC33887器件能夠完全控制H橋激活方向和負載的中斷控制。
嵌入式仿真器
專(zhuān)門(mén)設計用于復雜的汽車(chē)電子應用的MC33993、MC33887和MC33888器件提供了具有先進(jìn)性能和診斷功能的解決方案。
復雜的多引腳MCU常會(huì )引起開(kāi)發(fā)問(wèn)題。MC9S12DP256提供了一個(gè)單線(xiàn)的后臺調試接口,可以方便地在汽車(chē)環(huán)境中實(shí)現廣泛的調試工作,并且不會(huì )遇到使用傳統電路嵌入式仿真器時(shí)常見(jiàn)的困難。這一接口還能用來(lái)在生產(chǎn)線(xiàn)末端進(jìn)行主要閃存的編程,甚至可以用來(lái)在車(chē)內執行再編程操作。
現代的汽車(chē)微控制器常采用閃存來(lái)存儲主操作程序。編程閃存的最佳方法是在最終組裝后把主程序編程進(jìn)完整的電子控制模塊中,與在模塊組裝前通過(guò)第三方把主程序編程進(jìn)MCU相比,這種方法能有效地避免風(fēng)險和延時(shí)。通過(guò)簡(jiǎn)單的串行接口將主程序編程進(jìn)MCU是在模塊組裝后完成的,一般是在最終測試過(guò)程中執行的。一些制造商采用便宜的獨立編程器完成這一操作,而另外一些廠(chǎng)商則將編程操作集成在生產(chǎn)線(xiàn)末端的測試設備中。
摩托羅拉的相關(guān)器件則提供一個(gè)單線(xiàn)的后臺調試接口用來(lái)實(shí)現閃存編程、檢驗和一般的調試操作。在設備正常工作時(shí),串行通信引腳在復位時(shí)是被拉高的,因此后臺系統不被激活。當有編程器或調試系統連接到這個(gè)引腳時(shí),該引腳在復位時(shí)會(huì )被拉到低電平,從而迫使MCU進(jìn)入激活的后臺模式,而不是去啟動(dòng)應用程序。為了方便調試,可以在設備正常工作時(shí)將一個(gè)主機系統連接到目標MCU系統,從而在不干擾設備運行的條件下實(shí)現對閃存或寄存器內容的監測。所連接的調試系統也能取代MCU的控制來(lái)讀寫(xiě)CPU寄存器、設置硬件斷點(diǎn)或跟蹤單條指令。
傳統的電路嵌入式仿真器與目標系統之間通常需要30到40個(gè)連接,而上述后臺調試接口只需要2到4個(gè)連接。單根BKGD通信信號和公共地是必須的。增加復位信號能使主機更容易地強迫和控制系統復位,在某些情況下增加VDD能允許調試夾具從目標系統中“竊取”電源。這種簡(jiǎn)單的接口為汽車(chē)電子設計師提供了對安裝在運動(dòng)汽車(chē)電子控制模塊中的MCU的調試訪(fǎng)問(wèn)能力。當汽車(chē)在正常路況下行進(jìn)時(shí)許多問(wèn)題只能經(jīng)過(guò)調試才能發(fā)現。
內存編程
與閃存編程相關(guān)的最重要因素是速度與方便性。編程速度取決于閃存單元的編程時(shí)間以及從編程器到目標MCU的數據傳輸速度,當然還有一些其它因素,如編程前擦除陣列的時(shí)間,用于驗證編程操作成功與否的時(shí)間。MC9S12DP256編程任意16位字的時(shí)間是45ms,但一個(gè)突發(fā)編程操作允許對同一排32字閃存中的任意附加字以20ms的速度編程。理論上采用單線(xiàn)后臺調試接口可以在27ms內傳送一個(gè)字的信息,這要比閃存的實(shí)際編程時(shí)間稍微慢一些。實(shí)際編程還需要額外的任務(wù)開(kāi)銷(xiāo),如驗證開(kāi)銷(xiāo)。獨立編程器工具SCBDMPGMR12能在稍少于10s的時(shí)間內完成256KB閃存的擦除、編程和驗證操作。
驗證是產(chǎn)生開(kāi)銷(xiāo)的重要因素之一。重傳所有的數據以實(shí)現字對字的驗證將使編程時(shí)間加倍。一個(gè)快速的辦法是在數據編程進(jìn)閃存時(shí)進(jìn)行CRC計算,然后在整個(gè)閃存編程完成后重讀閃存內容來(lái)驗證CRC值。這一操作完全能以總線(xiàn)速度進(jìn)行,而且無(wú)需重傳數據。
將數據到目標的傳送分離出來(lái),使它在數據編程進(jìn)閃存前完成也會(huì )使編程時(shí)間加倍。較好的方法是數據傳送與編程操作并行展開(kāi)。一般來(lái)說(shuō),要先把編程算法發(fā)送到目標MCU,從而便于管理收到的數據并把數據送入RAM緩沖器,然后控制擦除與編程操作。該編程算法利用二個(gè)數據緩沖器來(lái)接收將被編程進(jìn)閃存的數據。當第一個(gè)緩沖器裝滿(mǎn)數據后,編程算法就開(kāi)始把這些數據編程進(jìn)閃存,同時(shí)新的數據被裝載到第二個(gè)緩沖器。后臺接口可以用來(lái)接收數據并把它們寫(xiě)入RAM,這一操作不會(huì )干擾目標CPU的工作,因為CPU是從另外一個(gè)緩沖器讀取數據并編程進(jìn)閃存的。
MC9S12DP256中的閃存被分成4個(gè)獨立的64KB塊,因此可以獨立地對這4個(gè)塊執行擦除與編程操作。在基于后臺調試的閃存編程情況下,由于數據傳送速度要稍慢于閃存的平均字編程速度,因此試圖交織進(jìn)行獨立陣列的編程操作是不切實(shí)際的,不過(guò)對所有4個(gè)塊并行執行批量擦除操作則是可行的。
后臺訪(fǎng)問(wèn)給首次閃存編程提供了極其便利的途徑,但一些用戶(hù)仍希望采用其它系統總線(xiàn)如CAN總線(xiàn)、J1850總線(xiàn)或串行接口總線(xiàn)來(lái)完成所有的現場(chǎng)再編程操作。在主應用程序中包含合適的啟動(dòng)裝載(bootloader)程序能方便地做到這一點(diǎn)。為了對來(lái)自于成品汽車(chē)中某根總線(xiàn)的某些特殊代碼作出響應,啟動(dòng)裝載程序應能擦除閃存并接受新的編程數據。
評論