ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:58.68KB ,
资源ID:12480508      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12480508.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机中级教程 第6章串行接口.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机中级教程 第6章串行接口.docx

1、单片机中级教程 第6章 串行接口第6章 串行接口 串行通信是CPU与外界交换信息的一种基本通信方式。本章将介绍串行通信的一般知识和MCS-51系列单片机串行接口的结构、原理及应用6.1 串行通信的基础知识计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。并行通信是指数据的各位同时进行传送。其优点是传送速度快,缺点是数据有多少位,就需要多少根传输线,适合于近距离传输。串行通信是指数据的各位按顺序一位一位传送。其优点是只需一对传输线(如电话线),占用硬件资源少,从而降低了传输成本,特别适用于远距离通信,缺点是传送速度较慢。611 串行通信的两种基本方式串行通信分为异步通信

2、和同步通信两种基本方式。1异步通信方式异步通信时,数据是以字符为单位进行传送的。一个字符又称为一帧信息,每个字符由4个部分组成:起始位、数据位、奇偶校验位和停止位。这样一组信息就称为一帧数据或简称一帧。一帧信息由起始位开始,停止位结束。异步传送的字符格式如图6-1所示。起始位为0信号,占用1位,用来表示一帧信息的开始;其后就是数据位,它可以是5位、6位、7位或8位,传送时低位在先、高位在后;再后面的是奇偶校检位(即可编程位),只占一位;最后是停止位,它用逻辑1来表示一帧信息的结束,可以是1位、1位半或2位。 图6-1 异步通信的字符格式异步通信的特点是数据在线路上的传送不连续。传送时,字符间隔

3、不固定,各个字符可以是连续传送,也可以是间断传送,这完全取决于通信协议或约定。间断传送时,在停止位后,线路上自动保持为1,在异步通信时,通信双方必须事先约定。(1)字符格式。 双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用ASC码通信,有效数据为7位,加一个奇偶校验位、一个起始位和一个停止位共10位。当然停止位也可以大于1位。(2)波特率(Baud rate)。波特率就是传送速率,即每秒传送的二进制位数。单位为bit/s或波特。波特率与字符的传送速率之间的关系为:波特率等于一个字符的二进制编码位数乘字符/秒,要求发送端与接收端的波特率必须一致。异步串行通信的波特率一般

4、为509600波特,高低不等。常用于计算机到CRT终端和字符打印机之间的通信、直通电报、无线电通信的数据发送及工业现场的数据远传等。2同步通信方式异步通信由于要在每个数据前后附加起始位、停止位,每发送一个字符约有20%的附加数据,占用了传输时间,降低了传送效率。同步通信则去掉每个数据的起始位和停止位,把要发送的数据按顺序连接成一个数据块,其中每个数据也由58位组成。在数据块的开头附加12个同步字符,在数据块的末尾加差错校验字符。同步通信的数据格式如图6-2所示。在数据块内部,数据与数据之间没有间隙。 图6-2 同步通信的格式同步通信时,先发送同步字符,数据发送紧随其后。接收方检测到同步字符后,

5、即开始接收数据,按约定的长度拼成一个个数据字节,直到整个数据接收完毕,经校验无传送错误则结束一帧信息的传送。若发送的数据块之间有间隔,则发送同步字符填充。同步通信进行数据传输时,发送和接收双方要保持完全的同步,因此要求发送和接收设备必须使用同一时钟。在近距离通信时可以采用在传输线中增加一根时钟信号线来解决;远距离通信时,可以通过解调器从数据流中提取同步信号,用锁相技术使收方得到和发送方时钟频率完全相同的时钟信号。如上所述,异步通信技术较为简单,应用范围广;同步通信传输速率高,适用于高速率、大容量的数据通信,但硬件复杂。612 串行通信的数据传送方式串行通信的数据传送方式有以下3种:(1)单工方

6、式。如图6-3(a)所示 ,单工方式的数据传送是单向的,一方(A端)固定为发送端,另一方(B端)固定为接收端。单工方式只需要一条数据线。 (2)半双工方式。如图6-3(b)所示, 半双工方式的数据传送是双向的,数据既可以从A端发送到B端,又可以由B端发送到A端。不过在同一时间只能做一个方向的传送。半双工方式需要一条数据线。(3)全双工方式。如图6-3(c)所示,全双工方式的数据传送是双向的,A、B两端既可同时发送,又可同时接收。全双工方式需要两条数据线。(a) 单工方式 (b) 半双工方式 (c) 全双工方式 图6-3 串行通信数据传送的3种方式613 串并转换和串行接口CPU通常是并行的输入

