




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章MCS-51串行通信技术
主要内容:1.串行通信基础2.MCS-51串行接口的结构和工作原理3.MCS-51串行接口的工作方式4.MCS-51串行接口的应用编程讲述重点:1.MCS-51串行接口的工作原理及工作方式2.MCS-51串行接口应用程序设计方法第六章-------1wyx
6.1串行通信基础
1.并行通信并行通信是指所传送的数据各位同时进行传送。其优点是传送速度快,缺点是传输线多,通信线路费用较高,并行传送适用于近距离、传送速度高的场合。2.串行通信串行通信时,传送数据的各位按分时顺序一位一位地传送(例如先低位、后高位)。其优点是传输线少,传送通道费用低,故适合长距离数据传送。缺点是传送速度较低。当通信的距离在30m以上时,应采用串行通信方式。
一、并行通信与串行通信第六章-------2wyx串行通信是系统A和系统B进行数据交换的过程,该过程按照系统间通信的方向和时间关系,可分为单工、半双工和全双工。1.单工方式——通信双方只有一条单向传输线,只允许数据由一方发送,另一方接收。2.半双工方式——通信双方只有一条双向传输线,允许数据双向传送,但每个时刻上只能有一方发送,另一方接收,这是一种能够切换传送方向的单工方式,3.全双工方式——通信双方有两条传输线,允许数据同时双向传送,其通信设备应具有完全独立的收发功能。二、串行通信的分类第六章-------3wyx三、串行通信的方式为了准确地发送、接收信息,发送者和接受者双方必须协调工作。这种协调方法,从原理上可分成两种:异步串行通信和同步串行通信。1.异步通信方式异步通信方式时,数据一帧一帧地传送,不需要同步时钟,实现简单。在异步方式中,为了避免连续传送过程中的误差积累,每个字符都要独立确定起始和结束位,是以字符为单位进行传输,其通信协议是起止式异步通信协议(Protocol)。字符与字符之间的传送是异步的,而字符的位与位之间是同步的。第六章-------4wyx2.同步通信方式
在同步通信中,在数据或字符开始传送前用同步字符(SYNC)来指示(常约定l~2个),由同一个时钟信号来实现发送端和接收端同步,当检测到规定的同步字符后,接下来就连续按顺序传送数据。同步通信方式由于不采用起始和停止位,是在同步字符后可以接较大的数据区,同步字符所占部分很小,因此有较高的传送效率。第六章-------5wyx3.说明异步通信:1)两个字符间的间隔任意2)发送时钟与接收时钟不必完全同步,只要比较接近3)在同一传输系统中,通信双方协议的数据格式是相同的同步通信:1)字符间不允许有间隔,在没有信息传输时,要填上同步字符2)接收端在收到确定数量的同步字符后,才认为传输开始3)要求通信双方保持完全的同步MCS-51单片机中串行接口只可实现异步串行通信方式第六章-------6wyx
假如数据传送的速率是120个字符/秒,每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则传送的波特率为:10×120=1200位/秒=1200波特(bps)每一位的传送时间即为波特率的倒数四、波特率在通信中发、接双方有两次约定字符格式————帧格式传送速率————波特率
波特率是通信双方对数据传送速率的约定,表示每秒钟传送二进制数码的位数,单位是bps。在串行通信中,要求发送方和接收方必须有相同的波特率,目前串行通信中常用的波特率有19200,9600,4800,2400,600和300等。第六章-------7wyx
6.2MCS-51的串行通信接口
一、串行接口的结构及工作原理基本组成:两个独立的数据缓冲器SBUF(一个用作接收,一个用作发送)以及发送控制器、接收控制器、输入移位寄存器和输出控制门等组成。第六章-------8wyx
用户可访问的三个地址单元:SBUF:两个SBUF共用一个地址99H。发送SBUF只写不读,接收SBUF只读不写,由所用指令是发送还是接收来决定对哪个SBUF进行操作;SCON:串行口控制寄存器PCON:电源控制寄存器二、串行口控制寄存器SCONSCON是一个可位寻址的专用寄存器,用来设定串行口的工作方式、控制串行口的接收/发送以及状态标志。SCON的字节地址为98H,位地址为98H~9FH。其格式如下:
1)SM0、SMl:串行口工作方式选择位,可选择四种工作方式SM0SM1工作方式功能波特率00方式0同步移位寄存器
fosc/1201方式110位异步收发由定时器控制10方式211位异步收发fosc/32或fosc/6411方式311位异步收发由定时器控制第六章-------9wyx2SMOD×fosc642)SM2:为多机通信控制位在方式0中:必须使SM2=0在方式1中:SM2也设置为0,此时只有接收到有效的停止位时,才能置位RI。在工作方式2和方式3中:若SM2=1:当接收到第9位数据(RB8)为1,才将接收到的前8位数据装入SBUF,并置位RI;否则将接收到的数据丢弃。若SM2=0:不论第9位数据(RB8)是否为1,都将接收到的前8位数据装数据装入SBUF,并置位RI。3)REN:允许接收控制位。该位由软件置位或清零。4)TB8:在工作方式2或方式3时,该位为发送的第9位数据,可按需要由软件置位或清零。在许多通信协议中,该位常作为奇偶校验位。在MCS-5l多机通信中,TB8的状态用来表示发送的是地址帧还是数据帧,TB8=1时,为地址帧,TB8=0时,为数据帧。
多机通信时,SM2必须置1。双机通信时,通常使SM2=0。第六章-------10wyx6)TI:发送中断标志位。方式0中,串行发送完第8位数据后,由硬件置位;在其它方式中,在发送停止位开始时,由硬件置位。TI=1时,表示帧发送结束,其状态既可供软件查询使用,也可申请中断。在任何方式中,TI都必须由软件清0。7)RI:接收中断标志。在方式0中,接收完第8位数据后,由硬件置位;在其它方式中,当接收到停止位的中间时由硬件置位。RI=1时,表示帧接收结束,其状态既可供软件查询使用,也可申请中断。RI也必须靠软件清0。单片机复位时,SCON中的所有位均为0。
注意:不管是否采用中断控制,数据发送前必须用软件将TI清零;接收数据后将RI清零;5)RB8:在工作方式2或方式3时,存放接收到的第9位数据,代表着接收数据的某种特征。例如,可能是奇偶校验位,或为多机通信中的地址/数据标识位。在方式0中,RB8未用。在方式1中,若SM2=0,则RB8用于存放接收到的停止位。第六章-------11wyx
PCON的直接地址为87H,不能位寻址。PCON中只有最高位SMOD与串行口工作有关,其余几位用于电源的控制。PCON的格式如下:SMOD:波特率选择位。在方式1、方式2和方式3时,串行通信的波特率和2SMOD成正比。即当SMOD=1时,波特率乘2;当SMOD=0时,波特率不变。GF1和GF0:通用标志位,用户可以通过指令改变它们的状态。PD:掉电控制位。主要针对CHMOS型单片机设计,当PD为高电平时,单片机工作于掉电(停机)方式。IDL:空闲控制位。也是针对CHMOS型单片机设计,当IDL为高电平时,单片机工作于空闲(等待)方式。三、电源控制寄存器PCON第六章-------12wyx
MCS-51单片机的串行口为可编程口,可编程选择四种工作方式,其中方式0主要用于扩展并行输入输出口,方式1~方式3为异步串行通信方式。
1.方式0
串行口工作方式0为同步移位寄存器输入输出方式,其数据传输波特率固定为fosc/12。串行数据由RXD(P3.0)端输入/输出,同步移位脉冲由TXD(P3.1)端输出。数据的发送/接收以8位为一帧,低位在前,无起始位、奇偶位及停止位。执行一条写SBUF指令就开始发送;接收完成后8位数据进入SBUF。四、串行接口的工作方式
RXDTXDAB74LS164CLK
QAQBQCQDQEQFQGQH
如图为外接移位寄存器作并行输出的电路。串入并出移位寄存器第六章-------13wyx方式1下的传送波特率是可变的,取决于定时器T1的溢出速率。2.方式1串行口工作在方式1时,是作为10位异步通信接口,发送/接收的一帧数据包括10位:1位起始位,用0来标识,8位数据位(低位在前),1位停止位,用1来标识。其帧格式为:1)发送过程
当CPU执行任何一条写入SBUF的指今后,便启动串行口发送,发送的数据由TXD端输出。串行接口能自动地在数据的前后插入一位起始位和一位停止位,在发送移位脉冲的作用下依次从TXD端发送,发送完一帧信息时。发送中断标志TI置1,请求中断。第六章-------14wyx2)接收过程当允许接收控制位REN=1时,CPU便以所选波特率的16倍速率采样RXD端电平。当接收电路连续8次采样到RXD线为低电平时,相应检测器便可确认RXD线上有起始位。此后,接收电路就改为对第7、8、9三个脉冲采样到的值进行位检测,并以三中取二的原则来确定所采样数据的值。当一帧数据接收完毕,以下两个条件同时满足:(1)RI=0,即上一帧数据接收完成时,RI=1的中断请求已被响应,SBUF中的数据已被取走;(2)SM2=0或接收到停止位为1。则这次接收才有效,将8位数据装入接收缓冲器SBUF,停止位装入RB8,并将RI置1,申请中断。否则数据将丢失。第六章-------15wyx3.方式2和方式3
串行口工作在方式2和方式3时,均为11位异步通信接口。由TXD发送,RXD接收。发送/接收的一帧11位信息组成为:l位起始位(0),8位数据位(低位在前),1位可编程位(第9数据位)和1位停止位(1)。发送时,可编程位(TB8)可设置为0或l,也可将奇偶校验位装入TB8,从而进行奇偶校验;接收时,可编程位送入SCON中的RB8。
方式2和方式3的工作原理类同,唯一的区别仅在于:方式2的波特率为fosc/32或fosc/64,而方式3的波特率是可变的,取决于定时器Tl的溢出率。
第六章-------16wyx帧格式如图:1)发送过程
发送前,先根据通信协议由软件设置SCON中的TB8。当CPU执行一条写入SBUF的指令后,便立即启动发送器开始发送。串行口能自动地将TB8装入到第9位数据位的位置,再逐一由TXD端发送出去。发送完一帧信息时,置TI为1,请求中断。2)接收过程
当REN=1时,CPU开始对RXD不断采样,采样速率仍为波特率的16倍,采样过程与方式1相同。当采至最后一位时,若以下2个条件满足,才将8位数据装入SBUF,第9位数据装入RB8并置位RI=1。(1)RI=0,意味着SBUF中的数据已被取走,缓冲器为空;(2)SM2=0或接收到的第9位数据位为1时。第六章-------17wyx3)用第9位数据作奇偶校验位方式2、方式3也可以像方式1一样用于点对点的异步通信。在数据通信中由于传输距离较远,数据信号在传送过程中会产生畸变,从而引起误码。通常可在通信软件上采取纠错措施。MOVA,@R0MOVC,PMOVTB8,C
如将作为第9位数据作奇偶校验位,将其置入TB8位一同发送。在接收端的接收程序将数据的奇偶校验值与RB8进行比较MOVA,SBUF判断校验位…….第六章-------18wyx发送端发送数据及其奇偶校验位的程序段为:
TT:MOVSCON,#80H;串口方式2MOVA,@R0;取待发送的数据MOVC,PSW.0;奇偶标志位置入TB8中MOVTB8,CMOVSBUF,A;启动发送,数据连同校验位一块发送LOOP:JBCTI,NEXTSJMPLOOPNEXT:……第六章-------19wyx接收端应取出该奇偶位进行核对,若接收到的奇偶位(RB8)与接收到数据的奇偶位相同,则认为接收数据正确。相应的接收程序段应为:
MOVSCON,#90H;方式2允许接收(REN为1)LOOP:JBCRI,RECN;等待接收
SJMPLOOPRECN:MOVA,SBUF;读入接收的一帧数据JBPSW.0,ONE;接收数据的奇偶值为1,转ONEJBRB8,ERR;接收数据的奇偶值为0,而RB8=1,转ERRSJMPREXTONE:JNBRB8,ERR;RB8=0,转ERRREXT:……;接收正确处理ERR:……
;接收有错处理第六章-------20wyx
串行口在不同的工作方式下。其波特率是不同的。在方式0时,每个机器周期发送或接收一位数据,因此波特率固定为fosc/12。方式2的波特率也是固定的,其波特率=2SMOD×fosc/64,其中SMOD为波特率加倍位,它附设在电源控制寄存器PCON的最高位,可由软件编程选择。
若SMOD=0,波特率=2SMOD×fosc/64=fosc/64;
若SMOD=1,波特率=2SMOD×fosc/64=fosc/32。波特率=×T1溢出率4.串行口的通信波特率
方式1和方式3的波特率可变,与定时器T1或T2的溢出率有关。51子系列中常用定时器T1作为波特率发生器,这时方式1和方式3的波特率由定时器T1的溢出率和SMOD确定如下:第六章-------21wyx
其中T1溢出率取决于其计数速率和定时器的初值。通常采用T1的工作方式2,即自动重装载方式作为波特率发生器。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。(256-X)×T机
则串行口方式1或3的波特率:实际应用中,通常是先确定波特率、再计算定时器T1的计数初值,然后进行T1的初始化。由上面波特率的计算公式,可求出定时器T1方式2的计数初值为:T1溢出周期为:T1的溢出率:第六章-------22wyx例6-1:选用定时器T1,工作方式2作波特率发生器,波特率为2400bps。已知fosc=11.0592MHz,求计数初值X。解:设波特率控制位SMOD=0,不增倍时=256-(11.0592×106×20)/(384×2400)=0F4H如果串行通信选用很低的波特率,设置定时器T1为方式0或方式l定时模式时,当T1产生溢出时,需要重装计数初值,故波特率会产生一定的误差。第六章-------23wyx五、串行口的初始化在使用串行口之前,必须对它进行初始化编程。主要是设置产生波特率的定时器T1、串行口控制和中断控制。一般步骤如下:1.对TMOD寄存器送控制字,确定定时器T1的工作方式;(方式1/3)2.根据所需的波特率,计算定时器T1的计数初值,并装入初值寄存器,启动定时器T1工作;(方式1/3)3.对SCON寄存器送控制字,设定串行口的工作方式(方式0/2不需前两个步骤;4.对PCON寄存器送控制字,设置SMOD位;(方式0不需此步)5.选择查询方式或中断方式,在使用中断方式进行串行通信时,需对IE编程。第六章-------24wyx
CD4094是一种8位的串入并出移位寄存器,DATA为串行数据输入端,CLK为同步脉冲输入端。STB为控制端:若STB=0,则8位并行输出数据关闭,但允许串行数据从DATA输入;若STB=1,DATA输入端关闭,但允许8位数据并行输出。设串行口采用中断方式发送数据。第六章-------25wyx例6-2:如图所示,用MCS-51单片机的串行口外接串入并出芯片CD4094扩展并行口控制一组发光二极管,使发光二极管从左至右延时轮流显示。8751P1.0RXDTXDDATACLKSTBCD4094Q1Q2Q3Q4Q8六、串行接口应用举例1.方式0应用举例
方式0为同步移位寄存器工作方式,通信波特率固定为fosc/12,单片机和外接的移位寄存器结合可以扩展I/O接口。主程序:
ORG2000HMAIN:MOVSCON,#00H;串行口初始化为方式0CLRP1.0;禁止CD4094并行输出MOVA,#80H;起始显示码送AMOVSBUF,A;串行输出LOOP:SJMP$
;等待串行口输出完第六章-------26wyx中断服务程序:
ORG0023HLJMPSBVORG0100HSBV:
SETBP1.0;点亮发光二极管LCALLDELAY;点亮一段时间CLRTI;清除发送中断标志RRA;准备点亮下一位CLRP1.0;显示锁定MOVSBUF,A;串行输出RETI;中断返回DELAY:……;延时程序END例6-3:如下图所示,编出MCS-51串行输入开关量并把它存入20H单元的程序。要求控制开关S断开(S=1)时,单片机处于等待状态;当S合上(S=0)时,单片机开始输入和进行模拟。第六章-------27wyx
P1.1P1.0RXDTXDDSCLKP/SCD4014P1P2P3P4P8MCS-51S0S1S2S3S7S
CD4014是8位的并入串出的同步移位寄存器芯片,其中DS为串行数据输出端,CLK为同步脉冲输入端。P/S为控制端:若P/S=0,则8位并行输入数据关闭,但允许串行数据从DS输出;若P/S=1,DS输出端关闭,但允许8位数据并行输入。设串行口采用查询的方式接收数据。编程如下:
ORG2000HSTART:SETBP1.0
JBP1.0,$;若S断开,则等待
SETBP1.1;令CD4014并行输入开关量
CLRP1.1;令CD4014开始串行输出
MOVSCON,#10H;设串行口方式0并启动接收
JNBRI,$;等待接收一帧数据
CLRRI;清接收中断标志
MOVA,SBUF;取缓冲器数据
MOV20H,A
RET第六章-------28wyx2.方式1应用举例例6-4:设有两个51单片机以串行的方式进行通信,A机发送,B机接收,波特率2400bps,晶振6MHz,T1作为波特率发生器,串行口工作在方式1。甲机送出数据为内部RAM50H开始的16个字节数据。乙机接收数据存放在外部RAM3000H-300FH单元中,编写通信程序。解:双机通讯串行口工作在方式1,定时器T1工作在方式2。定时常数:X=256―(fosc*2SMOD)/(384*波特率)若SMOD=0,则X=249.49,误差较大。
取SMOD=1,则X=242.98=243=F3H,误差较小。
第六章-------29wyx采用查询方式编程,A机发送程序如下:
MOVTMOD,#20H;定时器(波特率)初始化
MOVTL1,#0F3H
MOVTH1,#0F3H
CLRET1;关定时器T1中断
SETBTR1;启动T1
MOVSCON,#40H;串行口初始化(方式1)
MOVPCON,#80H;SMOD=1
MOVR0,#50H
MOVR7,#10HTRS:MOVA,@R0
MOVSBUF,A;启动发送
WAIT:JBCTI,CONT;查询是否一帧数据发送完
AJMPWAIT
CONT:INCR0;一帧发送完,指针加1
DJNZR7,TRS
RET第六章-------30wyxB机接收程序:
MOVTMOD,#20H;定时器(波特率)初始化
MOVTL1,#0F3H
MOVTH1,#0F3H
CLRET1;关定时器T1中断
SETBTR1;启动T1
MOVSCON,#50H;串行口初始化(方式1,允许输入)
MOVPCON,#80H
MOVDPTR,#3000H
MOVR7,#10H
WAIT:JBCRI,READ;等待接收一帧数据完AJMPWAIT
READ:MOVA,SBUF;取接收数据存放
MOVX@DPTR,A
INCDPTR
DJNZR7,WAIT
RET第六章-------31wyx3.方式2、方式3应用举例
方式2、方式3也可以像方式1一样用于点对点的异步通信。在数据通信中由于传输距离较远,数据信号在传送过程中会产生畸变,从而引起误码。为了保证通信质量,除了改进硬件之外,通常要在通信软件上采取纠错措施。常用的一种简单方法就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC TS 62453-43:2024 EN Field device tool (FDT) interface specification – Part 43: Object model integration profile – CLI and HTML
- 【正版授权】 IEC 62047-45:2025 EN Semiconductor devices - Micro-electromechanical devices - Part 45: Silicon based MEMS fabrication technology - Measurement method of impact resistance o
- 【正版授权】 IEC 60947-4-2:2020+AMD1:2024 CSV EN Low-voltage switchgear and controlgear - Part 4-2: Contactors and motor-starters - Semiconductor motor controllers,starters and soft-sta
- 【正版授权】 IEC 60601-1:1988/AMD1:1991 FR-D Amendment 1 - Medical electrical equipment - Part 1: General requirements for safety
- 小班水班本课程
- 酱料生产知识培训课件
- 大数据在石油行业的应用
- 2025年幼儿园小班国庆节活动方案
- 2025年社区迎新春活动方案
- 上肢骨折护理诊断及措施
- 市政城市环境管理
- 2025办公楼租赁合同书范本
- 2025年高考英语二轮复习测试04 从句综合+语法填空(测试)(原卷版)
- 春季肝胆排毒课件
- 建筑公司劳动防护用品管理制度
- 医院药品采购制度及流程
- 16J914-1 公用建筑卫生间
- 机械加工PFMEA案例
- 教学课件:《新时代新征程》
- 消费者心理与行为分析PPT(第四版)完整全套教学课件
- GB/T 7324-2010通用锂基润滑脂
评论
0/150
提交评论