单机片原理与接口技术第十章MCS—51串行通信接口技术_第1页
单机片原理与接口技术第十章MCS—51串行通信接口技术_第2页
单机片原理与接口技术第十章MCS—51串行通信接口技术_第3页
单机片原理与接口技术第十章MCS—51串行通信接口技术_第4页
单机片原理与接口技术第十章MCS—51串行通信接口技术_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.第十章 MCS51串行通信接口技术微机联网: 单片机与单片机;单片机与其他微机之间实现信息共享;典型的计算机测量与控制系统构成:一个典型集散式(DCS)控制系统的构成10.1 串行通信基础数据通信方式:并行通信与串行通信并行通信:一次传输8(16、32Bit)8根数据线,1根控制线,1根状态线,地线,共11根; 特点:速度快,适合近距离传输 计算机并口,打印机,8255 串行通信: 数据一位一位地发送 ,一根发送线,一根接受线,地线,共3根特点:硬件方便,适合距离远,速度要求不高的场合分类:同步串行通信和异步串行通信一、 异步通信:串行通信就是将并行的数据分开后,一位一位地发送出去,接收方也

2、是一位一位地接收数据,这就需要通信的双方有一个协议,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,而这些信息只能以电平的高低来表示,构成这些位的数据称为一帧。异步串行通信规定了传输数据的结构即帧格式:起始位 数据位 奇偶校验位 停止位 1 起始位:在数据发送线上规定无数据时电平为1,当要发送数据时,首先发送一个低电平0,表示数据传送的开始,这就是起始位。2 数据位:真正要传送的数据,可以是8位、10位等多位,数据位是由地位开始,高位结束;3 奇偶校验:数据发送完后,发送奇偶校验位,以检验数据传送的正确性,这中方法是有限的,但是容易实现。4 停止位:表示数据传送的结束,可以是一

3、位或两位。帧格式: 二、 同步通信同步通信先发送一个字符,作为同步字符,之后便连续发送数据,数据之间不能有间隔,直到数据发送完毕。速度要比异步通信快通用异步接受/发送器(UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER):UART:8250 6850 三、 单工、半双工、全双工通信方式按通信进行的过程,分为:单工、半双工、全双工通信方式1 单工方式一端是发送端,另外一端是接收端:接收器发送器2 半双工发式每端口由一个发送器和接收器,通过开关连接在线路上,数据可以双方交换,但不能同时发送和接收.接收器发送器发送器接收器 3. 全双工方式发送器接收器接收器发送

4、器 通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。4 波特率单位时间内传送的信息量。以每秒传送的位为单位:电传机:10字符/秒,1个字符11位, 波特率位:1011=110(波特)位宽:传送过程中平均每位占用时间 Td = 9.1ms(1/110)10.2串行通信总线标准及接口在测控系统中,计算机通信主要采用异步串行通信方式,常用的异步串行通信接口标准有三种:RS-232(RS-232A RS-232B RS-232C)RS-449 (RS422 RS423 RS485)20mA电流环一、 通信方式的选取1 通信速率和通信距离 这两个方面是相互制约的,降低通信速率

5、,可以提高通信距离 RS-232C:速率:20Kbit/S,最大通信距离:15m RS422: 10Mbit/s, :300m 90Kbit/s, :1200m2 抗干扰能力 采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。 RS232C:一般场合 RS422: 共模信号比较强 光纤: 电磁干扰较强二、 RS232C简介美国电子工业协会(EIA)公布的一种异步通信标准:RS232C标准:设备之间通信的距离不大于15米最大传输速率20KB/S采用负逻辑:“1” 5V 15V “0” +5V + 15V不带负载时输出电平:25V +25V输出

6、短路电流: 0.5A最大负载电容: 2500pF TTL电平可以由专用集成电路转换成RS232C标准; 如: MC1488 或 75188 TTL RS232CMC1489 或 75189 RS232C TTL +12V +5VMC1489 MC1488 TTL TTL 12V 由于MC1488需要采用12V电源,一般在单片机通信中大量使用的是只需要+5V电源、具有发送和接收的一体化芯片,如:MAX232、ICL232、ADM202等。 MAX232芯片及接口内部有两路接收器和发送器具有电源变换电路 C5 VCC C3 C1+ V+ +5V 至 +10V (倍压器) C1- C2+ V- +1

