常用硬件通信协议

常用硬件通信协议

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

通信协议是指双方实体完成通信所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

很多总线都支持不同的协议。

  • 串口通信:指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
  • 并行通信:是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。
  • 同步通信:发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。如:I2C、SPI等有时钟信号的协议,都属于这种通信方式。
  • 异步通信: 接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,这种传输方式的效率是比较低的,因为额外加入了很多的辅助位作为负载,常用在低速的传输中。

一、常见电平标准

TTL电平:全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V);
RS-232电平:全双工(逻辑1:-15V~-5V ;逻辑0:+3V~+15V);
RS-485:半双工、(逻辑1:+2V~+6V 逻辑0: -6V~-2V)这里的电平指AB 两线间的电压差;
RS-422:全双工、电器特性与 RS-485一致。

除此之外,还有:
CMOS:3~15V

二、常见外部总线结构

I2C总线
CAN总线
SPI总线
UART总线

  1. I2C总线

    常用硬件通信协议
    ??CAN总线有两根信号线,总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
  2. SPI总线:

    常用硬件通信协议
    URAT总线有两根数据线作为传输,TX用于数据输出,RX用于数据输入。

三、硬件接口

  1. UART接口
    常用硬件通信协议
    RS232每个接口的功能:
    | 1 | 载波检测 |
    | 2 | 接收数据Rxd |
    | 3 | 发送数据Txd |
    | 4 | 数据终端准备好 |
    | 5 | 信号地线 |
    | 6 | 数据设备准备好 |
    | 7 | 请求发送 |
    | 8 | 允许发送 |
    | 8 | 振铃提示 |

??RS-422 的电气性能与RS-485完全一样。主要的区别在于:RS-422 有4 根信号线:两根发送、两根接收。由于RS-422 的收与发是分开的所以可以同时收和发(全双工),也正因为全双工要求收发要有单独的信道,所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网;RS-485 只有2 根信号线,所以只能工作在半双工模式,常用于总线网。

四、通信协议

常用的硬件通信协议:

  1. UART串行数据总线

  2. RS232、RS485/RS422

  3. I2C总线协议(软硬件结合)

  4. SPI(软硬件结合)

  5. CAN(软硬件结合)

  6. ModBus协议(软件协议)

  7. USB协议

  8. 以太网通信

1.UART

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

??UART是应用于两个设备之间的通用异步串行收发传输器,用两根线作为传输,TX用于数据输出,RX用于数据输入。如用单片机和单片机的通信。这样的通信可以做长距离的。UART的速度最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右。
??UART通信需要收发双方约定一个波特率,发送数据时收发双方事先约定好发送数据帧格式(如:1个起始位,8个数据位,一个校验位,一个停止位)和波特率,数据格式也可以根据需要自行约定。

常用硬件通信协议
| 1 | 载波检测 |
| 2 | 接收数据Rxd |
| 3 | 发送数据Txd |
| 4 | 数据终端准备好 |
| 5 | 信号地线 |
| 6 | 数据设备准备好 |
| 7 | 请求发送 |
| 8 | 允许发送 |
| 8 | 振铃提示 |

RS232的电气特性:
1)RS-232串口通信最远距离是50英尺=15m
2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps
3)RS-232C上传送的数字量采用负逻辑,且与地对称
逻辑1:-3 ~-15V
逻辑0:+3~+15V
与单片机连接时需要加入电平转换芯片

通信传输格式:
??串行通信中,线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。一个数据的开始RS232线路为高电平,结束时Rs232为低电平。数据总是从低位向高位一位一位的传输。

常用硬件通信协议

(2)RS485/RS422通信标准

??在工业应用中,RS232因为传输距离的问题,通常使用传输距离更远的RS485或者RS422,RS-485的数据信号采用差分传输方式,抗共模干扰能力增强,即抗噪声干扰性好。

??它的电气特性和RS232不一样。用缆线两端的电压差值来表示传递信号,逻辑“1“以两线间的电压差为+(2-6)V表示;逻辑”0“以两线间的电压差为-(2-6)V表示。两端的电压差最小为0.2V以上时有效,任何不大于12V或者不小于-7V的差值都被接收端认为时正确的。另外在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。

