欢迎来到天天文库
浏览记录
ID:8991081
大小:77.00 KB
页数:4页
时间:2018-04-14
《串行通讯起始、数据、奇偶和停止位等》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、串行通讯起始、数据、奇偶和停止位等应用笔记2010-05-2108:54:21阅读107评论0 字号:大中小 订阅 通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。 一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。 一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送
2、速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。串行通讯又分为异步通讯和同步通讯两种方式。在中,主要使用异步通讯方式。 MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工
3、作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。通讯—异步通信方式串行通信可以分为两种类型:同步通信、异步通信。 1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式:(12.54KB)2008-3-1010:43 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位
4、(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。(一位半是啥意思??) 从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:逻辑0逻辑1正逻辑低电平高电平负逻辑高电平低电平异步通信的信息格式如下边的表所示:起始位逻辑01位数据位逻辑0或15位、6位、7位、8位校
5、验位逻辑0或11位或无停止位逻辑11位,1.5位或2位空闲位逻辑1任意数量注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。下载(8.66KB)2008-3-1010:432.异步通信的接收过程接收端以“接收时钟”和“波特率因子”决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位
6、一次)、正逻辑为例说明,如图3所示。下载(8.8KB)2008-3-1010:43(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。 (2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”B,而不是干扰信号。 (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1,作为数据位1;若为逻辑0,作为数据位0。 (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。 (5)检测
7、校验位P(如果有的话)。 (6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。 (7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。 (8)当信号再次变为低时,开始进入下一幀的检测。 3、异步通信的发送过程 发送端以“发送时钟”和“波特率因子”决定一位的时间长度。 (1)当初始化后,或者没有信息需要发
8、送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。 (2)当需要发送时,发送端首先输出逻辑0,作为起始位。 (3)接着,发送端首先发送D0位,直到各数据位发送完。 (4)如果需要的
此文档下载收益归作者所有