有续技术  专注设备联网、工业数据采集及可视化数据管理中台

最新发表

企业信息

    400 889 0162 021-80183809

    上海有续自动化技术有限公司

    昆山市花桥镇通达广场1号楼25层

    wangdonglei@youxuautomatic.com

通讯协议介绍(UART、SPI、CAN、I2C)

作者:Admin 日期:2022-04-27 点击:2140
一键分享

一、UART

UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。

1.1接口(两根线)

    UART TX:发送

    UART RX:接收

1.2如何传输

    UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。

3277e35a785baa89c90d06e2a85a13b.png


每一个位的含意

1.起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

2.数据位:紧接着起始位之后。资料位的个数可以是45678等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。

3.奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

4.停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

5.空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

什么叫做异步通讯?

异步通信是指通信中两个字符(8位)之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。

1.3波特率

   波特率通常单位是bit/s,也就是二进制位/秒。因为一个字节是8bit,波特率就是一秒种传输01的个数,若波特率是9600那么它传输一位01的时间就是1/9600秒。而一个字节通常可以表达一个ASCII码,比如一个英文字母,所以:9600的波特率的信道,理论上每秒可以传输9200/8个英文字母的数据量,也就是1200个字节,大约1.2KB。而19200则是每秒可传输2400字节。

二、SPI

      SPI是一种全双工短距单主设备通信协议,与UART不同,它是一种同步通信协议。SPI简单的连接方式之一是主从连接。

2.1接口(四根线)

    SCLK:串行时钟,用来同步数据传输,由主机输出

    MISO:主机输入从机输出(Master In Slave Out

    MOSI:主机输出从机输入(Master Out Slave In

    CS:片选线,低电平有效,由主机输出

 

SPI总线上,某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机。这就要求从机的MISO口具有三态特性,使得该口线在器件未被选通时表现为高阻抗。

2.2如何传输

在一个SPI时钟周期内,会完成如下操作:

    主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;

    从机通过MISO线发送1位数据,主机通过该线读取这1位数据。

20220427010510_30313.png

  这是通过移位寄存器来实现的。主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。

三、I2C

 

I2C是一种用两条连线工作的半双工协议(半双工是通信的一种类型,即只要发送端在发送数据,接收端只能监听而不能发送数据)。

3.1接口(两条线)

    SDA:数据线

    SCL:时钟线

    I2C的连线总是要通过电阻上拉至输入电压,I2C的连线工作于三种速度:高速,快速,慢速。

3.2如何传输

   如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;

    如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。

传输格式:

    每个字节必须是8位,最后一位为响应位

    每次传输可以发送的字节数量不受限制

    最开始发送的是从机地址

应答响应:

 

    地址匹配完成会得到响应信号(ACK),说明这个设备是存在的

 

    开始信号:主机让时钟SCL保持高电平,数据SDA由高电平调转到低电平

 

    停止线号:主机让式中SCL保持高电平,数据SDA由低电平跳转到高电平。

 

    响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA为低电平。

 

    SDA上传输的数据必须在SCL为高电平的期间保持稳定,外部设备会在SCL在高电平的时候读取数据

 

    SDA上的数据只能在SCL为低电平期间发生变化


四、CAN

 

CAN是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。

 

CAN通讯系列--CAN通讯简介1 - 知乎

4.1接口(两条线)

 

    CAN_High

 

    CAN_Low

 

4.2如何传输

发送过程:

CAN控制器将CPU传来的信号转换为逻辑电平(01),CAN发射器接收到逻辑电平后,再将其转换为差分电平输出到CAN总线上。

20220427010649_20979.png

接收过程:

CAN接收器将CAN_HCAN_L线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。

5135f9fb39b29209ffd930e12760b9c.png


 

上一条:三菱CC-Link总线协议

下一条:VLAN划分和端口隔离的区别与联系

  • 发表评论
  • 查看评论
文明上网理性发言,请遵守评论服务协议。
首页 上一页 下一页 尾页