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