留言与评论(共有 0 条评论) |
发布时间:2020-04-12 08:59:55
单片机之间的通信根据距离划分的话,主要有两种,一种是板内通信,一种是板外通信。
板内通信主要有IIC,SPI等,板外通信主要有CAN、串口、USB、RS485以太网等。当然,板内通信也可以采用串口,CAN等,这个并不是强制性的。
单片机之间的通信,如果从主从关系来看,有一主多从式通信,应答式通信,多主一从是通信等。
所以这个问题很难回答,如果是板内通信的话,SPI通信的速度是比较高的,这主要是从每种通信协议本身的速率限制来考虑的。如果是板外通信,速度并不是最重要因素,我个人认为板外通信更注重通信距离和通信稳定性。
另外单片机间通信的实时性主要是看单片机的处理方式,用中断处理,实时性就高,否则实时性就低,这个可以根据实际需要进行配置。
串行口通信,利用发送和接受标志位TI和RI判断发送和接受是否完成,波特率一般选择的是2400,定时器计数器选择的是方式2可以实现自动重装的功能,TH1和TL1初值都为f3。波特率的倍速SMOD一般都选择0。程序中还要知道特殊功能缓存器的功能。串行口通信也选择的是方式2。
单片机的通讯方式不存在实时性的问题,只有较高层级的通讯协议有实时性的问题。
多个单片机互相通信,首先要理清楚这个通信网络的拓扑结构。是星型,还是树形,总线形,对等网络等。
一主多从总线形,可以考虑高速I2C,SPI。
对等形,可以用can总线,波特率调高。
多个单片机我理解为不同板子上的吧,如果单片机数目就两三个且接口富裕,可以考虑点对点直连,通讯互不干扰,能够发挥最大传输速度,选啥都行。如果数目较多,还是老老实实用总线结构的拓扑,总线用can或者485+modbus。有线传输实时性很高的不用担心,总线最大传输速度和通讯距离有关,如果就几十米可以直接拉到全速跑没有问题。还有一种方法就是用无线模块,已经给你封装好为一个串口,速度马马虎虎,功耗控制也扎心,但是可以不用线呀,而且协议处理好,要多少设备组网就多少设备组网,通讯还可以中继
没有说具体的通信距离,具体的通信速度,怎么给你提供方案。通信方式和通信协议一个要根据距离来定,一个要根据速度及工作模式来定
如果不清楚数据量大小和通讯距离,这个问题很难回答。我现在单片机通过FPGA控制SFP接口,有效比特率也才1Gbps,这个速率目前还不能满足要求。正在改成2端口通讯。
留言与评论(共有 0 条评论) |
全站搜索