如何使用TJA1145实现CAN网络管理中MCU的休眠唤醒
节点唤醒方式
本地唤醒: 唤醒源来源于自身模块,比如常说的KL15,控制器由KL15线供电,即只能在钥匙置于“ACC”或者“ON”档时运行软件和维持CAN通信
远程唤醒: 唤醒源来源于自身ECU节点所在的网络报文
“三大”指的是Bus Sleep Mode、Network Mode、Prepare Bus-Sleep Mode;
“三小”则值得是Network Mode下的三个子状态:Repeat Message State、Normal Operation Mode、Ready Sleep Mode。
“Bus-Sleep”阶段,只接收NM报文唤醒,不发送任何报文;
“Pre-Bus-Sleep”阶段,同样仅允许接收NM报文,对于早已在发送Buffer中的APP报文应发送完毕后立刻停止APP报文;
“Network Mode”模式下,除了在Ready Sleep阶段不允许发送NM报文之外,其余阶段APP报文与NM报文正常收发;
CanNM报文周期性的向MCU发送,如果一旦一段时间没有收到,MCU就通过SPI向TJA115的寄存器写数据,要进入sleep模式,之后TJA1145在向PMIC拉低
如何让TJA1145进入sleep和wakeup状态
下图以TJA1043简单说明can报文如何使MCU进入到休眠唤醒状态:
例如下面的用法:
简单的指令代码实现就是下图:
作者:梅尔文