7、0V 至 10V (电压反向器) C2- +10V C1 10V C2 C4 T1 T1int 11 14 T1out T1 T2int 10 7 T2out R1 R1out 12 13 R1in R2 R2out 9 8 R2int MAX232原理图 电源变换电路:C1,C2,C3,C4,V+,V;MCS51 RXDTXDGNDMAX232MCS51 TXD RXD GNDMAX232 T1in T1out R1out R1in MCS51双机通信(利用MAX232)三、 调制与解调RS232C通信距离很短,RS422通信距离不过1200米;更长距离需采用调制与解调。10.3 MCS-5

8、1的串行口的结构8051有一个可编程的全双工串行通信接口,它可作UART用,也可作同步移位寄存器,其帧格式可有8位、10位或ll位,并能设置各种波特率,给使用者带来很大的灵活性。一、结 构805l通过引脚RXD(P30,串行数据接收端)和引脚TXD(P3.l,串行数据发送端)与外界进行通信。其内部结构简化示意图如图所示。串行口内部结构示意图图中有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。 串行发送与接收的速率与移位时钟同步。8051用定时器T1作为串行通信的波特率发生器,T1溢出率经2分频

9、(或不分频)又经16分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。 从图中可看出,接收器是双缓冲结构,在前个字节被从接收缓冲器SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是,在第二个字节接收完毕而前个字节CPU未读取时会丢失前一个字节。 串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的,当向SBUF发“写”命令时(执行MOV SBUF,A指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI1。 在满足串行口接收中断标志位RISCON00的条件下,置允许接收位REN(SCON4)1就会启动接收一

10、帧数据进入输入移位寄存器,并装载到接收SBUF中,同时使RIl。当发读SBUF命令时(执行MOV A,SBUF指令),即是由接收缓冲器(SBUF)取出信息通过8051内部总线送CPU。对于发送缓冲器,因为发送时CPU是主动的,不会发生重迭错误,所以不需要用双缓冲结构来保持最大传送速率。二、串行口控制字及控制寄存器8051串行口是一个可编程接口,对它的编程只用两个控制字分别写入特殊功能寄存器:串行口控制寄存器SCON(98H)和电源控制寄存器PCON(97H)个即可。 1SCON(98H)8051串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON控制和指示。其控制

11、字格式如图所示:SCOND7 D6 D5 D4 D3 D2 D1 D0 98HSM0SM1SM2RENTB8RB8TIRI (1) SM0和SMl 串行口工作方式选择位。两个选择位对应4种通信方式(见表2),其个fosc是振荡频率。表2 串行口的工作方式SM0SM1工作方式 说 明 波 特 率00方式0同步移位寄存器 fosc/201方式110位异步收发由定时器1控制10方式211位异步收发fosc/32或fosc/6411方式311位异步收发由定时器1控制 (2) SM2 多机通信控制位,主要用于方式2和方式3。若置SM21,则允许多机通信。多机通信协议规定,第9位数据(D8)为l,说明本帧

12、数据为地址帧;若第9位为0,则本帧为数据帧。当一个8051(主机)与多个8051(从机)通信时,所有从机的SM2位都置1。主机首先发送的一帧数据为地址,即某从机机号,其中第9位为1、被寻地址的某个从机接收到数据后,将其中第9位装入RB8。从机依据收到的第9位数据(RR8个)的值来决定从机可否再接收主机的信息,若(RB8)0,说明是数据帧,则使接收中断标志位RI0,信息丢失;若RB81,说明是地址帧,数据装入SBUF并置RI1,中断所有从机被寻址的目标从机清除SM2以接收主机发来的一帧数据。其他从机仍然保持SM21。 若SM20,即不属于多机通信情况,则接收一帧数据后不管第9位数据是0还是1都置

13、RIl,接收到的数据装入SBUF中。 根据SM2这个功能,可实现多个8051应用系统的串行通信。 在方式1时,若SM21,则只有接收到有效停止位时,RI才置1,以便接受下一帧数据。 在方式0时,SM2必须是0 。 (3) REN 允许接收控制位。由软件置1或清0,只有当RENl时才允许接收,相当于串行接收的开关;若REN0、则禁止接收。 在串行通信接收控制程序中,如果满足RI0,置位REN1(允许接收)的条件,就会启动一次接收过程,一帧数据就装载入接收SBUF中。 (4) TB8 发送数据的第9位(D8)装入TB8中。在方式2或方式3中根据发送数据的需要由软件置位或复位。在许多通信协议中可作奇

14、偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。对于后者TB81,说明发送该帧数据为地址;TE80,说明发送该帧数据为数据。在方式0和方式1中,该位末用。 (5) RB8 接收数据的第9位。在方式2或方式3中、接收到的第9位数据放在RB8位。它或是约定的奇偶校验位,或是约定的地址数据标识位,在方式2和3多机通信中,若SM21,如果RB8l,说明收到的数据为地址帧。 在方式1中,若SM20(即不是多机通信情况),RB8中存放的是已接收到的停止位。 在方式0中,该位末用。 (6) TI 发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束时,或其它方式串行发送到停止位的开始

15、时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动复0,必须由软件清0。 (7)RI 接收中断标志。 在接收到一帧有效数据后由硬件置位。在方式0中,第8位数据发送结束时,由硬件置位;在其它三种方式下,则在接收到停止位中间时由硬件置位。RI1,中请中断。表示一帧数据接收结束,并已装入接收SBUF中,要求CPU取走数据。CPU响应中断,取走数据。RI也必须内软件清0,解除中断申请,并准备接收下一帧数据。 串行发送中断标志TI和接收中断标志RI是同一个中断源,CPU事先不知道是发

16、送中断TI还是接收中断RI产生的中断请求,所以在全双工通信时,必须由软件来判别。 复位时,SCON所有位均清0 。 2PCON(87H) 电源控制寄存器PCON中只有一位SMOD与串行口工作有关,如图所示:PCON D787HSMOD 电源控制寄存器 SMOD 波特率倍增位。在串行口方式1、方式2和方式3时,波特率和2SMOD成正比;即当SMOD1时,波特率提高一倍。复位时,SMOD0。三、串行通信工作方式 根据实际需要,805l串行口可设置为四种工作方式;可有8位,10位和11位帧格式。方式0以8位数据为一帧、不设起始位和停止位,先发送或接收最低位。其帧格式如下:D0D1D2D3D4D5D6

17、D7方式1以10位数据为一帧,设有一个起始位“0”和一个停止位“1”,中间是8位数据。先发送或接收最低位。其帧格式如下:0D0D1D2D3D4D5D6D71方式2和3以11位为1帧传输,设有1个起始位“0”,8个数据位,1个附加第九位和1个停止位“1”,其帧格式为:0D0D1D2D3D4D5D6D7D81附加第九位(D8)由软件置l或清0。发送时在TB8中,接收时送RB8中。 1.串行口方式0方式0为同步移位寄存器输入输出方式,常用于扩展IO口。串行数据通过RxD输入或输出,而TxD用于输出移位时钟,作为外接部件的同步信号,如图为发送电路及时序:这种方式不适用于两个8051之间的直接数据通信,

18、但可以通过外接移位寄存器来实现单片机的接口扩展。例如,采用74Lsl64可用于扩展并行输出口,74Ls165可用于扩展输入口。在这种方式下,收发的数据为8位,低位在前,无起始位、奇偶位及停止位,波特率固定为振荡器频率fosc的l12,即: 方式0波特率fosc/12 例如,当晶体振荡频率为12MHz时,则波待率为1Mbs。发送过程中,当执行一个数据写入发送缓冲器SBUF(99H)的指令时,串行口把SBUF中8位数据以fosc12的波待率从RxD(P30)端输出,发送完毕置中断标志TI1,方式0发送时序如图所示.写SBUF指令在S6P1处产生个正脉冲,在下一个机器周期的S6P2处数据的最低位输出

19、到RxD(P30)脚上;在再下一个机器周期的S3、S4、S5输出移位时钟为低电平,而在S6及下一个机器周期的S1、S2为高电平,就这样将8位数据由低位至高位一位一位顺序通过RxD线输出,并在TxD脚上输出fosc12的移位时钟。在写SBUF”有效后的第10机器周期的SlPl将发送中断标志TI置位。图中74Ls164是TTL“串入并出”移位寄存器。接收时,用软件置REN1(同时RI0),即开始接收。接收时序如图所示:当使SCON中的REN1(RI0)时,产生一个正的脉冲,在下个机器周期的S3P1S5P2从TxD(P31)脚上输出低电平的移位时钟,在此机器周期的S5P2对P30脚采样,并在本机器周

20、期的S6P2通过串行口内的输入移位寄存器将采样值移位接收;在同一个机器周期的S6P1到下一个机器周期的S2P2,输出移位时钟为高电平。于是,将数据字节从低位至高位一位一位地接收下来并装入SBUF中,在启动接收过程(即清RI位)将SCON中的RI清0之后的第10个机器周期的S1Pl,RI被置位。这一帧数据接收完毕,可进行下帧接收。 2串行口方式1方式1真正用于实行发送或接收,为10位通用异步接口。TxD与RxD分别用于发送与接收数据,收发一帧数据的格式为:1位起始位、8使数据位(低位在前)、1位停止位,共10位。在接收时停止位进入SC0N的RD8,此方式的传送波特率可调。 串行口方式1的发送和接

21、收时序如图所示: 方式1发送时,数据从引脚TxD端输出,当执行数据写入发送缓冲器SBUF的命令时就启动了发送器开始发送。发送时的定时信号,也就是发送移位时钟(TX时钟),是内部定时器T1送来的溢出信号经过16分频或32分频(取决SMOD的值)而取得的。TX时钟就是发送波特率,可见方式1波特率是可变的。发送开始的同时,SEND变为有效,将起始位向TxD输出,此后每过个TX时钟周期(16分频计数器溢出一次为一个时钟周期,因此,Tx时钟频率由波待率决定)产生一个移位脉冲,并由TXD输出一个数据位,8位数据位全部发送完后,置位TI,并申请中断。再经一个时钟周期SEND失效。 方式1接收时,数据从引脚R

22、XD端输入。接收是在SCON寄存器中REN位置1的前提下,并检测到起始位(RxD上检测到“1”“0”的跳变,即起始位)而开始的。接收时,定时信号有两种:一种是接收移位时钟(RX时钟),它的频率和传送波特率相同,也是由定时器T1的溢出信号经过16或32分频而得到的;另一种是位检测器采样脉冲,它的频率是RX时钟的16倍,亦即在一位数据的期间有16位检测器采样脉冲,为完成检测,以16倍于波特宰的速率对RXD进行采样。为了接收准确无误,在正式接收数据之前,还必须判定这个“l”“0”跳变是否是干扰引起的。为此,在这位中间(即一位时间分成16等份,在第7、8及9等份)连续对RxD采样三次,取其中两次相同的

23、值进行判断所检测的值。这样能较好地消除干扰的影响。当确认是真正的起始位“0”后,就开始接收一帧数据。当一帧数据接收完毕后,必须同时满足以下两个条件、这次接收才真正有效。 RI0,即上一帧数据接收完成时,RI1发出的中断请求已被响应,SBUF中数据已被取走。由软件使RI0,以便提供“接收SBUF已空”的信息。 SM20或收到的停止位为1(方式1时停止位进入RB8),则将接收到的数据装入串行口的SBUF和RB8(RB8装入停止位),并置位RI;如果不满足接收到的数据不能装入SBUF,这意味着该帧信息将会丢失。值得注意的是:在整个接收过程中,保证RENl是一个先决条件。只有当REN1,才能对RXD进

24、行检测。 3串行口方式2和方式3 串行口工作在方式2和方式3均为每帧11位异步通信格式,由TxD和RXD发送与接收(两种方式操作是完全一样的,所不同的只是特波率)。每帧11位;l位起始位,8位数据位(低位在前),1位可编程的第9数据位和1位停止位。发送时,第9数据位(TB8)可以设置为1或0,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,第9数据位进入SCON的RB8。方式2和方式3的发送、接收时序如图所示。其操作与方式1类似。 发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址数据标志位),然后将要发送的数据写入SBUF,即能启动发送过程。串行口能自动把TB8取出,并装入列第9

25、位数据的位置,再逐一发送出去。发送完毕,使TIl。接收时,使SCON中的REN1,允许接收。当检测到RXD端有“1”到“0”的跳变(起始位)时开始接收9位数据,送入移位寄存器(9垃)。半满足RI0且SM20或接收到的第9位数据为1时,前8位数据送入SBUF,附加的第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效。 四、波特率设计 在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对SC0N串行口编程可约定四种工作方式。其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器Tl的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。 1方式0的波特率 方式0波特率fosc12 2方式2的波特率串行口方式2波特率的产生与方式0不同,即输入的时钟源不同,其时钟输入部分见图所示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论