正文
TJA1145簡介
TJA1145是NXP公司為汽車電子領(lǐng)域量身定做的高速CAN收發(fā)器,提供了CAN控制器與物理CAN雙絞線之間的接口,相比其他CAN收發(fā)器,它具備如下幾個(gè)特點(diǎn):
在Standby與Sleep狀態(tài)下能保持極低功耗,其中Sleep狀態(tài)下功耗比Standy狀態(tài)下更低;
可通過選擇性喚醒功能支持符合ISO11898-2:2016標(biāo)準(zhǔn)的CAN部分網(wǎng)絡(luò);
針對TJA1145T/FD與TJA1145TK/FD這兩種TJA1145/FD變種而言,支持CANFD-Passive功能,能夠?qū)崿F(xiàn)在CANFD與CAN網(wǎng)絡(luò)共存的前提下保證節(jié)點(diǎn)正常休眠不會被總線CANFD總選錯(cuò)誤喚醒;
TJA1145提供接口與3.3V或者5V微控制器相連,通過SPI可用來控制CAN收發(fā)器控制以及狀態(tài)獲取;
TJA1145物理層實(shí)現(xiàn)滿足了ISO11898-2:2016與SAE J2284標(biāo)準(zhǔn),且能夠?qū)崿F(xiàn)CANFD 2M通訊速率的穩(wěn)定通信;
TJA1145上述這些特性使得其能夠作為控制ECU整個(gè)供電系統(tǒng)的關(guān)鍵利器,通過休眠特性最大可能地降低ECU整體電流消耗,僅在應(yīng)用層存在需求時(shí)才會被喚醒。
如下圖1所示為TJA1145的基本功能框圖,各個(gè)引腳的基本功能解釋如下:
圖1 TJA1145 基本功能框圖
圖2 TJA1145功能引腳定義
如下圖3所示為TJA1145內(nèi)部三大供電細(xì)節(jié)詳解:
BAT: 該電源用于給TJA1145系統(tǒng)狀態(tài)維護(hù)進(jìn)行供電,只要BAT一直有點(diǎn),那么TJA1145相關(guān)狀態(tài)寄存器值就不會丟失,且CAN接收器由BAT供電;
VCC: 該電源一方面作為5V電源輸入給到TJA1145系統(tǒng)模塊進(jìn)行監(jiān)控是否過壓或欠壓,另一方面則給到CAN總線供電,且CAN發(fā)送器由VCC供電;
VIO: 該電源一方面作為電源輸入到TJA1145系統(tǒng)模塊進(jìn)行監(jiān)控是否過壓或欠壓,另一方面則作為SPI通信的電平轉(zhuǎn)換;
圖3 TJA1145內(nèi)部供電詳解圖
ECU休眠喚醒概念
為了讓大家更好的了解休眠喚醒控制原理,小T將按照AUTOSAR文檔中針對休眠喚醒的定義給大家做個(gè)總結(jié),可分為如下三種場景:
冷啟動式休眠喚醒
冷啟動式休眠喚醒具備如下幾個(gè)特點(diǎn):
MCU處于掉電狀態(tài);
ECU的部分外圍電路如CAN發(fā)器處于供電狀態(tài)(如KL30供電);
喚醒事件能夠被CAN收發(fā)器識別;
CAN收發(fā)器能夠根據(jù)喚醒源決定是否喚醒MCU,給到MCU供電;
CAN通道式休眠喚醒
CAN通道式休眠喚醒具備如下幾個(gè)特點(diǎn):
MCU始終處于正常供電狀態(tài);
至少ECU的部分外圍電路如CAN收發(fā)器處于供電狀態(tài);
CAN收發(fā)器處于Standby狀態(tài);
喚醒事件能夠被CAN收發(fā)器識別;
CAN收發(fā)器識別到有效喚醒源后能夠產(chǎn)生一個(gè)軟中斷喚醒MCU或者M(jìn)CU周期性的去檢查是否存在有效喚醒源;
CAN通道與MCU式休眠喚醒
CAN通道與MCU式休眠喚醒具備如下幾個(gè)特點(diǎn):
MCU處于低功耗狀態(tài);
至少ECU的部分外圍電路如CAN收發(fā)器處于供電狀態(tài);
CAN收發(fā)器處于Standby狀態(tài);
喚醒事件能夠被CAN收發(fā)器識別;
CAN收發(fā)器識別到有效喚醒源后能夠產(chǎn)生一個(gè)軟中斷喚醒MCU;
休眠喚醒控制原理
通過上述對休眠喚醒類型的總結(jié),想必大家都可以集合自己工作中碰到的休眠場景一一對應(yīng)起來,小T就結(jié)合最為常見的冷啟動式休眠喚醒從硬件與軟件兩個(gè)層面跟大家一起交流休眠喚醒控制基本原理。
硬件層面:
如下圖4所示,小T將從MCU芯片供電以及TJA1145狀態(tài)獲取控制兩方面來講解硬件層面的休眠喚醒控制原理:
S1:MCU滿足休眠條件時(shí),通過發(fā)送SPI相應(yīng)指令讓TJA1145進(jìn)入Sleep狀態(tài);
S2:TJA1145進(jìn)入到Sleep狀態(tài)后,INH引腳就會拉低,控制5V或者3V關(guān)閉電源輸出,間接導(dǎo)致MCU整個(gè)系統(tǒng)處理掉電狀態(tài),此時(shí)TJA1145始終處于供電狀態(tài)(由于BAT始終有電),整個(gè)ECU成功進(jìn)入到休眠狀態(tài);
S3:TJA1145雖然處于Sleep狀態(tài),屬于極低功耗狀態(tài),同步也檢測著網(wǎng)絡(luò)是否存在有效喚醒源;
S4:當(dāng)TJA1145發(fā)現(xiàn)有效喚醒源之后,就會自動從Sleep狀態(tài)切換成Standby狀態(tài),在Standby狀態(tài)下INH引腳拉高,此時(shí)5V與3V便會正常輸出,從而MCU被正常供電,程序開啟正常運(yùn)行;
圖4 TJA1145休眠喚醒機(jī)制硬件實(shí)現(xiàn)
軟件層面:
基于AUTOSAR軟件架構(gòu),休眠喚醒的檢測處理機(jī)制統(tǒng)一有EcuM模塊來實(shí)現(xiàn),有關(guān)EcuM的詳細(xì)介紹可參考文章《AUTOSAR基礎(chǔ)篇之EcuM》。關(guān)于通訊模塊的開啟則是由ComM模塊來負(fù)責(zé),BswM在此階段可實(shí)現(xiàn)一些自定義的控制行為來滿足各個(gè)項(xiàng)目的特別要求。
本文不會過多闡述細(xì)節(jié),僅在說明整個(gè)休眠喚醒過程在軟件邏輯層面具體如何來實(shí)現(xiàn),參考如下圖5所示:
圖5 休眠喚醒軟件控制邏輯
S1:當(dāng)MCU Power ON之后由EcuM模塊便會檢查喚醒源是否有效,若有效,則通知ComM模塊開啟通信,進(jìn)而通過SPI通信控制TJA1145進(jìn)入Normal狀態(tài),同時(shí)通知BswM模塊開啟其他BSW模塊的控制以及讓EcuM進(jìn)入到RUN模式;
S2:當(dāng)MCU PowerON之后由EcuM模塊識別喚醒源無效,便會直接走下電流程,最終控制TJA1145進(jìn)入到Sleep狀態(tài);
S3:在系統(tǒng)正常工作后如果滿足休眠條件(如外界沒有NM報(bào)文),MCU便會控制TJA1145進(jìn)入到Sleep狀態(tài);
S4:當(dāng)TJA1145處于Sleep狀態(tài)下會檢測休眠前設(shè)定的喚醒源,如果喚醒源滿足條件,TJA1145切換至Standby狀態(tài),從而Power ON MCU,最終走向EcuM喚醒源檢測驗(yàn)證流程;
TJA1145控制
如上述過程MCU通過SPI總線接口實(shí)現(xiàn)了針對TJA1145狀態(tài)的控制與獲取。針對TJA1145的控制過程可分為TJA1145 Operating Mode的控制以及內(nèi)部CAN Operating Mode兩種類型。
TJA1145 Operating Mode
在TJA1145內(nèi)部存在一系統(tǒng)控制器包含如下五種運(yùn)行狀態(tài)機(jī):Normal,Standby,Sleep,Overtemp,Off狀態(tài)。接下來將針對這五種狀態(tài)進(jìn)行一一講解每個(gè)狀態(tài)的基本特征以及相應(yīng)的SPI控制指令。
Normal: 該模式下TJA1145處于全功能模式下,所有功能均可用,可通過MC=111從Standby或者Sleep狀態(tài)切換至Normal狀態(tài);
Standby: 該模式下TJA1145處于低功耗狀態(tài),不過不能夠正常收發(fā)數(shù)據(jù),但是INH引腳可以始終保持拉高狀態(tài);
如果此時(shí)寄存器CWE=1,那么此時(shí)receiver會持續(xù)監(jiān)控總線電平狀態(tài),如果寄存器CPNC=PNCOK=1,那么就開啟了特定幀喚醒,否則就是標(biāo)準(zhǔn)CAN喚醒(010101切換就可喚醒,即所說的任意幀喚醒);
當(dāng)電壓滿足特定下限時(shí)便會自動從Off狀態(tài)切換至Standby狀態(tài);
當(dāng)監(jiān)測到溫度沒有再次發(fā)生過溫便會自動從Overtemp狀態(tài)切換至Standby狀態(tài);
在Sleep狀態(tài)下檢測下喚醒源便會自動切換至Standby狀態(tài);
通過SPI指令MC=100將狀態(tài)從Normal或者Sleep狀態(tài)切換至Standby狀態(tài);
在Normal狀態(tài)下發(fā)送指令MC=001準(zhǔn)備切換至Sleep狀態(tài),但此時(shí)存在喚醒源或者所有的喚醒源檢測全部關(guān)閉,該特性從一定程度上避免了死鎖;
Sleep: 該模式下TJA1145處于最低功耗狀態(tài)下,且不能正常收發(fā)數(shù)據(jù),同時(shí)INH引腳處于高阻狀態(tài),電源供電一般會通過該引腳進(jìn)行拉低關(guān)閉輸出。同時(shí)其狀態(tài)變化存在如下幾種可能:
一個(gè)有效喚醒源或者中斷事件(除去SPIF事件)或者SPI指令(SPI通訊速率不能過高)則可以喚醒TJA1145從Sleep狀態(tài)切換至Standby狀態(tài);
在Normal或者Standby狀態(tài)下通過發(fā)送MC=001便可以進(jìn)入到Sleep狀態(tài),同步須確保至少存在一個(gè)喚醒源使能(如CAN喚醒或者Wake pin喚醒)且沒有pending狀態(tài)下的喚醒源;
如果VCC或者VIO持續(xù)一段事件低于某個(gè)閾值,那么該低電壓事件將會強(qiáng)制讓TJA1145進(jìn)入到Sleep狀態(tài),與此同時(shí)所有的Peding的喚醒源將會被清除,CWE=1以及WPFE=WPRE=1使能同時(shí)特定幀喚醒功能將會被Disable(CPNC=0);
該強(qiáng)制進(jìn)入到Sleep狀態(tài)可通過TJA1145主狀態(tài)寄存器(03h)中的FSMS狀態(tài)位來獲取,如果FSMS為1表示最近一次進(jìn)入到Sleep狀態(tài)是由于低電壓進(jìn)入到Sleep狀態(tài),否則是通過SPI指令完成的狀態(tài)切換。
**Overtemp: ** 該狀態(tài)是由于TJA1145放置溫度過高導(dǎo)致被損壞的一個(gè)功能,一旦在Normal狀態(tài)下溫度超出一定閾值就會自動切換至OverTemp保護(hù)狀態(tài);
為了放置數(shù)據(jù)的丟失,TJA1145在溫度超過預(yù)警閾值時(shí)會主動觸發(fā)一個(gè)Warning,該Warning發(fā)生時(shí)就會觸發(fā)OTWS置位,中斷產(chǎn)生(即OTW=1)如果OTWE使能的前提下;
在該模式下,CAN收發(fā)器將不能正常工作,CAN pin腳始終處于高阻狀態(tài),喚醒源將不會被檢測,但是如果存在Pending的喚醒源,那么RXD引腳就會被拉低;
當(dāng)溫度低于特定閾值時(shí),那么該狀態(tài)便會自動切換至Standby狀態(tài);
如果Bat電壓引腳低于某個(gè)特定閾值,則會自動從該狀態(tài)切換至OFF狀態(tài);
Off: 在該狀態(tài)下電壓由于低于特定閾值導(dǎo)致供電不足,當(dāng)Bat首次連接時(shí)這是TJA1145的初始狀態(tài),只要Bat電壓低于某特定閾值,那么TJA1145將會從任意狀態(tài)直接切換至Off狀態(tài)。在Off狀態(tài)下,CAN pin腳以及INH引腳始終處于高阻狀態(tài);
當(dāng)電壓高于某個(gè)特定閾值時(shí),TJA1145便會重新啟動觸發(fā)初始化過程,從而經(jīng)歷特定時(shí)候后進(jìn)入到Standby狀態(tài);
圖6 TJA1145 Operating Mode狀態(tài)遷移圖
如下圖7所示,展示了TJA1145 Operation Mode與SPI通信,INH引腳,內(nèi)部CAN模塊狀態(tài)以及RXD引腳的之間的關(guān)系。從中特別值得關(guān)注的有以下幾點(diǎn):
Standby狀態(tài)下INH引腳可以拉高控制MCU各級電源輸入,CAN無法正常收發(fā)通信;
Normal狀態(tài)下SPI可正常通信,INH引腳拉高,CAN模塊的狀態(tài)取決于CMC值,僅在Active狀態(tài)下才能夠開啟正常通信,且僅在CMC=01/10/11下才能夠正常收發(fā);
Sleep狀態(tài)下INH引腳處于高阻狀態(tài),此時(shí)MCU各級電源可關(guān)閉,CAN始終處于Offline狀態(tài),無法正常收發(fā)通信;
在Off狀態(tài)與Overtemp狀態(tài)下SPI都無法正常通信,在Sleep狀態(tài)僅在VIO供電正常的情況下才可以,且通信速率不能太高;
僅在Standby與Sleep狀態(tài)下才檢測喚醒事件,即僅在CAN處于Offline模式下才能夠開啟喚醒事件的檢測;
圖7 TJA1145各模式狀態(tài)關(guān)系
Can Operating Mode
TJA1145內(nèi)部集成的CAN收發(fā)器存在四種狀態(tài):Active,Listen-Only,Offline,Offile Bias狀態(tài)。存在如下兩種基本組合:
當(dāng)TJA1145處于Normal狀態(tài)時(shí),CAN收發(fā)器狀態(tài)取決于CMC值,如進(jìn)入Offline或者Active或者Listen-only等;
當(dāng)TJA1145處于Standby或者Sleep狀態(tài),則CAN收發(fā)器始終處于Offline狀態(tài);
?
圖8 TJA1145內(nèi)部CAN收發(fā)器狀態(tài)遷移圖
CAN Active Mode
CAN收發(fā)器在此模式下能夠正常發(fā)送或接收數(shù)據(jù);
當(dāng)CMC=0x01時(shí),CAN收發(fā)器處于Active狀態(tài),VCC低壓檢測使能,如果出現(xiàn)VCC電壓,就會直接切換到CAN Offline或者Offline Bias狀態(tài);
當(dāng)CMC=0x10時(shí),CAN收發(fā)器處于Active狀態(tài),且VCC電壓檢測被抑制,如果出現(xiàn)VCC電壓異常,不會影響到CAN Active正常切換;(實(shí)際應(yīng)用過程中優(yōu)先統(tǒng)一配置成CMC=0x10,以降低狀態(tài)不斷反復(fù)切換)
CAN Listen-only Mode
該模式下CAN發(fā)送器被關(guān)閉,當(dāng)TJA1145處于Normal狀態(tài)且CMC=0x11時(shí),CAN收發(fā)器狀態(tài)就會處于Listen-only狀態(tài);
在該模式下如果TJA1145處于Normal狀態(tài)且CMC=0x1,同時(shí)VCC電壓低于90%,那么就會始終在這個(gè)Listen-Only狀態(tài);
CAN Offline與Offline Bias Mode
在CAN Offline模式下CAN收發(fā)器便會檢測CAN總線以查看是否存在喚醒事件,同時(shí)CWE=1,CAN H與CAN L始終偏置接地;
在CAN Offline Bias Mode下也會檢測CAN總線是否存在喚醒事件,只不過CAN H與CAN L會偏置2.5V,當(dāng)超過一段事件總線沒有活動,便會回歸至CAN Offline模式下;
當(dāng)TJA1145切換至Standby或者Sleep狀態(tài)則會直接切換成此狀態(tài);
當(dāng)TJA1145狀態(tài)為Normal且CMC=0x0,則會將狀態(tài)切換成CAN Offline模式;
當(dāng)TJA1145狀態(tài)為Normal且CMC=01同時(shí)VCC<90%,則也會將狀態(tài)切換成CAN Offline模式;
CAN Off Mode
當(dāng)TJA1145狀態(tài)為Off狀態(tài)或者Overtemp狀態(tài)時(shí);
當(dāng)Bat電壓低于CAN接收器某個(gè)特定閾值電壓時(shí),當(dāng)BAT電壓回升至某個(gè)特定閾值時(shí),便會進(jìn)入到CAN Offline模式下;
常見寄存器配置說明
在對TJA1145進(jìn)行正常使用時(shí),無論是初始化過程還是正常對其進(jìn)行控制,我們都需要針對常見的TJA1145寄存器進(jìn)行控制,因此小T結(jié)合項(xiàng)目實(shí)戰(zhàn)需要給大家列舉了常用寄存器以及相關(guān)功能,如下圖9所示:
圖9 常見寄存器配置說明
TJA1145注意事項(xiàng)
使用TJA1145時(shí),如果需要使用其CAN FD Passive功能(0x2F寄存器設(shè)置 CFDC=1),那么需要選用型號TJA1145/FD才具備;
TJA1145默認(rèn)僅支持CAN幀格式的特定幀喚醒;
如果使能了VCC/VIO電壓欠壓監(jiān)控,如出現(xiàn)在緩升緩降的過程中,就會導(dǎo)致TJA1145狀態(tài)直接切換成sleep狀態(tài),因此一般優(yōu)先選擇CMC=0x10,則抑制了電壓欠壓檢測。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16393瀏覽量
178474 -
ecu
+關(guān)注
關(guān)注
14文章
889瀏覽量
54568 -
供電系統(tǒng)
+關(guān)注
關(guān)注
3文章
416瀏覽量
27650 -
CAN收發(fā)器
+關(guān)注
關(guān)注
2文章
166瀏覽量
25668 -
狀態(tài)寄存器
+關(guān)注
關(guān)注
0文章
39瀏覽量
7106
原文標(biāo)題:一文搞懂CAN收發(fā)器TJA1145
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論