您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第五章串行通信及其接口
第五章串行通信及其接口[教学内容]本章主要介绍串行通信的基本概念、51单片机通信的接口电路设计及软件设计。主要内容有:串行通信的特点、数据传输方式,51单片机的串口结构、控制方法,双机通信的硬件设计、软件设计,多机通信的原理及软件设计,单片机与PC机通信方法等。[教学安排]安排6学时的理论教学学时,2学时的实验课时。以多媒体授课为主。[知识点及其基本要求]1了解串行通信的特点,理解三种数据传输方式的特点:全双工,半双工,单工。了解异步通信与同步通信的区别;2了解51单片机串口的物理结构,理解该串口的工作方式、控制方法,掌握SCON的控制方法,能够根据波特率设置串口的工作方式、计算T1的时间常数,正确进行串口初始化;3了解双机通信的基本过程,掌握常用串行通信接口标准,如RS-232、RS-485,并熟悉相关的器件如MC1488、1489等。要求能进行简单的双机通信程序设计及电路设计。掌握单片机与PC机的软件编程方法;4了解多机通信的工作原理,能进行多机通信的软件设计;[重点和难点]重点:1串行通信的基本概念,波特率的计算;251单片机的串口操作及初始化;3双机通信的硬件及软件设计;难点:1波特率的计算2多机通信中SM2位的作用及其与TB8、RB8的关系。7.1概述本节知识点:1串行通信的分类按数据传输方式:单工、半双工、全双工。按传输的数据格式:异步、同步。2常用的串行通信接口标准RS-232、RS422/485、USB、IEE1394教学要求:1要求学生掌握串行通信的两种分类方法,理解每种分类中的通信方式的特点;2要求了解常有的几种串行通信接口标准,了解各种标准的物理特性及特点。1基本概念z按数据传输方式分类单工方式——数据只能向一个方向传输,甲只能向乙发送数据信息。半双工方式——允许数据两个方向传输,但不能同时传输,只能交替进行。因此可利用一根传送线进行两个相反方向的数据传送。甲发时,乙收;或乙发时,甲收。这种情况下,需要对数据的传输方向进行协调。全双工方式——数据可以同时往两个相反的方向传输。需要两条独立的数据通路分别传输两个相反方向的数据流。z按数据传输格式分类两个设备之间进行串行数据通信,对于接收方式来说,什么时候开始接收数据,什么时候数据接收完毕,需要有方法来通知和协调收发双方,也就是同步问题。因而串行通信有两种方式:异步通信方式和同步通信方式。异步方式:它用一个起始位表示字符的开始,用停止位表示字符的结束。数据位则在起始位之后,停止位之前,这样构成一帧。2常用串行通信接口标准zRS-232RS-232是PC机与通信工业中应用昀广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯.0:+5~+15V,1:在-5~-15V传送距离昀大为约15米昀高速率为20kb/szRS-422/485RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。1:A、B电压差在+2~+6V0:A、B电压差在-2~-6V在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。RS-422的昀大传输距离为4000英尺(约1219米),昀大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到昀大传输距离。一般100米长的双绞线上所能获得的昀大传输速率仅为1Mb/s。RS-485比RS-422有改进,总线上可多32个设备。zUSB通用串行总线USB特点:速度快,USB2.0速度达480MbpsM接口数量无限:一个设备上如果有USB接口,那其它USB设备接到此口上和接到主机的USB接口上是一样的。USB可连接127个周边设备,所以说是“无限的”。提供外设电源具有即插即用的功能具有热插拔功能USB外设可以带电插拔功能。传输距离5mzIEEE1394使用方便,支持热插拔,即插即用,无需设置设备ID号,从Win98SE以上版本的操作系统开始内置IEEE1394支持核心,无需驱动程序。数据传输速度快,IEEE1394a高达400Mbps,后续的IEEE1394b标准可将速度提升到800Mbps、1.6Gbps甚至3.2Gbps。自带供电线路,能提供8—40V可变电压,允许通过昀大电流也达到1.5A左右,因此它能为耗电量要求小的设备进行供电。真正点对点连接(peer-to-peer),设备间不分主从,可直接实现两台DV间的数据传输或是多台电脑共享一台DV机,而且从理论上讲我们可以直接将IEEE1394接口DV机中的图像数据保存到IEEE1394接口的硬盘中。7.2MCS-51的串行口本节知识点:1串行口的结构三个寄存器SBUF、SCON、PCON各自的作用。2串行口的四种工作方式方式0、1、2、3的各自特点,发送接收时序。3由波特率公式计算T1的时间常数教学要求:1理解SBUF在通信过程中的作用;2理解SCON中每一位的作用;理解TI/RI的作用,TB8/RB8的两种作用;2理解四种串行通信方式的各自特点以及应用场合;重点内容:1TI/RI在通信过程中值的变化;2通过SCON对串行通信的控制;3通过波特率公式计算T1的时间常数。难点:通过波特率公式计算T1的时间常数。7.2.1串行口的结构z串行口缓冲器SBUF单片机内部的串行口有两个物理上独立的接收、发送缓冲器SBUF,可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。两个缓冲器占用同一个地址(99H)。z串行口控制寄存器SCON该寄存器的字节地址为98H,可位寻址。SCON格式如下图所示。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISCON位地址9F9E9D9C9B9A9998图5-2-1SCON格式SM0、SM1:控制串行口的工作方式,其功能详见串行口工作方式节。SM2:允许方式2和方式3进行多机通信控制位。REN:允许串行接收控制位。由软件置位时允许接收,由软件清零时禁止接收。TB8:是工作在方式2和方式3时要发送的第9位数据,根据需要由软件置位和复位。RB8:是工作在方式2和方式3时接收到的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。TI:发送中断标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始置位。必须由软件清零。RI:接收中断标志位。由片内硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位。必须由软件清零。SCON的所有位复位时都被清零。z特殊功能寄存器PCON其字节地址为87H,没有位寻址功能。PCON的格式如图7-2-2所示,其中与串行接口有关的只有D7位:D7D6D5D4D3D2D1D0PCONSMOD图5-2-2PCON格式SMOD:波特率倍增位。当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。7.2.2串行口的工作方式串行接口的工作方式有四种,由SCON中的SM0、SM1定义。在这四种工作方式中,串行通信只使用方式1,方式2,方式3。方式0主要用于扩展并行口。1.方式0同步移位寄存器方式。用于扩展并行I/O接口。一帧8位,无起始位和停止位。RXD:数据输入/输出端。TXD:同步脉冲输出端,每个脉冲对应一个数据位。波特率B=fosc/12如:fosc=12MHz,B=1MHz,每位数据占1μs。发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。2.方式1当SCON中的SM0SM1=01时,串行口以工作方式1工作,此时串行口为8位异步通信接口。一帧信息为10位:1位起始位,8位数据位(低位在先)和一位停止位。TXD为发送端,RXD为接收端,波特率可变。一帧10位:8位数据位,1个起始位(0),1个停止位(1)。RXD:接收数据端。TXD:发送数据端。波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1(或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。3.方式2、3当SM0SM1=10时,串行口工作在方式2,为9位异步通信口,发送和接收的一帧信息由11位组成,即1位起始位、8位数据位(低位在先)、1位可编程位(第9位数据位)和1位停止位。发送时可编程位(TB8)根据需要设置为0或1(TB8既可作为多机通信中的地址数据标志位又可作为数据的奇偶校验位),接收时,可编程位被送入SCON中的RB8。5.2.3四种方式的波特率方式0为固定波特率:BR=fosc/12方式2可选两种波特率:BR=(2SMOD/64)×fosc方式1、3为可变波特率,用T1作波特率发生器。BR=(2SMOD/32)×T1溢出率T1溢出率=fosc/(12×(256-x))串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。T1选方式2:TH1=X=28-(2SMOD×fosc)/(12×32×BR)T1选方式1用于低波特率,需考虑T1重装时间常数时间。重点是方式1、2两种方式的由波特率计算T1的时间常数。T1溢出率的概念:定时器T1每秒钟的溢出次数。此处举例,计算T1的时间常数,设置SCON和定时器,完成串行通信初始化。例:设波特率为1200bps,求定时器初值X大小并进行初始化(设SMOD=0,fosc=12MHz)1200=(1/32)*(fosc/(12*(256-x)))X=E6HINITCOM:MOVTMOD,#20HMOVTH1,#0E6HMOVTL1,#0E6HMOVPCON,#00HMOVSCON,#50HSETBTR1RET7.3串行口的控制7.3.1双机通信本节知识点:1双机通信的硬件设计2双机通信的软件设计教学要求:1能根据设计要求正确设计双机通信的电路;2能根据设计要求完成串行通信的初始化;3能完成简单的双机通信程序设计,具有数据发送、接收功能;重点内容:1串口初始化2简单的双机通信程序设计本节内容主要介绍单片机与单片机间的串行异步通信。由于8031串行口为全双工异步通信串行接口,因此当两个8031进行通信时,很容易连接。昀简单的连接方法如图7-3-1,传输线为电缆或双绞线,但这样连接的距离不超过1.5米。若采用RS232C接口标准的话,传输距离昀长可达15米,因此可根据通信距离远近采用下面两种接口电路。图4-3-2两台8031采用RS232C总线通信通信约定:双方都采用串行通信方式,波特率为9600(晶振为11.059M),采用中断方式进行发送和接收数据。程序如下:8751-1程序:BUFFEREQU30H;发送数据缓冲区ECHOFLAGBIT00H;当发送与接收到的数据相同时此标志置1ERRFLAGBIT01H;当发送与接收到的数据不同时此标志置1ORG0000HSJMPSTARTORG0023H;串行口中断输入口SJMPUART1ORG0030HSTART:MOVTMOD,#20H;定时器1设置为方式2,作波特率发生器ANLPCON,#7FHMOVTH1,#0FDH;波特率为9600MOVTL1,#0FDHSETBTR1MOVSCON,#50H;设置为串行方式1允许接收MOVIE,#90H;允许串行口中断MOVBUFFER,#00H;缓冲区清零WAIT:MOVA,P1CJNEA,BUFFER,SWCHSJMPWAITSWCH:MOVBUFER,ATRAGIN:MOVSBUF,A;发送数据CLRECHOFLAGCLRERRFLAGWAITEO:JBERRFLAG,TRAGINJNBECHOFLAG,WAITEOSJMPWAITUART1:PUSHPSWPUSHACCSETBRS0CLRRS1JBCRI,RC
本文标题:第五章串行通信及其接口
链接地址:https://www.777doc.com/doc-319740 .html