完善资料让更多小伙伴认识你,还能领取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,若该设备被再次插入,通过前面的机制仍然能够自动识别。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:56 , Processed in 0.723222 second(s), Total 55, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2538