??RS-485最大的通信距离约为1219m,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。

RS-485与RS-422的区别:
??RS-422 的电气性能与RS-485完全一样。主要的区别在于:RS-422 有4 根信号线:两根发送、两根接收。由于RS-422 的收与发是分开的所以可以同时收和发(全双工),也正因为全双工要求收发要有单独的信道,所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网;RS-485 只有2 根信号线,所以只能工作在半双工模式,常用于总线网。

常用硬件通信协议
①开始:当SCL保持“高”时,SDA由“高”变为“低”为开始条件;
②停止:当SCL保持“高”且SDA由“低”变为“高”时为停止条件。
向指定设备发送数据的格式
主设备从从设备中读数据
??在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps,

4.SPI协议

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

??SPI是串行外设接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别是:是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟,由主设备产生)、CS(片选,由主设备控制)。其传输速度可达几Mb/s

常用硬件通信协议
??当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备]把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”。

??SPI接口的缺点:SPI不规定传输速率,没有地址方案;没有指定的流控制,没有应答机制确认是否接收到数据;SPI仅适用于短距离传输。

??SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

5.CAN总线

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

??CAN是控制器局域网络(Controller Area Network, CAN),属于现场总线,它有效支持分布式控制或实时控制的串行通信网络。

??CAN的特点是允许网络上的设备直接互相通信,网络上不需要主机控制通信。

通用ModBus帧
ADU: 应用数据单元
PDU: 协议数据单元

??数据传输始终由Modbus网络中的主站启动。Modbus主站发送消息,并根据消息的内容,从站解释消息并回应主站。消息的头部是从站的地址用于定义哪个从设备应响应消息。当所有子站与收到的地址码不匹配,则忽略该消息。

Modbus数据模型是具有四种基本数据类型:
?1.包括离散输入;
?2.线圈输出;
?3.输入寄存器(输入数据);
?4.并保存寄存器(输出数据)

7.USB协议

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

??USB,通用串行总线,是一种计算机与外围设备进行数据交互的通信协议。

?? USB协议采用主从工作模式,即只有主机与从机之间才能进行数据通信,也正是这样引发一个缺陷,就是主机与主机、从机与从机之间不能通信。

??USB协议采用的是差分传输模式,因而有两条数据线D+和D-,在低速和全速模式下,采用电压传输模式,在高速下,采用电流传输模式。

OUT输出,IN输入,SETUP建立令牌包的组成
??④SOF帧起始:这个令牌包是在每帧开始的时候开始发送的,而且由于是广播形式发送,所以所有的全速和高速设备都可以收到;全速设备是1ms产生一帧,高速设备是125us产生一帧;每一帧开始的时候主机开始计数帧号,然后将11位的帧号发送出去。
数据包组成
?3)握手包
握手包是一个应答信号,表示一次传输有没有成功。
握手包
? ?握手包有四种:ACK,NAK,STALL,NYET;
? ① ACK:表示本次能正确接收数据,并且本设备有足够的空间来接收数据,这个握手包,主机和从机都可以使用。
? ②NAK:表示本设备没有数据返回或者本设备没有足够的空间来接收数据,此握手包主机不能用,只能是从机使用; 当主机接收到NAK应答后,这并不是错误,只是设备还没有准备好,主机会在下次找机会重新试着传输。
?③ STALL:表示本设备由于某种原因无法执行接收数据这个请求,或者接收端点被挂起了不能接收数据,这个握手包只能是从机使用; 这是一种错误的情况,出现这种情况需要主机来进行干预才能解除这种错误。
?④ NYET:表示本次能正确接收数据,并且有空间来接收本次数据,但是没有足够的空间来接收下一次数据,这个握手包只能是从机使用;因此主机在进行下一次数据传输之前,会先发送一个PING令牌包,用来检测设备是否有足够的空间来接收本次的数据,避免浪费表情。

?? 除了STALL这个错误之外,还有其他情况检测到数据传输错误,比如PID包标识校验出错,CRC检验出错,位填充出错等,这些情况下,设备将什么都不返回,主机就这样一直等着,产生超时等待。