7、/输出数据,但和某些外部设备或其他计算机交换信息时可采用串行通信方式。这就要求把从CPU来的并行数据转换为串行数据送给I/O设备,或者把I/O设备送来的串行数据转换为并行数据送给CPU。为了实现这样的串并转换,应使用专门的串行接口电路再加以适当的软件配合来完成。现在市场上有各种多样的串行接口芯片,并且大多是可编程的多功能芯片,统称为通用异步接收/发送器UART,或者是通用同步接收/发送器USART。UART的基本组成是接收器、发送器和控制器。它的主要功能是以下几点。(1) 把并行数据转换为串行数据或者把串行数据转换为并行数据。这主要由发送器或接收器来完成。(2) 完成格式信息的插入和滤除及错误

8、检验。格式信息是指异步通信中的起始位、奇偶位和停止位等。这部分工作由控制器完成。62 MCS-51系列单片机的串行接口 对于单片机来说,为了进行串行通信,同样也需要有相应的串行接口电路。只不过这个接口电路不是单独的芯片,而是集成在单片机芯片的内部,成为单片机芯片的一个组成部分。MCS-51系列单片机有一个全双工的串行口,这个口即可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。621 MCS-51系列单片机串行口的结构MCS-51系列单片机串行口主要由发送数据缓冲器、发送控制器、输出控制门、接收控制器、输入移位寄存器、接收数据缓冲器等组成,如图6-4所示。发送缓冲器只能写

9、入,不能读出,接收缓冲器只能读出,不能写入,故两者使用同一个符号(SBUF),占用同一个地址(99H)。通过使用不同的读、写缓冲器的指令来决定是对哪一个缓冲器进行操作。例:执行MOV SBUF,A指令,是将数据写入发送缓冲器,执行MOV A,SBUF指令,是从接收缓冲器中读取数据。串行口还有两个专用寄存器SCON、PCON,SCON用来存放串行口的控制和状态信息,PCON用于改变串行通信的波特率,波特率发生器可由定时器T1或T2构成。 MCS-51系列单片机串行口正是通过对上述专用寄存器的设置、检测与读取来管理串行通信。 图6-4 串行口结构框图使用串行接口以后,串行收、发的工作主要由串行接口

10、来完成。在发送时,由CPU执行一条写指令把数据写入发送缓冲器,则启动串行口一位一位地向外发送。与此同时接收端也可以一位一位地接收数据,直到把一组数据接收完,送入接收缓冲器,然后通知CPU,CPU执行一条读指令把接收缓冲器的内容读入。可见,在整个串行收、发过程中,CPU操作的时间很少,使得CPU还可以从事其他各种操作,从而大大提高了CPU的效率。622 MCS-51单片机串行口的控制串行口的工作主要受串行口控制寄存器SCON的控制,另外也和电源控制寄存器PCON有关。1串行口控制寄存器SCON串行控制寄存器SCON用以设定串行口的工作模式、接收/发送控制及设置状态标志。字节地址98H,可位寻址,

11、其格式为: D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2RENTB8RB8 TI RI SM0、SM1:串行口工作模式选择位,可选择4种工作模式,见表6-1所示。 表6-1 串行口的工作模式SM0 SM1 工 作 模 式 功 能 说 明 波 特 率 0 0 模式0同步移位寄存器方式/12 0 1 模式110位异步接收发送可变(由定时器控制) 1 0 模式211位异步接收发送/32或/64 1 1 模式311位异步接收发送可变(由定时器控制)SM2:多机通信控制位。主要用于模式2和模式3。若SM2=1,则允许多机通信。在主从式多机通信中,SM2用于从机的接收控制,当SM2=1

12、时,从机可接收地址帧,若接收到的第9位数据(RB8)为0时(数据帧),不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;只有当RB8为1时(地址帧),才将接收到的前8位数据送入SBUF中,并置位RI,以产生中断申请。当SM2=0时,从机可接收所有信息,即接收到一帧数据后,不论第9位数据是0还是1,都置RI=1,接收到的数据装入SBUF中。在模式1时,若SM2=1,则只有接收到有效停止位时,RI才置1,以便接收下一帧数据。在模式0时,SM2必须是0。REN:允许接收控制位。只有当RI=1时才允许接收数据;若REN=0,则禁止接收;该位相当于串行接收的开关,由软件置1或清0。TB

