单片机原理与接口技术2020/1/301南阳师范学院第6章80C51单片机的串行口第6章80C51单片机的串行口2020/1/302计算机串行通信基础6.180C51单片机的串行口6.280C51单片机的串行口应用6.36.1计算机串行通信基础并行通信2020/1/303通信:并行通信与串行通信T0T1T2T3T4T5T6时钟D0D1D5D6D7:::10110T7接收设备发送设备选通状态0110110101101101特点:传送控制简单、速度快,但传输线较多,成本高。2020/1/304串行通信T0T1T2T3T4T5T6时钟D71T71111000D6D5D4D3D2D1D0数据线发送设备接收设备D7D6D5D4D3D2D1D001D0D1D2(1)01101101TXDRXD特点:传送控制复杂、速度慢,传输线少,成本低异步通信与同步通信2020/1/305收、发设备时钟独立,以字符(帧)为单位传输6.1.1串行通信的基本概念11100110110100100010100100101110011010以“0”作为起始以“1”作为停止各帧间隔时间任意发送设备接收设备TXDRXD异步通信异步通信帧格式2020/1/306停止位数据位校验位起始位D0D7空闲下一字符起始位空闲一个字符帧起始位(1位);数据位(8位);奇偶校验位(1位,可无校验位);停止位(1位)。特点易于实现效率不高同步通信(发、收时钟直接连接,效率高。板内元件间的SPI接口)串行通信的传输方向2020/1/307单工接收发送半双工时间1时间2发送接收发送接收全双工发送接收发送接收80C51有1个全双工串行口信号的调制与解调2020/1/308DCEDTE电话网DCEDTERS-232CRS-232CDTE:数据终端设备DCE:数据通信设备调制解调器调制解调串行通信的错误校验2020/1/309奇偶校验发送字符时,数据位尾随1位奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。2020/1/3010代码和校验发送方将所发数据块求和(或各字节异或),产生的校验和字节附加到数据块的末尾。接收方在接收数据时要对数据块(除校验字节外)求和(或各字节异或),将所得的结果与收到的“校验和”进行比较,相符则无差错,否则就认为传送过程出现了差错。传输速率与传输距离2020/1/3011传输速率比特率:每秒钟传送的信息量。单位:位/秒(bps)波特率:每秒钟传送码元数目,单位:波特(Baud)基带传输(每个码元带有“1”或“0”这1bit信息,传码率与传信率相同),波特率和比特率是相同的。常用波特率为:2400、4800、9600、14.4K、19.2K等传输距离与传输速率的关系传输距离随波特率的增加而减小。机械特性2020/1/30126.1.2串行通信接口标准RS-232C定义的是DTE与DCE间的接口标准。96512514131DB-25(阳头)连接器DB-9(阳头)连接器阳头通常用于计算机侧,阴头用于连接线侧功能特性2020/1/3013插针序号信号名称功能信号方向1PGND保护接地2(3)TXD发送数据(串行输出)DTE→DCE3(2)RXD接收数据(串行输入)DTE←DCE4(7)RTS请求发送DTE→DCE5(8)CTS允许发送DTE←DCE6(6)DSRDCE就绪(数据建立就绪)DTE←DCE7(5)SGND信号接地8(1)DCD载波检测DTE←DCE20(4)DTRDTE就绪(数据终端准备就绪)DTE→DCE22(9)RI振铃指示DTE←DCE电气特性2020/1/3014RS-232C采用负逻辑电平,规定(-3~-25V)为逻辑“1”,(+3~+25V)为逻辑“0”。-3V~+3V是未定义的过渡区。试比较:+25+3-3-25Vt010101+520.80Vt101010RS232电平TTL电平电平转换电路(如MAX232)。过程特性2020/1/3015远程通信,需要调制解调器计算机MODEMMODEMTXDRXDRTSTXDRTSDSR电话线DSRRXD计算机2020/1/3016近程通信,不需要调制解调器计算机乙计算机甲TXDTXDRXDRXD计算机乙计算机甲TXDTXDRXDRXD4562045620无联络线方式联络线短接(伪连接)方式RS-232C电平与TTL电平转换驱动电路2020/1/3017早期常用MC1488、MC1489近期常用MAXM232:片内带有自升压电路仅需+5V电源内含2个发送器,2个接收器2020/1/3018采用RS-232C接口存在的问题2020/1/3019传输距离短、速率低通常不超过15米,速率20Kbps有电平偏移RS-232收发共地,地电流会使电平偏移出现逻辑错误。抗干扰能力差RS-232常用单端输入,易混入干扰。(故用大摆幅)新标准RS-485改善了传输特性,应用广泛!2020/1/30206.280C51单片机的串行口6.2.180C51串行口的结构1个全双工串口:通信或接口扩展≥1SBUF发送控制器接收控制器移位寄存器控制门TIRITXDRXD去中断逻辑SMOD01TH1TL1÷2÷16SBUFT1溢出率写SBUF读SBUF99H99H接收发送缓冲器逻辑同名、物理分开;接收双缓冲。MCS-5l单片机有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器):一个用作发送;一个用作接收。发送缓冲器只能写入不能读出,写入的数据存储在SBUF发送缓冲器,用于串行发送;接收缓冲器只能读出不能写入,接收缓冲器只能读出不能写入。两者共用一个字节地址(99H)。通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的。因此可以同时发送、接收数据,实现全双工。在发送时,CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,然后从TXD端一位位地向外发送。与此同时,接收端RXD也可一位位的接收数据,直到收到一个完整的字符数据后通知CPU,再用一条指令把接收缓冲器SBUF(收)的内容读入累加器。可见,在整个串行收发过程中,CPU的操作时间很短,使得CPU还可以从事其它的各种操作(指工作在中断方式下),从而大大提高了CPU的效率。SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)SM0、SMl:串行口工作方式选择位SM0SM1工作方式功能说明001101010123同步移位寄存器输入/输出,波特率为fOSC/128位UART,波特率可变(TI溢出率/n,n=16或32)9位UART,波特率为fosc/n,n=32或64)9位UART,波特率可变(TI溢出率/n,n=16或32)6.2.280C51串行口的控制寄存器串行口控制寄存器SCON位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)SM2:多机通信控制位,用于方式2和方式3中。在方式2和方式3处于接收方式时若SM2=1,表示置多机通信功能。若SM2=0,不论接收到的第9位RB8是0还是l,TI、RI都以正常方式被激活,接收到的数据装入SBUF。在方式1,若SM2=1,则只有收到有效的停止位后,RI=1。在方式0中,SM2=0。SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)REN:允许串行接收控制位。REN=l时,允许接收;REN=0时,禁止接收。SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)TB8:发送数据的第9位。在方式2和方式3中,TB8是第9位发送数据,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定发送地址帧时,TB8为1,发送数据帧时,TB8为0。TB8由软件置位或复位;SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)RB8:接收数据的第9位。在方式2和方式3中,接收第9位数据。在方式1下,若SM2=0,则RB8用于存放接收到的停止位方式;方式0下,不使用RB8;SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)TI:发送中断标志位,用于指示一帧数据发送完否。当TI=l时,向CPU申请串行中断,响应中断后,必须由软件清除TI。就是说:TI在发送前必须由软件复位,发送完一帧后由硬件置位。因此,CPU查询TI状态便可知一帧信息是否已发送完毕。SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)位76543210功能SM0SM1SM2RENTB8RB8TIRISCON(98H)RI:接收中断标志位。用于指示一帧信息是否接收完。在方式1中,接收到第8位数据时由硬件置位;在其它方式中在接收停止位的中间点由硬件置位。接收完一帧数据RI=l,向CPU申请中断,供CPU查询。RI由软件复位。SCON寄存器用来控制串行口的工作方式和状态,字节地址为98H。它可以位寻址。在复位时所有位被清零。SCON的格式如下所示:SCON(98H)PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,没有位寻址功能。字节地址为87H。在HMOS的8051单片机中,PCON只有最高位被定义,其它位都是虚设的。位76543210功能SMODSSSSSSSSGF11GF00PPDDIDLLPCON的最高位SMOD为串行口波特率的倍增位。在方式1、2和3时,串行通信的波特率与SMOD有关。当SMOD=l时,通信波特率加倍,当SMOD=0时,波特率不变。其它各位为掉电方式控制位。电源控制寄存器PCON2020/1/30316.2.380C51串行口的工作方式方式0:同步移位寄存器,用于扩展并行口RXD:输入或输出引脚TXD:移位脉冲输出接收和方式都是8位波特率固定为:fosc/122020/1/3032D0D1D2D3D4D5D6D7写入SBUFRXD(数据)TXD(移位脉冲)TI(中断标志)TCY数据输出:74LS164RXDTXDP1.080C51CRCPABGNDCLR用于对74LS164清02020/1/3033数据输入:REN=1RXD(数据输入)TXD(移位脉冲)RI=0D0D1D2D3D4D5D6D774LS165RXDTXDP1.080C51S/LCPQGNDINHS/L负脉冲将并行数据装入,高电平时启动单片机进行数据输入。2020/1/3034方式1:10位帧,用于双机通信停止位数据位8位起始位LSBMSB空闲空闲D0D71帧共10位起始位:1位数据位:8位停止