MCU應用系統(tǒng)從16位升級為32位時的設計考慮
當我們打算把一個16位的微控制器(MCU)升級到32位的時候,通常要考慮多方面的設計問題。本文以汽車引擎控制單元(ECU)為例,概要介紹了對這些問題的處理方法。
在過去的二十年當中,隨著交通工具復雜性的日益增加,工程師已將ECU從8位MCU升級為16位以上的器件。目前,這樣一個高度集成的32位 RISC MCU就是瑞薩公司的SH7058,它是一種具有1MB片上閃存和48KB RAM組成的80MHz的MCU。由于存在多種系統(tǒng)需求,如控制擴展級輸入/輸出(I/O)、借助于安全性高的通訊鏈接(如CAN和Flexray)與其它的車載系統(tǒng)進行通訊以及具有浮點精度的處理算法,當今的ECU采用高速32位MCU就是必不可少的配置。
除了帶來新的性能優(yōu)勢之外,最新的32位MCU減少了電路板設計的復雜性,節(jié)省了整體PCB空間,降低了系統(tǒng)的功耗要求,并且減少了電噪音和抵抗電磁干擾(EMI)的能力。通常,每一個ECU的制造成本約70到100美元不等,以這一成本計算,一個MCU就占到了總成本的15%-20%。
采用32位MCU 的系統(tǒng)通常非常復雜,并且一般需要花2到4年的時間才能完成一個ECU項目,設計團隊通常由1-2個硬件工程師和4-5個軟件工程師組成。為取得理想進度,所有的里程碑及需要的資源必須加以正確識別。此外,從概念定義到生產的設計流程必須與開始相一致。
項目計劃應確定設計環(huán)境,尤其是開發(fā)工具,并且要考慮測試和調試規(guī)劃。圖1以圖解形式說明了一個假想的ECU系統(tǒng)圖。
系統(tǒng)劃分
在項目開發(fā)早期階段,主要目標是確定用硬件實現(xiàn)什么功能,而用軟件要實現(xiàn)什么功能。這一決定將受工程預算、元件成本、PCB空間和任務期限這些因素的影響,因而需要權衡決定。在ECU設計當中,需要運用大量的算法建模和系統(tǒng)仿真以解決設計劃分的優(yōu)化問題。目前,有一些供應商提供解決設計劃分問題的方案。
軟件問題
開發(fā)32位系統(tǒng)的時候,軟件工程師必須考慮采用什么辦法去許多問題。在ECU應用中,如果從以前的設計中所得的經驗證的代碼能夠被重新使用,就會節(jié)省時間,工作量也會減少。大部分的嵌入式設計要用用到C語言,因而代碼可重用的比例很高。
但是,移接原有的代碼需要改變外圍驅動器和代碼區(qū)段,該區(qū)段顯示了與MCU設計之間具有特定關系的項目。我們推薦使用像IAR's MakeApp這樣能節(jié)省數(shù)小時設計時間的器件驅動程序代碼生成工具。
與代碼開發(fā)工作項目相關的其它重要的問題也不可被忽視:
* 實時操作系統(tǒng)選擇:已有很多論文和文章就如何選取擇實時操作系統(tǒng)給出了建議。對于ECU設計,OSEK已經逐漸演變?yōu)樾袠I(yè)標準RTOS,可從許多的供應商那里買到這種具有確定性、魯棒性、高效率和穩(wěn)定的解決方案。
* 調試模式:軟件工程師應當在項目進入集成階段的時候,確信自身具備足夠的查錯及排障的能力,盡管代碼模擬器相當可靠,但集成問題還是存在的。這時候要怎么辦?答案各有不同。以ECU設計為例,一個全速傳統(tǒng)的在線仿真器(ICE)的價格昂貴(12,000美元),它不僅在引擎隔倉中應用在線仿真的難度很大,而且不能用于解決棘手的時序問題。
相比之下,片上調試(JTAG型) 仿真器是經濟的($1,000) ,并且較易于連接到系統(tǒng)上。舉個例子,RENESAS' E10A,是一種JTAG-兼容硬件調試器,該種調試器可使工程師詢問并控制寄存器集以及某個超高整處理器的RAM存儲器。此外,要提高ECU代碼的精度,軟件工程師要能利用某種AUD(高級用戶調試) 的特性,該AUD會形成超高速CPU管線的特別的線跡。RENESAS SH7058 MCU系列中,MCU上的AUD界面是雙向作用的,并且無須暫停CPU,也可使RAM進行存儲。
硬件問題
32位系統(tǒng)的開發(fā)過程中會遇到很多硬件問題,以下幾點值得特別注意:
* 電源供應濾波:絕大部分32位MCU比16位MCU的運行速度要快很多,此外,32位MCU的CPU內核要求獨立的低壓供電系統(tǒng),因此其噪聲容限要比 I/O電路嚴格得多。因此,在PUB周圍,尤其MCU的附近要安放足夠的低頻和高頻的去耦電容,實踐表明去耦電容能夠有效地降低噪聲。
* 片上閃存:在過去,用于ECU 系統(tǒng)中的許多MCU 不具備足夠的內存作為一個單芯片控制器進行運行,并且部分MCU 就根本沒有程序內存,結果是程序內存被設置在芯片之外,由于需要大量高速尋址和數(shù)據總線,因而常常會導致EMI問題的出現(xiàn)。
目前,像SH7058這樣的32位ECU具有1 MB閃存,具有真正意義的單片解決方案特征。在大多數(shù)情況下,由于具有大量的片上程序內存,所以不再需要片外內存。在采用SH7058的ECU設計中,片上閃存可通過兩種方式進行固化,一種是在主板制造前,對器件進行固化,另一種是主板的設計完成后在系統(tǒng)內進行固化,這樣,軟件工程師在升級代碼時就有了很大的靈活性,工程師甚至能在ECU被安裝在車輛內部以后,也能借助車載總線(CAN)進行升級操作。
本文小結
從16位到32位MCU的跨躍是一個質的飛躍,這種趨勢是不可避免的。32位實現(xiàn)方案極大地提升系統(tǒng)的運算能力及操作性能,進行成功轉換的關鍵是要有充分的準備、訓練和周密的開發(fā)工具選擇策略,此外,像瑞薩這樣的32位MCU供應商的持續(xù)支持也是至關重要的。