?4)特殊包
??特殊包是在一些特殊场合使的包,这并不是一个类型,是由一些令牌包和握手包组成的。
??特殊包一共有四种:PRE,SPLIT,ERR,PING,其中PRE,SPLIT,PING是令牌包,ERR是握手包。

PRE:这是一种通知集线器打开低速端口的一种包,它虽然是令牌包,但是却只有同步域,PID包标识和结束符标志,而且只用在全速模式中。在平时的全速设备中,为了防止其低速状态产生误操作,所以一般全速模式中不会把信号传给低速设备,只有当接收到了PRE令牌包,才会将低速端口给打开。
??在全速模式下,假如需要处理低速事务,主机会发送一个PRE包,全速端口接收到此包会直接忽略,但当集线器接收到时,会打开其低速端口,然后主机就以低速模式给低速设备发送一系列令牌包、数据包等。

PING:PING令牌包跟OUT输出令牌包一样,都是通知设备说主机将要发送数据了,但是PING令牌包后面是不接数据包的,只有当收到了设备发回来的ACK或者NAK应答才会开始发数据包,这就是为什么在将握手包的时候,NYET情况下主机会先发一个PING令牌包,确定设备有足够空间了才发送数据包,这就避免了浪费资源。接入直接只用OUT令牌包的话,后面直接跟一个数据包,一旦设备空间不够,数据包将会被丢弃,这就产生了一个现象,就是在下位机跑程序的时候发现程序漫了一下,虽然是一下,实际上是丢弃了一整个数据包。

SPILT:这是高速事务分裂令牌包,可以将只有在高速模式下才能处理的数据包转化为低速或者全速数据包发送给相应的端口。

9. 以太网通信

    • 一、常见电平标准
    • 二、常见外部总线结构
    • 三、硬件接口
    • 四、通信协议
        • 常用的硬件通信协议:
    • (1)RS232通信标准
    • (2)RS485/RS422通信标准

??太网是一种基带局域网技术,以太网通信是一种使用同轴电缆作为网络媒体,采用载波多路访问和冲突检测机制的通信方式,数据传输速率达到1Gbit/s,可满足非持续性网络数据传输的需要。

以太网帧中各个字段含义如下:
?(1)前同步信号字段。包括七个字节的同步符和一个的起始符。同步字符是由7个0和1交替的字节组成,而起始符是三对交替的0和1加上一对连续的l组成的一个字节。这个字段其实是物理层的内容,其长度并不计算在以太网长度里面。前同步信号用于在网络中通知其他站点的网卡建立位同步,同时告知网络中将有一个数据帧要发送。
?(2)目的站点地址。目的站点的MAC地址,用于通知网络中的接收站点。目的占地MAC地址的左数第一位如果是0,表明目标对象是一个单一的站点,如果是1表明接收对象是一组站点,左数第二位为0表示该MAC地址是由IEEE组织统一分配的,为1表明该地址是自行分配的。
?(3)源站地址。帧中包含的发送帧的站点的MAC地址,这是一个6字节的全球唯一的二进制序列,并且最左的一位永远是0。
?(4)协议类型字段。以太网帧中的16位的协议类型的字段用于标识数据字段中包含的高级网络协议的类型,如TCP、IP、ARP、IPX等。
?(5)数据字段。数据字段包含了来自上层协议的数据,是以太帧的有效载荷部分。为了达到最小帧长,数据字段的长度至少应该为46字节,等于最小帧长减去源地址和目的地址帧校验序列以及协议类型字段等的长度。同时以太网规定了数据字段的最大长度为1500字节。
?(6)帧校验字段。帧校验字段是一个32位的循环冗余校验码,校验的范围不包括前同步字段。

??比较通用的以太网通信协议是TCP/IP协议,TCP/IP通讯协议采用了四层结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这四层分别为:
?(1)应用层:应用程序间沟通的层,如简单电子邮件传输协议(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
?(2)传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据包协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
?(3)网络层:负责提供基本的数据包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
?(4)接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

来源:爱吃饭的王

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月19日
下一篇 2022年3月19日

相关推荐