




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章 MCS51串行口,9.1 概 述 9.2 MCS-51的串行接口,9.1 概 述,9.1.1 串行通信的基本概念 一、并行通信和串行通信 并行通信: 定义:数据各位同时传送。特点:速度快、效率高、数据线较多,通信距离较短(30m)。 串行通信: 定义:数据按位顺序传送。特点:线路简单,最多一对传输线。传送时数据格式有要求(同步通信和异步通信) 信息逻辑定义与TTL电平不兼容,需要进行电平转换。,并行通信与串行通信,并行通信:将数据的各位用多条数据线同时进行传送,外加地址线和通信控制线。,串行通信:将数据分成1位1位的形式在一条传输线上逐个地传送。,特点:,并行通信常用于集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的信息交互,串行通信常用于设备之间的信息交互,串行通信1)交互数据信息和控制信息 2)有严格的格式(同步和异步) 3)电平需要转换,二、异步通信和同步通信,1.异步通信:若接收端与发送端使用的不是同一时钟信号(但必须同频率),则为异步通信。 以字符为单位,一个字符一个字符地传送,每个字符有起始位和停止位作为标志。数据的传送可以是不连续的。 通用异步接收/发送器UART(Universal asynchronous Receiver /transmitter) 数据格式: 1)起始位:一个字符开始的标志,是一位低电平。 2)停止位:一个字符结束的标志,是一位或两位高电平。 3)数据位:起始位之后紧接着的是数据位,低位在前高位在 后根据字符的编码方式不同,数据位可以是5、 6、7或8位。 4)奇偶效验位:用于检查字符传送的正确性,占一位。分为 奇校验、偶校验和无校验三种。(一个字符就是一帧),发送时,在奇偶校验位上添加“1”或“0”,使得“1”的总和(包括奇偶校验位)为偶数(奇校验时为奇数),接受时,对字符位和奇偶校验位中“1”的个数加以检验,若“1”的个数为偶数(奇校验时为奇数),则数据传输正确,否则错误。偶校验:数据区和校验位中1的个数为偶数;奇校验:数据区和校验位中1的个数为奇数。 接收设备不断检测传送线,确定是否有起始位到来。在一系列的“1”(停止位和空闲位)之后检测到一个下降沿,并确定该低电平有一位数据的宽度,既确认是一个起始位。起始位之后,可以确定是数据位,效验位和停止位。将接收到的数据按事先约定好的格式,去掉停止位,进行奇偶校验并无错误,则确认接收到一个字符。下一个字符起始位的检测,重复前面的过程到所有数据传送完毕。,2. 校验和方法,特点:校验和方法效率更高,可靠性更高。,2、同步通信,同步通信是一种数据连续传输的串行通信方式,通信时发送方把需要发送的多个字节数据和校验信息连接起来,组成数据块。 发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的各位数据。 接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。,2. 同步通信,所有字符以帧的形式传送,一帧数据可以是任意位。 每一帧有开始和结束标志“01111110”,接收端通过搜索开始和结束标志建立帧的同步。 标志之间为地址场、控制场、信息场和帧校验场。为了避免与标志相同的数据,采用“0”插入和删除技术,发端遇到连续5个“1”,自动插入1个“0”,收端遇到连续5个“1”,自动删除1个“0”,如果遇到连续7个“1”,认为出错。 数据连续传送不间断。,8位 8位 8位 0位 16位 8位,面向位同步协议的帧格式,在这种通信方式中,数据块内的各位数据之间没有间隔,传输效率高; 发送、接收双方必须保持同步(使用同一时钟信号), 且数据块长度越大,对同步要求就越高。 同步通信设备复杂,成本高,一般只用在高速数字通信系统中。,计算机系统中常用串行、并行接口 并行: EPP:打印机 IDE:硬盘、电子盘 IEEE488(GPIB):智能化仪器 PCI,串行: 异步: RS232-C 384Kbps (15 to 20m) RS422、RS485 1.2Mbps (1200m) 同步: USB 1.1 12Mbps USB 2.0 480Mbps 1394 400Mbps SPI 26Mbps (Motorola) Microwire 10Mbps (National Semiconductor,国家半导体公司) I2C 400Kbps (Philips) SPI:Serial peripheral interface,四、串行通信数据传送方向,单向传送: 简称单工传送,数据只向一个方向传送 半双向传送:简称半双工传送。特点:数据双向传送,一根传送线既作输入又作输出,但不能同时收发,由 软件控制传送方向。 全双向传送:简称全双工传送。特点:数据双向传送,两根数据传送线,通信双方可同时进行接收和发送。,三 、 串行接口功能,1.发送器:并串数据格式转换,添加标识位和校验位,一 帧发送结束,设置结束标志,申请中断。 2.接收器:串并数据格式转换,检查错误,去掉标识位, 保存有效数据,设置接收结束标志,申请中断。 3.控制器:接收编程命令和控制参数,设置工作方式:同步/ 异步、字符格式、波特率、校验方式、数据位与 同步时钟比例等。,五、波特率,波特率:数据传送速率,即每秒钟传送二进制代码的位数。 单位:位/秒(bit/s)或波特。 如果传送速率为200字符/ 秒,每个字符包含10个代码位,则传送的波特率是: 200字符/秒10位/字符=2000波特=2000bps 每一位代码的传送时间Td为波特率的倒数:,9.1.2 串行通信的接口标准,最常用的通信接口:RS-232、RS-449、RS-422、RS-423、RS-485等。 一、RS-232C的接口信号 见表9.1.1,RS232C 简介 信号线 25 芯,22 根信号线,常用9 根线 最简方式 3 根线 RXD:数据接收线 TXD:数据发送线 GND:地线 例如 PC 机上的串口COM1、COM2,电平制 采用负逻辑,对应电平如下: 1 : 5V 15V 0 : 5V 15V 常用驱动器 典型的线驱动器MC1488(反向驱动) 12V 供电 典型的线接收器 MC1489(反向驱动),二、RS-232C的典型应用,四、RS-232C标准接口的电平转换 1.传输线驱动器MC1488 输入为TTL电平,输出为RS232电平。 2.传输线接收器MC1489 输入为RS232电平,输出为TTL电平 。,异步串口硬件连接方式,单片机与单片机通信,单片机与PC机通信,四、RS-232C标准接口的电平转换 3、收发器MAX232,可以实现TTL电平与RS-232C的双向转换 (见P204),9.2.1 串行口控制寄存器,一、1个全双工串行接口,可同时进行发送和接收。 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0) 数据格式:按不同方式,一帧位数 8/10/11 发送/接收时,数据皆低位在前。,一帧字符发送/接收结束,置位标志位(TI/RI)并申请SIO中断。 中断控制:中断允许位ES 中断入口:0023H,9.2 MCS-51的串行接口,二、串行接口控制,1. 数据缓冲器SBUF 发送SBUF和接收SBUF共用一个地址99H。 (1)发送SBUF存放待发送的8位数据,写入SBUF将同 时启动发送。 发送指令: MOV SBUF,A (2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令:MOV A,SBUF,2.串行口控制/状态寄存器SCON(98H),4种工作方式设定,多机通讯控制,接受控制,1-允许接受,接收中断标志 1接受完,发送中断标志 1发送完,接收数据的第9位,发送数据的第9位,2.串行口控制/状态寄存器SCON(98H),SM0,SM1:选择串行口4种工作方式。 SM2:多机控制位,用于多机通讯。 REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。 TB8: 发送数据的第9位,可作奇偶校验位和地址/数据标识位。 方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,或在多机通信中可作为地址帧或数据帧的标志。 =1为地址帧, =0为数据帧. RB8: 接收数据的第9位或停止位。 方式2和3时,RB8存放接收到的第9位数据,作为奇偶校验位或地址帧/数据帧的标志位。在方式1,如果SM2=0,RB8是接收到的停止位。 在方式0,不使用RB8。,TI:发送中断标志,发送一帧结束,TI=1,必须软件清零。 方式0时,串行发送第8位数据结束时由硬件置“1”,其它工作方式,串行口发送停止位的开始时置“1”。TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后, 向SBUF写入要发送的下一帧数据。TI必须由软件清0。 RI:接收中断标志,接收一帧结束,RI=1,必须软件清零。 方式0时,接收完第8位数据时,RI由硬件置1。其它工作方式,串行接收到停止位时,该位置“1”。RI=1,表示一帧数据接收完毕,并申请中断, CPU从接收SBUF取走数据。该位状态也可软件查询。RI必须由软件清“0”。,3、节电控制寄存器PCON PCON,位地址87H。,SMOD=1,波特率加倍, SMOD=0,则不加倍。 GF0 GF1:通用标志位 PD:掉电方式位:片内振荡停止,各种工作停止,内部RAM及特殊功能寄存器内容保持,只有硬件复位可结束掉电方式. IDL:冻结方式位:CPU时钟被封锁,状态完整保持,ALE PSEN无效,中断定时器串口工作,响应中断或硬件复位可结束冻结方式. PD,IDL同时为1时,取PD=1有效,SM0,SM1选择四种工作方式。 一、方式0:同步移位寄存器方式。用于扩展并行I/O接口。 1. 一帧8位,无起始位和停止位。 2. RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。 3. 波特率BR = fosc/12 如: fosc=12MHz, BR=1MHz,每位数据占1s。,9.2.2 串行接口的工作方式,用于扩展单片机的并行I/O接口。 串行口实现:并行串行的数据转换 74LS165/74LS164实现:串行并行的数据转换。 SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件置“1”TI或RI,CPU响应中断。TI或RI须由用户软件清“0”,可用如下指令: CLR TI ;TI位清“0” CLR RI ;RI位清“0” 方式0时,SM2位必须为0。,4. 发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。,方式0功能示意图(不要求),数据从RXD(P3.0)引脚串行输出,低位在先,高位 在后;TXD(P3.1)引脚输出移位脉冲,其频率为fosc/12; 发送完毕后,中断标志位TI为1。如要发送数据,如下所示: MOV SCON, #00H ;串行口方式0 MOV SBUF,A ;将数据送出 JNB TI,$ ;等待数据发送完毕,移位寄存器方式举例,二、 方式1,8位数据异步通讯方式。 1. 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2. RXD:接收数据端。 TXD:发送数据端。 3. 波特率:方式1的波特率由定时器(T1)的溢出率和SMOD的状态决定。用T1作为波特率发生器,BR=(2SMOD/32)T1溢出率。,4. 发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8(即RB8为1),并使RI=1;否则(若RB8为0,帧格式出错)丢弃接收数据,不置位RI。,1方式1发送 (看书P210,图9.2.2) 方式1输出时,数据由TXD输出, 一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1。 当执行一条数据写发送缓冲器SBUF的指令,就启动发送。图中TX时钟的频率就是发送的波特率。 发送开始时,内部发送控制信号变为有效。将起始位向TXD输出,此后,每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD输出一个数据位。8位数据位全部发送完毕后,置“1” TI。 如要再发送下一字节数据,必须用软件先将TI清零。,2方式1接收 (看书P210,图9.2.2) 数据从RXD(P3.0)脚输入。当检测到起始位的负跳变时,开始接收数据。 定时控制信号有两种 1)接收移位时钟(RX时钟,频率和波特率相同) 2)REN=1,位检测器采样脉冲:接收器以所选择波特率的16倍速率采样RXD引脚电平, 接收的值是3次连续采样(第7、8、9个脉冲时采样)进行表决以确认是否是真正的起始位(负跳变)的开始。 接收过程中,将每个数据位宽度分成16个状态,并在中间的第7、8、9状态时对RXD采样,采样数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。,当一帧数据接收完,须同时满足两个条件,接收才真正有效。 RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 SM2=0或SM2=1且收到的停止位=1(方式1时,停止位进入RB8),则收到的数据装入SBUF和RB8(RB8装入停止位),置“1”中断标志RI。 若这两个条件不同时满足,收到的数据将丢失。,9位数据异步通讯方式。 1. 一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。 2. RXD:接收数据端,TXD:发送数据端。 3. 波特率: 方式2:BR=(2SMOD/64)fosc 。 方式3:BR=(2SMOD/32)T1溢出率 。,三、 方式2和方式3,4. 发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0,SM2=0,将接收数据装入接收SBUF,第9位装入RB8,使RI=1;若SM2=1 ,RI=0,且第9位为1,将接收数据装入接收SBUF,使RI=1,否则丢弃接收数据,不置位RI。,例:P213程序,方式2发送: STDI: PUSH PSW ;保护现场 PUSH ACC SETB SM0 ;设置方式2发送 CLR SM1 CLR TI ;中断标志清0 MOV A,R0 ;取数据 MOV C,P ;奇偶位送TB8 MOV TB8,C MOV SBUF ,A ;数据写入发送缓冲器,启动发送 INC R0 ;数据指针加1 POP ACC POP PSW RETI,例:214程序,方式2接收: PIRI: PUSH PSW ;保护现场 PUSH ACC SETB SM0 ;设置方式2接收 CLR SM1 MOV A ,SBUF ;读接收数据 MOV C,P ;检测奇偶标志位 JNC LOOP1 ;P=0,转LOOP1 JNB RB8, ERP ;P=1,RB8=0,出错,转ERP AJMP LOOP2 ;P=1,RB8=1,接收数据正确 LOOP1: JB RB8, ERP ;P=0,RB8=1,出错,转ERP LOOP2: MOV R0 ,A ;接收数据送数据区 INC R0 ERP: POP ACC POP PSW RETI,9.2.3 计算波特率,方式0为固定波特率: BR=fosc/12 方式2可选两种波特率: BR=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。 T1选模式2。 BR=(2SMOD/32)T1溢出率 串行口方式1、3,根据波特率,计算时间常数N。 (若T1选模式1用于低波特率,需考虑T1重装时间常数时间。) P215, 表9.2.2, 例9.2.1,例: 若8031单片机的时钟振荡频率为11.0592MHz,选用T1为方式2定时作为波特率发生器,波特率为2400b/s,求初值。 这里时钟振荡频率选为11.0592 MHz,就可使初值为整数,从而产生精确的波特率。,初始化程序:,INTT: MOV TMOD,#20H ; 选T1定时模式2 MOV TH1,#0F3H ; 预置计数初值N MOV TL1,#0F3H ; SETB TR1 ; 启动定时器T1 MOV PCON, #80H ; SMOD=1 MOV SCON,#50H ;串行口方式1工作,在单片机的应用中,相同机种单片机的波特率很容易达到一致,只要晶振频率相同,可以采用完全一致的设置参数。 异机种单片机的波特率设置较难达到一致,这时的设计原则应使两个通信设备之间的波特率误差小于2.5%。 常用的串行接口波特率、晶振频率以及各参数的关系如P215表9.2.2所示。,串行口的应用,例:串行口初始化编程格式: SIO:MOV SCON,#控制状态字 ;写方式字且TI=RI=0 MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;T1作波特率发生器 MOV TH1,#X ;选定波特率 MOV TL1,#X ) SETB TR1 SETB EA ;开串行口中断 SETB ES,一、串行口初始化,二、发送程序,1. 查询方式: TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送一个字符 WAIT: JBC TI,NEXT ;等待发送结束 SJMP WAIT NEXT: INC R0 ;准备下一次发送 SJMP TRAM,2.中断方式:,ORG 0023H ;串行口中断入口 AJMP SINT MAIN: ;初始化编程 TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送第一个字符 H: SJMP H ;其它工作 SINT: CLR TI ;中断服务程序 INC R0 MOV A,R0 ;取数据 MOV SBUF,A ;发送下一个字符 RETI,三、接收程序,REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。 1.查询方式: WAIT: JBC RI,NEXT ;查询等待 SJMP WAIT NEXT: MOV A,SBUF ;读取接收数据 MOV R0,A ;保存数据 INC R0 ;准备下一次接收 SJMP WAIT,* 异步通讯程序举例 (参考) 1.发送程序:将片内RAM 50H起始单元的16个数由串 行口发送。要求发送波特率为系统时钟 的32分频,并进行奇偶校验。,MAINT: MOV SCON,#80H ;串行口初始化,方式2 MOV PCON,#80H ; SETB EA SETB ES ;开串行口中断 MOV R0,#50H ;设数据指针 MOV R7,#10H ;数据长度 LOOP: MOV A,R0 ;取一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;启动一次发送 HERE: SJMP HERE ;CPU执行其它任务,ORG 0023H ;串行口中断入口 AJMP TRANI,ORG 0023H AJMP TRANI ORG 1000H TRANI: PUSH ACC ;保护现场 PUSH PSW CLR TI ;清发送结束标志 DJNZ R7,NEXT ;是否发送完? CLR ES ;发送完,关闭串行口中断 SJMP TEND NEXT: INC R0 ;未发送完,修改指针 MOV A,R0 ;取下一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;发送一个字符 TEND: POP PSW ;恢复现场 POP ACC RETI ;中断返回,2. 接收程序:串行输入16个字符,存入片内RAM的50H起 始单元,串行口波特率为2400(设晶振为11.0592MHz)。,RECS: MOV SCON,#50H ;串行口方式1允许接收 MOV TMOD,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;读取接收字符 MOV R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? RET,3. 接收程序:串行输入16个字符,进行奇偶校验。,RECS: MOV SCON,#0D0H ;串行口方式3允许接收 MOV TMOD,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;取一个接收字符 JNB P,COMP ;奇偶校验 JNB RB8,ERR ;PRB8,数据出错 SJMP RIGHT ;P=RB8,数据正确 COMP: JB RB8,ERR RIGHT: MOV R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? CLR F0 ;F0 =0,接收数据全部正确 AJMP GD ERR: SETB F0 ;F0 =1,接收数据出错 GD: RET,四、双机通信,A机发送: SEND: MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,A WAIT: JBC TI,NEXT SJMP WAIT NEXT: INC R0 DJNZ R7, SEND RET,B机接收: WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;读取接收字符 JNB P,COMP ;奇偶校验 JNB RB8,ERR ;PRB8,出错 SJMP SAVE ;P=RB8=1,正确 COMP: JB RB8,ERR SAVE: MOV R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? CLR F0 ;接收数据全部正确 AJMP GD ERR: SETB F0 ;接收数据出错 SJMP SAVE GD: RET,双机通信联络的实现,方法: A机到B机:发“AA” B机到A机:发“BB”,A方: CONTACT: MOV SBUF,#0AA H WAIT: JBC TI,NEXT SJMP WAIT NEXT: ACALL DISM JBC RI,NEXT1 SJMP CONTACT NEXT1: MOV A, SBUF CJNE A,#0BBH, CONTACT ;联络成功,B方: CONTACT: JBC RI,NEXT SJMP CONTACT NEXT: MOV A, SBUF CJNE A,#0AAH,CONTACT MOV SBUF,#0BB H NEXT1: JNB TI,NEXT1 CLR TI ;联络成功,帧格式统一 波特率统一 波特率存在误差(单片机与PC机通信),双机通信注意的问题:,思考: 1. 4 种工作方式的特点是什么?分别应用 于什么场合? 2. 如何启动发送和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省成都市天府新区2024-2025学年八年级下期学期末考试数学试卷(含答案)
- 汉字收集资料课件
- 北师大版五年级上册数学第一单元 小数除法 检测卷(无答案)
- 2025年黑龙江省佳木斯市二十中中考数学二模试卷(含答案)
- 总承包合同(合集15篇)
- 户口申请书15篇
- “一带一路”与中国企业社会责任知到智慧树答案
- 汉字书法课件模板楷书凌
- 汉堡店加盟商业模式
- 永州市教师消防知识培训课件
- 脓毒症抗炎治疗策略
- 财务岗位招聘笔试题与参考答案
- 电动汽车V2G技术
- 田忌赛马 同步分层作业(含答案)
- 高三年级年级主任工作计划
- 2023风光互补路灯设计方案
- jgj592023安全检查标准完整版
- 关节松动技术-上肢关节松动术(运动治疗技术)
- 2024CSCO肿瘤患者静脉血栓防治指南解读
- 供应商改善计划表
- DB11-T 1253-2022 地埋管地源热泵系统工程技术规范
评论
0/150
提交评论