正文
1.收發器硬件喚醒功能
1.1 什么是喚醒標志Wake flag
TJA1043收發器供電正常(供電不正常也會切換收發器狀態)時候的硬件狀態切換條件有三個硬件信號組成:
STB_N(低有效,拉低進入到Standby狀態)
EN引腳(拉高,使能收發器)
Wake flag
STB_N和EN就是收發器的兩個IO引腳,那Wake flag啥了?

TJA1043收發器內部有很多硬件Internal flags,這里我們著重介紹下喚醒相關的UVNOM和Wake flag.

1.1.1 UVNOMflag
以下兩種場景會置位UVNOMflag:
VCC < Vuvd(VCC), 維持時間超過 tdet(uv)(100ms~350ms)
VIO < Vuvd(VIO) 維持時間超過 tdet(uv) (100ms~350ms)


UVNOM置位后的動作:TJA1043收發器進入到Sleep Mode
以下場景會清除UVNOM:
任何喚醒行為, 設置Pwon flag
STB_N 引腳出現LOW-to-HIGH變化
VCC 和VIO 都恢復。CAN transceiver會基于引腳STB_N 和EN當前狀態切換到對應的狀態

1.1.2 Wake flag
以下場景置位Wake flag:
收發器硬件檢測到本地喚醒事件(Wake Pin由低到高)
收發器硬件檢測到遠程喚醒事件(Wake pattern)
置位Wake flag后的動作:
清除UVNOM及對應的Timer
以下場景會清除Wake flag:
UVNOM被設置
收發器進入Normal Mode


1.2 什么是本地喚醒和遠程喚醒
1.2.1 本地喚醒

WAKE引腳上電壓水平由低到高或者由高到低,并且新切換的電平維持至少twake的時間。

1.2.2 遠程喚醒
當CAN總線上收到一個完整的Wake-Up Pattern (ISO 11898-2) 會遠程喚醒TJA1043收發器。
一個完整的WakeUp Pattern如下圖所示,至少在tto(wake)bus這段時間內收到顯性位(0)-隱性位(1)-顯性位(0),顯性位的持續時間大于等于twake(busdom)隱性位的持續時間大于等于twake(busrec)。

1.3 收發器的ERR_N引腳
顧名思義,ERR_N引腳好像是用來標識TJA1043收發器的錯誤狀態的,但不僅僅如此。

通過ERR_N可以檢測Internal flag. 以Wake flag為例,Wake flag置位后可以通過ERR_N引腳來檢測Wake flag有沒有被置位。

也就是說,TJA1043收發器的本地喚醒可以通過WAKE引腳來檢測,遠程喚醒可以通過ERR_N引腳來檢測。
注意:一般收發器在Sleep模式下等待喚醒事件,如果發生遠程喚醒,則:
STB_N引腳低電平
EN引腳為高電平
Wake flag set
這個時候如果軟件要檢測喚醒事件,應該同時檢測STB_N引腳及ERR_N引腳,也就是說STB_N引腳既當輸出引腳又是輸入引腳。
2. CanTrcv模塊檢測喚醒事件
審核編輯:劉清
-
收發器
+關注
關注
10文章
3819瀏覽量
111201 -
AUTOSAR
+關注
關注
10文章
398瀏覽量
23653
原文標題:AUTOSAR架構下CanTrcv休眠喚醒問題再探
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
STM32休眠不能喚醒的原因?
如何獲取休眠喚醒源函數MAP_PRCMHibernateWakeupCauseGet
如何實現rk3288在irq上增加休眠和喚醒的功能呢
喚醒事件屏蔽掉RTC,為啥RTC還是能喚醒休眠?
CH554電腦休眠時有哪個標志可獲取當前狀態?
CAT1模塊在liteos下實現休眠喚醒功能
CAT1模塊在liteos下實現休眠喚醒功能
單片機休眠與喚醒二三事
什么是喚醒標志Wake flag?AUTOSAR架構下CanTrcv休眠喚醒問題再探
評論