13、8:在模式2和模式3中,TB8是发送数据的第9位,根据发送数据的需要由软件置位或复位。它可作为奇偶校验位(单机通信),也可在多机通信中作为发送地址帧或数据帧的标志位。多机通信时,一般约定:发送地址帧时,设置TB8=1;发送数据帧时,设置TB8=0。在模式0或模式1中,该位未用。RB8:在模式2或模式3中,RB8为接收数据的第9位,它即可以是约定的奇偶校验位,也可以是约定的地址/数据标志位。可根据RB8被置位的情况对接收数据进行某种判断,例如多机通信时,若RB8=1,说明收到的数据为地址帧;RB8=0,收到的数据为数据帧。在模式1时,若SM2=0(即不是多机通信情况),则RB8是已接收到的停止位

14、。模式0中该位未用。TI:发送中断标志,在一帧数据发送结束时由硬件置位。在模式0中,串行发送完8位数据时,或其他模式串行发送到停止位的开始时由硬件置位,TI=1表示“发送缓冲器已空”,通知CPU可以发送下一帧数据。TI位可作为查询;也可作为中断申请标志位。TI不会自动复位,必须由软件清0。RI:接收中断标志,在接收到一帧有效数据后由硬件置位,在模式0中,接收完8位数据后,或其他方式中接收到停止位时由硬件置位。RI=1表示一帧数据接收完毕,并已装入接收缓冲器中,即表示接收缓冲器以满,通知CPU可取走数据。该位可作为查询,也可作为中断申请标志位。同样RI不会自动复位,必须由软件清0。以准备接收下一

15、帧数据。2电源控制寄存器PCONPCON是为了在CHMOS的MCS-51系列单片机上实现电源控制而设置的,字节地址为87H,不可位寻址,PCON的内容如下: D7 D6 D5 D4 D3 D2 D1 D0SMOD GF1GF0 PD IDL 其中,PCON的低4位是CHMOS器件的掉电方式控制位,这里不做介绍(详见2.7节)。在HMOS的MCS-51系列单片机中,PCON寄存器中只有最高位SMOD与串行口的工作有关,其他位都是虚设的。SMOD称为波特率倍增位。在模式1、模式2、模式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不加倍。复位时,PCON=00H。623 波特率设

16、计在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,通过软件对MCS-51系列单片机的串行口编程可设置4种工作模式。其中,模式0和模式2的波特率是固定的,而模式1和模式3的波特率是可变的,由定时器T1或T2的溢出率决定。串行口的4种工作模式对应着3种波特率。由于输入的移位时钟来源不同,所以,各种模式的波特率计算公式也不同。1模式0的波特率在模式0时,每个机器周期产生一个移位时钟,发送或接收一位数据。所以,波特率固定为振荡频率的1/12,且不受SMOD的影响。即 模式0的波特率=fosc/122模式2的波特率模式2波特率的产生与模式0不同,模式2的波特率由系统的振荡频率fosc和PCO

17、N的最高位SMOD确定,当SMOD=0时,波特率为fosc/64;若SMOD=1,则波特率foscc/32,即 模式2的波特率=fosc 3模式1和模式3的波特率模式1和模式3的移位时钟脉冲由定时器T1的溢出率决定,故波特率由定时器T1的溢出率与SMOD值共同决定,即 模式1和模式3的波特率=T1的溢出率当T1做波特率发生器使用时,最典型的用法是使T1工作在模式2(初值自动加载)、定时方式,若计数初值为X,则每过“256X”个机器周期。定时器T1就会产生一次溢出。为了避免因溢出而引起中断,此时应禁止中断。这时,溢出周期为 (256X)溢出率为溢出周期的倒数,所以 波特率=此时,定时器T1工作在

18、模式2时的初值为: X=256对于52子系列单片机,通过设置T2CON寄存器中TCLK和RCLK这两位,可选择T2做串行口的波特率发生器。当TCLK=1时,选T2做发送波特率发生器,当RCLK=1时,选T2做接收波特率发生器,当两者均为1时,选T2做发送/接收波特率发生器。当T2做波特率发生器时,波特率取决于它的溢出率,而与SMOD的状态无关。计数时钟可以来自内部,也可以来自外部,决定于T2CON中的C/位的值,并且T2的溢出信号要经过一个16分频计数器(见5.2节T2的内部结构框图)。当C/=0时,选用内部时钟,计数频率为fosc/2,波特率由下式给出波特率=式中RCAP2H,RCAP2L为

