完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原来多台设备之间是通过UART用RS485进行通讯,每台设备通过拨码开关设一个地址。然后主设备通过轮讯的方式查询下游设备的信息。
有些客户认为设置拨码开关不方便,希望取消拨码开关,主设备能够自动的获取下游设备的信息。 另外所有的设备都是同种类型的设备,每台设备软硬件上完全一样。 现在想通过can总线进行设备之间的信息交互。对这个不太熟悉,不知各位达人能够提供一个方案或者解决问题的思路。 重新描述一下问题: 设备a,b,c,d完全一样,通过can总线联结,假设a为主设备,则a可以自动的获取到b,c,d的信息。而且需要支持热插拔:c设备移出后,a设备能够知道现在一共有3台设备。当e设备接入后,a设备能够知道,并且能够自动的获取e设备的信息。 主设备需要和上位机进行通讯,也就是将它自身以及其他设备的信息全部汇总上报给上位机。所以每台机器都可能作为主设备。 |
|
相关推荐
3 个讨论
|
|
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,若该设备被再次插入,通过前面的机制仍然能够自动识别。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
334 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
773 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1126 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
123浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
251浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
200浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
56浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:32 , Processed in 0.889905 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号