版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 串行接口及串行通信技术,9.1 串行通信基础知识 9.2 AT89C51的串行接口 9.3 AT89C51串行接口的应用与编程 9.4 PC机与单片机间的串行通信 习题与思考题,9.1 串行通信基础知识,9.1.1 并行通信和串行通信 1并行通信 并行通信是指构成信息的二进制字符的各位数据同时传送的通信方法,如图9-1所示。 2串行通信 串行通信是指构成信息的二进制字符的各位数据一位一位顺序地传送的通信方式,如图9-2所示。,图9-1 并行通信示意图,图9-2 串行通信示意图,9.1.2 异步通信和同步通信 串行通信又分为两种基本通信方式,即异步通信和同步通信。 1. 异步通信 在异步
2、通信中,被传送的信息通常是一个字符代码或一个字节数据,它们都以规定的相同传送格式(字符帧格式)一帧一帧地发送或接收。 字符帧格式由四部分组成:起始位,数据位,奇偶校验位和停止位,如图9-3所示。下面介绍各部分的功能。,图9-3 异步通信帧格式,(1) 起始位:在没有数据传送时,通信线上处于逻辑“1”状态。 (2) 数据位:在起始位之后,发送端发出(接收端接收)的是数据位,数据的位数没有严格限制,如5位、6位、7位或8位等。由低位到高位逐位传送。 (3) 奇偶校验位:数据位发送完(接收完)之后,可发送奇偶校验位,它只占帧格式的一位,用于传送数据的有限差错检测或表示数据的一种性质,是发送和接收双方
3、预先约定好的一种检验(检错)方式。,(4) 停止位:字符帧格式的最后部分为停止位,逻辑“1”电平有效,位数可以是1位、1/2位或2位。表示一个字符帧信息的结束,也为发送下一个字符帧信息做好准备。,2同步通信 串行通信中,发送设备和接收设备是相互独立、互不同步的,即接收端不知道发送端何时发送数据或发送的两组数据之间间隔多长时间,那么发送和接收之间靠什么信息协调从而同步工作呢?在异步通信中,是靠传送数据每个字符帧的起始位和停止位来协调同步的,即当接收端检测到传送线上出现“0”电平时,表示发送端己开始发送,而接收端也开始接收数据,两端协调同步工作,当接收端检测到停止位“1”时,表示一帧数据已发送和接
4、收完毕。图9-4表示同步通信的数据传送格式。,图9-4 同步通信数据传送格式,3波特率 在串行通信中,发送设备和接收设备之间除了采用相同的字符帧格式(异步通信)或相同的同步字符(同步通信)来协调同步工作外,两者之间发送数据的速度和接收数据的速度也必须相同,这样才能保证被传送数据的成功传送。 波特率是串行通信的重要指标,对数据的成功传送至关重要。,9.1.3 串行通信的制式 1单工(Half duplex)制式 在单工方式下,通信线的A端只有发送器,B端只有接收器,信息数据只能单方向传送,即只能由A端传送到B端而不能反传。如图9-5所示。,图9-5 单工方式,2半双工( Half duplex)
5、制式 半双工方式中,通信线路两端的设备都有一个发送器和一个接收器,如图9-6所示。数据可双方向传送但不能同时传送,即A端送B端收或B端送A端收,A、B两端的发送/接收只能通过半双工通信协议切换交替工作。,图9-6 半双工方式,3全双工(Full duplex)制式 在全双工方式下,通信线路A、B两端都有发送器和接收器,A、B之间有两个独立通信的回路,两端数据不是交替发送和接收,而是同时发送和接收。因此通信效率比前两种要高。该方式下所需的传输线至少要有三条,一条用于发送,一条用于接收,一条用于公用信号地,如图9-7所示。,图9-7 全双工方式,9.1.4 串行通信数据的校验 1奇偶校验 奇偶校验
6、的特点是按字符校验,即在数据发送时,在每一个字符的最高位之后都附加一个奇偶校验位“1”或“0”,使被传送字符(包括奇偶校验位)中含“1”的位数都为偶数(偶校验)或都为奇数(奇校验)。,2和校验 和校验是针对数据块的校验。发送端在发送数据块时,对块中的数据算术求和,然后将产生的单字节的算术和作为校验字符(和校验)附加到位数据块的结尾传给接收端。 3. 循环冗余码校验(CRC) CRC检验是对一个数据块校验一次,它被广泛地应用于同步串行通信方式中,例如对磁盘信息的读/写,对ROM或RAM存储区的完整性的校验等。,9.2 AT89C51的串行接口,9.2.1 串行接口的结构及功能 AT89C51串行
7、口的结构框图如图9-8所示,主要由发送器、接收器和串行控制寄存器组成。,图9-8 AT89C51串行口结构框图,1发送器和接收器 发送器主要由发送缓冲寄存器SBUF和发送控制器组成。 接收器主要由接收缓冲寄存器SBUF,接收移位寄存器和接收控制器组成。,2串行口控制寄存器 串行口控制寄存器SCON用于设置串行口的工作方式、监视串行口工作状态、发送与接收的状态控制等。它是一个既可字节寻址又可位寻址的特殊功能寄存器。其格式如图9-9所示。,图9-9 控制寄存器SCON的格式,SCON寄存器各位的功能如下: (1) SM0、SM1:串行口工作方式选择位,可构成四种工作方式,如表9-1所示。 (2)
8、SM2:在方式2和方式3中多机通信的控制位。 (3) REN:串行接收允许位。 (4) TB8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。,表9-1 串行口工作方式选择,(5) RB8:在方式2或方式3中,是已接收到的第九位数据,可作为奇偶校验位。 (6) TI:发送中断标志位。 (7) RI:接收中断标志位,方式0中,在接收完第八位数据时由硬件置位。 电源控制寄存器PCON中的第八位也与串行口有关,如图9-10所示。 (8) SMOD:为波特率选择位。,图9-10 电源控制寄存器PCON的格式,9.2
9、.2 串行通信的工作方式 1工作方式0 在方式0下,串行口是作为同步移位寄存器使用的。其波特率固定为单片机振荡频率(fosc)的1/12,串行传送数据8位为一帧(没有起始、停止、奇偶校验位)。由RXD(P3.0)端输出或输入,低位在前,高位在后。TXD(P3.1)端输出同步移位脉冲,可以作为外部扩展的移位寄存器的移位时钟,因而串行口方式0常用于扩展外部并行I/O口。 串行发送时,外部可扩展一片(或几片)串入并出的移位寄存器,如图9-11所示。,图9-11 方式0扩展并行输出口,串行接收时,外部可扩展一片(或几片)并入串出的移位寄存器,如图9-12所示。当由软件使REN置为1,RI=0时,即启动
10、串行口以方式0接收数据。,图9-12 方式0扩展并行输入口,2工作方式1 在方式1下,串行口工作在10位异步通信方式,发送或接收一帧信息中,除8位数据移位外,还包含一个起始位(0)和一个停止位(1),其波特率是可变的。 工作方式1的波特率是可变的,由定时器T1的计数溢出率决定。相应的公式为 波特率= 定时器T1溢出率,定时器T1的计数溢出率计算公式为,定时器T1溢出率=,式中,K为定时器T1的位数,与定时器T1的工作方 式有关(见第5章介绍),则波特率计算公式为,波特率=,3工作方式2 在方式2下,串行口工作在11位异步通信方式。一帧信息包含一个起始位“0”,八个数据位,一个可编程第九数据位和
11、一个停止位“1”。其中可编程位是SCON中的TB8位,在八个数据位之后,可作奇偶校验位或地址/数据帧的标志位使用,由使用者确定。方式2的波特率是固定的。,4工作方式3 在方式3下,串行口同样工作在11位异步通信方式,其通信过程与方式2完全相同,所不同的是波特率,方式3的波特率由定时器T1的计数溢出率决定,确定方法与工作方式1中的完全一样。,表9-2 常用波特率及误差,9.2.3 多机通信 AT89C51单片机串行口工作在方式2或方式3时,可实现多机通信功能,即一台主机和多台从机之间通信,如图9-13所示。 当主机向从机发送信息时,主机首先发送一个地址帧,此帧数据的第九数据位TB8应设置为“1”
12、,以表示是地址帧,8位数据位是某台从机的地址。,图9-13 多机通信连接图,这种通信只能在主从机之间进行,从机之间的通信需经主机作中介才能实现。经过上面分析,多机通信的过程可总结如下: (1) 主、从机均初始化为方式2或方式3,且置SM2=1,REN=1,串行开中断。 (2) 主机置位TB8=1,向从机发送寻址地址帧,各从机因满足接收条件(SM2=1,RB8=1),从而接收到主机发来的地址,并与本机地址比较。,(3) 地址一致的从机将SM2清零,并向主机返回地址,供主机核对,不一致的从机恢复初始状态。 (4) 主机核对返回的地址,若与刚才发出的地址一致则准备发送数据,若不一致则返回(1)重新开
13、始。 (5) 主机向从机发送数据,此时主机TB8=0,只有被选中的那台从机能接收到该数据,其他从机则舍弃该数据。 (6) 本次通信结束后,主从机重新置SM2=1,又可进行新一次的通信。,9.3 AT89C51串行接口的应用与编程,9.3.1 工作方式0的应用 串行口工作方式0主要用于扩展并行I/O口,扩展成并行输出口时,需要外接一片8位串行输入并行输出的同步移位寄存器74HC164或CD4094。扩展成并行输入口时,需要外接一片或几片并行输入串行输出的同步移位寄存器74HC165或CD4014。,数据的串行输出或输入可采用中断方式,也可采用查询标志位TI、RI的方法,在移位初始化时,要进行相应
14、的设置。 例9.1 利用串行口工作在方式0,外扩一片74HC164构成一个三位LED动态显示器,并将内部RAM显示单元65H、66H、67H中的内容输出显示。如图9-14所示。,图9-14 串行动态显示图,主程序如下: ORG 0100H STPRT:MOV SCON,#00H ;串行口初始化为方式0 SETB P1.2 ;消去最高显示位 SETB P1.1 MOV SBUF,65H ;传送最低显示位 JNB TI,$ ;传送没结束,等待,CLR P1.0 ;最低位显示 CLR TI ;清中断标志位 LCALL DSSJ ;调延时子程序,维持状态 SETB P1.0 ;消去最低显示位 MOV
15、SBUF,66H ;传送中间显示位 JNB TI,$ ;等待传送结束 CLR P1.1 ;显示中间位 CLR TI ;清中断标志位,LCALL DSSJ ;调延时子程序,维持状态 SETB P1.1 ;消去中间显示位 MOV SBUF,67H ;传送最高显示位 JNB TI,$ ;等待传送结束 CLR P1.2 ;显示最高显示位 CLR TI ;清中断标志位 RET,例9.2 利用串行口工作方式0,扩展一片并行输入串行输出的移位寄存器74LS165,如图9-15所示,构成一个8位并行输入口,输入8位开关量(每一开关量代表不同功能,如启动、停止等),并将其存入固定单元60H中。,图9-15 串行
16、口扩展输入并行口,串行口工作在方式0,且处于接收状态,则REN置为“1”,SCON的控制字为10H,并行数据采用间隔调用子程序的方式读入,程序如下:,START:CLR P1.0 ;输入并行数据 SETB P1.0 ;允许串行移位,等待移位脉冲 MOV SCON ,#10H ;设串行口方式0,启动接收 JNB RI,$ ;等待接收一帧数据 CLR RI ;清中断标志位 MOV A,SBUF ;读入接收数据 MOV 60H,A ;存入固定单元 RET,9.3.2 工作方式1的应用 串行方式1主要用于异步双机通信,波特率由定时器T1产生。 例9.3 利用串行口方式1实现一个数据块的传送,数据块存在
17、内部RAM的60H6FH中,波特率选为2400,并形成和校验数据一起发送。,串行口工作为方式1,且处于发送的单工模式,则SCON控制字为40H。方式1的波特率由T1产生,设T1工作于方式2自动重装初值模式,晶振频率为11.0592 MHz时,计数初值为F4H。用于和校验的算术和存放在70H中,并在数据块的末尾传送出去。 通过上面的分析,采用查询法传送数据块的子程序如下:,MOV TMOD,#20H ;设置T1为工作方式2 MOV TL1,#0F4H ;给T1送初值 MOV TH1,#0F4H SETB TR1 MOV SCON,#40H ;设置串行口为工作方式1 MOV R0,#60H ;数据
18、块首址送R0 MOV R1,#10H ;数据块长度送R1 MOV 70H,#00H,DWFP:MOV A,R0 MOV SBUF,A;发送数据 ADD A,70H;对和校验求和 MOV 70H,A JNB TI,$;未发送完等待 CLR TI,INC R0 DJNZR1,DWFP MOVSBUF,A;发送和校验 JNB TI,$ CLRTI RET,9.3.3 工作方式2与工作方式3的应用 方式2和方式3都是11位异步通信方式,所不同处仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率则可由用户设定。 例9.4 利用串行口方式2编制一发送程序,将片内RAM中60H6FH单元的数据串行
19、发送出去,第九数据位TB8作奇偶校验位。 根据要求,将串行口设置为方式2、单工发送,则SCON控制字为80H。波特率选为fosc/64。采用中断方式发送的主程序和中断程序如下:,ORG 0000H AJMP ZCX1 ;转主程序 NOP 0RG 0023H ;串行中断程序 INC R0 ;被发送数据地址增1 MOV A,R0 ;取出待发数据 MOV C,PSW.0 ;将奇偶位送TB8 MOV TB8,C MOV SBUF,A ;发送数据 DJNZ R1,CSJS ;判断是否发送完 CLR ES ;发送完关中断,CSJS:CLR TI ;清中断标志 RETI NOP ZCX1:ORG 0100H
20、 ;主程序 MOV SP,#20H ;置堆栈指针 MOV SCON,#80H ;串行口设置为方式2 MOV PCON,#00H ;波特率选为fosc/64 MOV R0,#60H ;数据块首址送R0,MOV R1,#10H ;数据块长度送R1 SETB EA ;开总中断 SETB ES ;开串行口中断 MOV A,R0 ;取出待发数据 MOV C,PSW.0 ;将奇偶位送TB8 MOV TB8,C MOV SBUF,A ;发送数据 SJMP ¥ ;等待中断,例9.5 试编制串行口在方式3下接收数据块的程序。设单片机晶振为11.0592 MHZ,波特率为2400 b/s,接收数据存在片内RAM的
21、40H起始单元的一段区间内,数据块长度由发送方先发送过来(不超过允许值),每接收一个数据都核对其奇偶校验位,正确存储数据,否则给出出错标志。 根据要求,设T1工作于方式2,当SMOD=0时,T1计数初值为F4H。采用查询法编制的程序如下:,START:MOV TMOD,#20H ;置T1工作于方式2 MOV TH1,#0F4H ;置T1计数初值 MOV TL1,#0F4H SETB TR1 ;启动T1 MOV SCON,#0D0H ;置串行口工作于方式3允许接收 MOV PCON,#00H ;设SMOD=0,MOV R0,#40H ;接收数据区首址送R0 JNB RI,¥ ;等待接收数据块长度
22、字节 CLR RI ;接收后清RI MOV A,SBUF ;将数据块长度读入后存入R1中 MOV R1,A OR0: JNB RI,¥ ;等待接收数据 CLR RI ;接收一个字符后清RI,MOV A,SBUF ;将接收字符读入A JB PSW.0,OR1 ;进行奇偶位校验 JB RB8,OR3 SJMP OR2 OR1: JNB RB8,OR3 OR2: MOV R0,A ;校验正确存接收数据,INC R0 ;存储单元地址增1 CLR PSW.5 ;设置正确的标志 DJNZ R1,OR0 ;没接收完继续接收 SJMP ¥ ;接收完停机 OR3: SETB PSW.5 ;置校验出错标志 SJM
23、P ¥ ;停机,9.4 PC机与单片机间的串行通信,9.4.1 RS-232C总线标准 RS-232C总线标准定义了25个引脚的连接器,各信号引脚的定义如表9-3所示。,表9-3 RS-232C信号引脚定义,表9-3中定义的许多信号线是为通信业务联系或信息控制而设置的,在计算机串行通信中主要使用以下一些信号: (1) 数据传输信号:发送数据(TXD),接收数据(RXD)。 (2) 调制解调器控制信号:请求发送(RTS),清除发送(CTS),数据准备好(DSR),数据终端准备就绪 (DTR)。 (3) 时钟信号:发送时钟(TXC),接收时钟(RXC)。 (4) 地线:保护地(PG),信号地(GN
24、D)。,RS-232C总线的其他标准规定如下: (1) RS-232C总线标准逻辑电平:515 V表示逻辑“0”,155 V表示逻辑“1”,噪声容限为2 V。 (2) 标准数据传输速率:50 b/s、75 b/s、110 b/s、300 b/s、600 b/s、1200 b/s、2400 b/s、4800 b/s、9600 b/s、19 200 b/s。,9.4.2 RS-232C接口电路 1. MAX232接口电路 MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以将输入5 V的电压变换成RS-232C输出电平所需的12 V电压。,MAX232芯片的引脚结构如图9-16所示。其中管脚16(C1、V、C1、C2、C2、V)用于电源电压转换,只要在外部接入相应电解电容即可;管脚710和管脚1114构成两组TTL信号电平与RS-232C信号电平的转换电路,对应管脚可直接与单片机串行口的TTL电平引脚和PC机的RS232电平引脚相连。具体连接可参看图9-17。,图9-16 MAX232引脚图,2PC机与AT89C51单片机串行通信电路 图9-17是由芯片MAX232实现PC机与AT89C51单片机串行通信的典型接线图。图中外接电解电容C1、C2、C3、C4用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论