您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第5章中断系统和IO接口电路2new
5.3串行I/O接口及通信第5章中断系统和I/O接口电路5.3.1串行通信基本知识5.3.2串行口结构及控制5.3.3串行口工作方式5.3.4串行口应用举例5.3.1串行通信基本知识一、数据通信在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。基本的通信方法有并行通信和串行通信两种。通常根据信息传送的距离决定采用哪种通信方式。1.并行通信单位信息(通常指一个字节)的各位数据同时传送。2.串行通信单位信息的各位数据被分时一位一位依次顺序传送。8951单片机具有并行和串行二种基本通信方式。并行通信优点:传送速度快;缺点:数据有多少位,就需要多少根传送线。例如,8051单片机与打印机之间的数据传送就属于并行通信。右图所示为8051与外设间8位数据并行通信的连接方法。并行通信在位数多、传送距离又远时就不太合适了。串行通信优点:只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远距离通信;缺点:传送速度较低。假设并行传送N位数据所需时间位T,那么串行传送的时间至少为NT,实际上总是大于NT的。右图所示为串行通信方式的连接方法。二、串行通信的传输方式串行通信的传送方向通常有三种:1.单向(或单工)配置,只允许数据向一个方向传送;2.半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;3.全双向(全双工)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。图串行通信中的数据传送方式三、异步通信和同步通信串行通信有两种基本通信方式,即异步通信和同步通信。1、异步通信——发送时钟与接收时钟不一定相等在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如下图所示图(a)表示一个字符紧接一个字符传送的情况,上一个字符的停止位和下一个字符的起始位是紧邻的;图(b)则是两个字符间有空闲位的情况,空闲位为1,线路处于等待状态。存在空闲位正是异步通信的特征之一。在帧格式中,一个字符由四个部分组成:起始位数据位奇偶校验位停止位。首先是一个起始位(0),然后是5位--8位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位(1)。第n个字符n-1n+1…P10D0D1D2D3D4D5D6D7P10D0…起始位(0)信号只占用一位,用来通知接收设备一个待接收的字符开始到达。线路上在不传送字符时应保持为1。接收端不断检测线路的状态,若连续为1以后又测到一个0,就知道发来一个新字符,应马上准备接收。起始位后面紧接着是数据位,它可以是5位(D0--D4)、6位、7位或8位(D0--D7)。奇偶校验(D8)只占一位,但在字符中也可以规定不用奇偶校验位,则这一位就可省去。也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。停止位用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一个字符做好准备--只要再接收到0,就是新的字符的起始位。若停止位以后不是紧接着传送下一个字符,则使线路电平保持为高电平(逻辑1)。2、同步通信——发送设备时钟与接收设备时钟严格一致同步通信中,在数据开始传送前用同步字符来指示(常约定1个--2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC来指示,其数据格式如下图所示。图同步通信数据格式同步字符的插入可以是单同步字符方式或双同步字符方式,然后是连续的数据块。同步字符可以由用户约定,当然也可以采用ASCII码中规定的SYNC代码,即16H(0010110)。按同步方式通信时,先发送同步字符,接收方检测到同步字符后,即准备接收数据。在同步传送时,要求用时钟来实现发送端与接收端之间的同步。为了保证接收正确无误,发送方除了传送数据外,还要同时传送时钟信号。同步传送可以提高传输速率(达56kb/s或更高),但硬件比较复杂。3、波特率(Baudrate)波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s或bps。假设数据传送速率是每秒钟10个字符,而每个字符格式的一帧为11位,这时,传送的波特率为:11b/字符×10字符/s=110b/s异步通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s。假设数据传送速率是120字符/s,而每个字符格式包含1个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为:10b/字符×120字符/s=1200b/s3、波特率(Baudrate)每一位代码的传送时间Td为波特率的倒数。Td=1b/(1200bs-1)=0.833ms异步通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。返回5.3.2串行口结构及控制一、8051串行口结构二、与串行口有关的特殊功能寄存器三、波特率设计四、串行口工作方式一串行口结构8051单片机除具有4个8位并行口外,还具有串行接口。此串行接口是一个全双工串行通信接口,即能同时进行串行发送和接收数据。它可以作UATR(通用异步接收和发送器)用,也可以作同步移位寄存器用。使用串行接口可以实现8051单片机系统之间点对点的单机通信和8051与系统机(如IBM-PC机等)的单机或多机通信。图串行口内部结构示意简图图中有两个物理独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。发送缓冲器只能写入,不能读出;接收缓冲器只能读入,不能写出。串行发送与接收的速率与移位时钟同步。8051用定时器T1作为串行通信的波特率发生器,T1溢出率经2分频(或不分频)后又经16分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当向SBUF发“写”命令时(执行“MOVSBUF,A”指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发读SBUF命令时(执行“MOVA,SBUF”命令),便由接收缓冲器(SBUF)取出信息通过8051内部总线送CPU。二与串行口有关的特殊功能寄存器1.控制状态寄存器SCON2.电源控制寄存器PCON1.控制状态寄存器SCON用于定义串行通信口的工作方式和反映串行口状态,其字节地址为98H,复位值为00000000B,可位寻址。格式为:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI①SM0和SM1(SCON.7、SCON.6):串行口工作方式选择位。SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位异步收发可变(T1溢出率/32或/16)10方式29位异步收发fosc/64或fosc/3211方式39位异步收发可变(T1溢出率/32或/16)②SM2(SCON.5)——多机通信控制位,主要用于方式2和方式3。若置SM2=1,则允许多机通信。当一片8051(主机)与多片8051(从机)通信时,所有从机的SM2位都置1。主机首先发送的一帧数据为地址,即从机机号,其中第9位为1,所有的从机接收到数据后,将其中第9位装入RB8中。各个从机根据收到的第9位数据(RB8中)的值来决定从机可否再接收主机的信息。若(RB8)=0,说明是数据帧,则使接收中断标志位RI=0,信息丢失;若(RB8)=1,说明是地址帧,数据装入SBUF并置RI=1,中断所有从机,被寻址的目标从机清除SM2以接收主机发来的一帧数据。其他从机仍然保持SM2=1。若SM2=0,即不属于多机通信情况,则接收一帧数据后,不管第九位数据是0还是1,都置RI=1,接收到的数据装入SBUF。根据SM2这个功能,可实现多个8051应用系统的串行通信。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1,以便接收下一帧数据。在方式0时,SM2必须是0。③REN(SCON.4)——允许接收控制位。由软件置1或清0,只有当REN=1时才允许接收,相当于串行接收的开关;若REN=0,则禁止接收。在串行通信接收控制过程中,如果满足RI=0和REN=1(允许接收)的条件,就允许接收,一帧数据就装载入接收SBUF中。④TB8(SCON.3)——发送数据的第9位(D8)装入TB8中。在方式2或方式3中,根据发送数据的需要由软件置位或复位。在许多通信协议中可用作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。对于后者,TB8=1,说明该帧数据为地址;TB8=0,说明该帧数据为数据字节。在方式0或方式1中,该位未用。⑤RB8(SCON.2)——接收数据的第9位。在方式2或方式3中,接收到的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。在方式2和方式3多机通信中,若SM2=1,如果RB8=1,说明收到的数据为地址帧。在方式1中,若SM2=0(即不是多机通信情况),RB8中存放的是已接收到的停止位。在方式0中,该位未用。⑥TI(SCON.1)——发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动清0,必须由软件清0。⑦RI(SCON.0)——接收中断标志。在接收到一帧有效数据后由硬件置位。在方式0中,第8位数据发送结束时,由硬件置位;在其他三种方式中,当接收到停止位中间时由硬件置位。RI=1,申请中断,表示一帧数据接收结束,并已装入接收SBUF中,要求CPU取走数据。CPU响应中断,取走数据。RI也必须由软件清0,清除中断申请,并准备接收下一帧数据。串行发送中断标志TI和接收中断标志RI是同一个中断源,CPU事先不知道是发送中断TI还是接收中断RI产生的中断请求,所以,在全双工通信时,必须由软件来判别。复位时,SCON所有位均清0。2.电源控制寄存器PCON电源控制寄存器PCON(地址为87H)中只有SMOD位与串行口工作有关。D7D6D5D4D3D2D1D0SMOD---------GF1GF0PDIDLSMOD(PCON.7):波特率倍增位。串行口工作于方式1、方式2和方式3时,当SMOD=1时,串行口波特率加倍。复位值为00000000B。PCON寄存器不能进行位寻址。设置波特率加倍时,可采用指令:ORLPCON,#80HPCON=0X80三、波特率设计在串行通信中,收发双方对发送或接收的数据速率有一定的约定,通过软件对8051串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来源不同,因此,各种方式的波特率计算公式也不同。(1)方式0的波特率由下图可见,方式0时,发送或接收一位数据的移位时钟脉冲由S6(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一
本文标题:第5章中断系统和IO接口电路2new
链接地址:https://www.777doc.com/doc-2110311 .html