19、自动重装载值。当C/=1时,选用外部时钟,计数频率为外部时钟频率,其最高频率为fosc/24。波特率=例6-1 已知MCS-51系列单片机系统晶振频率为11.0592 MHz,选用定时器T1工作模式2做波特率发生器,波特率为2400波特,求初值X。解:设波特率选择位SMOD=0,则有 X=256=244=F4H所以,(TH1)=(TL1)=F4H。系统晶振频率选为11.0592 MHz是为了使初值为整数,从而产生精确的波特率。如果串行通信选用很低的波特率,可将定时器T1置于模式0或模式1,即13位或16位定时方式。在这种情况下,T1溢出时,需重装初值,从而会使波特率产生一定的误差。此时,可用改

20、变初值的办法加以调整。表6-2列出了各种常用的波特率及其初值。 表6-2 常用波特率与其他参数的关系波 特 率SMOD 定 时 器 C / 模式 初值 模式0: 1 M bit/s 12 MHz 模式2: 375 K bit/s 12 MHz 1 模式1、模式3:62.5 K bit/s 19.2 K bit/s 9.6 K bit/s 4.8 K bit/s 2.4 K bit/s 1.2 K bit/s 137.5 bit/s 110 bit/s 110 bit/s 12 MHz 11.059 MHz 11.059 MHz 11.059 MHz11.059 MHz11.059 MHz11.

21、986 MHz 6 MHz 12 MHz110000000000000000 2 2 2 2 2 2 2 2 1 FFH FDH FDH FAH F4H E8H 1DH 72H FEEBH63 串行口工作模式 MCS-51系列单片机通过软件编程可使串行口有四种工作模式,由SCON中的SM0、SM1两位进行定义。631 模式0模式0是同步移位寄存器输入/输出方式,用于扩展I/O口。8位串行数据的输入或输出都是通过RXD端,而TXD端用于送出同步移位脉冲,作为外接器件的同步移位信号。波特率固定为fosc/12。模式0以8位为一帧数据,没有起始位和停止位,低位在前、高位在后,其帧格式为:D0 D1D

22、2D3D4D5D6D7 模式0的发送是在TI=0的情况下,由一条写发送缓冲器的指令开始。例如 MOV SBUF ,A CPU执行完该指令,串行口即将8位数据从RXD端送出(低位在前),同时,在TXD端发出同步移位脉冲。8位数据发送完毕后,由硬件置位TI=1。可通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空;TI=1也可作为中断请求信号,申请串行口发送中断。当要发送下一组数据时,需用软件使TI清0,然后才可发送下一组数据。模式0的接收是在RI=0和REN=1的条件下,启动串行口接收。接收数据由RXD端输入(低位在前),TXD端仍发出同步移位脉冲。接收到8位数据以后,由硬件使R

23、I=1。可通过查询RI位来确定是否接收到一组数据,RI=1表示接收数据已装入接收缓冲器,可以由CPU用指令读取;RI=1也可作为中断请求信号,申请串行口接收中断。,当CPU读取数据后,需用软件使RI清0,以准备接收下一组数据。在模式0中,SCON寄存器中的SM2、RB8、TB8都不起作用,一般设它们为0即可。632 模式1串行口定义为模式1时,是串行异步通信方式。TXD为数据发送端,RXD为数据接收端。波特率可变,由定时器T1的溢出率以及SMOD位决定。一帧数据由10位组成,包括1位起始位、8位数据位、1位停止位,其帧格式为起始 D0 D1D2D3D4D5D6D7停止模式1的发送也是在TI=0

24、时由一条写发送缓冲器SBUF的指令开始的。启动发送后,串行口自动地插入一位起始位(逻辑0),接着是8位数据(低位在前),然后又插入一位停止位(逻辑1),在发送移位脉冲作用下,依次由TXD端发出。一帧信息发完之后,自动维持TXD端的信号为1。在8位数据发完之后,也就是在插入停止位时,使TI置1,用以通知CPU可以发送下一帧数据。模式1发送时的定时信号,也就是发送移位脉冲,是由定时器1送来的溢出信号经过16或32分频(取决于SMOD的值是0还是1)而取得的。因此,模式1的波特率受定时器控制,可以随着定时器初值的不同而变化。模式1的接收是在REN置1的前提下,串行口采样引脚RXD(P3.0)。在无信

25、号时,RXD端的状态为1,当采样到1至0的跳变时,确认是起始位“0”,就开始接收一帧数据。在接收移位脉冲的控制下,把收到的数据一位一位地送入输入移位寄存器,直到9位数据全部收齐(包括一位停止位)。当RI=0且停止位为1或者SM2=0时,8位数据送入接收缓冲器SBUF,停止位进入RB8,同时使RI置1;否则,8位数据不装入SBUF,放弃接收的结果。所以,模式1接收时,应先用软件清RI或SM2标志。在接收操作时,定时信号有两种:一种是接收移位脉冲,它的频率和发送波特率相同,也是由定时器1的溢出信号经过16或32分频而得到的;另一种是接收字符的检测脉冲,它的频率是接收移位脉冲的16倍,即在接收一位数

