8253的引线功能及内部结构D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2与处理器接口计数器5.4可编程串行接口8250教学重点异步通信协议和RS232C接口8250的内部结构和编程一.概述串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本。串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送串行通信时的数据、控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题串行通信基本通信方式:同步通信、异步通信1.同步通信发送端和接收端频率严格一致(同步)以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂串行同步通信主要应用在网络当中最常使用高级数据链路控制协议HDLC~~~~同步字符数据数据数据校验字符2.异步通信PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议8250实现起止式异步通信协议起止式异步通信协议起始位——每个字符开始传送的标志,起始位采用逻辑0电平起始位校验位停止位空闲位数据位低位高位字符0/10/10/10/110111…数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送校验位——用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位——表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位——传送字符之间的逻辑1电平,表示没有进行传送数据传输速率数据传输速率也称比特率(BitRate)每秒传输的二进制位数bps字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数过去,串行异步通信的数据传输速率限制在50bps到9600bps之间。现在,可以达到115200bps或更高3.传输制式全双工站A站B站A站B站A站B半双工单工4.调制解调器调制(Modulating)把数字信号转换为电话线路传送的模拟信号解调(Demodulating)将电话线路的模拟信号转换为数字信号调制解调器MODEM具有调制和解调功能的器件合制在一个装置二.串行通信总线(串行接口标准)RS-232C美国电子工业协会EIA制定的通用标准串行接口1962年公布,1969年修订1987年1月正式改名为EIA-232设计目的是用于连接调制解调器现已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标准接口可实现远距离通信,也可近距离连接两台微机属于网络层次结构中的最低层:物理层1.RS-232C的引脚定义232C接口标准使用一个25针连接器绝大多数设备只使用其中9个信号,所以就有了9针连接器RS-232C的引脚(1)TxD:发送数据串行数据的发送端RxD:接收数据串行数据的接收端TxC:发送器时钟控制数据终端发送串行数据的时钟信号RxC:接收器时钟控制数据终端接收串行数据的时钟信号GND:信号地为所有的信号提供一个公共的参考电平需掌握RS-232C的引脚(2)一般了解RTS:请求发送当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据CTS:清除发送(允许发送)当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号DTR:数据终端准备好通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪DSR:数据装置准备好通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收保护地(机壳地)起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地CD:载波检测(DCD)当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号RI:振铃指示当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效2.RS-232C的连接方法1:微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信方法2:微机利用232C接口直接连接进行短距离通信。不使用调制解调器。3.RS-232C的电气特性232C接口采用EIA电平高电平为+3V~+15V低电平为-3V~-15V实际常用±12V或±15V标准TTL电平高电平:+2.4V~+5V低电平:0V~0.4V相互转换三.可编程串行接口INS8250实现串行异步通信串行传输,需要并行到串行和串行到并行的转换,并按照传输协议发送和接收每个字符(或数据块)IBMPC/XT机的串行口INS8250后来使用NS165501.8250的内部结构8250实现了起止式串行异步通信协议,支持全双工通信通信字符可选择数据位为5~8位停止位1、1.5或2位可进行奇偶校验具有奇偶、帧和溢出错误检测电路可编程串行通信接口82502.8250的引脚分成连接CPU的部分和连接外设的部分注意:8250不是Intel公司的产品(Intel8251),所以该芯片引脚名称与前面学习的8253、8255等Intel产品有所不同,但是引脚功能却是类似的与处理器接口串行接口(RS-232)1231045967158121314112832278250362633253722382139193418312330243540162017D0D1D2D3D4D5D6D7CS0CS1CS2A0A1A2ADSDISTRDISTRDOSTRDOSTRDDISCSOUTMRXTAL1XTAL2SINRCLKBAUDOUTSOUTRTSCTSDTRDSRRLSDRIOUT1OUT2INTR+5VGND(1)处理器接口引脚(1)数据线D0~D7:在CPU与8250之间交换信息地址线A0~A2:寻址8250内部寄存器片选线:8250设计了3个片选输入信号CS0、CS1、CS2*和一个片选输出信号CSOUT。3个片选输入都有效时,才选中8250芯片,同时CSOUT输出高电平有效。地址选通信号ADS*:当该信号低有效时,锁存上述地址线和片选线的输入状态,保证读写期间的地址稳定处理器接口引脚(2)读控制线数据输入选通DISTR(高有效)和DISTR*(低有效)有一个信号有效,CPU从8250内部寄存器读出数据相当于I/O读信号写控制线数据输出选通DOSTR(高有效)和DOSTR*(低有效)有一个有效,CPU就将数据写入8250内部寄存器相当于I/O写信号8250读写控制信号有两对,每对信号作用完全相同,只不过有效电平不同而己处理器接口引脚(3)驱动器禁止信号DDIS:CPU从8250读取数据时,DDIS引脚输出低电平,用来禁止外部收发器对系统总线的驱动;其他时间,DDIS为高电平主复位线MR:硬件复位信号RESET中断请求线INTR:8250有4级共10个中断源,当任一个未被屏蔽的中断源有请求时,INTRPT输出高电平向CPU请求中断(2)时钟信号时钟输入引脚XTAL1:8250的基准工作时钟时钟输出引脚XTAL2:基准时钟信号的输出端波特率输出引脚BAUDOUT*:基准时钟经8250内部波特率发生器分频后产生发送时钟接收时钟引脚RCLK:接收外部提供的接收时钟信号;若采用发送时钟作为接收时钟,则只要将RCLK引脚和BAUDOUT*引脚直接相连(3)串行异步接口引脚8250数据装置准备好DSR*数据终端准备好DTR*发送数据SOUT(TXD)接收数据SIN(RXD)请求发送RTS*允许发送CTS*信号地GND载波检测RLSD*(CD)振铃指示RI*对应RS-232TXDRXDRTSCTSDSRDTRGNGCDRI(4)输出线OUT1*和OUT2*:两个一般用途的输出信号由调制解调器控制寄存器的D2和D3使其输出低电平有效信号复位使其恢复为高3.内部寄存器8250内部有9种可访问的寄存器,除数寄存器是16位的,占用两个连续的8位端口内部寄存器用引脚A0~A2来寻址;同时还要利用通信线路控制寄存器的最高位,即除数寄存器访问位DLAB,来区别共用两个端口地址的不同寄存器图.8250的连接分频次数锁存器DLH和DLL(除数锁存器)分频系数=基准时钟频率÷(16×比特率)传输线控制寄存器LCR(通信控制寄存器)指定串行异步通信的字符格式D7D6D5D4D3D2D1D0字符长00=5位01=6位10=7位11=8位停止位的位数0=1位停止位1=当字符长为5位时,1.5位停止位;当字符长为6~8位时,2位停止位。有无奇偶校验0=无奇偶校验1=有奇偶校验附加奇偶标志位0=不附加1=附加1位(D4=1,D3=1,偶校验,奇偶校验位为0;D4=0,D3=1,奇校验,奇偶校验位为1)。除数选择位(DLAB)0=寻址RBR,TBR,IER1=选除数锁存器设置间断0=禁止间断1=强迫SOUT引脚连续输出空白状态0奇偶校验的类型0=奇校验1=偶校验DR=1接收数据准备好BI=1,检测到间断OE=1,重叠错TBRE=1,发送缓冲器空PE=1,奇偶错FE=1,帧错TSRE=1,发送移位寄存器空恒为0D7D6D5D4D3D2D1D0传输线状态寄存器LSR(通信状态寄存器)提供串行异步通信的当前状态供CPU读取和处理为1使DTR*引脚为低否则为高MODEM控制寄存器MCR设置8250与数据通信设备之间联络应答的输出信号000LOOPOUT2OUT1RTSDTR为1使RTS*引脚为低否则为高为1使OUT1*引脚为低否则为高为1使OUT2*引脚为低否则为高为1使8250为循环工作方式否则为正常工作方式△CTS位1=CTS引脚电平发生变化△DSR位1=DSR引脚电平发生变化△RI位1=RI引脚电平发生变化△RLSD位1=RLSD引脚电平发生变化0=CTS引脚为高电平1=CTS引脚为低电平0=DSR引脚为高电平1=DSR引脚为低电平0=RI引脚为高电平1=RI引脚为低电平0=RLSD引脚为高电平1=RLSD引脚为低电平D7D6D5D4D3D2D1D0MODEM状态寄存器MSR反映4个控制输入信号的当前状态及其变化MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平MSR低4位中某位为1,则说明从上次CPU读取该状态字后,相应输入信号已发生改变,从高变低或反之中断允许寄存器IER8250设计有2个中断寄存器(IER、IIR)和4级中断4级中断的优先权,是按照串行通信过程中事件的紧迫程度安排的、是固定不变的用户可利用IER中断允许或禁止进行控制中断允许寄存器的低4位控制8250这4级中断是否被允许某位为1,则对应的中断被允许否则,被禁止接收数据错误中断D2接收数据寄存器满(准备好)中断D0发送数据寄存器空中断D1调制解调器状态发生变化中断D3优先权高优先权高优先权低中断识别寄存器IIR(中断标志寄存器)保存正在请求中断的优先权最高的中断级别编码00000ID1ID0IP0有中断1无中断ID1ID0优先权中断类型111001001234接收错误接收数据准备好发送数据寄存器空调制解调器状态变化作业预习8255与小键盘接口实验8255端口地址为318H~31BH,请编程实现通过A口读取键盘各值并在PC上显示要求在分析参考程序基础上编出程序复习汇编语言程序的调试PA0~PA7PB0~PB18255键盘4.8250编程举例例:设数