嵌入式系统架构浅谈:硬件的选型(三) -------通讯接口
日期: 2020-09-06 分类: 跨站数据测试 274次阅读
1. 嵌入式的通讯接口
嵌入式系统中,我们熟知的通讯接口有串口,SPI,IIC,CAN,USB。网络等。都是用于数据的交互,串口在工业上使用的是RS232,RS485,RS422,而TTL一般只用于调试或硬件内部的通讯。
这篇文章着重于上面的接口作一个对比。
1.1 RS232,RS485,RS422总线
RS232 | RS485 | RS422 | |
信道 | 全双工 | 半双工 | 全双工 |
物理协议 | 单端传输 | 差分传输 | 差分传输 |
引脚 | Tx Rx两条数据线 | A、B两条数据线 | Tx(Y、Z) Rx(A、B)四条数据线 |
距离 | 实际使用15米左右(使用光电隔离或光纤可以距离更远) | 理论最高可达到千米(远比RS232距离长) | 与RS485差不多 |
速率 | 传输速率较低,在异步传输时,比特率为20Kbps | 最高传输速率为10Mbps | 最高传输速率为10Mbps |
稳定性 | 抗噪声干扰性弱 | 抗噪声干扰性好 | 抗噪声干扰性好 |
负载数量 | 只允许一对一通信 | 多达128个收发器(允许一个发送,多个接收) | 多达128个收发器(允许一个发送,多个接收) |
串口标准传送速率有50b/s、75b/s、110b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19200b/s、115200b/s,在使用RS232中,一般不选择115200的波特率。
RS232一般只用于点对点,与上位机或两个设备之间通讯使用。而RS485和RS422是一条总线,常用于工业上的多机采集数据上。
另外提到一点是对于RS232,RS485还是RS422,需要的是设备共地,否则获取的数据可能不正确,而RS485和RS422这种差分传输的方式还需要考虑终端电阻(作用是为了减弱在通信电缆中的信号反射)的问题。终端电阻只有在长距离或高频信号传输上才需要使用,短距离和低频信号不使用终端电阻。终端电阻接入在最近端和最远端,处于中间部分的节点则不能接入终端电阻,否则将导致通讯出错。
1.2 SPI总线
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。这里不提SPI传输的协议和工作机制,但是需要各位另外去学习。
SPI | |
信道 | 全双工 |
物理协议 | 单端传输 |
引脚 | CLK、MOSI、MISO及 CS(片选) |
距离 | 若无额外辅助(例如串反射电阻),则只能到达1米左右,距离越远,速率只能降低 |
速率 | 最大时钟频率为系统时钟频率的1/2(一般在10Mbps) |
稳定性 | 抗噪声干扰性弱 |
负载数量 | 允许接多个负载,但传输时需要CS引脚选择通讯的收发器 |
SPI总线一般使用在片内通讯上,较常用的模块如SPI Flash和W5500模块等,主控芯片做主机,主动去控制从设备,这也说明了作为从设备无法主动传输数据,在设计通讯的时候需要考虑到。SPI接口有一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。所以在软件上可能需要确保是否接受到数据上花费时间。一般上来说
1.3 IIC总线
IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线。I2C总线在各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。
IIC | |
信道 | 半双工 |
物理协议 | 单端传输 |
引脚 | SCL(时钟线),SDA(数据线) |
距离 | 若无额外辅助(例如串反射电阻),则只能到达1米左右,距离越远,速率只能降低 |
速率 | 快速模式(400Kbit/s) 高速模式(3.4 Mbps) |
稳定性 | 抗噪声干扰性弱 |
负载数量 | 它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 |
IIC和SPI相似,都是用于片内通讯比较多,常用于A/D及D/A转换器,例如触摸屏,温度传感器。IIC总线最主要的优点是其简单性和有效性。下面拿IIC和SPI做对比,能更好的知道两种的优缺点。
- 总线拓扑结构/信号路由/硬件资源耗费:IIC 只需两根信号线,而标准SPI至少四根信号,如果有多个从设备,信号需要更多。一些SPI变种虽然只使用三根线——SCLK,SS和双向的MISO/MOSI,但SS线还是要和从设备一对一根。另外,如果SPI要实现多主设备结构,总线系统需额外的逻辑和线路。用IIC 构建系统总线唯一的问题是有限的7位地址空间,但这个问题新标准已经解决——使用10位地址。从第一点上看,IIC是明显的大赢家。
- 传输速度:如果应用中必须使用高速数据传输,那么SPI是必然的选择。因为SPI是全双工,IIC 的不是。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps),后面的模式还需要额外的I/O缓冲区,还并不是总是容易实现的。
- 扩展性:IIC的优点是用很轻盈的架构实现了多主设备仲裁和设备路由。SPI的优点在于它的结构相当的直观简单,容易实现,并且有很好扩展性。
无论是SPI还是IIC,都是多用于硬件内部通讯上,若需要长距离的通信,尽量不选择使用者两种接口。
1.4 CAN总线
CAN是控制器域网 (Controller Area Network, CAN) 的简称,我们知道最多的就是用于车载设备。CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。
CAN | |
信道 | 半双工 |
物理协议 | 差分传输 |
引脚 | CANH,CANL |
距离 | 通信距离最远可达10KM |
速率 | 40m以内时最高速率1Mbit/s 40~100m时最高500kbit/s 100~500m时最高125kbit/s 500~1000m时最高50kbit/s |
稳定性 | 抗噪声干扰性好 |
负载数量 | 可以点对点,一对多及广播集中方式传送和接受数据 |
CAN相比以上的总线存在诸多的优点,但相比其他总线,也存在速率无法过高,协议复杂等缺点。一下列出CAN接口的一些优点:
- 可靠的错误处理和检错机制。
- 发送的信息遭到破坏后,可自动重发。
- 采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。
- 每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用。
- 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。
我们也需要考虑到CAN接口的一些局限性,CAN接口的标准帧数据一个数据包只能发送8个字节,而扩展数据帧也能有16个字节,若需要发送大文件(例如多媒体等)时,会造成通讯时间过长的问题。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