200个模块,怎么用有线的方式进行组网通信
嵌入式Linux
共 711字,需浏览 2分钟
·
2021-05-25 12:16
这是一个读者私聊我的问题,我觉得比较有意思,发出来大家一起讨论,我相信在讨论后,会有更加好的的方案。
问题
有200个模块,这200个模块需要和主CPU进行通信,每个模块的距离大概在30~50cm之间,用怎么方式进行处理会比较好?
硬件目前给出的方案如下:
这个方案有个缺陷就是,如果中间有一个模块有问题通信不上了,跟他级联的模块就不能正常通信了。
然后,我们在群里讨论这个问题,得出了几个解决方案
1、用cpld ,cpld 类似一个fpga中转芯片,对串口数据做中转发送。
2、用I2C,20cm我觉得应该没有问题,但是i2c的话会有一个问题,就是升级的时候不好搞。
3、用can总线,这个和485一样,组200个也有点难度。
4、无线通信zigbee组网,mesh组网,但是无线受干扰也比较大。
5、PLC
还有一种,就是用I3C,这个我没有实际使用过,但是之前有写过这方面的文章,我觉得可以一试。
如果不修改硬件,在原来的基础上,对每个模块编号,在协议上加上串口模块的ID编号,或者使用mobus协议,应该也能完成需求。
大家有什么好办法,欢迎评论出来。
评论