什么是串口通信协议?它主要有哪些收发过程?
扫描二维码
随时随地手机看文章
本文中,小编将对通信协议串口通信协议予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。
一、串口通信协议
串口是显控设备与信号处理板之间通信的主要接口,也是显控设备与其他设备、设备与设备之间的协议数据帧通信传输的重要接口。串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串口通信协议是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。 在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。典型地,串口用于 ASCII 码字符的传输。通信使用3根线完成:(1)地线,(2)发送数据线,(3)接收数据线。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:波特率是一个衡量通信速度的参数,它表示每秒钟传送的 bit 的个数;数据位是衡量通信中实际数据位的参数,当计算机发送一个信息包,标准的值是 5,7 和 8 位。如何设置取决于你的需求;停止位用于表示单个包的最后一位,典型的值为 1,1.5和 2 位,停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会;奇偶校验位是串口通信中一种简单的检错方式,有四种检错方式——偶、奇、高和低,也可以没有校验位。
二、串口通信协议收发过程
在异步通信中,接收端以接收时钟和波特率因子决定每一位的时间长度。下面以波特率因:等于16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来进行说明:
(1)开始通信,信号线为空闲 逻辑1),当检测到由1到0的跳变时,开始对接收时钟计
(2)当计到8个时钟的时候,对输入信号进行检测,若仍然为低电平,则确认这是起始位而不是干扰信号(3)接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为DO立数据。
(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数居位都输入。
(5) 检验奇偶检验位,以保证数据的正确性
(6)接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位 (逻辑1)此时未收到逻辑1,说明出现了错误,在状态寄存器中置”帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若验错,在状态寄存器中置”奇偶错”标志(7) 本信息全部接收完,把线路上出现的高电平作为空闲位
(8)当信号再次变为低时,开始进入下一帧的检测。
以上就是异步通信中数据发送和接收的全过程了。
三、串口通信规定参数
波特率:
波特率表示信息传送的速率,是计算机与外设设备进行通信的重要参数。通俗地说,波特率描述的是单位时间内传输的比特数。波特率一般用“bps”来表示,它的单位为位/秒。串口常用的波特率有9600、115200、38400等,常用于MCU与计算机之间的通信。通信设备使用串口通信时,波特率必须相同,否则会导致数据传输出错。
数据位数:
数据位数表示接收和发送的数据字节数。一般情况下,常用的数据位数为7位或8位,而在通常的情况下默认使用8位数据位数。数据位数的选择取决于所传输的数据格式以及传输需要的准确度和速度。
校验位:
校验位是为了保证接收到的数据的准确性而设置的一个位。校验位主要有三种方式,分别为奇校验、偶校验和无校验。奇校验是指在数据位数上奇数的传输信息完成后,将其全部加起来,如果结果为奇数则校验位为0,否则为1。偶校验则是将其全部加起来,如果结果为偶数,则校验位为0,否则为1。无校验是指在数据传输后不对数据进行任何的校验位检验。
停止位:
停止位指的是数据传输完成后发送器发送的一位信号。其目的是告诉接收器,本次数据传输已经结束。例如,对于8位数据加一位停止位,停止位为1,这样就能够表示出本次的数据传输已经结束。
以上便是小编此次带来的有关串口通信协议的全部内容,十分感谢大家的耐心阅读,想要了解更多相关内容,或者更多精彩内容,请一定关注我们网站哦。