常用通信协议TTL、RS232/RS485/RS422、CAN、IIC、SPI、USB整理

      最后更新:2022-07-19 00:06:52 手机定位技术交流文章

      通用通信协议TTL、RS232/RS485/RS422、CAN、IIC、SPI、USB

      • 前言
      • 串行通信和平行通信
        • 1.1 串行通信
        • 1.2 并行通信
      • 二、常用通信协议
        • 2.1 UART
          • 2.1.1TTL等价
        • 2.2 RS232
          • 2.2.1 RS-232平行逻辑
          • 2.2.2缺乏RS-232标准
        • 2.3 RS-485
          • 2.3.1 RS-485平行逻辑
          • 2.3.2RS-232和RS-485的比较
        • 2.4 RS-422
        • 2.5 USB
          • 2.5.1USB速度
          • 2.5.2USB接口定义
        • 2.6 CAN总线
          • 2.6.1 CAN平衡逻辑
          • 2.6.2 CAN连接模式
        • 2.7 IIC
        • 2.8 SPI

      前言

      最近,在设计项目方案时,共同通讯接口的选择包括TTL、RS232、RS485、RS422、CAN、IIC、SPI等常用通信协议,这里对常见的通信协议进行一个整理,在需要的时候可以进行回顾,这里参考几个优秀博文并进行整理,大家也可以去看看。

      1. 不脱发的程序猿-详解RS232、RS485、RS422、串口和握手
      2. ZD豪 - 各种通信协议的配置
      3. 叔父小麦CAN巴士易行指南
      4. 详细说明IIC原则-值得一看

      串行通信和平行通信

      1.1 串行通信

      串行通信接口(cluster communication port这个词常用作缩写。COM串联接口是使用串联通信方法的一种扩展接口。 串联接口是指数据的单一序列传输,串联可以是一个通用术语,通常被称为串联时间序列标准。UARTRS232RS485TTL它们都遵循类似的通信时间序列协议,所以它们通常被称为串行端口。
      串行通信(serial communication)指计算机主机与外部设备之间的数据串行传输,以及主机系统与主机系统之间的数据串行传输。使用一条数据线,逐一传送数据,逐一传送数据每个数据占有一定时间.它只需要几行来交换系统间的信息。特别适用于计算机与计算机、计算机和外部设备之间的远程通信。是否需要串行通信与发送时钟源和接收时钟源相一致,它也可以分为同步通信和非同步通信。
      在这里插入图片描述

      1.2 并行通信

      并行通信(Parallel communication指在多个数据线上同时发送或接收数据的每一个人。 这可同时作为单词或字节进行。 同时通信是快速的,但使用的通信线是大而昂贵的,因此进行远程通信是不宜的。PLC内部总线用于平行传输数据。
      在这里插入图片描述
      摘要:串行通信是一种概念,指的是bit一个bit的收发数据,相对于并行通信可一次性可以同时收发n个bit包括一般的串行通信,包括IIC,包括SPI等一下。 连线通信是通信手段,与以太网、红外线和蓝牙相比。usb方式(usb一般而言,它是一种相对较低的通信手段。

      二、常用通信协议

      2.1 UART

      UARTUniversal Asynchronous Receiver/Transmitter),指通用异步接收器发射器,总线是双向通信,可实现全双plex传输和接收。UART包含TTL电平的串口和RS-232电平的串口,使用UART必须遵守两个通信设备UART协议。
      UART一种集中于非同步和同步的串行通信,即不需要同步时钟,而通信的两端都是事先确定的bit传输速率(每秒传输的是什么bit)而不是被时钟所触发。
      在嵌入式设计中,UART它用于与主机和辅助设备通信。UART它是实现序列输出的逻辑电路(硬件形式),该部分可以分开成芯片或嵌入其他芯片,单片机,SOCPC里都会有UART模块,例如STM32单片机里有两种UART模块,USARTUART前者可以同步通信,后者只能以非同步的方式通信。 一般来说,没有计算机uart接口的(TTL我们可以用电脑做USB接口和单片通信,仅一个USB转串口模块插到USB在接口上安装驱动器,在另一边可以连接单片机USB切换到串行协议的芯片,例如ch340cp2102pl2303等。

      1. TX– 数据发送接口
      2. RX– 数据接受接口
        两个设备间将TXRX相连,RXTX相连即可正常工作。
        在这里插入图片描述

      2.1.1TTL等价

      TTLTransistor-Transistor Logic简言之,这是一个电镀逻辑,一个晶体管-晶体管逻辑。 我们通常使用二进制来表示数据,为了表示二进制,这些二进制数字需要由电平衡水平来表示。3.3V/5V等价于逻辑“1”,0V等价于逻辑“0”。 UART特指单片机的UART端口,使用的就是TTL电平。

      1. 标准TTL电平逻辑
        (1)输出电路:电压高于(≥)2.4V逻辑1;电压为(≤)以下0.8V为逻辑0;
        (2)输入电路:电压高于(≥)2.0V逻辑1;电压为(≤)以下1.2V为逻辑0;

      2. CMOS电平
        (1)输出电路:电压高于(≥)0.9×Vcc逻辑1;电压为(≤)以下0.1×Vcc为逻辑0;
        (2)输入电路:电压高于(≥)0.7×Vcc逻辑1;电压为(≤)以下0.3×Vcc为逻辑0;

      在嵌入式中所使用的字符串通常被称为UART口,而TTLRS-232RS-485它指的是电标准(电话号码)。

      2.2 RS232

      RS-232与美国电子工业协会兼容的接口(EIA)串行数据通信的接口标准,所有均有双重使用,包括RS为英文 “Recomend Standard简言之,中文翻译是“推荐标准”,232为身份证号码,原号为EIA-RS-232(简称232RS232)。它被广泛用于计算机串行接口外设连接,连接电缆和机械、电气特性、信号功能及传送过程,其输出的电平称为RS232电平。

      2.2.1 RS-232平行逻辑

      RS-232不同于TTL电平行逻辑,对负逻辑来说,最简单的RS232通信由三个数据线组成,即:TxDRxDGND。负12V代表高电平,即-15V ~ -3V为逻辑1,正12V代表低电平,即+3V ~ +15V为逻辑0电压也有标准范围。 这里的电压水平是TXD线(或者RXD线)相对于GND的电压。
      根据设备的供电情况,+-5、+-10、+-12+-15这样的平整是可能的。
      在这里插入图片描述
      在这里插入图片描述

      2.2.2缺乏RS-232标准

      经过许多年来RS-232改善设备和通讯技术,RS-232由于RS-232接口标准早些时候被引入,必然存在缺陷,主要有以下四个问题:

      1. 接口的信号水平很高,接口电路的芯片容易受损,由于接口电路的TTL水平不兼容,需要使用TTL变压器连接到TTL电路。
      2. 传输速率低,在非同步模式下传输时,带宽为20Kbps。现在由于采用新的UART芯片16C550等,波特率达到115.2Kbps
      3. 该接口使用信号线和信号返回线来形成一种通用地面传输形式,这种通用地面传输可以容易产生共模干涉,因此对噪声干涉很弱。
      4. 传输距离有限,最大传输距离标准值为50事实上,稻米只能用于15米左右。

      2.3 RS-485

      RS-485RS-232同样,所有都是串行通信标准,目前的标准名称是TIA/EIA-485-A,习惯称为RS-485标准的半双重工作,使用标准的数字通信网络可以有效地传输信号在远程条件以及高电子噪声的环境中。RS-485它可以配置低成本的本地网络和多通道通信链接,并增加了网络功能。
      针对RS-232串口标准的局限性,RS-485/422通信是通过平衡的传输和微分接收实现的:发送器使用串行端口TTL将电平行信号转换为差分信号AB一个双向输出,在接收端发送电缆后返回差价信号TTL电平信号。
      由于传输线通常采用双线,也采用差频传输,并且对共变干扰具有极强的阻力,因此总线接收器的灵敏度很高,可以检测到低到200mV电压, 使传输信号可以恢复超过千米.
      RS-485/422总线一般最大支持32如果用作特殊节点,则是一个节点485芯片,可以达到128个或者256一个节点,其中最大的节点可以支持400个节点。
      在这里插入图片描述

      2.3.1 RS-485平行逻辑

      RS-485RS-232单边传输是不同的,一种采用双线缆的差分传输,其中一种定义为A,另一个定义为B一般接收器的内部由一个发送器和一个接收器组成。 对于电源信号,上面的字母的一边适用于低压,另一边适用于高压。
      逻辑“1两线之间的电压差应为+(2 ~ 6)V表示;逻辑“0两线之间的电压差应为-(2 ~ 6)V当权力终止行为和其他状态时,表示高抵抗状态。

      2.3.2RS-232和RS-485的比较

      • 抗干扰性:RS485该接口是平衡驱动器和差动接收器的结合,是很好的防噪干扰。RS232该接口使用信号线和信号返回线形成一个通用地面传输形式,这种通用地面传输可以很容易产生通用模式干涉。
      • 传输距离:RS485接口的最大传输距离标准值是1200米(9600bps时),实际上可达3000米。RS232传输距离有限,最大传输距离标准值为50事实上,稻米只能用于15米左右。
      • 通信能力:RS-485允许在主线上的接口连接多编码器128用户可以单独使用的一个接收器RS-485该接口为设备网络的建立提供了便利.RS-232只允许一对一通信。
      • 传输速率:RS-232传输速率低,在非同步模式下传输时,带宽为20KbpsRS-485最大数据传输速度为10Mbps。
      • 信号线:RS485一个由半双重工作网络组成的接口,通常只有两个信号线。RS-232口一般只使用RXDTXDGND三条线 。
      • 电气电平值:RS-485“1”的逻辑是两个线之间的电压差是+(2~6) V逻辑“0”表示两个线之间的电压差为-(2~6)V。 RS-232-C中的任何信号线的电压是一个负逻辑关系,即“逻辑”1",-5~-15V;逻辑"0 "+5~+15V

      2.4 RS-422

      RS-422的电气性能与RS-485几乎一样。 主要的区别是:

      1. RS-4852根信号线:发送和接收是两个AB。由于RS-485两个线程是共同的,所以它们不能同时结合(半双重工作)。
      2. RS-4224根信号线:两个发送(Y、Z)、两根接收(A、B)。由于RS-422收件和发件是独立的,所以你可以同时收件和发件。
      3. 支持多机通信的RS-422Y-A短接作为RS-485A、将RS-422Z-B短接作为RS-485B可以这样简单转换为RS-485

      注:
      RS422端点定义:
      1.英文标识符是TDA(-),TDB(+),RDA(-),RDB(+),GND
      2.美国标识符是Y、Z、A、B、GND
      3.标准标识符是TXD(+)/A,TXD(-)/B,RXD(-),RXD(+),GND
      具体地说, 你需要检查422芯片手册并与其对照.

      很多人往往都误认为RS-422串行接口是RS-485事实上,串联接口的双重使用版本的电学特性存在着许多差异,而共模电压范围和接收器输入电阻的差异使得这两个标准适用于不同的应用领域。
      RS-485可以使用串行接口的驱动程序RS-422在串行接口的应用中,因为RS-485串行接口满足所有的RS-422字符串接口性能参数,否则无法建立。RS-485具有串行接口的驱动器,并输出的共模电压范围为-7V+12V之间;对于RS-422串行接口的驱动程序,其性能指标是唯一的±7VRS-422串行接口接收器的最低输入阻力是4KΩ;而RS-485串行接口接收器的最低输入阻力是12KΩ

      2.5 USB

      USBUniversal Serial Bus(通用串行总线)是用于规范计算机与外部设备之间的连接和通信的外部总线标准。它用于PC领域的接口技术,USB该接口的特点是高速传输速度, 支持热互连, 可以连接多个设备.
      一条USB输电线分为地面线、电力线、D+D-四条线构成,D+D-是一个差价输入线。它使用3.3V的电压(与CMOS5V可以向设备提供电线和地面线5V电压,最大电流为500mA(可以在编程中设置)。USB设备可以直接和HOST通信,或者通过HubHost通信。一个USB系统中仅有一个USB主机,设备包括USB功能设备和USB HUB,最多支持127一种设备.物理连接意味着USB传输线。在USB 2.0该系统需要使用双线屏蔽。

      2.5.1USB速度

      • USB1.0:低速模式(low speed):传输速率为1.5Mbps
      • USB1.1:全速模式(full speed):传输速率为12Mbps
      • USB2.0:低兼容,高速模式(high speed):25~480Mbps
      • USB3.0:向下兼容,(super speed):理论上最高达5Gbps,实际中,也就是high speed 的10倍左右;
      • USB3.1Gen2超高速(SuperSpeed+)传输速率为10Gbps

      2.5.2USB接口定义

      Pin Name 颜色
      1 VBUS/+5V 红色
      2 D-/DM 白色
      3 D+/DP 绿色
      4 GND 黑色

      在这里插入图片描述
      USB是一种常用的高速通讯接口,弦完全是两个概念。尽管它是一系列的沟通方式,但由于USB通信时间序列和逻辑平行标准与串行端口完全不同,因此和串口无关。USB是一种快速的通讯接口,用于各种外部设备的PC连接,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。参考链接: USB协议基本知识_u010142953的blog-CSDN blog_usb协议堆栈

      2.6 CAN总线

      CAN 总线涉及的东西比较多,我之前也用过一些,这里简单分享一下,这里可以具体查看小麦大叔的博客 CAN总线简易入门教程 ,比较全面。
      CANController Area Network)是一种功能丰富的串行总线标准,支持多主机,多从机的优点,广泛应用在汽车领域,一辆车所有控制器,传感器,电子设备直接的通信只需要两条线就够了,大大优化了整车的布线。

      2.6.1 CAN平衡逻辑

      CAN是一系列异步通信,只有CAN_HIGHCAN_LOW 两条差分信号线,数据通过差分信号的方式进行通讯,其优点就是可以增加信号的抗干扰能力,抑制共模信号的干扰;以下图片引自小麦大叔 CAN总线简易入门教程 。
      在这里插入图片描述我们可以理解,当CAN_HIGH减去CAN_LOW当它比一个阈值大时,它可以被视为逻辑高,而当它比一个阈值小时,它可以被视为逻辑低。

      2.6.2 CAN连接模式

      CAN该总线支持在总线上加载的多个节点,类似于I2C总线,可以在SCLSDA上载多个服务器,如下图所示;
      在这里插入图片描述
      不过CAN总线实际上没有主机的概念,每个设备是节点(Node节点可以直接互相通信,而不是I2C总线,CAN总线设置端口阻尼器,一个一般闭环连接模式,和相对开放环连接模式。

      这里只是简单的 CAN 介绍, 具体可指叔父小麦博客~

      2.7 IIC

      I2C总线是由Philips一种由公司开发的简单、半双重、双向同步序列总线,仅需两条线(SDASCL)可以由与总线连接的设备之间传输,同时可以是单机主、多机主或单机主,I2C任何设备在总线上都可以作为主机。MCU当有多个主机时,一个主机通过总线仲裁选择,而另一个主机则作为主机退出。
      在这里插入图片描述

      IIC其中有一个只有两个公共汽车:一个是双向串行数据线SDA,一条是串行时钟线SCL

      • SDA(Serial data)是数据线,D代表Data也就是数据,Send Data用于传输数据
      • SCL(Serial clock line)是时钟线,C代表Clock这是控制数据发送的顺序的钟

      2.8 SPI

      SPI是串行外设接口(Serial Peripheral Interface)指一系列的外接界面,其中摩托罗拉在其MC68HCXX在系列处理器上定义的,SPI它是高速、全双重、同步通信巴士。SPI的速率比I2C高,一般可以到几十Mbps不同装置作为主机和出发机的速度一般不同.SPI最典型的应用是单台主机单台服务器,下图是连接方法,当然,也可以多台服务器。
      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30040.html

          热门文章

          文章分类