片机的串行通信.ppt
《片机的串行通信.ppt》由会员分享,可在线阅读,更多相关《片机的串行通信.ppt(119页珍藏版)》请在三一办公上搜索。
1、,单片机串行通信I/O接口的结构串行通信控制寄存器单片机串行通信的工作方式以及串行通信应用。,第7章 单片机的串行通信,7.1 数据通信,在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。通信方式有两种,即并行通信和串行通信。通常根据信息传送的距离决定采用哪种通信方式。例如,在IBM-PC机与外部设备(如打印机等)通信时,如果距离小于30m,可采用并行通信方式;当距离大于30m时,则要采用串行通信方式。89C51单片机具有并行和串行二种基本通信方式。,返回,计算机与外部设备或计算机与计算机之间的数据交换称为通
2、信。通信分为并行通信与串行通信两种基本方式。并行通信:将数据的各位用多条数据线同时进行传送,外加地址线和通信控制线。优点是传输速率高,缺点是长距离传输成本高,可靠性差,只适用于近距离传输。串行通信:将数据分成1位1位的形式在一条传输线上逐 个地传送。优点是传输线少,长距离传送时成本低,缺 点是传输速率低。,7.1串行通信基础,7.1.1 串行通信基础,(a)并行通信方式(b)串行通信方式图7.1 并行和串行通信方式,串行通信的种类,根据数据传输方式的不同,可将串行通信分为同步 通信和异步通信。1 同步通信同步通信是一种数据连续传输的串行通信方式,通信时发送方把需要发送的多个字节数据和校验信息连
3、接起来,组成数据块。发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的各位数据。接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。,1 同步通信SYNC(Synchronous Data Communication),在这种通信方式中,数据块内的各位数据之间没有间 隔,传输效率高;发送、接收双方必须保持同步(使用同一时钟信号),且数据块长度越大,对同步要求就越高。同步通信设备复杂,成本高,一般只用在高速数字通信系统中。,2 异步通信异步通信是以字符帧为单位进行传输。每帧数据由4部分组成:起始位(占1位)、数据位(占 位)、奇偶校验位
4、(占位,也可以没有校验 位)、停止位(占1或2位)。图7.2中给出的是8位数据位、1位奇偶校验位和1位 停止位,加上1位起始位,共11位组成一个传输帧。,图7.2 异步通信字符帧格式,发送方:传送时先输出起始位“”作为联络信号,接下来的是数据位和奇偶校验位,停止位“1”表示一个字符的结束。其中,数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。接收方:传送开始后,接收设备不断检测传输线的电平状态,当收到一系列的“1”(空闲位或停止位)之后,检测到一个“”,说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。异步通信的特点:所需传输线少,设备开销较小,在单片机控制系统中得到广
5、泛的应用。但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。,串行通信数据传输方向,根据串行通信数据传输的方向,可将串行通信系统传输方式分为:单工方式、半双工方式和全双工方式,如图7.3所示。图7.3 数据传输方式,串行通信数据传输方向,1)单工:数据传输仅能从发送设备传输到接收设备。2)半双工:两个串行通信设备之间只有一条数据线,数据传输可以沿两个方向,但需要分时进行。3)全双工:是指两个串行通信设备之间可以同时进行 接收和发送。3种方式中,全双工方式的效率最高;半双工方式配置和编程相对灵活,传输成本较低;串行通信设备常选用半双工方式。,图7-4 串行通信中的数据传送方式
6、,波特率(Baud rate),串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒)。在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。如每秒传送240个字符,而每个字符格式包含10位,这时的波特率为10位(bit)240个/s=2400 bit/s。在异步串行通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。异步通信的传送速率在50b/s-19200b/s之间,常用于计算机到终端机和打印机之间的通
7、信、直通电报以及无线电通信的数据发送等。,串行通信的过程及通信协议,1、串并转换与设备同步 两个通信设备在串行线路上成功地实现通信必须解决两个问题:一是串并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数据在接收端被正确读出。,返回,1、串并转换与设备同步,(1)串并转换 串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送;并将接收的串行数据再转换成并行数据送到计算机中。,返回,1、串并转换与设备同步,在计算机串行发送数据之前,计算机内部的并行数据被送入移位寄存器并一位一位地输出,将并行数据转换成串
8、行数据。如图7-5所示。在接收数据时,来自通信线路的串行数据被压入移位寄存器,满8位后并行送到计算机内部。如图7-6所示。在串行通信控制电路中,串-并、并-串转换逻辑被集成在串行异步通信控制器芯片中。89C51单片机的串行口和IBM-PC相同。,返回,图7-5,返回,图7-6,返回,(2)设备同步,进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据脉冲。设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。,返回,(2)设备同步,采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包
9、括统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。,返回,2、串行通信协议,通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。在此只讨论异步串行通信协议和异步串性协议规定的字符数据的传送格式。,返回,2、串行通信协议,(1)起始位通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻
10、辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。,返回,2、串行通信协议,(2)数据位 当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8。IBM-PC中经常采用7位或8位数据传送,89C51串行口采用8位或9位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为并行数据。,返回,2、串行通信协议,(3)奇偶校验位 数据位发送完之后,可以发送
11、奇偶校验位。奇偶校验用于有限差错检测,通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。,返回,2、串行通信协议,(4)停止位约定 在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位,1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。,返回,2、串行通信协议,(5)波特率设置 通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位
12、来衡量的,这个速度叫波特率。如果数据以300个二进制位每秒在通信线上传送,那么传送速度为300波特,通常记为300b/s。,返回,7.2 单片机串行的通信原理及工作方式,7.2.1 单片机串行口的结构主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器,以及一个串行控制寄存器SCON等组成。,7.2.2 单片机串行口的控制,1串行口控制寄存器SCON,(1)SM0、SM1:串行口工作方式选择位。,(2)SM2:在方式2和方式3中主要用于多机通信控制。在方式2和3中,若SM21且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收SBUF 中,并置位RI产生中断请求;否则丢弃前8位数
13、据。若 SM20,则不论第九位数据(RB8)为1还是为0,都将 前8位送入接收SBUF中,并产生中断请求。方式0时,SM2必须置0。(3)REN:串行接收允许位。由软件置位或清除。软件置1时,串行口允许接收,清零后禁止接收。(4)TB8:发送数据的第9位。双机通信时它可作奇偶校验位;在多机通信中可作为区别地址帧或数据帧的标识位。若(RB8)0,说明是数据帧,则使接收中断标志位RI0,信息丢失;若(RB8)1,说明是地址帧,数据装入SBUF并置RI1,中断所有从机,被寻址的目标从机清除SM2以接收主机发来的一帧数据。其他从机仍然保持SM21。(5)RB8:在方式2和方式3中是接收的第9位数据。(
14、6)TI:发送中断标志位。(7)RI:接收中断标志位。,2专用寄存器PCON,PCON的各位的定义和功能如下:当SMODl时,方式1、2、3的波特率加倍,否则不加倍。,7.2.3 单片机串行口的工作方式,1方式0串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。2方式1在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和1位停止位。,3方式2串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其
15、中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。4方式3方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式2。,5串行通信的波特率,(1)方式0的波特率在方式0下,串行口通信的波特率是固定的,其值为fosc/12(fosc为主机频率)。,(2)方式2的波特率 串行口方式2波特率的产生与方式0不同,即输入的时钟源不同,其时钟输入部分入图7-15所示。控制接收与发送的移位时钟由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中SMOD位的值:SMOD=0时,波特率为fosc的1/64;SMOD=1时
16、,波特率为fosc的1/32。即方式2波特率2SMOD/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
17、;显示缓冲区未地址送入R0DL0: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,暗,
18、7.3.2 串行口扩展的键盘,在方式0下,串行口作同步移位寄存器用,以8位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的,为fosc12。串行数据由RXD(P3.0)端输入或输出。,CJNER1,08,LP1 SJMPRCVIN1:MOVA,R0 ADDA,A JMPADPTRTAB:AJMPOPR0 AJMPOPR1 AJMPOPR7OPR0:LJMPSTARTOPR7:LJMPSTART END,ORG0100HSTART:MOVR7,20MOVR0,50HMOVDPTR,#TABRCVI:MOV SCON,10HJNBRI,$CLRRIMOVA,SBUFM
19、OVR0,#0MOVR1,#0LP1:RRCAJNCN1INCR0INCR1,7.3.3 双机通信,编程使乙机从甲机接收16个字节数据块,并存入片外3000H300FH单元。接收过程中要求判奇偶校验标志RB8。若出错则置F0标志为1,若正确则置F0标志为0,然后返回。,【例7-3】编程把甲机片内RAM50H5FH单元中的数据块从串行口输出。定义在方式3下发送,TB8作奇偶校验位。采用定时器1方式2作波特率发生器,波特率为1200波特,fosc110592MHz,预置值TH10E8H。,发送子程序如下:,MOVTMOD,#20H;设置定时器1为方式2 MOVTL1,0E8H;设预置值 MOVTH
20、1,0E8H SETBTRI;启动定时器1 MOVSCON,0C0H;设置串行口为方式3 MOVPCON,00H;SMOD0 MOVR0,#50H;设数据块指针 MOVR7,10H;设数据长度10HTRS:MOVA,R0;取数据送至A MOVC,P MOVTB8,C;奇偶位P送至TB8 MOVSBUF,A启动发送 WAIT:JNBTI,$;判1帧是否发送完 CLRTI INCR0;更新数据单元 DJNZR7,TRS;循环发送至结束 RET,接收子程序编程如下:,MOVTMOD,20H;设置定时器1为方式2 MOVTL1,0E8H;设预置值 MOVTH1,0E8H SETB TR1;启动定时器1
21、 MOVSCON,0C0H;设置串行口为方式3 MOVPCON3,00H;SMOD0 MOVDPTR,3000H;设置数据块指针 MOVR7,10H;设数据块长度 SETB REN;允许接收WAIT:JNBRI,$;判1帧是否接收完 CLRRI,MOVA,SBUF;读入1帧数据 JNBPSW.0,PZ;奇偶位P为0则跳转 JNBRB8,ERR;Pl,RB80则出错 SJMPYES;二者全为1则正确PZ:JBRB8,ERR;P0,RB8l则出错YES:MOVXDPTR,A;正确,存放数据 INCDPTR;修改地址指针 DJNZR7,WAIT;判断数据块接收完否 CLRPSW.5;接收正确且接收完
22、清F0标志 RET;返回ERR:SETBPSW.5;出错则置F0标志为“l”RET;返回,7.3.4 多机通信,多机通信的实现,主要靠主、从机之间正确地设置与判断多机通信控制位SM2和发送或接收的第9数据位(D8)。以下简述如何实现多机通信。,多机之间的通信过程可归纳如下:,(1)主、从机均初始化为方式2或方式3,置SM21,允许中断。(2)主机置TB81,发送要寻址的从机地址。(3)所有从机均接收主机发送的地址,并进行地址比较。(4)被寻址的从机确认地址后,置本机SM20,向主机返回地址,供主机核对。(5)核对无误后,主机向被寻址的从机发送命令,通知从机接收或发送数据。(6)通信只能在主、从
23、机之间进行,两个从机之间的通信需通过主机作中介。(7)本次通信结束后,主、从机重置SM21,主机可再对其他从机寻址。,例:主机向02号从机发送50H5FH中的数据;02号从机将接收到的数据放到内RAM30H 3FH单元中。,主机程序:ORG 0030HMAIN:MOV SCON,98HM1:MOV SBUF,02HL1:JNB TI,$CLR TI JNB RI,$MOV A,SUBF XRL A,#02H JZ RHT AJMP M1,RHT:CLR TB8 MOV R0,50HM1:MOV R7,10HL3:MOV A,R0 MOV SBUF,A JNB TI,$CLR TI INC R0
24、 DJNZ R7,L3 AJMP MAIN END,从机程序:ORG 0030HMAIN:MOV R0,30H MOV R6,10HSI:MOV SCON,0B0HSR1:JNB RI,$CLR RISR2:MOV A,SUBF XRL A,#02H JNZ SR1 CLR SM2 MOV SBUF,#02H JNB TI,$CLR TI,SR3:JNB RI,$CLR RI JNB TB8,RHT SETB SM2 SJMP SR1RHT:MOV A,SBUF MOV R0,A INC R0 DJNZ R6,SR3 AJMP SI END,7.4 RS-232C标准接口总线及串行通信硬件设计
25、,前面介绍了有关串行通信的基本知识及单片机的串行口结构。下面介绍PC机与单片机间串行通信的硬件和软件设计。在工业自动控制、智能仪器仪表中,单片机的应用越来越广泛。随着应用范围的扩大以及根据解决问题的需要,对某些数据要做较复杂的处理。由于单片机的运算功能较差,对数据进行较复杂的处理时,往往需要借助计算机系统。因此,单片机与PC机进行远程通信更具有实际意义。利用89C51单片机的串行口与PC机的串行口COM1或COM2进行串行通信,将单片机采集的数据传送到PC机中,由PC机的高级语言或数据库语言对数据进行整理及统计等复杂处理;或者实现PC机对远程前沿单片机进行控制。,返回,7.4 RS-232C标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信
链接地址:https://www.31ppt.com/p-5997869.html