前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迷乱的通信协议之UART相关知识

迷乱的通信协议之UART相关知识

作者头像
狂人V
发布2020-06-29 10:30:57
6180
发布2020-06-29 10:30:57
举报
文章被收录于专栏:电子狂人
郁闷的昨天,跑代码跑出蓝屏,后面搞了个服务器用,再也不怕自己电脑跑蓝屏啦,哈哈哈哈哈哈哈哈哈哈,开始今天的分析。

之前发的IIC相关分析,你会发现有一个SCL时钟线存在,因此它的通信方式被归类于同步通信,这次要讲述的是串口通信,而串口与IIC不同,通信方式属于异步通信,因此UART全称叫做:通用异步收发器。

以前电脑接口有个RS232的接口,不清楚的人会把它和VGA的接口弄混,从百度找了个RS232接口的图,如下所示:

而VGA如下图所示的样子:

认真看会发现,管脚数量并不相同,不过现在大部分电脑也不存在RS232的接口了,用的更多还是USB转串口或者其他方式实现串口通信。

串口通信是一种很常用的串行通信的方式,无论是C51,STM32,MSP430等单片机,还是DSP、FPGA等可编程器件都会在学习的时候遇到串口的编程与使用,因为串口对于调试、人机交互、数据传输等方面都有一定的便利之处。

  • 信号线组成

串口的通信主要由两根信号线组成,一条名为RXD的接收信号线,另一条则是TXD,进行信号的发送;

  • 通信前提

通信有两方,在一方向另一方通信前,需要设定好串口的波特率,也叫码元速率,就是每秒钟传送的码元符号的个数,因此当波特率较高时,误码率也因此而提高,所以需要根据实际情况进行波特率的设定,具体的计算方法可自行了解,因为不同的应用平台会有不同的波特率设定方式,所以为避免产生误导,还是不做具体讲解的好;除了波特率还有奇偶校验位与停止位,以下会有相关描述。

  • 时序分析

从百度上找了一张比较清晰的串口时序的图片,在这对它进行分析。

串口的信号线在空闲时都是保持高电平,与停止位相同,只有如此,才会检测到起始位的下降沿变化,从高电平到低电平,保持一个比特的时间,T=1/BAUD;

然后开始数据的传输,若在调试串口相关的电路时,若存在错误,可以尝试先测试信号线的电平是否为高,数据位具有5~8位和1个校验位,在上图标注的是7位的数据位+1位的校验位,数据先发送LSB,也就是数据的最低位,然后每隔一个比特的时间,发送一次数据,直到8个数据传完,最后发送停止位,完成一帧数据的传输。

其中停止位的保持时间与预先设定有关,该设定便是停止位保持的时间,若为1就是1个比特的时间,以此类推,在串口助手中就可以看到相关设置,如下图所示

  • 奇偶校验位

奇偶校验是一种保证数据有效性的一种校验方法,是最简单的错误检测码;根据传输的数据中的“1”的个数是奇数还是偶数来进行校验,若采用奇数就是奇校验,反之,才有偶数就是偶校验,因此在传输的时候,校验位就需要根据“1”的个数进行确定自己是为0还是1,这样才可以在接收端进行奇偶校验。

若给定的数据位中1的个数是奇数,分别采用两种校验方式,校验位的变化举个例子如下:

数据为:1010111,5个“1”;

偶校验:将校验位置为1,从而使得1的总个数变为偶数,即10101111;

奇校验:将校验位置为0,保持1的个数为奇数,即10101110;

呼~~~~~~

串口分析结束了~

虽然串口通信是比较简单的一种,通信的时序也没很几个,但是包含的知识并不少,好好领悟吧!下次将进行SPI的分析,干货正在来袭,敬请期待~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子狂人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档