第7章串行通信.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章MCS-51系列单片机的串行口及应用概述单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。7.1串行通信概述1.通信的概念单片机与外界进行信息交换统称为通信。通信的基本方式有两种:并行通信和串行通信。并行通信:将数据字节的各位用多条数据线同时发送或接收。其特点是传送速度快,效率高,但成本高,适用于短距离传送数据。计算机内部的数据传送一般均采用并行方式。串行通信:将数据字节分成一位一位的形式在一条传输线上逐个地传送。其特点是传送速度慢,但成本低,适用于较长距离传送数据,但数据的传送控制比并行通信复杂。计算机与外界的数据传送一般均采用串行方式。2.数据串行通信的线路形式常用于数据通信的传输形式有单工、半双工、全双工。1).单工方式:一端固定为发送端,另外一端固定为接收端。数据传送是单向的,因此,只需要一条数据线。这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。2).半双工方式数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。数据传送是双向的,但任一时刻数据只能是一端发送另一端接收。3).全双工方式允许双方同时进行数据双向传送,两端都可以同时发送和接收数据。3.串行通信的基本通信方式串行通信的分类:同步串行通信和异步串行通信1).同步通信(SynchronousCommunication)所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。同步通信把许多字符组成一个信息组,或称为信息帧,每帧的开始用同步字符来指示。同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。其信息帧的格式为:同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,且字符间不留间隙,通信效率较高。但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。2).异步通信(AsynchronousCommunication)异步通信方式不需要固定的同步字符,在发送多个数据时也不要求保持数据流的连续性,收发双方在传送每个数据时都进行一次同步。在异步通信方式中,接收器和发送器都有各自的时钟。不发送数据时,数据信号线总是呈现高电平,称其为空闲态。异步通信用一帧来表示一个字符,以字符帧为单位进行传输。字符与字符之间的间隔(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的。每一字符帧都是由起始位、数据位、校验位和停止位构成的。帧与帧之间可以连续发送,也可以用高电平间隔。其字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5~8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1~2位的停止位“1”(高电平)。起始位:当发送方需要发送一帧数据时,先要发送一位低电平信号。其作用就是控制收发双方的同步,表示一帧数据传输的开始。数据位:就是串行输出的待传送数据的各个二进制位。串行数据在传送时从最低位开始。校验位:紧跟数据位之后的一位可选位。其作用是对发送的数据进行校验。多采用奇偶校验位方式。停止位:串行帧必须通过停止位来表示一帧的结束。停止位可以是1位、1.5位或2位,用固定的高电平表示。常用的帧格式是:1位起始位、8位数据位、1为停止位,即10位数据传递优点:不要求收发双方的时钟严格一致,可靠性高,硬件结构简单缺点:每个字符要附加2-3位用于起止位,各帧之间还有间隔,因此传输效率不高。在单片机中,主要使用异步通信方式在异步通信中,收发双方有两项设定必须保持一致:帧格式的设定必须一致。即一帧数据中的数据长度、校验方式及停止位个数的设定都必须一致;波特率的设定必须一致。收发双方必须按设定的帧格式和波特率进行通信,才能保证数据传输的成功。例如,在异步通信中传输速度为360字符/s,每个字符又包含10bit,则波特率为:360字符/s×10bit/字符=3600bit/s(波特)国际推荐波特率:110、300、600、1200、2400、4800、9600、19200、38400波特等。波特率:表示信息的传输速率,即每秒传送的二进制位数,其单位是波特率,1波特率=1位/秒(b/s)通信时钟信号一般由定时器产生D0D1D2D3D4D5D6D7通信时钟通信数据7.2MCS-51系列单片机的串行接口MCS-51单片机内部有一个全双工的串行通信口,它可工作在异步通信方式(UART)下,与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工通信的8051多机系统,也可以工作在同步方式下。7.2.1串行口寄存器结构MCS-51串行口内部结构如图所示。MCS-51单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信。MCS-51单片机串行口主要由两个物理上独立的串行数据缓冲寄存器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。SBUF为串行口的收/发缓冲寄存器,它是可寻址的专用寄存器,其中包含了发送寄存器SBUF(发送)和接收寄存器SBUF(接收),可以实现全双工通信。发送SBUF和接收SBUF共用一个地址99H。发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。只能写入数据,不能读出数据。接收SBUF存放已接收成功的8位数据,供CPU读取。只能读出数据,不能写入数据。(1)发送数据过程(中断法)数据并行写入SBUF发→数据串行送出→中断标志位TI硬件置1→CPU响应中断→TI软件清零,并行写入下一数据→(2)接收数据的过程(中断法)外部数据串行送入移位寄存器→数据并行送入SBUF收→标志位RI硬件置1→CPU响应中断→RI软件清零,读走数据→同步时钟和传送数据的关系:发送数据时,发送时钟的下降沿将数据串行移位输出;接收数据时,接收时钟的上升沿开始对数据位采样。(1)串行数据缓冲器,SBUF在物理上有两个SBUF:一个用于发送,另一个用于接收。在逻辑上只有一个SBUF(99H)。可根据用法区分功能:unsignedcharcounter;待发送存放变量…SBUF=counter;完成一次数据发送…counter=SBUF;完成一次数据接收CPU串行口控制寄存器:(2)串口控制寄存器,SCON(98H)D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H①SM0,SM1:串行口工作方式控制位②TI:发送中断标志位,用于指示一帧信息发送是否完成,可寻址标志位。串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将TI清0.③RI:接收中断标志位,用于指示一帧信息是否接收完,可寻址标志位。当串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。在中断服务程序中,必须用软件将RI清0.④TB8:工作方式2、3中要发送的第9位数据。可根据需要由软件置1或清零。⑤RB8:工作方式2、3中,用于存放接收到的第9位数据。⑥SM2:多机通信控制位,主要用于方式2和方式3。以上三位主要用于多机通信中⑦ REN:允许接收控制位,用于控制数据接收的允许和禁止,REN=1,允许接收;REN=0,禁止接收。(3)电源控制寄存器,PCON(87H)PCOND7D6D5D4D3D2D1D0地址(87H)SMOD———GF1GF0PDIDLSMOD是串行口波特率倍增位,在串行口方式1、方式2、方式3时,波特率与SMOD有关。当SMOD=1时,串行口波特率加倍。系统复位时默认为SMOD=0。(4)中断允许寄存器IED7D6D5D4D3D2D1D0IEEA——ESET1EX1ET0EX0位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H其中,对串行口有影响的位是ES。ES为串行中断允许控制位,ES = 1,允许串行中断;ES = 0,禁止串行中断。(5)中断优先级寄存器IPPS是串行口优先级设置位。PS = 1,设串行口中断为高级;PS = 0,则为低级。7.2.2波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定的。串行口的四种工作方式对应三种波特率。方式0的波特率=fosc/12方式2的波特率=(2SMOD/64)*fsoc方式1的波特率=(2SMOD/32)*(T1溢出率)方式3的波特率=(2SMOD/32)*(T1溢出率)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装载的8位定时方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。T1溢出率=fsoc/{12*[256-(TH1)]}在单片机的应用中,常用的晶振频率为:12MHZ和11.0592MHZ。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表表示。常用波特率fosc/MHZSMODTH1初值1920011.059210FDH960011.059200FDH480011.059200FAH240011.059200F4H120011.059200E8H表定时T1工作于模式2常用波特率及初值所以,用定时器/计数器的模式2作波特率发生器最恰当。选用11.0592MHZ时钟频率,可获得标准的波特率。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器、串行口控制和中断控制。具体步骤如下:确定定时器的工作方式(TMOD设置)计算定时器的初值,装载TH、TL启动定时器(置位TR)确定串行口控制(设置SCON)串行口在中断方式工作时,要进行中断设置(设置IE、IP)串口编程初始化,例如:SCON=0x50;//串口方式1,允许接收,TI和RI清零PCON=0x80;//波特率加倍(×2)TMOD=0x20;//T1设为定时方式2TH1=0xfd;//T1计数初值,9.6k波特率TL1=0xfd;//T1计数初值,9.6k波特率IE=10010000B;//中断使能(开总中断,开串口中断)TR1=1;//启动T1GATETMODC/TM1M0M0M1GATEC/T(89H)序号波特率SMODa16250010xff21920010xfd3960000xfd4480000xfa5240000xf46120000xe87.3串行通信工作方式方式0——八位同步移位寄存器方式数据传输波特率固定为fosc/12由RXD引脚输入或输出数据TXD引脚输出fosc/12时钟信号以8位数据为一帧,不设起始位和停止位,先发送或接收最低位方式0主要用于扩展I/O口(串并转换)。扩展输出口扩展输入口扩展输出芯片:CD4094、74LS164……扩展输入芯片:CD4014、74LS165……方式1——10位数据异步通讯方式一帧信息=1个起始位(0)+8位数据位+1个停止位(1),(起始位和停止位是自动插入的)。指定T1为波特率时钟发生器,一般选择定时方式2)(212322anfoscSMOD波特率时钟序号波特率SMODa16250010xff21920010xfd3960000xfd4480000xfa5240000xf46120000xe8(fosc=11.0592MHz)方式1主要用于点对点通信接线关系:主机TXD、RXD分别与外设RXD、TXD相接;两机共地接线关系:利用RS-232C进行电平转换——(1:-5~-15V,0:+5~+15V)实例2:采用双机串行通信,其中甲机发送数据,乙机接收数据,

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功