26、据的期间,有16个检测脉冲,并以其中的第7、8、9这3个脉冲作为真正的对接收信号的采样脉冲。对这3次采样结果采取三中取二的原则来决定所检测到的值。采取这种措施的目的在于抑制干扰。由于采样信号总是在接收位的中间位置,这样即可以避开信号两端的边沿失真,也可以防止由于收发时钟频率不完全一致而带来的接收错误。633 模式2模式2也是串行异步通信方式。TXD为数据发送端,RXD为数据接收端。一帧数据由11位组成,包括1位起始位、8位数据位、一位可编程位、1位停止位,其帧格式为: 起始 D0 D1D2D3D4D5D6D70/1停止模式2的波特率是固定的,且有两种。一种是fosc/32;另一种是fosc/6

27、4。模式2的发送包括9位有效数据,在启动发送之前,要把发送的第9位数值装入SCON寄存器中的TB8位,这第9位数据起什么作用串行口不做规定,完全由用户来安排。用户需根据通信协议用软件设置TB8(如做奇偶校验位或地址/数据标志位)。准备好TB8的值以后,在TI=0的条件下,就可以执行一条写发送缓冲器SBUF的指令来启动发送。串行口能自动把TB8取出,并装入到第9位数据的位置,逐一发送出去。发送完毕,使TI置1。这些过程与模式1基本相同。模式2的接收与模式1基本相似。不同之处是要接收9位有效数据。在模式1时是把停止位当作第9位数据来处理,而在模式2(或模式3)中存在着真正的第9位数据。因此,接收数

28、据真正有效的条件为:(1) RI=0;(2) SM2=0或收到的第9位数据为1。第一个条件是提供“接收缓冲器已空”的信息,即CPU已把SBUF中上次收到的数据读走,允许再次写入。第二个条件则提供了根据SM2的状态和所接收到的第9位状态来决定接收数据是否有效。若第9位是一般的奇偶校验位(单机通信时),应令SM2=0,以保证可靠的接收。若第9位作地址/数据标志位(多机通信时),应令SM2=1,则当第9位为1时,接收的信息为地址帧,串行口将接收该组信息。若上述两个条件成立,接收的前8位数据进入SBUF以准备让CPU读取,接收的第9位数据进入RB8,同时置位RI。若以上条件不成立,则这次接收无效,放弃

29、接收结果,即8位数据不装入SBUF,也不置位RI。634 模式3模式3同样是串行异步通信方式,其一帧数据格式,接收、发送过程与模式2完全相同,所不同的仅在于波特率。模式2的波特率只有固定的两种,而模式3的波特率由定时器T1的溢出率及SMOD决定。这一点与模式1相同。64 串行口应用举例MCS-51系列单片机的串行口基本上是异步通信接口,利用串行口控制寄存器SCON中的有关控制位,还可以实现多机通信。本节将介绍MCS-51系列单片机的串行口在作I/O口扩展及一般异步通信和多机通信中的应用。641 用串行口扩展I/O口串行口的模式0不属于通信,它的主要用途是可以和外接的移位寄存器结合来进行并行I/

30、O口的扩展。这种方法不占用片外RAM地址,而且还能简化单片机系统的硬件结构。缺点是操作速度较慢。当串行口别无它用时,就可利用串行口模式0来扩展并行I/O口。此处将给出实用电路和简单的控制指令。1扩展并行输出口MCS-51系列单片机的串行口在模式0时外接一个串入/并出的移位寄存器,就可以扩展一个8位并行输出口。所用的移位寄存器应该带有输出允许控制端,这样可以避免在数据串行输入时,并行输出端出现不稳定的输出。图6-5(a)是使用串入/并出移位寄存器CD4094(也可用74LS164)扩展并行输出口的接口电路。移位寄存器的STB为输出允许控制端,STB=1时,打开输出控制门,实现并行输出。 (a) 扩展并行输出口 (b) 扩展并行输入口 图6-5 利用串行口扩展并行I/O口串行口模式0的数据输出可以采用中断方式,也可以采用查询方式,但无论采用哪种方式都要借助于TI标志。采用中断方式时,是靠TI置位后产生中断申请,在中断服务程序中发送下一组数据。采用查询方式时,需查询TI的值,只要TI为0就继续查询,直到TI为1后结束查询,然后进入下一组数据的发送。无论采用什么方式,在使用串行口之前,都要先对SCO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1