arm单片机使用多种通讯协议,为什么不统一使用一种协议?

嵌入式领域学习


ARM和x86架构不一样,不支持PCI-E协议,所以无法使用统一的接口协议去拓展多种外接设备。ARM采用的是专门的数据接口,针对不同设备采用不同的接口协议,可以加速数据传输效率,并且对接口实现也会相对简单一些。缺点是灵活性太低,无法兼容不同接口的设备,所以对于指定的数据接口,只能连接指定的设备,不过对于ARM一般的使用场景,这些限制确实构不成太大的影响。


榻榻米的榻榻


单片机的片上资源有多种通信方式,常用的如IIC、SPI、UART/USART、CAN,甚至高端一点的还具有以太网和USB通信。这么多的通信方式,为什么不统一成一种的?因为每种通信方式所出现的时间不同,使用场合不同,用户的要求和方案也不同,无法做到一种通信协议覆盖所有的应用环境和客户群体。下面分析一下这些通信协议的应用情况。

IIC和SPI多用在芯片级近距离通讯

IIC和SPI是应用非常广泛的通讯方式,主要用在芯片级进行短距离通信,如EEPROM存储芯片AT24C02就是IIC通讯的。这两种只适合长度为cm级别的通信。IIC具有两根总线,分别为SDA和SCL,SPI有三线和四线通讯方法,这两种方式主要用做芯片级的数据传输。不适合远距离传输。

CAN总线适合远距离传输

CAN总线在汽车工业和工控行业用的比较多,具有两根线CAN_H和CAN_L,可以进行km级别远距离传输。CAN总线为主从式通讯方式,一个主节点可以挂接多个从节点,从节点的ID标识符可以用来判断优先级,CAN总线具有仲裁机制。从节点故障推出后,不会影响其他设备的正常工作。

UART可以扩展出其他通信方式

UART也就是我们常说的串口,串口几乎为单片机的标配。单纯的UART只适合于近距离的通信,很多芯片也具有UART,所以可以用作芯片级的数据交换。除此之外,UART通过电平转换芯片可以扩展出其他的通信方式,如RS232、RS485以及CAN通讯等。

USB和以太网通讯接口

USB的通讯协议比较复杂,实现起来比较困难,像我们用的鼠标、摄像头用的就是USB通讯,USB也属于近距离通讯的方式。以太网接口使用与数据量比较大的情况,如果工控机、路由等。USB和以太网都有专用的协议栈芯片。

每一种通讯方式都是根据特定的使用环境所研发出来的,因为通讯距离不同、所传输的数据量不同、应用场景不同、客户需求不同等因素,每一种通讯方式都具有其用武之地。同时,也无法做到一种通信方式覆盖所有的应用场合、满足客户需求。所以,每一种通讯方式都有其存在的理由。

以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。


玩转嵌入式


目前arm常用的通讯协议比如SPI,I2C,串口(TTL,232,485等),CAN,USB,ModBus等等等等,种类好多。

那么一个理想的通讯协议是怎么样的?速度快,线少,距离远,抗干扰能力强,通讯协议简单,使用灵活。但是很遗憾,目前还没有一种通讯方式能够达到以上所有条件。

比如用于板级通讯,有的要求速度很快,那么可能会用SPI,但是又觉得SPI线太多怎么办,那就只能做一个权衡,速度和线数量哪一个更重要,如果资源确实已经不支持SPI了,那就可能使用I2C。比如要求很远距离的通信怎么办,那就可能使用485,但是485速度没SPI快,那就要做一个权衡。

现在不单是ARM,有这么多通讯协议的根本原因,是因为没有一个通讯协议能够完成所有的需求,每个协议的出现都是由于当时现有的协议已经无法满足某一需求。


一禾嵌入式


要看主板,而不是看cpu


天变道常


基于arm核的soc带有pci-e的型号数不胜数,海思的,NXP的就不说了,连全志H6这样的廉价处理器都带有PCI-e 2.0总线。


分享到:


相關文章: