在深入研究串行通信协议的技术之前,让我们先讨论一下通信。我们已经知道,交流涉及两个或更多个人之间的信息交换。交流可以通过书面文件,口语,录音带,视频课程等多种方式进行。但是,“通信”在嵌入式系统中是什么意思?答案很简单!它只是两个微控制器(嵌入式设备)之间以位形式进行的数据交换。嵌入式系统中数据(位)的交换受一组称为通信协议的规则支配。
在数字通信中,有两种类型的数据传输:
● 串行通讯
● 并行通讯
为简单起见,我们将重点放在串行通信协议的基础上。
在串行通信中,数据位在数据总线或通信通道上一次依次传输。为了正确理解这一点,让我们考虑这种情况:
想象一下,您正在用弓箭射击目标。箭如何从弓上飞出?一次一个,对吧?串行通讯就是这种情况。数据位一次从一个嵌入式设备传输到另一台嵌入式设备。
现在,我们已经介绍了嵌入式系统中串行通信的基础知识,让我们继续讨论各种类型的串行通信协议。
CAN或控制器区域网络协议是由罗伯特博世中在20世纪80年代构思。早在70年代后期,制造商就开始在汽车中使用先进的功能,例如防抱死制动系统、空调、中央门锁、安全气囊、齿轮控制、发动机管理系统等。
即使驾驶员(消费者)喜欢这些新功能,它们也有一些缺点。这些进步要求增加笨重的电线,昂贵的机械零件和复杂的设计,这导致车载电气和机械系统的成本和复杂性增加。幸运的是,Robert Bosch通过引入CAN协议使工程师的工作变得更轻松。CAN协议改变了电子子系统的管理以及智能传感器之间的通信-一种更简单,更便宜的方法,只需一根电缆即可完成所有这些工作。
CAN协议的广泛普及导致其在1993年被标准化为ISO11898。如今,CAN协议的应用涵盖了从工业自动化到商业饭店油炸锅的嵌入式系统范围。
这些CAN应用程序的开发范围从相当简单到极其复杂。依赖此协议的设备非常重要。如果未正确设计,开发和测试,可能会导致严重损坏。确保对开发进行良好的监视和测试非常重要。协议分析器是一种适用于CAN应用的简单而重要的开发和测试工具。
CAN协议的用途:
● CAN协议通常用于电子组件的车载网络。
● 它也用于航空航天应用中的飞行分析和燃料网络,泵等组件的联网。
● 医疗设备的制造商经常使用CAN在医疗设备内创建嵌入式网络。
I2C也被称为IIC(发音为IIC)和I2C(发音为I-squared-C)。尽管这项技术已经使用了三十多年,但今天I2C协议仍被广泛使用。实际上,它支持大量的嵌入式系统。
I2C协议允许嵌入式工程师将多个从设备与一个或多个主设备连接。与SPI协议类似,它主要用于同一打印机电路板(PCB)上两个IC(集成电路)内的短距离通信。
它仅需要两条双向导线即可发送和接收数据位。在数据速率方面,I2C协议支持高达3.4 Mbps的速度-相当快。
以下是使用I2C协议的一些重要优点:
● 使用多个主设备来加快通信速度并改善设计功能的灵活性
● 芯片寻址消除了CS(芯片选择)线的需要
● 通过ACK / NACK功能支持强大的错误处理机制。
但是,有一些限制。例如,由于它使用上拉电阻,因此会占用PCB上更多的空间。
I2C协议的用途:
● 更改监视器上的各种颜色设置,例如色相。
● 控制手机中的LED / LCD显示
帮助打开/关闭内部组件的电源
串行外围接口,通常称为SPI或“间谍”,是嵌入式系统中使用最广泛的接口规范之一。自从1980年代末Motorola引入SPI协议以来,SPI协议已广泛用于嵌入式系统中的短距离通信。
通过SPI协议,设备使用主从架构相互通信。尽管SPI可以支持多个从设备,但主设备的数量限制为一个。SPI被称为四线串行总线,因为它包含四个信号:
● 主输出从输入(MOSI)
● 主进从出(MISO)
● 串行时钟(SCK)
● 从站选择(SS)
在全双工模式下,可以实现超过1Mbps的数据速率-这是SPI总线的主要优点之一。与I2C相比,SPI还支持使用简单的硬件接口并提供更高的吞吐量。
但是,SPI协议也有一些缺点-缺少错误检查机制和从属确认功能是其中的主要缺点。
SPI协议的用途:
● 申请与温度,压力传感器和视频游戏控制器的通信
● 与LCD和SD卡接口
● 与闪存和EEPROM存储器通信
● 从实时时钟读取数据。
迄今为止,USB(通用串行总线协议)是目前使用最普遍的协议,这并不是什么秘密。您可能会在家中发现一打USB电缆和连接器。它最初于1990年代开发,旨在标准化许多外围设备与计算机的连接。今天,您可以通过USB电缆将几乎所有东西(从外部硬盘驱动器到打印机)连接到笔记本电脑/计算机。
USB协议设计用于两个特定目的:
● 与外围设备通讯
● 为连接的设备供电(如果适用)
USB连接器有很多变体-您可以在键盘,鼠标和打印机上找到的标准USB。微型USB和USB Type-C主要用于手机-但是,它们在其他设备中的普及度也在增长。
当设备通过USB协议与另一设备通信时,数据以数据包的形式传输。所有数据包均由8位字节(或8位字节的倍数,取决于支持的比特率)组成,其中LSB或最低有效位先发送。如果要构建涉及USB的嵌入式系统,请确保使用USB协议分析器监视总线上的数据。
USB协议的用途:
● 将外围设备(例如键盘,鼠标,打印机等)连接到计算机
● 给外围设备供电
● 直接从电源插座或计算机为移动电源等附件以及手机和蓝牙扬声器等设备充电
eSPI由英特尔公司开发,是低引脚数(LPC)总线的后继产品。eSPI代表增强型串行外围设备总线接口-与LPC相比,它的主要功能是减少引脚数。
eSPI协议的用途:
● 减少主板上所需的引脚数
● 用于需要实时闪存共享的应用中