1.首先按Stephen所说,你的每个设备应该有一个unique ID,然后用它做为本机ID标识(只取29位,扩展帧)(如果你有应用中有Flash的话,你可以找到一个)。
2.CAN主机节点维护一个unique ID池(主机复位时为空),并把一个特殊的ID作为一个广播ID。
3.主机间隔一段时间发送广播ID报文,没有被分配置地址的CAN设备都允许接收该广播ID报文。
4.跟据报文优先级,可以确定ID最低的CAN设备报文将被主机收到,此时主机注册该CAN设备ID到unique ID池。并在后续使用该ID与设备通信。
5.任何设备收到与自己ID匹配的报文后将进入正常收发模式,停止响应广播报文。
6.网络完整建立的时间取决于广播ID的发送间隔,网络建立后广播ID的发送是个负担,可以跟据条件选择性终止(不过你要支持热插拔的话是不能够停止广播ID的)。
7.此时网络已经建立,可以运行你自己的CAN上层协议。
网络动态维护
1.当主机与一个ID通信失败时需从ID池中注消该ID,若该设备被再次插入,通过前面的机制仍然能够自动识别。
1.首先按Stephen所说,你的每个设备应该有一个unique ID,然后用它做为本机ID标识(只取29位,扩展帧)(如果你有应用中有Flash的话,你可以找到一个)。
2.CAN主机节点维护一个unique ID池(主机复位时为空),并把一个特殊的ID作为一个广播ID。
3.主机间隔一段时间发送广播ID报文,没有被分配置地址的CAN设备都允许接收该广播ID报文。
4.跟据报文优先级,可以确定ID最低的CAN设备报文将被主机收到,此时主机注册该CAN设备ID到unique ID池。并在后续使用该ID与设备通信。
5.任何设备收到与自己ID匹配的报文后将进入正常收发模式,停止响应广播报文。
6.网络完整建立的时间取决于广播ID的发送间隔,网络建立后广播ID的发送是个负担,可以跟据条件选择性终止(不过你要支持热插拔的话是不能够停止广播ID的)。
7.此时网络已经建立,可以运行你自己的CAN上层协议。
网络动态维护
1.当主机与一个ID通信失败时需从ID池中注消该ID,若该设备被再次插入,通过前面的机制仍然能够自动识别。
举报