1 框图描述
2 功能描述
CAN收发器被设计用来承受汽车应用的恶劣条件,并支持12V应用。
SBC的控制器区域网络(CAN)收发器部分在汽车和工业应用中提供高速(HS)差分模式数据传输(最高可达2Mbaud) 和接收。它作为CAN协议控制器和与ISO 11898-2:2016和SAE J2284兼容的物理总线线之间的接口。
CAN FD收发器提供低功耗模式,以减少电流消耗。这支持具有部分断电节点的网络。为了支持软件诊断功能,实现了CAN接收模式。它被设计为在收发器被关闭时提供良好的被动行为(混合网络,钳位15/30个应用程序)。
通过总线上的信息,可以从CAN唤醒能力模式中进行唤醒。因此,微控制器可以断电或闲置,并被can总线活动唤醒。
该收发器还可以配置为具有唤醒功能,以保存电流,并确保从正常模式安全过渡到睡眠模式(以避免丢失信息)。
图19显示了在改变SBC模式时可能发生的收发器模式转换。
注意:
- Behavior in SBC Development Mode:在SBC初始化模式中的CAN默认值,并且从SBC初始化模式进入SBC正常模式时,它是打开而不是关闭的。
3 代码实现部分
/**
* @brief zq
* @param mode
* @return uint8
* @note Set HS-CAN Module Modes
*/
uint8 Tle9471CfgHSCANModuleMode(HSCANModuleModesBit workMode, HSCANFlashModeActivationBit flashMode)
{
if((workMode > CANNormalMode) || (flashMode > FlashModeEnabled))
{
return 0xFF;
}
else
{
g_TLE9471ES.BUS_CTRL_0.U = 0;
g_TLE9471ES.BUS_CTRL_0.B.CAN = workMode;
g_TLE9471ES.BUS_CTRL_3.U = 0;
g_TLE9471ES.BUS_CTRL_3.B.CAN_Flash = flashMode;
Tle9471DataTransfer(WriteCmd, BUS_CTRL_0_Add, g_TLE9471ES.BUS_CTRL_0.U);
Tle9471DataTransfer(ReadCmd, BUS_CTRL_0_Add, g_TLE9471ES.BUS_CTRL_0.U);
Tle9471DataTransfer(WriteCmd, BUS_CTRL_3_Add, g_TLE9471ES.BUS_CTRL_3.U);
Tle9471DataTransfer(ReadCmd, BUS_CTRL_3_Add, g_TLE9471ES.BUS_CTRL_3.U);
return 0;
}
}
注意事项:如果TLE9471 进入SLEEP状态后,需要支持CAN唤醒,那么再进入SLEEP状态之前,需要将CAN切换至CANIsWakeCapable模式,该模式状态下TLE9471才支持CAN唤醒。