嵌入式系统架构浅谈:硬件的选型(三) -------通讯接口

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米左右,距离越远,速率只能降低
速率

标准模式(100Kbit/s)

快速模式(400Kbit/s)

高速模式(3.4 Mbps)

扫描二维码关注公众号,回复: 11601072 查看本文章
稳定性 抗噪声干扰性弱
负载数量 它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

IIC和SPI相似,都是用于片内通讯比较多,常用于A/D及D/A转换器,例如触摸屏,温度传感器。IIC总线最主要的优点是其简单性和有效性。下面拿IIC和SPI做对比,能更好的知道两种的优缺点。

  1. 总线拓扑结构/信号路由/硬件资源耗费:IIC 只需两根信号线,而标准SPI至少四根信号,如果有多个从设备,信号需要更多。一些SPI变种虽然只使用三根线——SCLK,SS和双向的MISO/MOSI,但SS线还是要和从设备一对一根。另外,如果SPI要实现多主设备结构,总线系统需额外的逻辑和线路。用IIC 构建系统总线唯一的问题是有限的7位地址空间,但这个问题新标准已经解决——使用10位地址。从第一点上看,IIC是明显的大赢家。
  2. 传输速度:如果应用中必须使用高速数据传输,那么SPI是必然的选择。因为SPI是全双工,IIC 的不是。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps),后面的模式还需要额外的I/O缓冲区,还并不是总是容易实现的。
  3. 扩展性: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接口的一些优点:

  1. 可靠的错误处理和检错机制。
  2. 发送的信息遭到破坏后,可自动重发。
  3. 采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。
  4. 每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用。
  5. 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。

我们也需要考虑到CAN接口的一些局限性,CAN接口的标准帧数据一个数据包只能发送8个字节,而扩展数据帧也能有16个字节,若需要发送大文件(例如多媒体等)时,会造成通讯时间过长的问题。

 

 

 

猜你喜欢

转载自blog.csdn.net/oo729833843/article/details/108431080