嵌入式开发学习笔记8-你真的了解串口通信么?

嵌入式开发学习笔记8-你真的了解串口通信么?

  • 串口通信与串行通信的区分
  • 串口通信中的四大参数
  • 波特率
  • 数据格式
    • 起始位
    • 数据位
    • 校验位
    • 停止位

串口通信与串行通信的区分

  1. 串行通信:
    串行通信是指通信双方按位进行,遵守时序的一种通信方式

    串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送

    串行通信是指在单条一位宽的传输线上,一比特一比特地按顺序传送地方式收发数据

这个也会在我们后面的内容逐渐提到。

  1. 串口通信:
    串口按位(bit)发送和接收字节(byte)的通信方式,可以将来自CPU的并行数据字符转换位连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符提供给CPU的器件,一般完成这种功能的电路,我们称为串行接口电路

    串口通信是指外设和计算机间,通过总线按位进行传输数据的一种通讯方式

    串口是计算机上通用的设备通信协议

(这个网址不是我抹去的哈,来源网络–侵删)

嵌入式开发学习笔记8-你真的了解串口通信么?_第1张图片

串口通信中的四大参数

串口通信就是按位发送和按字节接收,在速度上比按字节发送的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据,因此可以实现远距离传输,串口通信中最重要的参数是波特率、数据位、停止位和奇偶校验位

波特率

衡量数据传输速率的参数,用单位时间内载波参数变化的次数来表示,
详细的解释在上一篇嵌入式开发学习笔记8-你真的了解波特率么?

数据格式

在串口通信中,传输的数据格式由起始位、数据位、奇偶校验位和停止位组成;在串口通信的线路上,共存在两种状态,分别用高电平和低电平来区分,在发送器空闲时,数据线保持在高电平状态。

起始位

起始位必须为一个比特时间的低电平(防止过快识别错误),使数据线处于逻辑0低电平状态,提示接收器数据传输即将开始。发送器通过发送起始位而开始一个字符传送,接收方可用起始位使自己的接收时钟与发送方的数据同步

数据位

数据位紧跟在起始位之后,是通信中的真正有效信息,表示一组数据实际包含的数据位数。数据位的位数由通信双方约定(通信协议的选取),一般是6位、7位或8位,标准ASCII是0-127(7位),扩展的ASCII码是0·256(8位)。传输数据时先传送字符的低位,在传输高位

校验位

校验位主要是用来判断接收的数据位有无错误,一般采用奇偶校验位,用于进行奇校验或偶校验。如果是奇校验,需要保证传输的数据共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据共有偶数个逻辑高位(类似于PSW寄存器中的P位,可查看前几篇博客有关PSW的内容)
若数据位位01001010 ,奇校验为1,偶校验为0
奇偶校验仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,优点在于接收设备可以了解到一个位的状态变化,从而判断是否由噪声干扰了通信,当然在进行通信时可不设置校验位

停止位

停止位在最后,用以标志一个字符传送的结束,对应于高电平状态。停止位可以是1位、1.5位或2位,可由软件设定

数据接收示意图(无校验位)
嵌入式开发学习笔记8-你真的了解串口通信么?_第2张图片

你可能感兴趣的:(嵌入式开发学习)