计算机应用教学课件-第10章串行通信接口技术.ppt_第1页
计算机应用教学课件-第10章串行通信接口技术.ppt_第2页
计算机应用教学课件-第10章串行通信接口技术.ppt_第3页
计算机应用教学课件-第10章串行通信接口技术.ppt_第4页
计算机应用教学课件-第10章串行通信接口技术.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章 串行通信接口技术,1 .串行口通信方式,2.pc机与单片机的串行通信,10-1 串行口通信方式,一、串行通信概述 1、什么叫串行通信?,在生活中同学们排横队行走 并行;排纵队行走 串行。 计算机中在传输信息、数据时也有并行、串行的问题。,接收设备,发送设备,2、同步通信、异步通信,同步发送设备时钟与接收设备时钟严格一致。,异步 发送时钟与接收时钟不一定相等。,3、串行通信的方向,单工,a 发,b 发,半双工,a 发 收,b 收 发,例如:广播电台 收音机,例如: 对讲机,全双工,a 发 收,b 收 发,例如: 电话机,4、波特率 即串行通信速率。 b/s 、 bps 在异步通信中,单位时间内所传送的有效二进制位数波特率。 举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为每秒240个字符。求波特率。 解:(181)240 = 2400 b/s = 2400波特。,5、串行通信接口,发送:,cpu,发送寄存器sbuf,发送时钟:,接收:,cpu,接收时钟,接收数据寄存器sbuf,二、mcs-51机串行接口 单片机内有通用异步接收/发送器 uart。 全双工,4种工作方式,波特率可编程设置,可中断。,1、串口的组成 从编程角度讲来看主要由以下寄存器组成。,sbuf 串行发送 / 接收数据缓冲器 是两个物理单元,共用一个地址(99h),pcon 电源管理寄存器,scon 串行口控制寄存器,2、串行口的工作方式 (1)方式0:同步移位寄存器方式 波特率固定为fosc / 12 rxd 接收发送数据 txd 产生同步移位脉冲 接收/发送完,置位ri / ti ,(要求sm2 = 0),发送,接收,无起始位,无停止位 。可用于并口的扩展。,(2)方式1:8位uart 波特率为(2smodt1的溢出率)/ 32 ,可变。 一帧信息10位。,发送,接收,送 rb8,发送完置位ti。,当接收到数据后,置位ri是有条件的。即: ren = 1,ri = 0 且sm2 = 0或sm2 = 1但是接收到的停止位为1。 此时,数据装载sbuf, ri置1 ,停止位进入rb8。,(3)方式2、方式3 :9位uart 一般用于多机通信。一帧信息11位。,发送,发送完数据置位ti。,接收,接收到有效数据完毕,置位ri的条件: ren = 1,ri = 0 且sm2 = 0或接收到第9位数据为1, 此时,数据装载sbuf,ri置1,第9位数据(tb8) rb8。,送rb8,方式2波特率:(固定)2smod / 64 fosc,3、波特率的设置 方式0、方式2固定。 方式1,方式3可变。波特率 = 2smod / 32 (t1的溢出率) t1溢出率 = 单位时间内溢出次数 = 1 /(t1的定时时间) 而t1的定时时间t就是t1溢出一次所用的时间。此情况下,一般设t1工作在模式2(8位自动重装初值)。 n = 28 t / t, t = (28n)t =(28n)12 / fosc 所以,t1溢出率 = 1/t = fosc / 12(28n), 故, 波特率 = 2smod / 32 fosc / 12(256n)。 若已知波特率,则可求出t1的计数初值: y = 2562smodfosc / (波特率3212),巩固新课: 例、若fosc = 6mhz,波特率为2400波特,设smod = 1,则定时/计数器t1的计数初值为多少?并进行初始化编程。,解:x= 2562smodfosc / (24003212)= 242.98243 = f3h fosc = 11.0592mhz,波特率为2400,设smod = 0,则 x = f4h 。 初始化编程: mov tmod,#20h mov pcon,#80h mov th1,#0f3h mov tl1,#0f3h setb tr1 mov scon,#50h,小结: 1、什么叫串行通信? 2、uart叫什么?(通用异步接收/发送器) 3、单工、半双工、全双工? 4、串口工作用到哪些寄存器?(pcon、scon、sbuf) 5、串口有几种工作方式? 6、波特率如何设置?(t1的计数初值如何确定),10-2 pc机与单片机的通信,一.异步通信适配器,1.异步通信芯片8250,8250是专为计算机设计的串行信号接口芯片,其内部有10个可编程寄存器,占用7个i/o地址。通过对这些寄存器的编程,既可实现对通信波特率和异步通信格式的控制,又可以让计算机及时获得收、发通路的工作状态。,1.引线及功能 可编程串行通信接口8250的外部引线图如图所示,共有40根引脚,单电源+5v供电。除电源线(vcc)和地线(gnd)外,其引脚信号可分为 面向系统和面向通信设备两大类。 (1)面向系统的引脚信号 d0d7-双向数据线。与系统数据总线相连接, d0 用以传送数据、控制信息和状态信息。 cs0 ,cs1,cs2 -片远信号,输入。只有当它们同 时有效,即cs0=1,cs1=1,cs2=0时,才能远中该 8250芯片。 csout-片远输出信号。当8250的cs0、cs1和 cs2同时有效时,csout为高电平。,a0a2-8250内部寄存器的选择信号。它们 的不同 编码,可以选中8250内部不同的寄存器。 ads-地址选能信号。低电平有效。有效时可将cs0, cs1,cs2及a0,a1,a2锁存于8250内部。若在工作 中不需要锁存上述信号,则可将ads直接接地,使其 恒有效。 distr、distr-数据输入选能信号。当它们其中任 何一个有效时(distr为高或distr为低),被选中的,8250寄存器内容可被读出。它们经常与系统总线上的 ior信号相连接。当它们同时无效时,8250不能读出,dostr、dostr-数据输出选能信号。当它们其中一个有效时(dostr为高电平或dostr为低电平),被选中的8250寄存器可写入数据或控制字。它们常与系统总线的iow相连。当它们同时无效时,8250则不能写入。,ddis-驱动器禁止信号。该输出信号在cpu读8250时为低电平,非读时为高电平,可用此信号来控制8250与系统总线间的数据总线驱动器。,mr-主复位输入信号,高电平有效。通常与系统复位信 号reset相连。主复位时,除了接收数据寄存器、发送数据寄存器和除数锁存器外,其他内部寄存器及信号均受到主复位的影响,intr-中断请求输出信号。高电平有效。当8250中断允许时,接收出错、接收数据寄存器满、发送数据寄存器空以及modem的状态均能够产生有效的intr信号,主复位信号(mr) 可使该输出信号无效。,sin-串行数据输入端。外设或其他系统传送来的串行数据由该端进入8250。,(2)面向外部通信设备的引脚信号,sout-串行数据输入端。主复位信号可使其变为高电 平,cts-清除发送信号。输入,低电平有效。当它有效时表示提供cts信号的设备可以接收8250发送的数据,它是提供cts信号的设备向8250发出的rts信号的应答信号。,rts-请求发送信号。输出,低电平有效。它是8250向外设发出的发送数据请求信号。它与下面的信号具有同样的功能,dtr-数据终端准备好信号。输出,低电平有效。它表示8250己准备好,可以接收数据,dsr-数据装置准备好信号。输入,低电平有效。表示接收数据的外设己准备好接收 数据。它是对dtr信号的应答。,rlsd-接收线路信号检测信号。输入,低电平有效,表示modem己检测到数据载波信号。,ri-振铃指示信号。输入,低电平有效。表示modem己 接收到一个电话振铃信号。,out1-可由用户编程确定其状态的输出端。若用户在 modem控制寄存器第二位(out1)写入1时,则out1 输出端变为低电平。主复位信号(mr)可将out1置为 高电平,out2-与out1一样,也可由用户编程指定。只是要将modem控制寄存器的第三位(out2)写入1,就可使out2变为低电平。主复位信号(mr)可将其置为高电平。,baudout-波特率信号输出。该端输出的是主参考时钟频率除以8250内部除数寄存器中的除数后所得到的频率信号。这个频率信号就是8250的发送时钟信号,是发送数据波特率的16倍。若将引信号接到rclk上,又可以同时作为接收时钟使用。,xtal1、xtal2-外部时钟端。这两端可接晶振或直接外 部时钟信号。,rclk-接收时钟信号。该输入信号的频率为接收数据波特率的16倍.,2. 8250的结构及内部寄存器,(1)通信线路控制寄存器lcr(3fbh),d7 d6 d5 d4 d3 d2 d1 d0,0 0=5位,0 1=6位,1 0=7位,停止位数目,字符代码的长度,1 1=8位,0=1位,1=1位(字符代码长度为5位时) =2位(字符代码长度为6,7,8位时),寄偶校验 0=无 1=有,寄偶校验类型 0=寄校验 1=偶校验,附着寄偶校验 0=无效 1=寄偶校验衡为1(若位3=1,位4=0) 寄偶校验衡为0(若位3=1,位4=1) 无寄偶校位 (若位3=0),寻址位 0=正常值 1=读写除数寄存器,间断位设置 0=无效 1=强制连接输出空白状态,lcr主要用于决定在串行通信时所使用的数据格式,例如数据位数、寄偶校验及停止位的多少等。因芯片仅有3根地址线,最多只能寻址8个寄存器,为此使两个除数寄存器和其他寄存器共用地址。当前是寻址除数寄存器还是其他寄存器,是由lcr的最高们d7来区分的。当需要读写除数寄存器时,必须先使lcr的d7位置1,而在读写其他寄存器时,又必须先将其设为0。,(2)通信线路状态寄存器lsr (3fdh),d7 d6 d5 d4 d3 d2 d1 d0,寄偶错,超越错,接受数据就绪,格式错,间断检验,发送保持寄存器空,发送移位寄存器空,不用衡为0,若某位=1 存在该状态,(3)发送数据保持寄存器thr(3f8h 只写),d7 d6 d5 d4 d3 d2 d1 d0,发送数据时,cpu将数据写入thr。只要tsr空,thr中的数 据便会由8250的硬件自动送入tsr中,以便串行移出.,串行发送的第一位,8250接收到一个完整的字符时,便会把该字符从接收移位寄 存器rsr传送到rbr。cup可从由rbr读出接收到的数据。,(4)接收数据缓冲寄存器rbr(3f8h只读),(5)除数寄存器dlr(3f8h/3f9h 只写),16位寄存器,外部时钟按dlr中的除数(分频系数)进行分频, 可以获得所需的波特率。如果外部时钟频率f已知,而8250所要求的 波特率b也已规定,那么就可以由下式求出dlr中除数的值:,除数=f/(b*16),例如,若要使用1200波特率来传送数据,则可计算出除数应为96。 在初始化8250时,最开始就应将除数写到dlr中,以便产生所希望 的波特率。为了写 入除数,应首先把lcr的d7置1,然后将16位除 数按先低8位,后高8位的顺序写入dlr.写完后,还应把lcr的d7再 置为0,以便8250进行正常 操作。,8250使用1.8432mhz的基准时钟输入,所以上式可写为: 除数=1843200/(b*16),(6)中断允许寄存器ier(3f9h,只写),d7 d6 d5 d4 d3 d2 d1 d0,0,0,0,0,1=允许接受器数据就绪中断,1=允许发送保持寄存器中断,1=允许接受字符错中断或间断状态中断,1=允许改变调制解调器状态中断,如果ier的d0d3均为0,则禁止8250发出中断。在ier中,接收 线路状态引起的中断包括越限错,奇偶错,结构错和间断。对于 modem状态引起的中断见下面对modem状态寄存器的解释。,ier只使用这d0d3这4位,高4位不用。d0d3每位的1或0分别用于允许或禁止8250的4 个中断源发出中断请求。,(7)中断识别寄存器iir,d7 d6 d5 d4 d3 d2 d1 d0,0 0 =modem中断 0 1 =发送数据寄存器空中断 1 0 =接收数据寄存器满中断 1 1 =接收线路出错中断,1= 无中断 0 =有中断,0 0,0 0,0,高5位恒为0,只使用低3位作8250的中断识别标志,8250有4个中断源,它们的中断优先级顺序为: 接收器线路状态中断为最高优先级,包括越限,奇偶错,结构错和间断。读lsr可使此中断复位。 第二是接收数据寄存器满中断,读rbr可复位此中断。 第三为发送数据保持寄存器空中断,写thr可复位此中断。 最低优先级为modem状态中断,包括cts,dsr,ri,dcd等modem状态中断源,读modem状态寄存器可复位此为中断.,(8)modem控制寄存器mcr(3fch),d7 d6 d5 d4 d3 d2 d1 d0,0,0,0,0=无效 1=8250回送,d3 = 1时中断信号送系统总线,附加用户指定输出,一般不用,1=dtr信号有效,1=rts信号有效,d0-此位用于设置数据终端准备好信号。当它为1时,使8250的dtr输出为低,表示8250准备好接收数据,当它为0时,使 8250的dtr输出为高,表示8250没有准备好。,d1-此位为1时,8250的rts输出低电平,表示8250已准备好发送数据。当它为0时,rts输出高电平,表明8250未准备好。,d2、d3-这两位分别用以控制8250的输出线out1和out2。当它们为1时,对应的out输出为0;而当它们为0时,对应的out输出为1.,d4-用于环回检测控制,实现8260的自我环回测试。当d4=1时, out为高电平状态,而sin将与系统相分离。这时tsr的数据将由 8250内 部回送到rsr的输出端。,(9)modem状态寄存器msr(3feh),用来反映8250与通信设备之间应答联络输入信号的当前状态以及 这些信号的变化情况。,d7 d6 d5 d4 d3 d2 d1 d0,允许传送(cts),数据准被就绪(dsr),振铃指示(ri),数据载波检测(dcd),数据准被就绪(dsr),允许传送(cts),振铃指示(ri),数据载波检测(dcd),msr的低四位是应答输入信号发生变化(从高变低或从低到高 的状态标志,cpu读msr时,把这4位同时清零。这4位分别对 应cts ,dsr,ri和pisd。当某位为1时,表示从上次读msr后,相应的应答输入信号发生 了变化。当某位为0时,则说明相应的应答输入信号状态无变化。,msr的高4位反映了cst,dsr,ri和rlsd这4个输入信号的当 前状态。 d4是cts反相之后的状态。自测试时为rts的状态。 d5是dsr反相之后的状态。自测试时为dtr的状态。 d6是ri反相之后的状态。自测试时为out1的状态。 d7是rlsd反相之后的状态。自测试时为out2的状态。,3. 8250的初始化,8250初始化时,通常首先使通信控制字的d7=1,即使dlab为1.在此条件下,将除数低8位和高8位分别写入8250内部的除数寄 存器。然后再以不同的地址分别写入通信控制字,modem控制 字及中断允许字等等。假定所需的波特率为1200波特,数据格式为: 1位停止位,7位数据位,奇校验。,start:mov dx,3fbh ;开始lcr的地址 mov al,80h ; out dx, al ; 使lcr的d7=1 mov dx, 3f8h ; dll的地址 mov al, 60h ; 写除数低8位 out dx, al inc dx ;dlh的地址 mov al, 00h out dx, al ;写除数高8位 mov dx, 3fbh ;lcr的地址 out dx, al mov al, 0ah ;1 位停止位,7位数据位,奇校验 out dx, al ;初始化通信控制寄存器 mov dx, 3fch ;mcr的地址 mov al, 03h ;使dtr和rts有效 out dx, al ; 初始化modem控制器 mov dx, 3f9h ; ier的地址 mov ax, 0 ;禁止所有中断 out dx, al ;写中断允许寄存器,二.pc机与单片机的双机通信,1.通信接口设计,2.通信软件设计,(1)pc机通信软件,stack segment para stack stack db 256dup(0) stack ends code segment para public code start proc far assume csp:code, ss :stack push ds mov ax, 0 push ax cli initout : mov dx,3fbh mov al,80h ; out dx, al ; mov dx, 3f8h ; mov al, 30h ; out dx, al mov dx, 3f9h ;dlh的地址 mov al, 00h out dx, al ;写除数高8位,mov al, 3fbh ;lcr的地址 out dx, al mov al, 03h ;1 位停止位,8位数据位,无校验 out dx, al ;初始化通信控制寄存器 mov dx, 3fch ;mcr的地址 mov al, 03h ;使dtr和rts有效 out dx, al ; 初始化modem控制器 mov dx, 3f9h ; ier的地址 mov ax, 0 ;禁止所有中断 out dx, al forever: mov dx, 3fdh in al,dx test al,20h jz forever wait: ah,1 int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论