片机的串行通信.ppt
《片机的串行通信.ppt》由会员分享,可在线阅读,更多相关《片机的串行通信.ppt(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、v单片机串行通信单片机串行通信I/O接口的结构接口的结构v串行通信控制寄存器串行通信控制寄存器v单片机串行通信的工作方式单片机串行通信的工作方式v以及串行通信应用。以及串行通信应用。第第7章章 单片机的串行通信单片机的串行通信7.1 数据通信数据通信在实际工作中,计算机的在实际工作中,计算机的CPU与外部设备之间常常要进与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。换信息,所有这些信息交换均可称为通信。通信方式有两种,即并行通信和串行通信。通信方式有两种,即并行通信和串行通信。通常根据
2、信息传送的距离决定采用哪种通信方式。通常根据信息传送的距离决定采用哪种通信方式。例如,在例如,在IBM-PC机与外部设备(如打印机等)通信时,机与外部设备(如打印机等)通信时,如果距离小于如果距离小于30m,可采用并行通信方式;当距离大于,可采用并行通信方式;当距离大于30m时,则要采用串行通信方式。时,则要采用串行通信方式。89C51单片机具有并单片机具有并行和串行二种基本通信方式。行和串行二种基本通信方式。返回计算机与外部设备或计算机与计算机之间的数据交换称为通信。通信分为并行通信与串行通信两种基本方式。并行通信:将数据的各位用多条数据线同时进行传送,外加地址线和通信控制线。优点是传输速率
3、高,缺点是长距离传输成本高,可靠性差,只适用于近距离传输。串行通信:将数据分成1位1位的形式在一条传输线上逐 个地传送。优点是传输线少,长距离传送时成本低,缺 点是传输速率低。7.1串行通信基础串行通信基础7.1.1 串行通信基础串行通信基础(a)并行通信方式(b)串行通信方式图7.1 并行和串行通信方式串行通信的种类 根据数据传输方式的不同,可将串行通信分为同步 通信和异步通信。1 同步通信同步通信是一种数据连续传输的串行通信方式,通信时发送方把需要发送的多个字节数据和校验信息连接起来,组成数据块。发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的
4、各位数据。接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。1 同步通信同步通信SYNC(Synchronous Data Communication)在这种通信方式中,数据块内的各位数据之间没有间 隔,传输效率高;发送、接收双方必须保持同步(使用同一时钟信号),且数据块长度越大,对同步要求就越高。同步通信设备复杂,成本高,一般只用在高速数字通信系统中。2 异步通信异步通信是以字符帧为单位进行传输。每帧数据由4部分组成:起始位(占1位)、数据位(占 位)、奇偶校验位(占位,也可以没有校验 位)、停止位(占1或2位)。图7.2中给出的是8位数据位、1位奇偶校验位和1位 停止位,
5、加上1位起始位,共11位组成一个传输帧。图7.2异步通信字符帧格式 发送方:传送时先输出起始位“”作为联络信号,接下来的是数据位和奇偶校验位,停止位“1”表示一个字符的结束。其中,数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。接收方:传送开始后,接收设备不断检测传输线的电平状态,当收到一系列的“1”(空闲位或停止位)之后,检测到一个“”,说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。异步通信的特点:所需传输线少,设备开销较小,在单片机控制系统中得到广泛的应用。但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。串行通信数据传输方向根据串行通信数据
6、传输的方向,可将串行通信系统传输方式分为:单工方式、半双工方式和全双工方式,如图7.3所示。图7.3 数据传输方式串行通信数据传输方向1)单工:数据传输仅能从发送设备传输到接收设备。2)半双工:两个串行通信设备之间只有一条数据线,数据传输可以沿两个方向,但需要分时进行。3)全双工:是指两个串行通信设备之间可以同时进行 接收和发送。3种方式中,全双工方式的效率最高;半双工方式配置和编程相对灵活,传输成本较低;串行通信设备常选用半双工方式。图图7-4 串行通信中的数据传送方式串行通信中的数据传送方式波特率(Baud rate)串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每
7、秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒)。在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。如每秒传送240个字符,而每个字符格式包含10位,这时的波特率为10位(bit)240个/s=2400 bit/s。在异步串行通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。异步通信的传送速率在50b/s-19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。串行通信的过程及通信协议串行通信的过程及通信协议1、串、串并转换
8、与设备同步并转换与设备同步 两个通信设备在串行线路上成功地实现通信两个通信设备在串行线路上成功地实现通信必须解决两个问题:必须解决两个问题:一是串一是串并转换,即如何把要发送的并行数据并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;串行化,把接收的串行数据并行化;二是设备同步,即同步发送设备与接收设备的工二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数据在接收端被正确读出。作节拍,以确保发送数据在接收端被正确读出。返回1、串、串并转换与设备同步并转换与设备同步(1)串)串并转换并转换 串行通信是将计算机内部的并行数据转换成串行通信是将计算机内部的并行数据转换成串行
9、数据,将其通过一根通信线传送;并将串行数据,将其通过一根通信线传送;并将接收的串行数据再转换成并行数据送到计算接收的串行数据再转换成并行数据送到计算机中。机中。返回1、串、串并转换与设备同步并转换与设备同步在计算机串行发送数据之前,计算机内部的并行数在计算机串行发送数据之前,计算机内部的并行数据被送入移位寄存器并一位一位地输出,将并行数据被送入移位寄存器并一位一位地输出,将并行数据转换成串行数据。如据转换成串行数据。如图图7-5所示。所示。在接收数据时,来自通信线路的串行数据被压入移在接收数据时,来自通信线路的串行数据被压入移位寄存器,满位寄存器,满8位后并行送到计算机内部。位后并行送到计算机
10、内部。如如图图7-6所示。所示。在串行通信控制电路中,串在串行通信控制电路中,串-并、并并、并-串转换逻辑串转换逻辑被集成在串行异步通信控制器芯片中。被集成在串行异步通信控制器芯片中。89C51单片单片机的串行口和机的串行口和IBM-PC相同。相同。返回图图7-5返回图图7-6返回(2)设备同步)设备同步进行串行通信的两台设备必须同步工作才能进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采有效地检测通信线路上的信号变化,从而采样传送数据脉冲。样传送数据脉冲。设备同步对通信双方有两个共同要求:设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;一是通
11、信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。二是通信双方必须能产生相同的传送速率。返回(2)设备同步)设备同步采用统一的编码方法确定了一个字符二进制表示值采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的逻辑的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑电平规定,即电平信号高低与逻辑1和逻辑和逻辑0的固定的固定对应关系。对应关系。通信双方只有产生相同的传送速率,才能确保设通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频备同步,这就要求发送设备和接收设备采用相同频率的时钟。
12、发送设备在统一的时钟脉冲上发出数据,率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信接收设备才能正确检测出与时钟脉冲同步的数据信息。息。返回2、串行通信协议、串行通信协议 通信协议是对数据传送方式的规定,包括数据格通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。议包括同步协议和异步协议两种。在此只讨论异步串行通信协议和异步串性协议规在此只讨论异步串行通信协议和异步串性协议规定的字符数据的传送格式。定的字
13、符数据的传送格式。返回2、串行通信协议、串行通信协议(1)起始位)起始位通信线上没有数据被传送时处于逻辑通信线上没有数据被传送时处于逻辑1状态。状态。当发送设备要发送一个字符数据时,首先发出一个逻辑当发送设备要发送一个字符数据时,首先发出一个逻辑0信信号,这个逻辑低电平就是起始位。号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调
14、同步。位前协调同步。返回2、串行通信协议、串行通信协议(2)数据位)数据位 当接收设备收到起始位后,紧接着就会收到数据位。数据当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是位的个数可以是5、6、7或或8。IBM-PC中经常采用中经常采用7位或位或8位位数据传送,数据传送,89C51串行口采用串行口采用8位或位或9位数据传送。这些数据位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为并行
15、数据。收设备中被转换为并行数据。返回2、串行通信协议、串行通信协议(3)奇偶校验位)奇偶校验位 数据位发送完之后,可以发送奇偶校验位。奇偶校验用于数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方需约定已知的奇偶校验方式。如果有限差错检测,通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须的个数必须是偶数;如果选择奇校验,那么逻辑是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。的个数必须是奇数。返回2、串行通信协议、串行通信协议(4)停止位约定)停止位约定 在奇偶位或数据位(当无奇偶校验时
16、)之后发送的是停止在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是位。停止位是一个字符数据的结束标志,可以是1位,位,1.5位位或或2位的高电平。接收设备收到停止位之后,通信线路上便位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑又恢复逻辑1状态,直至下一个字符数据的起始位到来。状态,直至下一个字符数据的起始位到来。返回2、串行通信协议、串行通信协议(5)波特率设置)波特率设置 通信线上传送的所有位信号都保持一致的信号持续时间,通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度每一位的信号
17、持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。如是以每秒多少个二进制位来衡量的,这个速度叫波特率。如果数据以果数据以300个二进制位每秒在通信线上传送,那么传送速个二进制位每秒在通信线上传送,那么传送速度为度为300波特,通常记为波特,通常记为300b/s。返回7.2单片机串行的通信原理及工作方式 7.2.1 单片机串行口的结构单片机串行口的结构主主要要由由两两个个数数据据缓缓冲冲寄寄存存器器SBUF和和一一个个输输入入移移位位寄寄存存器器,以以及一个串行控制寄存器及一个串行控制寄存器SCON等组成。等组成。7.2.2单片机串行口的控制 1串行口控制
18、寄存器串行口控制寄存器SCON(1)SM0、SM1:串行口工作方式选择位。:串行口工作方式选择位。(2)SM2:在方式2和方式3中主要用于多机通信控制。在方式2和3中,若SM21且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收SBUF 中,并置位RI产生中断请求;否则丢弃前8位数据。若 SM20,则不论第九位数据(RB8)为1还是为0,都将 前8位送入接收SBUF中,并产生中断请求。方式0时,SM2必须置0。(3)REN:串行接收允许位。由软件置位或清除。软件置1时,串行口允许接收,清零后禁止接收。(4)TB8:发送数据的第9位。双机通信时它可作奇偶校验位;在多机通信中可作为
19、区别地址帧或数据帧的标识位。若(RB8)0,说明是数据帧,则使接收中断标志位RI0,信息丢失;若(RB8)1,说明是地址帧,数据装入SBUF并置RI1,中断所有从机,被寻址的目标从机清除SM2以接收主机发来的一帧数据。其他从机仍然保持SM21。(5)RB8:在方式2和方式3中是接收的第9位数据。(6)TI:发送中断标志位。(7)RI:接收中断标志位。2专用寄存器专用寄存器PCONPCON的各位的定义和功能如下:当SMODl时,方式1、2、3的波特率加倍,否则不加倍。7.2.3 单片机串行口的工作方式单片机串行口的工作方式1方式0串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波
20、特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。2方式1在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和1位停止位。3方式2串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。4方式3方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式2。5串行通信的波特率(1)方式)方式0的波特率的波特率在方式0下,串行口通信的波特率是固定的,其值为fosc/12
21、(fosc为主机频率)。(2)方式)方式2的波特率的波特率 串行口方式串行口方式2波特率的产生与方式波特率的产生与方式0不同,即输入的时钟源不同,其时不同,即输入的时钟源不同,其时钟输入部分入钟输入部分入图图7-15所示。所示。控制接收与发送的移位时钟由振荡频率控制接收与发送的移位时钟由振荡频率fosc的第二节拍的第二节拍P2时钟(即时钟(即fosc/2)给出,所以,方式)给出,所以,方式2波特率取决于波特率取决于PCON中中SMOD位的值:位的值:SMOD=0时,波特率为时,波特率为fosc的的1/64;SMOD=1时,波特率为时,波特率为fosc的的1/32。即方式即方式2波特率波特率 2
22、SMOD/64fosc串行口方式串行口方式2波特率的产生波特率的产生返回(3)方式1或方式3的波特率在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率是可变的。波特率的公式为:式中:K为定时器T1的位数。7.3单片机串行口的应用7.3.1串行口扩展显示器【例7-1】用8位串入并出移位寄存器74HC164扩展显示器。74HC164 8 位串入、并出移位寄存器位串入、并出移位寄存器功能:把数据从显示缓冲区送到数码管。入口;将要显示的数放在以DIS0为首的8个单元中。出口:把预置的数输出以更新原有的显示。MOVR2,08H;显示8个数码管 MOVR0,DIS7;显示缓冲区未地址送入R0
23、DL0:MOVA,R0;取要显示数作查表偏移量 MOVDPTR,TAB;指向字形表首 MOVCA,ADPTR;查表得字形码 MOVSBUF,A;发送显示DL1:JNBT1,DL1;等待发送完一帧 CLRT1;清中断标志,准备继续发送 DECR0;更新显示单元 DJNZR2,DL0;重复显示所有数码管TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4,DB 92H,82H,0F8H,80H,90H;5,6,7,8,9,DB 88H,83H,0C6H,0A1H,86H;A,B,C,D,E,DB 8EH,0BFH,8CH,0FFH;F,P,暗 7.3.2 串行口扩展的键
24、盘串行口扩展的键盘在方式0下,串行口作同步移位寄存器用,以8位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的,为fosc12。串行数据由RXD(P3.0)端输入或输出。CJNER1,08,LP1 SJMPRCVIN1:MOVA,R0 ADDA,A JMPADPTRTAB:AJMPOPR0 AJMPOPR1 AJMPOPR7OPR0:LJMPSTARTOPR7:LJMPSTARTEND ORG0100HSTART:MOVR7,20MOV R0,50HMOV DPTR,#TABRCVI:MOV SCON,10HJNB RI,$CLR RIMOV A,SBUFMOV
25、R0,#0MOV R1,#0LP1:RRCAJNC N1INC R0INC R17.3.3双机通信 编程使乙机从甲机接收16个字节数据块,并存入片外3000H300FH单元。接收过程中要求判奇偶校验标志RB8。若出错则置F0标志为1,若正确则置F0标志为0,然后返回。【例7-3】编程把甲机 片 内 RAM50H 5FH单元中的数据块从串行口输出。定义在方式3下发送,TB8作奇偶校验位。采用定时器1方式2作波特率发生器,波特率为1200波 特,fosc 110592MHz,预置值TH10E8H。发送子程序如下:MOVTMOD,#20H;设置定时器1为方式2 MOVTL1,0E8H ;设预置值 M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信
限制150内