




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章单片机的串行接口与串行通信★概述★单片机串行口的结构与工作原理★串行口的控制存放器★串行口的工作方式★串行口的应用编程5.1概述
单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信本钱,提高通信可靠性。如以下图所示。★数据通信方式有两种:并行通信与串行通信★并行通信:所传送数据的各位同时发送或接收,数据有多少位就需要多少根数据线。特点:速度快,本钱高,适合近距离传输如计算机并口,打印机,8255。★串行通信:所传送数据的各位按顺序一位一位地发送或接收。只需一根数据,一根地线,共2根〔如双向通信发送和接收各需1根数据线。〕 特点:本钱低,硬件方便,适合远距离通信,传输速度低。★串行通信的分类:同步串行通信和异步串行通信
一、异步通信:
通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,这就是通信协议。异步串行通信一帧数据格式:一个起始位“0〞,表示字符的开始,然后是5~8位数据即该字符的代码,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后以停止位“1〞表示字符的结束。优点:硬件结构简单。缺点:传输速度慢。二、同步通信在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~2个字节)指示一帧的开始,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符合,下面就连续按顺序传送假设干个数据,最后发校验字节。见以下图:SYN字符1SYN字符2数据1数据2….数据n连续传送n个数据校验三、单工、半双工、全双工通信方式
按通信方向分类:单工、半双工、全双工通信方式
1.
单工方式:一端是发送端,另外一端是接收端:
2.半双工方式
每端口有一个发送器和一个接收器,通过开关连接在线路上,数据可以双向传送,但不能同时发送和接收.
要通过换向器转换方向。3.全双工方式
通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。
1.实现数据格式化
因为CPU发出的数据是并行数据,接口电路应实现不同串行通信方式下的数据格式化任务,如自动生成起止方式的帧数据格式(异步方式)或在待传送的数据块前加上同步字符等。在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传送的步骤、检纠错方式及控制字符的定义等。串行接口的根本任务就是:2.进行串、并转换在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在接收端,接口要将接收到串行数据变成并行数据送往CPU,由CPU进行处理。3.控制数据的传输速率
接口应具备对数据传输率—波特率的控制选择能力,即具有波特率发生器。4.进行传送错误检测在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校验位或校验码,以确定传送中是否有误码。
51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制字可以选择其数据格式,同时内部有波特率发生器,提供可选的波特率,可完成双机通信或多机通信。四、波特率 单位时间内传送的信息量。在计算机中,以每秒传送的二进制位数为单位。例如:100字符/秒,1个字符11位,波特率为:100×11=1100〔波特〕平均每位传送占用时间Td=1/1100=0.909ms〔一〕通信线的连接
通信速率和通信距离这两个方面是相互制约的,降低通信速率,可以提高通信距离.
不同的通信距离,串行通信电路有不同的连接方法。五.串行通信总线标准及接口RXDTXDGNDRXDTXDGNDRXDTXDGND电平转换RXDTXDGNDRXDTXDGND电平转换RXDTXDGND微机微机其他设备较远距离传送电路近距离传送电路微机接口调制解调器调制解调器接口微机电话分机电话分机远距离传送电路数字信号通过调制器变成模拟信号通过线传送到对方,接收方通过解调器将模拟信号转换成数字信号接收。〔二〕串行通信接口总线标准
测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总线标准有三种:●RS-232〔RS-232ARS-232BRS-232C〕●RS-449〔RS422RS423RS485〕●20mA电流环这里重点介绍RS-232RS-232C:速率:20Kbit/S,最大通信距离:15mRS422:10Mbit/s,:300m90Kbit/s,:1200m抗干扰能力采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。RS232C:一般场合RS422:共模信号比较强光纤:电磁干扰较强〔三〕RS-232C美国电子工业协会〔EIA〕公布的一种异步通信标准。RS232C标准是:●设备之间通信的距离不大于15米●最大传输速率20KB/S●采用负逻辑:“1〞——―5V∽―15V“0〞——+5V∽+15V●不带负载时输出电平:―25V∽+25V●输出短路电流:<0.5A●最大负载电容:2500pF当计算机采用RS232标准时必须通过电平变换,MAX232是EIA和TTL电平转换芯片。内部具有电压提升电路,并有两路接收器和发送器。其连线和引脚如图
TTL电平可以由专用集成电路转换成RS232C标准;如:MC1488或75188TTLRS232C从MC1489或75189RS232CTTL由于MC1488需要采用±12V电源,一般在单片机通信中大量使用的是只需要+5V电源、具有发送和接收的一体化芯片,如:MAX232、ICL232、ADM202等。
MCS—51之间的双机通信
RXDTXDGNDTXDGND8xx518xx51RXDMCS—51和PC机的双机通信MCS—51和PC机的双机通信见以下图5.2单片机串行口的结构与工作原理51单片机有一个可编程的全双工异串行通信接口,它可作UART〔通用异步接收和发送器〕用,也可作同步移位存放器,其帧格式可有8位、10位或ll位,并能设置各种波特率,给使用者带来很大的灵活性。一、串行口的内部结构
主要由两个物理上独立的接收、发送缓冲器SBUF〔占用同一地址99H〕;一个输入移位存放器、一个串行控制存放器SCON和一个波特率发生器组成。接收器是双缓冲结构;发送器为单缓冲器,因为发送时CPU是主动的,不会产生重叠错误。5l单片机通过引脚RXD(P3.0)串行数据接收端)和引脚TXD(P3.l)串行数据发送端)与外界进行通信。图中有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。●发送缓冲器只能写入,不能读出,CPU写SBUF,一方面修改发送存放器,同时启动数据串行发送;●接收缓冲器只能读出、不能写入。读SBUF,就是读接收存放器。●串行控制存放器SCON用以存放串行口的控制和状态信息。8XX51串行口正是通过对上述专用存放器的设置、检测与读取来管理串行通信的。●特殊功能存放器PCON的最高位SMOD为串行口波特率的倍增控制位。●波特率发生器可以有两种选择:1.定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。2.以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率。shiftMOVA,SBUF串行数据CPUCPUSBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)甲方发送时,CPU执行指令MOVSBUF,A启动了发送过程,数据并行送入SBUF,在发送时钟shift的控制下由低位到高位一位一位发送,乙方在接收时钟shift的控制下由低位到高位顺序进入移位存放器SBUF,甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查询标志〔或引起中断〕。二、串行通信的传送过程用下面简图说明TI,RI,一帧数据发送完毕,CPU可再发送下一帧数据。乙方一帧数据到齐即接收缓冲器满,置位接收中断标志RI,该位可作为查询标志〔或引起接收中断〕,通过MOVA,SBUFCPU将这帧数据并行读入。由上述可知:甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否那么会造成数据丧失。发送方是先发数据再查标志,接收方是先查标志再收数据。CPU通过指令和SBUF并行交换数据,并不能控制数据的串行移位,它只能查询标志位来确定数据的移位是否完成。发送一个数据→查询TI→发送下一个数据(先发后查)查询RI→读入一个数据→查询RI→读下一个数据(先查后收)51单片机串行口是一个可编程接口,对它的编程只用两个控制字分别写入特殊功能存放器:串行口控制存放器SCON(98H)电源控制存放器PCON(97H)IE:中断允许存放器。三、串行口的控制存放器5.3串行口的控制存放器5.3.1串行口的控制存放器SCON8XX51串行通信的方式选择,接受和发送控制及串行口的标志均由专用存放器SCON控制和指示,其格式如下:SM0SM1SM2RENTB8RB8TIRI方式选择多机控制串行接收允许/禁止欲发的第九位收到的第九位发送中断有/无接收中断有/无SM0.SM1:串行口工作方式控制位,可选择四种工作方式。TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1。TI=1表示帧发送结束,其状态既可供软件查询使用,也可用于请求中断。发送中断被响应后,必须由软件复位。RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1。RI=1表示帧接收结束。其状态既可供软件查询使用,也可用于请求中断。RI亦必须由软件清“0〞。REN,允许串行接收位。由软件置REN=1,那么启动串行口接收数据;假设软件置REN=0,那么禁止接收。TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。在双机通信时,可以用作数据的奇偶校验位;或在多机通信中,作为地址帧/数据帧的标志位(一般约定:TB8=0为数据帧,TB8=1为地址帧)。在方式0和方式1中,该位未用。RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,假设SM2=0,那么RB8是接收到的停止位。SM2:多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI〔RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断效劳中将数据从SBUF读走〕。当SM2=0时,不管收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI〔即此时RB8不具有控制RI激活的功能〕。通过控制SM2,可以实现多机通信。在方式1时,假设SM2=1,那么只有接收到有效停止位时,RI才置1。在方式0时,SM2必须是0。PCON的字节地址为87H,无位地址,只能字节寻址.,初始化时SMOD=0.SMODXXXXXXXPCON87H5.3.2电源控制存放器PCONPCON的格式如以下图所示,串行通信只用其中的最高位SMODSMOD:波特率加倍位。在计算串行方式1、2、3的波特率时,SMOD=0—不加倍;SMOD=
1—加倍其格式如下:5.3.3中断允许存放器IE位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0这个存放器已在中断一节介绍过,其中ES位为串行中断允许位:ES=0禁止串行中断ES=1允许串行中断51系列单片机的串行口共有4种工作方式,4种工作方式根本情况如下表所示:5.4单片机串行通信工作方式工作方式功能简述波特率引脚功能应用方式08位移位寄存器固定为fosc/12TXD输出频率为fosc/12的同步脉冲;RXD作为数据的输入、输出端。I/O口扩展方式110位异步通信方式波特率可变TXD数据输出端RXD数据输入端双机通信方式211位异步通信方式波特率固定TXD数据输出端RXD数据输入端多机通信方式311位异步通信方式波特率可变TXD数据输出端RXD数据输入端多机通信
1.方式0方式0时,串行口为同步移位存放器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD〔P3.0〕引脚输入或输出,同步移位脉冲由TXD〔P3.1〕引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。1〕、工作方式说明:方式0输出:发送过程以写SBUF存放器开始。当八位数据传送完,TI被硬件自动置1,这时方可再发下一帧数据。方式0输入:接收时必须先置REN为1(允许接收)并且使RI=0,当八位数据接收完毕,RI被硬件置1,此时,可通过读SBUF指令,将串行数据读入。
应用举例:例6-1利用串行口,使接到CD4094输出端的8只发光二极管,从左向右依次点亮,并反复循环。
分析:使用串口方式0实现数据的移位输入输出时,实际上是把串行口变成为并行口使用。串行口作为并行口输出使用时,要有“串入并出〞的移位存放器〔例如CD4094或74LS164、74HC164等〕配合,按此要求所设计的电路原理图如以下图所示:发送过程可表达如下:数据预先写入串行口数据缓冲器,然后从串行口RXD端,在移位时钟脉冲〔TXD〕的控制下,逐位移入CD4094。当8位数据全部移出后,SCON存放器的发送中断TI被自动置“1〞。其后主程序就可用中断或查询的方法,通过设置STB状态的控制,把CD4094的内容并行输出。
2.方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如下图。其中1位起始位,8位数据位,1位停止位。1〕方式1传送的数据格式2)方式1数据的发送与接收数据发送由一条CPU写入发送存放器SBUF的指令启动。8位数据在串行口由硬件自动参加起始位和停止位组成完整的帧格式。在内部移位脉冲作用下,由TXD端串行输出。一帧数据发送完后,TXD输出线维持“1〞状态,并将SCON存放器的TI置“1〞,通知CPU可发送下一个数据。2)方式1数据的发送与接收接收数据时,当SCON的REN位为允许接收状态时,串行口采样RXD端,当采样到从“1〞向“0〞状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把收到的数据位移入输入移位存放器,直到停止位到来之后把停止位送入RB8中,输入移位存放器的数据送入接收缓冲器(SBUF)中,并置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。3)波特率的设定方式1的波特率是可变的,以定时器T1作波特率发器使用,其值由定时器1的计数溢出率来决定,其公式为:其中SMOD为PCON存放器的最高位的值,其值为1或0.当定时器1作波特率发生器使用时,选用方式2(即8位自动加载方式)。因为方式2具有自动加载功能,可以防止通过程序反复装入初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,那么波特率计算公式为:
方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。方式2和方式3时起始位1位,数据9位〔含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8〕,停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。第九位数据可作为检验位,也可用于多机通信中识别传送的是地址还是数据的特征位。
3串行口工作方式2和方式3
1、方式2和方式3输出发送数据(D0~D7)由MOV指令向SBUF写入,而D8位的内容那么由硬件电路从TB8中直接送到发送移位存放器的第9位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置“1〞,其它过程与方式1相同。
2、方式2和方式3输入接收时,数据从右边移入输入移位存放器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0〔或接收到的第9位数据为1〕时,接收到的数据装入接收缓冲器SBUF和RB8〔接收数据的第9位〕,置RI=1,向CPU请求中断。如果条件不满足,那么数据丧失,且不置位RI,继续搜索RXD引脚的负跳变。5.5串行口的应用编程串行口的波特率有两种方式:固定波特率可变波特率注意:使用可变波特率时,先确定TI的计数初值,并对TI进行初始化。串行通信的编程方式:查询方式:查TI、RI是否为“1〞。中断方式:如果预先开了中断,当TI、RI为“1〞,会自动产生中断。注意:两种方式中当发送或接受数据后都要注意清TI或RI。5.5.1查询方式查询方式发送流程图和接收流程图见下页串口初始化程序方式1中串口初始化一般按以下步骤来编写:(1)设置串口工作方式;(2)确定定时器1的工作方式;(3)确定波特率倍增器的值;(4)确定定时器1的初值;(5)确定数据发送和接收方式,假设采用中断方式必须设置相应的中断控制位,假设采用采用查询方式那么必须禁止串口中断;(6)启动定时器1。
T1初始化、启动T1工作设定串行通信方式置发送数据块首址数据块长度计数器清TI发送数据TI=1?修改地址指针和块长度计数器全部数据发送完?开始结束YN查询方式发送流程图YYNT1初始化、启动T1工作设定串行通信方式,允许接收置接收缓冲区首址接收数据块长度清RIRI=1?修改地址指针和块长度计数器全部数据接收完?开始结束接收数据NYN查询方式接收流程图Y5.5.2中断方式中断方式的初始化编程同查询方式,不同的是要开中断,即置位EA和ES,编写中断效劳程序。中断方式串行通信的程序流程见以下图:T1初始化、启动T1工作设定串行通信方式置发送数据块首址数据块长度计数器发送数据全部数据发送完?中断方式发送流程图等待中断1
EA,1ES发送数据中断返回0
EA,0ES中断效劳程序主程序修改地址指针和块长度计数器清TIYNT1初始化、启动T1工作设定串行通信方式置接收数据块首址数据块长度计数器全部数据接收完?YN中断方式接收流程图等待中断1
EA,1ES中断返回0
EA,0ES中断效劳程序主程序修改地址指针和块长度计数器清RI接收数据RXD89C51TXDP1.0例接线如图,编一个自发自收程序,检查单片机的串行口是否完好,f=12MHzMHz,波特率=2400,取SMOD=0,方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烧烫伤急救知识
- 行业分析的关键指标试题及答案
- 金融分析师考试数据分析方法与试题及答案
- 2024年CFA考试技巧及试题与答案
- 短时间掌握的2024年CFA试题及答案
- 城市建筑线描课件
- 山东省威海市2024-2025学年高三上学期期末考试历史试题
- 2024年CFA考试设计的适应性试题及答案
- 江西省丰城市第九中学2024-2025学年高三上学期期末考试(复读班)历史试题(含解析)
- 答疑解惑的2024年CFA考试试题及答案
- 急性肺栓塞应急预案
- 快手申诉文本
- β内酰胺类抗菌药物皮肤试验指导原则(2021年版)解读
- 简单版广州市劳动合同
- 急诊室 缩短急性脑卒中患者溶栓时间PDCA汇报
- 《短诗三首》繁星(七一)【教案】部编版语文四年级下册
- 第五版-FMEA-新版FMEA【第五版】
- 火龙罐综合灸技术课件
- 宋代药业研究
- 守株待兔儿童故事绘本PPT
- 全国自考马克思主义基本原理概论习题库(附答案 整理版 打印版)
评论
0/150
提交评论