《微机原理与接口技术课件12 串行通信接口.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术课件12 串行通信接口.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 12 12 章章第第1212章章 串行通信接口串行通信接口教学重点n 异步通信协议和异步通信协议和RS232C接口接口n 8250的内部结构和编程的内部结构和编程 n 异步通信程序异步通信程序12.1 串行通信基础n串串行行通通信信:将将数数据据分分解解成成二二进进制制位位用用一一条条信号线,一位一位顺序传送的方式信号线,一位一位顺序传送的方式n串串行行通通信信的的优优势势:用用于于通通信信的的线线路路少少,因因而在远距离通信时可以极大地降低成本而在远距离通信时可以极大地降低成本n串串行行通通信信适适合合于于远远距距离离数数据据传传送送,也也常常用用于速度要求不高的近距离数据传送于速度要
2、求不高的近距离数据传送nPC系系列列机机上上有有两两个个串串行行异异步步通通信信接接口口、键键盘、鼠标器与主机间采用串行数据传送盘、鼠标器与主机间采用串行数据传送1.异步通信n串串行行通通信信时时的的数数据据、控控制制和和状状态态信信息息都都使使用同一根信号线传送用同一根信号线传送n收收发发双双方方必必须须遵遵守守共共同同的的通通信信协协议议(通通信信规规程程),才才能能解解决决传传送送速速率率、信信息息格格式式、位同步、字符同步、数据校验等问题位同步、字符同步、数据校验等问题n串串行行异异步步通通信信以以字字符符为为单单位位进进行行传传输输,其其通信协议是通信协议是起止式异步通信协议起止式异
3、步通信协议起止式异步通信协议起起始始位位每每个个字字符符开开始始传传送送的的标标志志,起始位采用逻辑起始位采用逻辑0电平电平起始位起始位校验位校验位停止位停止位空闲位空闲位数据位数据位低位低位高位高位字符字符0/10/1 0/10/10/10/10/10/11 10 01 11 11 1数数据据位位数数据据位位紧紧跟跟着着起起始始位位传传送送。由由58个二进制位组成,低位先传送个二进制位组成,低位先传送校校验验位位用用于于校校验验是是否否传传送送正正确确;可可选择奇检验、偶校验或不传送校验位选择奇检验、偶校验或不传送校验位停停止止位位表表示示该该字字符符传传送送结结束束。停停止止位采用逻辑位采
4、用逻辑1电平,可选择电平,可选择1、1.5或或2位位空空闲闲位位传传送送字字符符之之间间的的逻逻辑辑1电电平平,表示没有进行传送表示没有进行传送数据传输速率n数据传输速率也称比特率(数据传输速率也称比特率(Bit Rate)n每秒传输的二进制位数每秒传输的二进制位数bpsn字字符符中中每每个个二二进进制制位位持持续续的的时时间间长长度度都都一一样样,为为数数据据传输速率的倒数传输速率的倒数n当当进进行行二二进进制制数数码码传传输输,且且每每位位时时间间长长度度相相等等时时,比特率还等于波特率(比特率还等于波特率(Baud Rate)n过过去去,串串行行异异步步通通信信的的数数据据传传输输速速率
5、率限限制制在在50 bps到到9600 bps之之间间。现现在在,可可以以达达到到115200 bps或更高或更高2.同步通信n以以一一个个数数据据块块(帧帧)为为传传输输单单位位,每每个个数数据据块块附附加加1个或个或2个同步字符,最后以校验字符结束个同步字符,最后以校验字符结束n同同步步通通信信的的数数据据传传输输效效率率和和传传输输速速率率较较高高,但但硬硬件电路比较复杂件电路比较复杂n串行同步通信主要应用在网络当中串行同步通信主要应用在网络当中n最常使用高级数据链路控制协议最常使用高级数据链路控制协议HDLC同步字符同步字符数据数据数据数据数据数据校验字符校验字符3.传输制式全双工全双
6、工站站A站站B站站A站站B站站A站站B半双工半双工单工单工示例示例4.调制解调器n调制(调制(Modulating)n把数字信号转换为电话线路传送的模拟信号把数字信号转换为电话线路传送的模拟信号n解调(解调(Demodulating)n将电话线路的模拟信号转换为数字信号将电话线路的模拟信号转换为数字信号n调制解调器调制解调器MODEMn具有调制和解调功能的器件合制在一个装置具有调制和解调功能的器件合制在一个装置示例示例12.2 串行接口标准RS-232Cn美国电子工业协会美国电子工业协会EIA制定的制定的通用标准串行接口通用标准串行接口n1962年公布,年公布,1969年修订年修订n1987年
7、年1月正式改名为月正式改名为EIA-232Dn设计目的是用于连接调制解调器设计目的是用于连接调制解调器n现现已已成成为为数数据据终终端端设设备备DTE(例例如如计计算算机机)与与数数据通信设备据通信设备DCE(例如调制解调器)的标准接口(例如调制解调器)的标准接口n可实现远距离通信,也可近距离连接两台微机可实现远距离通信,也可近距离连接两台微机n属于网络层次结构中的最低层:物理层属于网络层次结构中的最低层:物理层12.2.1 RS-232C的引脚定义n232C接口标准使用一个接口标准使用一个25针连接器针连接器n绝绝大大多多数数设设备备只只使使用用其其中中9个个信信号号,所所以以就有了就有了9
8、针连接器针连接器n232C包括两个信道:主信道和次信道包括两个信道:主信道和次信道n次次信信道道为为辅辅助助串串行行通通道道提提供供数数据据控控制制和和通通道道,但但其其传传输输速速率率比比主主信信道道要要低低得得多多,其其他跟主信道相同,通常较少使用他跟主信道相同,通常较少使用RS-232C的引脚(1)nTxD:发送数据发送数据n串行数据的发送端串行数据的发送端nRxD:接收数据接收数据n串行数据的接收端串行数据的接收端RS-232C的引脚(2)nRTS:请求发送:请求发送n当当数数据据终终端端设设备备准准备备好好送送出出数数据据时时,就就发发出出有有效效的的RTS信号,用于通知数据通信设备
9、准备接收数据信号,用于通知数据通信设备准备接收数据nCTS:清除发送(允许发送):清除发送(允许发送)n当当数数据据通通信信设设备备已已准准备备好好接接收收数数据据终终端端设设备备的的传传送送数数据时,发出据时,发出CTS有效信号来响应有效信号来响应RTS信号信号nRTS和和CTS是是数数据据终终端端设设备备与与数数据据通通信信设设备备间间一一对用于数据发送的联络信号对用于数据发送的联络信号RS-232C的引脚(3)nDTR:数据终端准备好数据终端准备好n通通常常当当数数据据终终端端设设备备一一加加电电,该该信信号号就就有有效效,表表明明数数据终端设备准备就绪据终端设备准备就绪nDSR:数据装
10、置准备好数据装置准备好n通通常常表表示示数数据据通通信信设设备备(即即数数据据装装置置)已已接接通通电电源源连连到通信线路上,并处在数据传输方式到通信线路上,并处在数据传输方式nDTR和和DSR也也可可用用做做数数据据终终端端设设备备与与数数据据通通信信设设备间的联络信号,例如应答数据接收备间的联络信号,例如应答数据接收RS-232C的引脚(4)nGND:信号地信号地n为所有的信号提供一个公共的参考电平为所有的信号提供一个公共的参考电平nCD:载波检测(载波检测(DCD)n当当本本地地调调制制解解调调器器接接收收到到来来自自对对方方的的载载波波信信号号时,该引脚向数据终端设备提供有效信号时,该
11、引脚向数据终端设备提供有效信号nRI:振铃指示振铃指示n当当调调制制解解调调器器接接收收到到对对方方的的拨拨号号信信号号期期间间,该该引脚信号作为电话铃响的指示、保持有效引脚信号作为电话铃响的指示、保持有效RS-232C的引脚(5)n保护地保护地(机壳地)(机壳地)n起起屏屏蔽蔽保保护护作作用用的的接接地地端端,一一般般应应参参照照设设备备的的使用规定,连接到设备的外壳或大地使用规定,连接到设备的外壳或大地nTxC:发送器时钟:发送器时钟n控制数据终端发送串行数据的时钟信号控制数据终端发送串行数据的时钟信号nRxC:接收器时钟:接收器时钟n控制数据终端接收串行数据的时钟信号控制数据终端接收串行
12、数据的时钟信号12.2.2 RS-232C的连接n微微机机利利用用232C接接口口连连接接调调制制解解调调器器,用用于于实现通过电话线路的远距离通信实现通过电话线路的远距离通信n微微机机利利用用232C接接口口直直接接连连接接进进行行短短距距离离通通信信。这这种种连连接接不不使使用用调调制制解解调调器器,所所以以被被称为零调制解调器(称为零调制解调器(Null Modem)连接)连接连接调制解调器电话线电话线MODEM微机微机2345678202223456782022MODEM23456782022数据装置准备好数据装置准备好DSRDSR数据终端准备好数据终端准备好DTRDTR发送数据发送数
13、据TxDTxD接收数据接收数据RxDRxD请求发送请求发送RTSRTS允许发送允许发送CTSCTS信号地信号地GNDGND载波检测载波检测CDCD振铃指示振铃指示RIRI微机微机23456782022不使用联络信号的3线相连方式微机微机TxDRxDGND微机微机为了交换信息,为了交换信息,TxD和和RxD应当交叉连接应当交叉连接程序中不必使程序中不必使RTS和和DTR有效有效也不应检测也不应检测CTS和和DSR是否有效是否有效“伪”使用联络信号的3线相连方式RTS和和CTS各自互接,各自互接,DTR和和DSR各自互接各自互接表明请求传送总是允许、数据装置总准备好表明请求传送总是允许、数据装置总
14、准备好微机微机DSRDTRTxDRxDRTSCTSGND微机微机使用联络信号的多线相连方式通信比较可靠通信比较可靠所用连线较多,不如前者经济所用连线较多,不如前者经济微机微机DSRDTRTxDRxDRTSCTSGND微机微机12.2.3 RS-232C的电气特性n232C接口采用接口采用EIA电平电平n高电平为高电平为3V15Vn低电平为低电平为3V15Vn实际常用实际常用12V或或15Vn标准标准TTL电平电平n高电平:高电平:2.4V5Vn低电平:低电平:0V0.4V相互转换相互转换12.3 通用异步接收发送器8250n串串行行传传输输,需需要要并并行行到到串串行行和和串串行行到到并并行行
15、的的转转换换,并并按按照照传传输输协协议议发发送送和和接接收收每每个个字符(或数据块)字符(或数据块)n这些工作可由软件实现,也可用硬件实现这些工作可由软件实现,也可用硬件实现n通通用用异异步步接接收收发发送送器器UART是是串串行行异异步步通通信的接口电路芯片信的接口电路芯片nIBM PC/XT机的机的UART芯片是芯片是INS 8250n后来使用后来使用NS1655012.3.1 8250的内部结构n8250实实现现了了起起止止式式串串行行异异步步通通信信协协议议,支支持全双工通信持全双工通信n通信字符可选择数据位为通信字符可选择数据位为58位位n停止位停止位1、1.5或或2位位n可进行奇
16、偶校验可进行奇偶校验n具有奇偶、帧和溢出错误检测电路具有奇偶、帧和溢出错误检测电路n8250支持的数据传输速率为支持的数据传输速率为509600bps1.串行数据的发送并行数据并行数据加入起始位、加入起始位、校验位、停止位校验位、停止位串行数据串行数据CPU发送保持寄存器发送保持寄存器发送移位寄存器发送移位寄存器同步控制同步控制8250SOUT0/10/1 0/10/10/10/10/10/1双缓冲寄存器结构双缓冲寄存器结构保证数据的连续发送保证数据的连续发送2.起始位的检测起始检测起始检测确定已检测到起始位确定已检测到起始位采样数据采样数据起起 始始 位位时钟时钟(RCLK)数据线数据线(S
17、IN)T16 T16 T8 T数据接收时钟频率是数据传输频率的数据接收时钟频率是数据传输频率的16倍倍正确识别起始位,防止因干扰引起的误识别正确识别起始位,防止因干扰引起的误识别3.串行数据的接收并行数据并行数据检测接收错误检测接收错误删除起始位、删除起始位、校验位、停止位校验位、停止位串行数据串行数据CPU接收缓冲寄存器接收缓冲寄存器接收移位寄存器接收移位寄存器同步控制同步控制8250SIN0/10/1 0/10/10/10/10/10/1双缓冲寄存器结构双缓冲寄存器结构保证数据的连续接收保证数据的连续接收4.接收错误的处理n奇偶错误奇偶错误PE(Parity Error)n若接收到的字符的
18、若接收到的字符的“1”的个数不符合奇偶校验要求的个数不符合奇偶校验要求n帧错误帧错误FE(Frame Error)n若接收到的字符格式不符合规定(如缺少停止位)若接收到的字符格式不符合规定(如缺少停止位)n溢出错误溢出错误OE(Overrun Error)n若若接接收收移移位位寄寄存存器器接接收收到到一一个个数数据据,并并送送至至输输入入缓缓冲冲器时,器时,CPU还未取走前一个数据,就会出现数据溢出还未取走前一个数据,就会出现数据溢出n若接收缓冲器的级数多,则溢出错误的几率就少若接收缓冲器的级数多,则溢出错误的几率就少12.3.2 8250的引脚n分成连接分成连接CPU的部分和连接外设的部分的
19、部分和连接外设的部分n注注意意:8250不不是是Intel公公司司的的产产品品,所所以以该该芯芯片片引引脚脚名名称称与与前前面面学学习习的的8253、8255等等Intel产产品品有有所所不不同同,但但是是引引脚脚功功能却是类似的能却是类似的1.处理器接口引脚(1)n数据线数据线D0D7:在:在CPU与与8250之间交换信息之间交换信息n地址线地址线A0A2:寻址:寻址8250内部寄存器内部寄存器n片片选选线线:8250设设计计了了3个个片片选选输输入入信信号号CS0、CS1、CS2*和和一一个个片片选选输输出出信信号号CSOUT。3个个片片选选输输入入都都有有效效时时,才才选选中中8250芯
20、芯片片,同同时时CSOUT输出高电平有效。输出高电平有效。n地地址址选选通通信信号号ADS*:当当该该信信号号低低有有效效时时,锁锁存存上上述述地地址址线线和和片片选选线线的的输输入入状状态态,保保证证读读写写期期间间的地址稳定的地址稳定1.处理器接口引脚(2)n读控制线读控制线n数数据据输输入入选选通通DISTR(高高有有效效)和和DISTR*(低低有有效效)有一个信号有效,有一个信号有效,CPU从从8250内部寄存器读出数据内部寄存器读出数据n相当于相当于I/O读信号读信号n写控制线写控制线n数数据据输输出出选选通通DOSTR(高高有有效效)和和DOSTR*(低低有有效效)有一个有效,有一
21、个有效,CPU就将数据写入就将数据写入8250内部寄存器内部寄存器n相当于相当于I/O写信号写信号n8250读读写写控控制制信信号号有有两两对对,每每对对信信号号作作用用完完全全相相同,只不过有效电平不同而己同,只不过有效电平不同而己1.处理器接口引脚(3)n驱驱动动器器禁禁止止信信号号DDIS:CPU从从8250读读取取数数据据时时,DDIS引引脚脚输输出出低低电电平平,用用来来禁禁止止外外部部收收发发器器对对系系统统总总线线的的驱驱动动;其其他他时时间间,DDIS为高电平为高电平n主复位线主复位线MR:硬件复位信号:硬件复位信号RESETn中中断断请请求求线线INTRPT:8250有有4级
22、级共共10个个中中断断源源,当当任任一一个个未未被被屏屏蔽蔽的的中中断断源源有有请请求求时,时,INTRPT输出高电平向输出高电平向CPU请求中断请求中断2.时钟信号n时钟输入引脚时钟输入引脚XTAL1:8250的基准工作时钟的基准工作时钟n时钟输出引脚时钟输出引脚XTAL2:基准时钟信号的输出端基准时钟信号的输出端n波波特特率率输输出出引引脚脚BAUDOUT*:基基准准时时钟钟经经8250内部波特率发生器分频后产生发送时钟内部波特率发生器分频后产生发送时钟n接接收收时时钟钟引引脚脚RCLK:接接收收外外部部提提供供的的接接收收时时钟钟信信号号;若若采采用用发发送送时时钟钟作作为为接接收收时时
23、钟钟,则则只只要要将将RCLK引脚和引脚和BAUDOUT*引脚直接相连引脚直接相连3.串行异步接口引脚8250数据装置准备好数据装置准备好DSR*数据终端准备好数据终端准备好DTR*发送数据发送数据SOUT接收数据接收数据SIN请求发送请求发送RTS*允许发送允许发送CTS*信号地信号地GND载波检测载波检测RLSD*振铃指示振铃指示RI*4.输出线nOUT1*和和OUT2*:n两个一般用途的输出信号两个一般用途的输出信号n由由调调制制解解调调器器控控制制寄寄存存器器的的D2和和D3使使其其输输出出低电平有效信号低电平有效信号n复位使其恢复为高复位使其恢复为高12.3.3 8250的寄存器n8
24、250内内部部有有9种种可可访访问问的的寄寄存存器器,除除数数寄寄存器是存器是16位的,占用两个连续的位的,占用两个连续的8位端口位端口n内内部部寄寄存存器器用用引引脚脚A0A2来来寻寻址址;同同时时还还要要利利用用通通信信线线路路控控制制寄寄存存器器的的最最高高位位,即即除除数数寄寄存存器器访访问问位位DLAB,来来区区别别共共用用两个端口地址的不同寄存器(表两个端口地址的不同寄存器(表12.2)1.接收缓冲寄存器RBR存放串行接收后转换成并行的数据存放串行接收后转换成并行的数据CPU接收缓冲寄存器接收缓冲寄存器接收移位寄存器接收移位寄存器同步控制同步控制8250SIN2.发送保持寄存器TH
25、R包含将要串行发送的并行数据包含将要串行发送的并行数据 CPU发送保持寄存器发送保持寄存器发送移位寄存器发送移位寄存器同步控制同步控制8250SOUT3.除数寄存器除数寄存器保存设定的分频系数除数寄存器保存设定的分频系数分频系数基准时钟频率分频系数基准时钟频率(16比特率)比特率)起起 始始 位位时钟时钟(RCLK)数据线数据线(SIN)T16 T16 T8 T4.通信线路控制寄存器LCRDLABD6 D5 D4 D3D2D1 D0寄存器选择寄存器选择0 正常值正常值1 除数寄存器除数寄存器中止字符中止字符0 无作用无作用1 发送中止字符发送中止字符校验位设置校验位设置0 无校验位无校验位00
26、1 设置奇校验设置奇校验011 设置偶校验设置偶校验101 校验位为校验位为1111 校验位为校验位为0停止位个数停止位个数0 1位位1 1.5位(数据位为位(数据位为5位时)位时)1 2位(数据位为位(数据位为68位时)位时)数据位个数数据位个数00 5位位01 6位位10 7位位11 8位位指定串行异步通信的字符格式指定串行异步通信的字符格式5.通信线路状态寄存器LSR0D6 D5 D4 D3D2D1 D0为为1,表示发送移位寄存器空;,表示发送移位寄存器空;当数据由发送保持寄存器移入当数据由发送保持寄存器移入发送移位寄存器时,该位为发送移位寄存器时,该位为0提供串行异步通信的当前状态提供
27、串行异步通信的当前状态供供CPU读取和处理读取和处理为为1,表示发送保持寄存器空,表示发送保持寄存器空,当当CPU将字符写入发送保持将字符写入发送保持寄存器后,该位为寄存器后,该位为0为为1,表示正在传输中止字符,表示正在传输中止字符为为1,表示出现帧错误,表示出现帧错误为为1,表示出现奇偶错,表示出现奇偶错为为1,表示出现溢出错,表示出现溢出错为为1,表示接收数据缓冲器收到,表示接收数据缓冲器收到一个数据,既接收数据准备好;一个数据,既接收数据准备好;当当CPU读走数据后,该位为读走数据后,该位为0为为1使使DTR*引脚为低引脚为低否则为高否则为高 6.调制解调器控制寄存器MCR设置设置82
28、50与数据通信设备之间与数据通信设备之间联络应答的输出信号联络应答的输出信号0 0 0LOOP OUT2OUT1RTS DTR为为1使使RTS*引脚为低引脚为低否则为高否则为高 为为1使使OUT1*引脚为低引脚为低否则为高否则为高 为为1使使OUT2*引脚为低引脚为低否则为高否则为高 为为1使使8250为为循环工作方式循环工作方式否则为正常工作方式否则为正常工作方式7.调制解调器状态寄存器MSRn反映反映4个控制输入信号的当前状态及其变化个控制输入信号的当前状态及其变化nMSR高高4位位中中某某位位为为1,说说明明相相应应输输入入信信号号当当前前为为低有效,否则为高电平低有效,否则为高电平nM
29、SR低低4位位中中某某位位为为1,则则说说明明从从上上次次CPU读读取取该该状状态态字字后后,相相应应输输入入信信号号已已发发生生改改变变,从从高高变变低或反之低或反之nMCR低低4位位任任一一位位置置1,均均产产生生调调制制解解调调器器状状态态中中断断,当当CPU读读取取该该寄寄存存器器或或复复位位后后,低低4位位被被清零清零4级中断n接收线路状态中断接收线路状态中断n奇偶错、溢出错、帧错和中止字符奇偶错、溢出错、帧错和中止字符n接收器数据准备好中断接收器数据准备好中断n发送保持寄存器空中断发送保持寄存器空中断n调制解调器状态中断调制解调器状态中断n清除发送状态改变清除发送状态改变n数据终端
30、准备好状态改变数据终端准备好状态改变n振铃接通变成断开振铃接通变成断开n接收线路信号检测状态改变接收线路信号检测状态改变优先权高优先权高优先权高优先权高优先权低优先权低8.中断允许寄存器IERn8250设计有设计有2个中断寄存器和个中断寄存器和4级中断级中断n4级级中中断断的的优优先先权权,是是按按照照串串行行通通信信过过程程中中事件的紧迫程度安排的、是固定不变的事件的紧迫程度安排的、是固定不变的n用户可利用中断允许或禁止进行控制用户可利用中断允许或禁止进行控制n中中断断允允许许寄寄存存器器的的低低4位位控控制制8250这这4级级中中断是否被允许断是否被允许n某位为某位为1,则对应的中断被允许
31、,则对应的中断被允许n否则,被禁止否则,被禁止9.中断识别IIR保存正在请求中断的优先权最高保存正在请求中断的优先权最高的中断级别编码的中断级别编码0 0 0 0 0ID1 ID0IP0 有中断有中断1 无中断无中断ID1ID0优先权优先权中断类型中断类型1 11 00 10 01234 接收线路状态接收线路状态 接收数据准备好接收数据准备好 发送保持寄存器空发送保持寄存器空 调制解调器状态调制解调器状态12.4 异步通信适配器nIBM PC/XT机的串行异步通信适配器机的串行异步通信适配器n以以8250为核心为核心n完完成成发发送送时时的的并并转转串串和和接接收收时时的的串串转转并并以以及及
32、相相应的控制工作应的控制工作n配置了配置了TTL电平与电平与EIA电平转换电路等电平转换电路等n展开异步通信适配器的展开异步通信适配器的n硬件电路硬件电路n软件编程软件编程RCLKRCLKBAUDOUTBAUDOUTIRQIRQ4 4IRQIRQ3 3RESETRESET+5V+5VA A8 8AENAENA A3 3A A7 7A A9 9IOR IOR IOWIOWA A0 0A A2 2MRMRXTAL1XTAL1OUTOUT1 1OUTOUT2 2INTRPTINTRPTDISTRDISTRDOSTRDOSTRA A0 0A A2 2CS2CS282508250LS245LS245D
33、D0 0D D7 7D D0 0D D7 7J9J9J10J10J11J11J12J12DIRDIR1.8432MHz1.8432MHzCS0CS0CS1CS1ADSADSDISTRDISTRDOSTRDOSTR5V5V12.4.1 异步通信适配器的接口电路注意:注意:J9J11跨接器跨接器和和OUT2*的作用的作用12.4.2 异步通信适配器的初始化编程n对对8250的内部控制寄存器进行编程写入的内部控制寄存器进行编程写入 写入除数寄存器写入除数寄存器n设置传输率设置传输率 写入通信线路控制寄存器写入通信线路控制寄存器n设置字符格式设置字符格式 写入调制解调器控制寄存器写入调制解调器控制寄存
34、器n设置工作方式设置工作方式 写入中断允许寄存器写入中断允许寄存器n设置中断允许或屏蔽位设置中断允许或屏蔽位设置传输率mov al,80hmov dx,3fbhout dx,al;写入通信线路控制寄存器,使写入通信线路控制寄存器,使DLAB1mov ax,96;分频系数:分频系数:1.8432MHz(120016)9660Hmov dx,3f8hout dx,al;写入除数寄存器低写入除数寄存器低8位位mov al,ah inc dxout dx,al;写入除数寄存器高写入除数寄存器高8位位写入除数寄存器设置字符格式mov al,00001010bmov dx,3fbh out dx,al;写
35、入通信线路控制寄存器写入通信线路控制寄存器;这段程序同时使这段程序同时使DLAB0写入通信线路控制寄存器设置工作方式n设置查询通信方式设置查询通信方式mov al,03h;控制控制OUT2*为高,为高,DTR*和和RTS*为低为低 mov dx,3fchout dx,al;写入调制解调器控制寄存器写入调制解调器控制寄存器n设置中断通信方式设置中断通信方式mov al,0bh;控制为控制为OUT2*低,允许低,允许INTRPT产生请求产生请求mov dx,3fchout dx,al写入调制解调器控制寄存器设置中断允许或屏蔽位mov al,0;禁止所有中断禁止所有中断 mov dx,3f9hout
36、 dx,al;写入中断允许寄存器(此时写入中断允许寄存器(此时DLAB0)写入中断允许寄存器12.4.3 异步通信程序n程序循环读取程序循环读取8250的通信状态寄存器的通信状态寄存器n数据传输错误就显示一个问号数据传输错误就显示一个问号“?”n接收到数据就显示出来接收到数据就显示出来n可可以以发发送送数数据据就就从从键键盘盘输输入入发发送送字字符符(用用户户没没有输入字符就不发送)有输入字符就不发送)n如果按下如果按下ESC键返回键返回DOS查询通信线路状态statue:mov dx,2fdh;读通信线路状态寄存器读通信线路状态寄存器in al,dxtest al,1eh;接收有错误否接收有
37、错误否?jnz error;有错,则转错误处理有错,则转错误处理test al,01h;接收到数据吗接收到数据吗?jnz receive;是,转接收处理是,转接收处理test al,20h;保持寄存器空吗保持寄存器空吗?jz statue;不能,循环查询不能,循环查询异步通信程序检测键盘输入mov ah,0bh;检测键盘有无输入字符检测键盘有无输入字符int 21hcmp al,0jz statue;无输入字符,循环等待无输入字符,循环等待mov ah,0;有输入字符,读取字符有输入字符,读取字符int 16h;采用采用01号号DOS功能调用,则有回显功能调用,则有回显cmp al,1bhjz
38、 done;是是ESC键,程序返回键,程序返回DOS异步通信程序发送数据mov dx,2f8h;将字符输出给发送保持寄存器将字符输出给发送保持寄存器out dx,al;串行发送数据串行发送数据jmp statue;继续查询继续查询异步通信程序接收数据receive:mov dx,2f8h;从输入缓冲寄存器读取字符从输入缓冲寄存器读取字符in al,dxand al,7fh;传送标准传送标准ASCII码(码(7个数据位)个数据位);所以仅取低所以仅取低7位位push ax;保存数据保存数据异步通信程序显示数据mov dl,al;屏幕显示该数据屏幕显示该数据mov ah,2int 21hpop a
39、x;恢复数据恢复数据cmp al,0dh;数据是回车符吗数据是回车符吗?jnz statue;不是,则循环不是,则循环mov dl,0ah;是,再进行换行是,再进行换行mov ah,2int 21hjmp statue;继续查询继续查询异步通信程序接收错误处理error:mov dx,2f8h;读出接收有误的数据,丢掉读出接收有误的数据,丢掉in al,dxmov dl,?;显示问号显示问号mov ah,2int 21hjmp statue;继续查询继续查询异步通信程序中断通信方式的编程方法n关键关键解决主程序与中断服务程序的数据传递解决主程序与中断服务程序的数据传递n注意注意处理好处理好82
40、50的的4级级10种中断源种中断源n简便方法简便方法只允许接收数据准备好中断只允许接收数据准备好中断中断通信方式的循环队列接收缓冲接收缓冲寄存器寄存器中断服务程序中断服务程序主程序主程序读队列送读队列送UART(保持寄存器空中断)(保持寄存器空中断)读读UART送队列送队列(接收数据准备好中断)(接收数据准备好中断)发送处理:发送处理:向队列向队列输出字符输出字符接收处理:接收处理:从队列从队列输入字符输入字符接收队列接收队列尾指针尾指针头指针头指针头指针头指针尾指针尾指针发送队列发送队列UART发送保持发送保持寄存器寄存器第第1212章教学要求章教学要求1.掌掌握握起起止止式式通通信信协协议议、RS-232C引引脚定义和连接脚定义和连接2.理理解解串串行行数数据据的的发发送送、起起始始位位检检测测、数据接受和错误标志数据接受和错误标志3.了了解解8250的的引引脚脚和和内内部部寄寄存存器器功功能能及其在及其在IBM PC系列机上的应用情况系列机上的应用情况4.掌掌握握异异步步通通信信适适配配器器的的初初始始化化编编程程和通信程序和通信程序第第1212章教学要求章教学要求(续)(续)习题习题12(第(第 292 页)页)12.2 12.5 12.7 12.8