串口协议说明

文章目录

  • 关系
  • 波特率
    • 概念
    • 波特率相对误差
    • UART误差保证
  • 协议
    • 常见的串行接口
    • 协议之间的比较
      • USB 转串口PL2303
      • USB 转串口CP2102
      • USB转232
      • 终端电阻
    • 串口电平
      • TTL电平
      • 485电平
      • 奇偶校验

关系

两个半双工,一发一收,就是Uart
串口协议说明_第1张图片
在一根线的基础上,多加一根时钟线,理论上就打破了UART一帧只能传输8位的尴尬了。
串口协议说明_第2张图片
此时我们规定高电平时采样,低电平时才能变化数据,如果高电平时数据变化就是帧头,帧尾,这就是IIC

将IIC从半双工扩展到全双工就是我们的SPI的雏形
串口协议说明_第3张图片
如果要选择多个设备,就加一条CS
串口协议说明_第4张图片
这就是我们标准的四线制SPI

以上的协议都是基于板级的。传输距离比较短。

长距离传输开始时使用的是同轴线缆,但是会有干扰问题。使用双绞线的差分信号就可以解决这个问题,因此引出485和232、CAN的问题。

由于双绞线的加持,通讯距离和能力上升了一个很大的台阶。

但此时考虑到双绞线成本问题,我们考虑把时钟线去掉。此时CAN和IIC就有点像了,是单数据线实现的半双工。但是由于没有时钟线,CAN的帧格式和协议就贼复杂了。

再想要提高距离就涉及到光纤了。

波特率

概念

波特率的概念请点我

波特率相对误差

波特率的相对误差要小于4%或者5%。不会影响数据的正常接收。
公式:(实际波特率-理论波特率)/理论波特率为误差。
通过计算每位传输的时间,1S传输的位可以得到允许波特率波动的范围。

UART误差保证

UART有开始位,停止位,每10bit数据发完,都会重新从开始位、停止位、来重新检测边沿信号。再确定开始点,从而保证数据的准确性。
如果波特率为115200bit/s,则发送 一位的时间为1/115200s/bit,就是1/0.1152us/bit,也就是发送一位的时间为8.680556us左右。当偏差为±4%时,发送时间应符合8.680556*(1±0.05)。

协议

常见的串行接口

串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
串口协议说明_第5张图片

协议之间的比较

串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。

  • 串口
    • 一种点对点的通信
    • 通信距离短,板间通信
  • IIC
    • 多主机的通信

至于其它口:

  • COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。
    COM口介绍
  • USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)

USB 转串口PL2303

下图是个USB转TTL串口的小板,可以用USB扩展出一个串口。芯片为PL2303HX。是可以给STC单片机下载程序的。
串口协议说明_第6张图片

USB 转串口CP2102

另一种,CP2102芯片的,也是USB转TTL串口。据说比PL2303的好,实际使用中没感觉出来。这个小板就多了+3.3V电源端,以适应不同的目标电路。
串口协议说明_第7张图片

USB转232

下图为USB转RS-232串口
串口协议说明_第8张图片

终端电阻

串口协议说明_第9张图片光在进入一个介质的时候会同时发生折射与反射,差分信号在传输时会在不同阻抗介质的交界处产生反射波,从而对正常信号产生干扰,终端电阻就是为了消除总线的阻抗不匹配产生的反射。

串口电平

  • 一帧以低电平开始,以高电平结束
  • 空闲状态为高电平

TTL电平

串口使用的TTL电平,TTL电平介绍

  • TTL指双极型三极管逻辑电路,市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。这种信号0对应0V,1对应3.3V或者5V。
  • 一般认为串口通讯的高电平是5V,低电平是0V。
  • 它的抗干扰能力很弱,干扰很可能让低电平瞬间拉高,所以通信距离很短,一般都是板间通信。

485电平

具体232和485电平

  • 一个字节是8个bit
    • 8bit可以表示256种组合,就是2的8次方
    • 一个字符的数据位也可以是7位或者5位,是一种约定
  • 8bit数据位加上起始位和停止位就是一个字符
    • 停止位可以是一位,也可以是1.5位或者两位
  • 根据协议,一个或者多个字符可以组成一帧
    串口协议说明_第10张图片

奇偶校验

串口协议说明_第11张图片

你可能感兴趣的:(单片机,stm32,嵌入式硬件)