PC机与多台单片机串行通信 - 图文(4)

2019-02-15 23:36

武汉工程大学邮电与信息工程学院 毕业设计(论文)

8位数据

起始位 0 奇偶校验 停止位

D0 D1 D2 D3 D4 D5 D6 D7 0/1 1

第n字符帧(共11位)

图3-7 帧结构

(二)波特率

定义是每秒传送二进制数码的位数,单位是bps(位/秒),用于表征数据传输的速度,波特率越高,数据传输速度越快。而实际的字符传输速率是以帧/秒来衡量。 (三)通信制式

1.半双工制式:A、B只能是一个发送,一个接收,即一条信号线和一条接地线。 2.全双工制式:A、B两站间有两个独立的通信回路,两站都可以同时发送和接收数据,其两站间至少需要三条传输线:一条用于发送,一条用于接收和一条用于信号地。

二 MCS-51的串行接口

(一) 串行口控制寄存器SCON和PCON[7][8]

MCS-51对串行口的控制是通过SCON实现的,也和电源控制寄存器PCON有 串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等。其位格式为图3-8所示:

SM0 SM1 0 0 0 1 1 0 1 1 相应工作方式 说 明 同步移位寄存器 10位异步收发 11位异步收发 11位异步收发 所用波特率 fosc/12 由定时器控制 fosc/32或 fosc/64 由定时器控制 方式0 方式1 方式2 方式3 图3-8 特殊功能寄存器SCON

12

武汉工程大学邮电与信息工程学院 毕业设计(论文)

其中fosc为晶振频率

SM2:多机通讯控制位。在方式0时,SM2一定要等于0。在方式1中,当(SM2)=1则只有接收到有效停止位时,RI才置1。在方式2或方式3当(SM2)=1且接收到的第九位数据RB8=0时,RI才置1。

REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。 TB8: 是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。

TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。

RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0。 1. 方式0

在方式0下,串行口的SBUF是作为同步的移位寄存器用的。

在串行口发送时,“SBUF(发送)”相当于一个并入串出的移位寄存器,由MCS-51的内部总线并行接收8位数据,并从TxD线串行输出,此时是在TI=0下进行的CPU通过指令给“SBUF(发送)”送出发送字符后,RxD线上即可发出8位数据,8位数据发送完后TI由硬件置位,并可向CPU请求中断,CPU响应中断后先用软件使TI清零,然后再给“SBUF(发送)”送下一帧的数据。

在接收操作时,“SBUF(接收)”相当于一个串入并出的移位寄存器,从RxD线接收一帧串行数据并把它并行的送入内部总线,此时RI=0且REN=1,接收电路接收到8位数据后,RI自动置1并发出串行口中断请求,CPU响应后RI由软件复位。

13

武汉工程大学邮电与信息工程学院 毕业设计(论文)

2. 方式1

在方式1下,串行口设定为10位异步通信方式,字符帧中除8位数据外,还可有一位起始位和一位停止位。

发送操作时,TI=0,执行指令后,发送电路就自动在8位发送字符前后分别添加一位起始位和一位停止位,并在移动脉冲作用下在TxD线上依次发送一帧信息,发送完后自动维持TxD线高电平。TI也由硬件在发送停止位时置位,并由软件将它复位。

接收操作时,RI=0且REN=1,接收电路对高电平的RxD线采样,当接收电路连续8次采样到RxD线为低电平时,相应的检测器便可确认RxD线上有了起始位,在接收数据第9位时,当RI=0和SM2=0或接收到的停止位为1,才能把接收到的8位字符存入“SBUF(接收)”中,把停止位送入RB8,并使RI=1和发出串行口中断请求,若上述条件不满足,则数据被舍去。 3. 方式2和方式3

方式2和方式3都是11位异步收发。两者的差异仅在于通信波特率有所不同方式2的波特率由MCS-51主频fosc经32或64分频后提供;方式3的波特率有定时器T1或T2的溢出率经32分频后提供,故它的波特率是可调的。

方式2和方式3的发送过程和接收过程类似于方式1,只是在发送数据第9位时,将之预先装入SCON的TB8中,而第9位可由用户自定义。一帧数据发送完后,TI=1,CPU便可通过查询TI来以同样方法发送下一个字符帧。

方式2和方式3的接收过程也和方式1类似。所不同的是:方式1时RB8中存放的是停止位,方式2和方式3时RB8中存放的是数据第9位。因此,方式2和方式3时必须满足接收有效字符的条件变为:RI=0和SM2=0或者收到的第9位为1,只有上述条件同时满足时接收到的字符才能送入SBUF,第9位数据位才能装入RB8中,并使RI=1。

电源控制寄存器PCON中只有一位SMOD与串行口工作有关,它的位格式为图3-9所示:

图3-9电源控制寄存器PCON

14

武汉工程大学邮电与信息工程学院 毕业设计(论文)

SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。 (二) 串行口的通信波特率

串行口的通信波特率恰好反映串行口传输数据的速率。通信波特率的选用,不仅和所选通信设备、传输距离有关,还受传输线状况所制约。 波特率设计

1、方式0的波特率

工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。用公式表示为:

工作方式0的波特率=fosc/12 (式3.1.1) 2、方式2的波特率

工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为; 工作方式2波特率=(2SMOD/64)×fosc (式3.1.2) 3、工作方式1和方式3的波特率

在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率也是可变的。相应公式为:

波特率=(2SMOD/32)*定时器T1溢出率 (式3.1.3) 定时器T1溢出率=(fosc/12)* [1/(2k 初值)] (式3.1.4) 实际上定时器T1通常采用方式2,因为定时器T1在方式2下工作,TH1和TL1分别设定为两个8位重装计数器。

15

武汉工程大学邮电与信息工程学院 毕业设计(论文)

表3-1 固定波特率与寄存器状态

波特率 串行口方式0 0.5M 串行口方式2 187.5K 方式1或3 19.2K 9.6K 4.8K 2.4K 1.2K 0.6K 110 55 fosc 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz 6Mhz SMOD C/T * 1 1 1 0 0 0 0 0 0 * * 0 0 0 0 0 0 0 0 定时器T1 所选方式 相应初值 * * 2 2 2 2 2 2 2 2 * * FEH FDH FDH FAH F4H E8H 72H FEEBH (三) 串口工作方式2、3的发送接收时序

串口工作方式2、3的发送、接收时序如图3-11所示。

图3-11发送接收时序图

16


PC机与多台单片机串行通信 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:执业药师考试 - 中药化学知识点总结(生物碱以及苷类)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: