搜索
写经验 领红包
 > 财经

嵌入式ca是什么(嵌入式ca总线)

导语:嵌入式软件专题四:CAN网络管理

CAN网络管理,主要用来管理CAN总线上各个节点的休眠唤醒。CAN和LIN的休眠唤醒不太一样,LIN网络中有主节点,休眠唤醒可以统一由主节点调配,但是CAN网络没有主从关系,每个节点都是对等的。因此,CAN网络休眠唤醒需要一定处理机制,一般采用OSEK令牌环的管理方式。

举个例子:

CAN报文

这里CAN总线上有3个节点,ID分别是400、407、409。

第一轮:声明我在

400:00 01

407:07 01

409:09 01

第一个字节,声明增加的ID号的低16位,管理帧一般都是定义为0x4XX,所以只用取低16位就可以区分各个节点了;

第二个字节,表示自己的状态,根据状态定义表:

define CNM_OPC_RING (0x02)

define CNM_OPC_ALIVE_NSLEEP (0x01)

define CNM_OPC_RING_NSLEEP (0x02)

define CNM_OPC_RING_SLEEP_ACK (0x32)

define CNM_OPC_LIMPHOME_SLEEP (0x14)

0x01代表ALIVE,相当于第一轮大家都在声明自己在总线上。

第二轮:建环

400:07 02

407:09 02

409:00 02

按照从小到大的顺序,依次建环,最大的接最小的收尾相接形成环路。

第一个字节,报下一个节点ID;

第二个字节,0x02代表RING

第三轮:等待休眠

400:07 12

407:09 12

409:00 02

400:07 12

407:09 12

409:00 12

等待总线上所有节点都进入0x12(SLEEP_IND)状态.

最后,当总线上所有节点都进入SLEEP_IND状态后,由下一个节点下休眠指令

400:07 32,自行休眠,其他节点收到指令后各自休眠。

本文内容由小楠整理编辑!