可编程串行接口课件
可编程串行接口8250,本节主要内容,一、串行通信基本概念,单工通信 半双工通信 全双工通信,同步通信 异步通信,工作方式,同步方式,串行通信方式的特点 每个时间单位传送一位信息 每个字符(字节)的各位依次传送 传输线少,距离远,成本低,1、工作方式,发送器,接收器,发送器/接收器,发送器/接收器,发送器/接收器,发送器/接收器,单工方式:,半双工方式:,全双工方式:,在做远距离传输时,需要通过MODEM将数字信号模拟信号,可以利用电缆线传输(称为调制),接收方利用MODEM将模拟信号转换为数字信号(称为解调)。,调制与解调,调制解调器的调制方式有以下三种: 振幅调制(Amplictute Shift Keying,ASK),频率调制(Frequency Shift Keying,FSK),相位调制(Phase Shift Keying,PSK),串行通信需要解决的问题,双方以何种速率进行通讯 进行传输的数据格式 如何从位流中正确地采样到位数据 收发出错时如何处理,收发双方必须严格遵守相关通信协议:,同步串行通信,异步串行通信,2、同步通信与异步通信,同步通信: 特点:利用同步字(SYN)获得双方的同步信息, 数据之间无间隔符(数据流)所以传输速率 较高,同步传输的数据格式: CRC的意思是循环冗余校验码,用于检验在 传输过程中是否出现错误。,同步通信的优缺点,优点:一次传输多个数据,传输效率高,速度快。,发送方,接收方,公用时钟,缺点:一帧数据中收发时钟要保持高度同步,如果双方的时钟频率有偏差,会因为积累造成错位。,异步串行通信方式,特点:以字符/字节为单位传送,通信双方需约定协议(格式,速率等)。,异步通信必须遵从两项规定: .数据的格式:每一个数据传送时,必须加一个起始位,后面加1或1.5或2个停止位。还可根据需要加入校验位。,校验位 奇校验 :字符加上校验位有奇数个1; 偶校验 :字符加上校验位有偶数个1 。 校验位产生和检查由串行通信控制器内部自动产生,停止位也是由硬件自动产生的。(偶数个错误不能检测)。,异步通信时,字符/字节是一帧一帧的传送,每帧字符必须靠起始位来同步,在异步通信的数据传送中,传输线上允许空字符。,2.波特率 (bps),波特率就是传送数据位的速率(用位/秒)表示。 例:数据传送速率为120字符/秒,每帧包括10个数据位,则波特率为 12010=1200位/秒=1200bps 常用的异步通信的波特率的值为:150、300、600、1200、2400、4800、9600、14400、28800。,二、串行通信的物理标准,进行串行通信的线路连接时,需要解决的问题:,. 计算机与外设之间要共同遵守的某种约定,称为物理接口标准,包括电缆的机械特性、电气特性、信号功能和传送过程的定义。,. 按相关接口标准设计接口电路。常用RS-232-C。,RS-232-C串行接口标准,RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。,RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。,串行接口,计算机,DTE,串行接口,计算机 或终端,DTE,机械特性 连接器(Connector),、近距离连接(<15m) 只用3条线(发送线TXD,接收线RXD,信号地线),、远距离连接(15m) 1)需用MODEM和专用电话线 2)需用29条信号线(在接口与MODEM之间),三. 可编程串行接口8250功能简介,CPU利用串行通信与外部进行数据交换,必须通过串行接口电路实现。,(1)进行串/并行转换。,(2)实现串行数据格式化。,(3)能进行可靠性校验。,(4)实现与数据通信设备之间的联络控制。,INS8250,D7D0,SIN,SOUT,8250主要功能,(1)支持异步串行通信规程,发送时可自动插入起始位、停止位和奇偶校验位,接收时能自动删除。,(2)内部具有可编程的时钟产生电路,可对外部时钟进行165535次分频。,(3)具有由CPU的发向调制解调器MODEM的控制信号。,(4)具有优先级排除的中断系统,有多种中断源。,(5)发送和接收都采用双缓冲结构(数据稳定)。,、8250的内部结构及工作原理,) 数据总线缓冲器,功能:与CPU总线D7D0连接,实现数据传送。,) 读写控制逻辑,输入片选信号,同时有效选中8250,8250内部寄存器的选择信号,锁存地址及片选信号,以稳定译码,数据输入选通信号,任一信号有效时,可读出被选中的8250寄存器的内容,数据输出选通信号,任一信号有效时,可向被选中的8250寄存器的写数据,驱动器禁止信号,CPU读8250时为低电平,非读时为高电平。,片选输出指示引脚,当三个片选线都为有效时输出高电平,说明8250被选中,主复位输入信号,高电平有效,外部时钟端。可接晶振或直接接外部时钟信号,功能:接收读写命令和控制信号,决定对哪个寄存器进行操作,) 接收器,双缓冲结构,接收数据的过程是,当8250初始化后进入允许接收和准备好接收数据时,监视SIN线。,时序控制:数据接收时钟RCLK的频率为接收信号波特率的16倍。即检测到起始位后,接收器每隔16个波特率周期对SIN输入的数据采样。,) 发送器,双缓冲结构,CPU发来并行数据,写入缓冲寄存器,再送入移位寄存器。,时序控制:内部数据发送的时钟频率同样为波特率的16倍。,) 时钟发生环节(除数寄存器DLR),8250发送和接收时钟(内部时钟信号)是波特率的16倍,内部收发时钟可通过对外部时钟分频得到。即:,分频次数也称作波特率因子,初始化时放入除数寄存 器。先写低八位,再写高八位。,f=fosc/分频次数=16*外部通讯波特率,) 传输线控制寄存器和传输线状态寄存器,传输线控制寄存器(LCR),8位可读/写寄存器,用于设置串行通信的帧数据格式。,若要访问除数寄存器(为了写入波特率因子,以得到合适的内部时钟频率),可将控制字设定为1000 0000(80H),若传送的数据通讯格式为1位停止位、8位数据位、无奇偶校验,可将控制字设定为0000 0011(03H),传输线状态寄存器(LSR),8位可读/写寄存器,用于表示8250收/发通信时的状态信息 。,若发送数据寄存器为空,其状态字为0010 0000(20H),若接收数据寄存器为满,其状态字为0000 0001(01H),)中断控制寄存器,功能:实现中断优先权排队,允许在符合条件时发出中断请求,或禁止在符合条件时发中断请求,实现中断管理。,中断允许寄存器(IER )用于允许或禁止某种中断。,中断识别寄存器( IIR )用于识别中断源。,8)MODEM控制逻辑,功能:通过对调制解调器控制寄存器的编程设置,可以控制提供给调制解调器的控制信号。,MODEM控制寄存器(MCR )用来对MODEM实施控制。,MODEM状态寄存器(MSR )提供控制信号的状态变化信息。,、8250的寻址和连接,数据总线,读写控制逻辑,片选控制,外部时钟输入,内部时钟信号,串行数据收发,MODEM控制信号,、8250的初始化,使通信控制寄存器D7=1,写除数寄存器低8位,写除数寄存器高8位,设置通信控制字,设置MODEM控制字,设置中断允许字,MOV DX, 0FF83H MOV AL, 80H OUT DX, AL,MOV DX, 0FF80H MOV AL, 18H OUT DX, AL,MOV DX, 0FF81H MOV AL, 00H OUT DX, AL (波特率因子为0018H),MOV DX, 0FF83H MOV AL, 03H (1位停止位,8位数据位,无奇偶校验) OUT DX, AL,、8250的应用,例:利用8250实现串行通信的自发自收。将寄存器AH的内容从10H开始通过8250发送、接收,每次收发后AH的内容自动增1直到FFH为止,同时将每次接收到的数据,依次写到内存400040EF单元中,实现自发自收。,)算法分析:采用查询方式发送接收数据。发送数据前先检测LSR中相关状态位,若发送数据寄存器为空才将数据从寄存器送入8250。接收数据前亦先检测LSR中相关状态位,若接收数据寄存器满才将数据从8250读入CPU。,)流程图,8250初始化,调用发送子程序,调用接收子程序,AH+1,地址+,AHFFH,Y,停机,N,主程序:,发送子程序,读LSR,MOV DX, 0FF85H IN AL, DX,发送数据寄存器是否为空,N,TEST AL, 20H,发送数据,Y,MOV DX, 0FF80H MOV AL, AH OUT DX, AL,返回,接收子程序,读LSR,MOV DX, 0FF85H IN AL, DX,检测数据是否有错误,TEST AL,1EH,接收数据,Y,MOV DX, 0FF80H IN AL, DX,返回,出错处理,检测接收寄存器是否为满,Y,N,TEST AL,01H,N,N,N,保存数据,MOV SI, AL,