串口通讯—异步通信方式

串行通信可以分为两种类型:同步通信、异步通信。

1.   异步通信的特点及信息帧格式:

以起止式异步协议为例,下图显示的是起止式一帧数据的格式:


1 起止式异步协议帧格式

起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以 起始位 开始,以 停止位 结束, 字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7 位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。

从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。

异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:

 

逻辑0

逻辑1

正逻辑

低电平

高电平

负逻辑

高电平

低电平

异步通信的信息格式如下边的表所示:

起始位

逻辑0

1

数据位

逻辑01

5 位、6 位、7 位、8

校验位

逻辑01

1 位或无

停止位

逻辑1

1 位,1.5 位或2

空闲位

逻辑1

任意数量

   

注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5

例:传送8 位数据45H0100,0101B ),奇校验,1 个停止位,则信号线上的波形如图2 所示:异步通信的速率:若9600bps ,每字符8 位,1 起始,1 停止,无奇偶,则实际每字符传送10 位,则960 字符/ 秒。

 

2   异步通信波形

2.   异步通信的接收过程

    接收端以 接收时钟 波特率因子 决定一位的时间长度。下面以波特率因子等于16 (接收时钟每16 个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明,如图3 所示。

 

3   正逻辑示意接收过程

 

(1)    开始通信时,信号线为空闲(逻辑1, 当检测到由10 的跳变时,开始对 接收时钟 计数。

(2)    当计到8 个时钟时,对输入信号进行检测,若仍为低电平,则确认这是 起始位”B ,而不是干扰信号。

(3)    接收端检测到起始位后,隔16 个接收时钟,对输入信号检测一次,把对应的值作为D0 位数据。若为逻辑1, 作为数据位1 ;若为逻辑0 ,作为数据位0

(4)    再隔16 个接收时钟,对输入信号检测一次,把对应的值作为D1 位数据……直到全部数据位都输入。

(5)    检测校验位P (如果有的话)。

(6)    接收到规定的数据位个数和校验位后, 通信接口电路希望收到停止位S (逻辑1 ),若此时未收到逻辑1 ,说明出现了错误,在状态寄存器中置 帧错误 标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

(7)    本帧信息全部接收完,把线路上出现的高电平作为空闲位。

(8)    当信号再次变为低时,开始进入下一帧的检测。

3.   异步通信的发送过程

发送端以 发送时钟 波特率因子 决定一位的时间长度。

(1)    当初始化后,或者没有信息需要发送时,发送端输出逻辑1 ,即空闲位,空闲位可以有任意数量。

(2)    当需要发送时,发送端首先输出逻辑0 ,作为起始位。

(3)    接着,发送端首先发送D0 位,直到各数据位发送完。

(4)    如果需要的话,发送端输出校验位。

(5)    最后,发送端输出停止位(逻辑1 )。

(6)    如果没有信息需要发送时,发送端输出逻辑1 ,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2 )步。

4.   对于以上发送、接收过程应注意以下几点

(1)    接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。

(2)    发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位)处接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。

(3)    起始位、校验位、停止位、空闲位的信号,由 发送移位寄存器 自动插入。在接收方, 接收移位寄存器 接收到一帧完整信息(起始、数据、校验、停止)后, 仅把数据的各位送至 数据输入寄存器 ,即CPU 数据输入寄存器 中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值