第七节 串行输入/输出接口一、 基本概念1、并行通信与串行通信 1) 并行通信:一次传输8位,需要8根数据线但同时需要控制 如单片机的4个并行口特点:速度快,适合近距离传输, 计算机并口,打印机,8255 ,由于并行通信占用硬件端口多,是系统复杂,不适合远距离通信,应用逐渐减少,现在计算机的许多外设都变成串行通信2)串行通信:串行通信就是将并行的数据分开后,一位一位地发送出去,接收方也是一位一位地接收数据,需要通信的双方有一个协议,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等2、串行通信的方式与特点单工方式: 一端是发送端,另外一端是接收端: 半双工发式 :每端口有一个发送器和接收器,通过开关连接路上,数据可以双方交换,但不能同时发送和接收. 全双工方式 :通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度 (2)特点:硬件简单,适合远距离通信(3)分类:串行同步通信和串行异步通信,3、串行同步通信:同步通信先发送一个字符,作为同步字符,之后便连续发送数据,数据之间不能有间隔,直到数据发送完毕速度要比异步通信快硬件结构复杂4、串行异步通信的格式异步串行通信帧格式:(一个字符称作一帧)1) 起始位:在数据发送线上规定无数据时电平为1,当要发送数据时,首先发送一个低电平0,表示数据传送的开始,这就是起始位。
2)数据位:真正要传送的8位数据,数据位是由低位开始,高位结束;3)奇偶校验:数据发送完后,发送奇偶校验位,以检验数据传送的正确性,这种校验方法是有限的,但是容易实现4)停止位:用高电平1表示数据传送的结束 5)空闲位:用1来填充空闲位不同的工作方式,一帧的字符个数不同,后面讲)5、 波特率 定义:波特率是单位时间内传送多少位的信息量单位:位/秒(B/s);bps以每秒传送的位数为单位) 波特率系列:110、300、1200、1800、2400、4800、9600、……单片机常用9600B/s与计算机或单片机通信二、串行总线:1、总线:是计算机系统中模块到模块间传送信息的一束信号线采用串行传输方式进行通信的叫串行总线,串行总线有几种标准,常见的有RS-232,USB,还有RS-422,RS-485,在计算机中,常见的是RS-232,现在是USB,在工业中,RS-485用的很广泛2、RS-232C总线RS-232C总线应用很广,RS232标准由25根信号线组成,设备经常只使用其中9个信号,绝大多数为9针连接器(计算机的串行口)232C接口信号面向使用调制解调器的串行异步通信,原来主要是计算机通过线进行通信的,可支持两个通信信道:主信道:用于数据传送次信道:次信道为辅助串行通道,主要提供通道控制,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用9针连接器(阳)各个引脚信号如下: 1、载波检测(DCD、入) 2、接受数据(RXD、入) 3、发送数据(TXD、出) 4、数据终端准备好(DTR、出) 5、信号地线(SGND) 6、数据设备准备好(DSR、入) 7、请求发送(RTS、出) 8、清除请求发送(CTS、入) 9、振铃指示(RI、入) 1、4、6、7、8、9信号,均是要与MODEM联系,2、3、5信号就可以构成串行通信。
在单片机串行通信中,实际用到了3条线:2、3、5RS-232C的传输率最大为200kb/s,在此速率下,电缆允许长度为15m• RS-422A的传输率最大为10Mb/s,在此速率下,电缆允许长度为120m如果采用较低传输速率,如90kb/s,最大距离可达1200m• RS-485是RS-422A的变形RS-422A为全双工,可同时发送和接收;RS-485则为半双工,在某一时刻,一个发送另一个接收 电平:RS232c电平逻辑0电平:+5-+15V;逻辑1电平:-15―-5V经常用MAX232C等芯片转换三、AT89C51的串行口的结构 8051有一个可编程的全双工串行通信接口,它可作UART(串行异步通信)用,也可作同步移位寄存器,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用者带来很大的灵活性 结构如下图:工作原理:1、引脚,RXD(P3.0,串行数据接收端)、TXD(P3.l,串行数据发送端)2、有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H可以同时工作,但不能同时访问发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入 3、波特率发生器,8051用定时器T1作为串行通信的波特率发生器,T1溢出率经2分频(或不分频)又经16分频作为串行发送或接收的移位脉冲。
移位脉冲的速率即是波特率 4、接收器是双缓冲结构,在前—个字节被从接收缓冲器SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是,在第二个字节接收完毕而前一个字节CPU未读取时会丢失前一个字节 5、发送与接收信息,当向SBUF发“写”命令时(执行MOV SBUF,A指令),就是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1 在满足串行口接收中断标志位RI〔SCON.0〕=0的条件下,置允许接收位REN(SCON.4)=1就会启动接收一帧数据进入输入移位寄存器,并装载到接收SBUF中,同时使RI=l当发出读SBUF命令时(执行MOV A,SBUF指令),即是由接收缓冲器(SBUF)取出信息通过8051内部总线送CPU (对于发送缓冲器,因为发送时CPU是主动的,不会发生重迭错误,所以不需要用双缓冲结构来保持最大传送速率 )四、串行口控制寄存器 8051串行口是一个可编程接口,对它的编程只用两个控制字分别写入特殊功能寄存器:1、 串行口控制寄存器SCON(98H) 1) SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式,见表其中fOSC是振荡器频率, UART为通用异步接收和发送器的英文缩写。
2) SM2:多机控制位,用于多机通讯3) REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收4) TB8:发送的第9位数据,可用作校验位和地址/数据标识位5) RB8:接收的第9位数据或停止位6) TI:发送中断标志,发送一帧结束,TI=1,必须软件清零7) RI:接收中断标志,接收一帧结束,RI=1,必须软件清零2、电源控制寄存器PCON(87H) SMOD---GF1GF0PDIDL在串行通信中,用到了电源控制寄存器PCON中最高位SMOD,是波特率系数控制位,当SMOD=1是,波特率增大一倍四、四种工作方式1、方式0:同步移位寄存器方式用于扩展并行I/O接口1)数据格式: 一帧8位,无起始位和停止位2)RXD:数据输入/输出端TXD:同步脉冲输出端,每个脉冲对应一个数据位3) 波特率:B = fosc/12,每个机器周期发送一位数据 如: fosc=12MHz, B=1MHz,每位数据占1ms4)发送是低位在前,8位发送完毕,停止发送,并置TI=12、方式1,8位数据异步通讯方式1) 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。
2) RXD:接收数据端 TXD:发送数据端3)波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率用定时器T1的方式2(自动重装载)作波特率发生器注意这是规定)定时器初值的计算: 4) 发送:写入SBUF,同时启动发送(一帧发送结束,TI自动置1接收:REN=1,(注意SM2=1时,发送的第9位数据的作用)3、方式2与方式3, 9位数据异步通讯方式方式2与方式3除波特率不同外,其他都相同1) 一帧为11位:9位数据位,1个起始位(0),1个停止位(1)第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位2) RXD:接收数据端,TXD:发送数据端3) 波特率:方式2:B=(2SMOD/64)×fosc 方式3:B=(2SMOD/32)×T1溢出率 同方式1)4)发送与接收 发送:由软件给TB8置1或0,自动将TB8送第9位数据写入SBUF并启动发送,发送结束, TI=1以下为发送与接收的时序:对每个位检测3次,两次相同者有效注意:要设奇偶校验位时,一般将待发送的数据送累加器A,则PSW中的奇偶校验位P发生变化,将P→TB8,然后将A→SBUF即可。
接收:关系较复杂,见下表:序号RENSM2第9位数据功 能10××禁止接收210×接收的数据送SBUF,第9位→RB8,RI置1,申请中断,(双机通信或多机通信地址相符者,可双机通信3110信息作废(多机通信,地址不符者)4111数据→SBUF,第9位送RB8,RI→1,申请中断(多机通信传递地址信息)表中“×”表示数据任意4、多机通信(方式2和3)多机通信,主机只有一个,从机有多个,每个从机有相应的地址见图)通信过程:1) 主机发送地址信息,TB8=1;然后发送数据信息,TB8=02) 从机接收:(1) 置SM2=1,接收RB8=1,各从机接收地址信息有效;(2)各从机判断接收的地址是否与本机相符,相符者置SM2=0,不符者SM2仍为13)接收数据信息,地址相同者(见上表【2】,因SM2=0)接收信息有效;地址不同者(见上表【3】,SM2=1和第9位=0)信息作废注意:引脚连接时 (主)TXD-(从)RXD;(主)RXD-(从)TXD五、发送与接收过程及参数设置发 送接 收1、设置工作方式,波特率(TH1、TL1)1、设置工作方式,波特率2、开定时器T12、开定时器T1,置REN=13、加奇偶校验位(按需要)3、接收字符送SBUF,接收完毕,RI自动置14、将待发数据送SBUF(启动发送)4、由软件清除RI5、等待发送结束,TI自动置15、从SBUF中取接收的字符6、由软件给TI置06、进行奇偶校验7、转3、发送下一个字符7、返3、接收下一个字符第八节 特殊工作方式一、复位方式1、复位的作用:复位是单片机中必须的功能,它使特殊功能寄存器回复初始状态,见下表。
程序重新从0000H开始执行2、复位结构与条件复位引脚RST通过片内一个斯密特触发器与片内复位电路相连斯密特触发器用来脉冲整形及抑制噪声,其输出在每个机器周期的。