本
文
摘
要
通信协议概念
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
常见的通信的协议Modbus通讯协议、RS-232通讯协议、RS-485通讯协议、MPI通信通信协议、串口通信协议、PROFIBUS通信、工业以太网、ASI通信、PPI通信、远程无线通信、TCP协议、UDP协议、S7协议、 MPI协议、PPI协议、 Ethernet协议等,好像有的也不是很常见,这个不重要,但是想一想,为什么会有这么多协议呢?
设备之间不同的通信协议相当于人类之间不同的交流语言
在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议。就好比中国人说中文美国人说英语一样,我们要想要直接交流显然是不行的,但是如果通过一个翻译人员进行翻译对方就可以听懂,但是翻译人员也不是随便说的她是按照一种约定,这种约定就可以理解成协议,我们经常看到外交官说的很多话我们普通人都听不太懂,但是媒体能听懂这就是约定的意义,勿谓言之不预也,相比大家DDDD(懂得都懂)
单片机中常见的通信协议有哪些
UART/USART协议、I2C通信协议、SPI通信协议、以太网通信协议、Modbus通信协议、CAN通信协议等。
I2C和SPI通信协议介绍
I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由 PHILIPS公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。经常 I2C 和 SPI 接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)和协议层(主机,从机,时钟极性,时钟相位)。I2C,SPI 的区别不仅在物理层, I2C 比 SPI 有着一套更为复杂的协议层定义。下面来分别说明一下 IIC 的物理层和协议层.
I2C 相关
只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL,(I2C 是半双工,而不是全双工)。每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。I2C 是真正的多主机总线,而SPI 在每次通信前都需要把主机定死, I2C 可以在通讯过程中,改变主机,如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。传输速率在标准模式下可以达到 100kb/s,快速模式下可以达到 400kb/s。连接到总线的 IC 数量只是受到总线的最大负载电容 400pf 限制。一个典型的 I2C 接口如下图所示SPI 相关
通常 SPI 通信要求 4 根线,分别是 MOSI, MISO, CLK, CS。当发送和接受数据的工作都准备好了,只要有时钟 CLK,就发送数据,没有时钟就不发送,而且一个时钟周期发送一位(bit)数据,所以发送数据的快慢由时钟频率来控制。至于时钟和数据的相位没有特别严格的要求(而 I2C 中,数据的变化只能在 SCL 是低电平的时候发生), SPI数据的变化是一个时钟周期一次,这样的方法来传输数据就简单多了。我们可以根据需求对时钟的极性和相位做调整,看看是在时钟上升沿还是下降沿来发送数据,还有停止发送时时钟的极性,是保持高电平还是低电平。另外在多机通信时, SPI 只是简单的通过一个片选信号来选择哪个设备占用总线,但是 IIC 是通过发送从设备地址来自动选择的。