汽車電子軟體-MCU篇1

汽車電子軟體-MCU篇1

來自專欄汽車電子軟體設計10 人贊了文章

汽車嵌入式底層軟體離不開對單片機驅動的理解和開發,當前市場上傳統的汽車電子控制器(動力總成相關)比較流行的晶元有三家:IFX Tricore或AURIX;ST的PowerPC;或NXP的PowerPC。此次介紹一下IFX的AURIX系列的TC27x晶元,先介紹一下這款晶元的架構,後面爭取出一個培訓視頻,詳細介紹AURIX晶元的各個方面。

TC27x晶元架構圖:

上圖將該晶元分為10個部分,我們從這個部分來理解這款晶元擁有哪些內容:

在講之前,先講一個概念(即使大家可能都知道),所謂的單片機是指微控制器,所謂的微控制器就是指將內核處理單元、存儲單元、所有的外設都集成在一個片子上,這樣可以節省成本,同時方便應用。

1)1部分是晶元里最重要的內容,即晶元的內核,也就是大腦中樞,所有的運算都是這裡進行的,比如加減乘除,操作寄存器,與或操作等等,每家晶元廠商的內核可能都不一樣,比如IFX有自己的TRICORE,ST用的是Freescale的PowerPC,還有用的是ARM架構的內核等等,這些內核都有相應的指令集,我們編寫的C語言會編譯成為彙編,這些彙編指令就是由這些指令集組成的。

2)2部分是晶元里的存儲單元,PMU是Flash,即ROM,是只讀的,程序運行時,裡面的內容是不允許更改的。PMU中又有PFLASH、DFLASH、BROM,這些又是幹嘛的呢?PFLASH一般是存儲功能程序的,DFLASH一般是用來模擬EEPROM的(降低用戶成本考慮),BROM是供應商固化好的程序,用戶是更改不了的,裡面的代碼是每次上電時最開始運行的邏輯(具體以後再說)。LMU和RAM是RAM,是可讀寫的,即在程序運行時,裡面的內容是可被更改的。一般情況,RAM里會存放全局變數或一些刷新功能函數等。想提到一點就是,在我們傳統電子控制器(如發動機控制器、電池管理控制器、整車控制器),程序的執行都是直接在Flash里取指令的,而不是像Linux,像把相應的程序載入到RAM里運行(雖然傳統控制器也可以這麼做,但是限於RAM空間小,不合適)。

3)3部分主要是跟時鐘信號觸發捕捉有關,比如GTM,是一個非常強大的時鐘處理單元,可以檢測非常複雜的方波信號,也可以輸出非常複雜的方波信號,比如發動機里的曲軸信號檢測及噴油信號輸出。

4)4部分主要是通信相關的外設,是為了實現晶元與外界的通信;

5)5部分是晶元的電壓處理單元,就是當外界給晶元提供5V的電壓,晶元內部會將這個5V轉換為3.3V或1.3V給ADC或IO口使用;

6)6部分是晶元的時鐘處理單元,時鐘對晶元來說,可以理解為心臟對於人,時鐘信號是晶元的起搏器,控制內核及晶元外設的跳動周期,比如內核200MHz,那執行一條指令所需的實踐就是1/200us。

7)也是晶元的外設,Port是晶元的Port口,一個Port口可復用普通的IO口功能和其他外設功能,比如CAN、SPI等功能;ADC就是普通的數字模擬信號轉換;DSADC是檢測差分信號的檢測,有兩個輸入引腳,檢測到時這兩個引腳上的電壓差;HSM是一個比較重要的東西,是為了實現Security功能使用的,他有自己的內容及相關的一些外設,針對Security功能比較強大,可以生成隨機數,可以進行安全校驗等。

8)8部分是OCDS,這個主要的功能是提供Debug介面,可以允許使用Debug來對MCU進行調試, 比如PLS或Laurterbach。

9)9部分是DMA,DMA是一個可以直接搬運數據的模塊,比如對於ADC採樣,如果不採用DMA,那每采一次數據,就需要內核來影響一下,將採集到數據放到相應的內存里,這樣會耗散內核資源,而有了DMA之後,每次採集數據不需通過內核,直接將數據搬運到內存里。

10)10部分是Bridge,主要有兩個吧,一個事內核訪問內存的Bridge,還有就是訪問外設的橋。通過這個橋,可以把晶元內部的所有模塊都可以連接起來。

推薦閱讀:

外觀怪異內飾復古,這款荷蘭超跑可能是你見過的車頭最長的車了!
土豪們請注意:美國產進口車要漲價了,想買趁早
一鍵啟動,汽車怎樣進行自檢?
鑰匙大師歐洲車系汽車防盜技術交流區10年大眾途銳4代防盜鑰匙匹配方法!
車聯網(車智匯)項目簡介趨勢好嗎

TAG:軟體 | 汽車電子 | 汽車 |