【文档说明】微型计算机原理与应用第五章课件四-.ppt,共(69)页,680.017 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-77127.html
以下为本文档部分文字说明:
第5章-4串行通信接口教学重点:串行通信接口基本概念RS-232-C标准8250的内部结构和编程异步通信基本概念5.1串行通信基础串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式;串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本;串行通信适
合于远距离数据传送,也常用于速度要求不高的近距离数据传送;PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送。1.异步通信收发双方时钟不统一;串行通信时的数据、控制和状态信息都使用同一根信号线传送;收发双方必须遵守共同的通信协议(通信
规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题;串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议。起止式异步通信协议起始位——每个字符开始传送的标志,起始位采用逻辑0电平数据位——数据位紧跟着起始位传送
。由5~8个二进制位组成,低位先传送校验位——用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位——表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位——传送字符之间的逻辑1电平,表示没有进
行传送数据传输速率比特率数字信号的传输速率,为单位时间内传输的二进制代码的有效位(bit)数,单位为每秒比特数bit/s(bps)、每秒千比特数(Kbps)或每秒兆比特数(Mbps)来表示。波特率数据信号对载波的调制
速率,为单位时间内载波调制状态改变次数,单位为波特(Baud)。波特率与比特率的关系:比特率=波特率单个调制状态对应的二进制位数。数据传输速率两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率
为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推;常用的波特率:50,70,110,150,300,600,1200,2400,9600,11200。例题异步传输7位ASCII码,如果需要数据传输速
率为240字符/秒,使用1位奇偶校验位和1位停止位,则:1)波特率应该是多少?2)有效数据位传输位是多少?3)传输效率是多少?答:1)波特率是(7位数据位+1位起始位+1位校验位+1位停止位)×240=2400b/s2)有效数据位传输位是:7×240=1680
b/s3)传输效率是:1680/2400=70%2.同步通信双方对每一位的收发时序完全一致,统一时钟;以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束;同步通信的数据传输效率和传输速率较高,但硬件电路比
较复杂;串行同步通信主要应用在网络当中;最常使用高级数据链路控制协议HDLC。~~~~同步字符数据数据数据校验字符单工通信——只能由一方发送,例:广播半双工通信——某一时刻只能由一方发送,例:对讲机全双工通信——双方可同
时传输,例:电话3.传输模式3.传输模式发送器接收器发送器/接收器发送器/接收器发送器/接收器发送器/接收器单工方式:半双工方式:全双工方式:A站B站电话网络-模拟信号,计算机-数字信号;远距离通信时需要通过普通电话网络传输;数字信号:频带宽电话网络:
频带窄要使数字信号在电话网络上传输,需要进行信号变换—把数字信号承载到模拟信号上传输,这个模拟信号称为载波信号。调制—把数字信号承载到载波信号上;解调—从载波信号中恢复出数字信号;调制解调器:实现调制与解调的设备。4.调制与解调原因:如果数字信号直接在公用电
话网的传输线上传送,高次谐波的衰减会很厉害,从而使信号到了接收端后将发生严重畸变和失真。解决:发送方使用调制器(Modulator),把要传送的数字信号调制转换为适合在线路上传输的音频模拟信号;接收方则使用解调器(
Demodulator)从线路上测出这个模拟信号,并还原成数字信号。4.调制与解调调制方法:按照调制技术的不同分为调频(FM)、调幅(AM)和调相(PM)三种,根据传输数字信号的变化规律去调整载波的频率、幅度或相位。5.2串行接口标准RS-232C美国电子工业协会EI
A制定的通用标准串行接口;1962年公布,1969年修订;1987年1月正式改名为EIA-232D。设计目的是用于连接调制解调器;现已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标准接口
;可实现远距离通信,也可近距离连接两台微机;属于网络层次结构中的最低层:物理层。5.2.1RS-232C的引脚定义232C接口标准使用一个25针连接器;绝大多数设备只使用其中9个信号,所以就有了9针连接器;232C包括两个信道:主信道和次信道;次信道为辅助串
行通道提供数据控制和通道,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用。主要引脚的功能RS-232C的引脚(1)TxD:发送数据串行数据的发送端RxD:接收数据串行数据的接收端RS-232C的引脚(2
)RTS:请求发送当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据;CTS:清除发送(允许发送)当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号;RTS和CTS是数据终端设备与数
据通信设备间一对用于数据发送的联络信号。RS-232C的引脚(3)DTR:数据终端准备好通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪DSR:数据装置准备好通常表示数据通信设备(即数据装置)已接通电源连到通
信线路上,并处在数据传输方式DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收RS-232C的引脚(4)GND:信号地为所有的信号提供一个公共的参考电平;CD:载波检测(DCD)当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效
信号;RI:振铃指示当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效。RS-232C的引脚(5)保护地(机壳地)起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地TxC:发送器时钟控制数据终端发送串行
数据的时钟信号RxC:接收器时钟控制数据终端接收串行数据的时钟信号5.2.2RS-232C的连接微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Nu
llModem)连接连接调制解调器不使用联络信号的3线相连方式为了交换信息,TxD和RxD应当交叉连接程序中不必使RTS和DTR有效也不应检测CTS和DSR是否有效“伪”使用联络信号的3线相连方式RTS和CTS各自互接,DTR和DSR各自
互接表明请求传送总是允许、数据装置总准备好使用联络信号的多线相连方式通信比较可靠所用连线较多,不如前者经济5.2.3RS-232C的电气特性232C接口采用EIA电平高电平为-5V~-15V低电平为+5V~+15V实际常
用±12V或±15V标准TTL电平高电平:+2.4V~+5V低电平:0V~0.4V相互转换TTL与RS-32C-C之间的电平转换UART:UniversalAsynchronousReceiverTransmitte
r5.3通用异步接收发送器8250串行传输,需要并行到串行和串行到并行的转换,并按照传输协议发送和接收每个字符(或数据块);这些工作可由软件实现,也可用硬件实现;通用异步接收发送器UART是串行异步通信的接口电路芯片;IBMPC/XT机的UART芯片是INS8250。5.3.18250的
内部结构8250实现了起止式串行异步通信协议,支持全双工通信通信字符可选择数据位为5~8位停止位1、1.5或2位可进行奇偶校验具有奇偶、帧和溢出错误检测电路8250支持的数据传输速率为50~9600bps5.3.18250的内部结构1.串行
数据的发送并行数据加入起始位、校验位、停止位串行数据CPU发送保持寄存器发送移位寄存器同步控制8250SOUT0/10/10/10/1双缓冲寄存器结构保证数据的连续发送2.起始位的检测起始检测确定已检测到起始位采样数据起始位时钟(RCLK)数
据线(SIN)T16T16T8T数据接收时钟频率是数据传输频率的16倍正确识别起始位,防止因干扰引起的误识别3.串行数据的接收并行数据检测接收错误删除起始位、校验位、停止位串行数据CPU接收缓冲寄存器接收移位寄存器同步控制
8250SIN0/10/10/10/1双缓冲寄存器结构保证数据的连续接收4.接收错误的处理奇偶错误PE(ParityError)若接收到的字符的“1”的个数不符合奇偶校验要求帧错误FE(FrameError)若接收
到的字符格式不符合规定(如缺少停止位)溢出错误OE(OverrunError)若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据溢出若接收缓冲器的级数多,则溢出错误的几率就少5.3.28250
的引脚分成连接CPU的部分和连接外设的部分;注意:8250不是Intel公司的产品,所以该芯片引脚名称与前面学习的8253、8255等Intel产品有所不同,但是引脚功能却是类似。1.处理器接口引脚(1)数据线D0~D7:在CPU与8250之间交换信息;地址线A0~A2:寻
址8250内部寄存器;片选线:8250设计了3个片选输入信号CS0、CS1、CS2*和一个片选输出信号CSOUT。3个片选输入都有效时,才选中8250芯片,同时CSOUT输出高电平有效;地址选通信号ADS*:当该信号低有效时,选通上述地址线和片选线的输入状态。在P
C/XT机中,此信号固定接地。1.处理器接口引脚(2)读控制线数据输入选通DISTR(高有效)和DISTR*(低有效)有一个信号有效,CPU从8250内部寄存器读出数据;相当于I/O读信号;写控制线数据输出选通DO
STR(高有效)和DOSTR*(低有效)有一个有效,CPU就将数据写入8250内部寄存器相当于I/O写信号;8250读写控制信号有两对,每对信号作用完全相同,只不过有效电平不同而己。1.处理器接口引脚(3)驱动器禁止信号DDIS:CPU从8250读
取数据时,DDIS引脚输出低电平,用来禁止外部收发器对系统总线的驱动;其他时间,DDIS为高电平;主复位线MR:硬件复位信号RESET;中断请求线INTRPT:8250有4级共10个中断源,当任一个未被屏蔽的中断源有请求时,INTRP
T输出高电平向CPU请求中断。2.时钟信号时钟输入引脚XTAL1:8250的基准工作时钟时钟输出引脚XTAL2:基准时钟信号的输出端波特率输出引脚BAUDOUT*:基准时钟经8250内部波特率发生
器分频后产生发送时钟接收时钟引脚RCLK:接收外部提供的接收时钟信号;若采用发送时钟作为接收时钟,则只要将RCLK引脚和BAUDOUT*引脚直接相连3.串行异步接口引脚8250数据装置准备好DSR*数据终端准备
好DTR*发送数据SOUT接收数据SIN请求发送RTS*允许发送CTS*信号地GND载波检测RLSD*振铃指示RI*4.输出线OUT1*和OUT2*:两个一般用途的输出信号;由调制解调器控制寄存器的D2和D3使
其输出低电平有效信号;复位使其恢复为高。5.3.38250的寄存器8250内部有9种可访问的寄存器,除数寄存器是16位的,占用两个连续的8位端口;内部寄存器用引脚A0~A2来寻址;同时还要利用通信线路控制
寄存器的最高位,即除数寄存器访问位DLAB,来区别共用两个端口地址的不同寄存器。1.接收缓冲寄存器RBR存放串行接收后转换成并行的数据CPU接收缓冲寄存器接收移位寄存器同步控制8250SIN2.发送保持寄存器T
HR包含将要串行发送的并行数据CPU发送保持寄存器发送移位寄存器同步控制8250SOUT3.除数寄存器除数寄存器保存设定的分频系数分频系数=基准时钟频率÷(16×比特率)起始位时钟(RCLK)数据线(SIN)T16T16T8T4.通信线路控
制寄存器LCRDLABD6D5D4D3D2D1D0寄存器选择0正常值1除数寄存器中止字符0无作用1发送中止字符校验位设置××0无校验位001设置奇校验011设置偶校验101校验位为1111校验位为0停止位个数01位11.5
位(数据位为5位时)12位(数据位为6~8位时)数据位个数005位016位107位118位指定串行异步通信的字符格式5.通信线路状态寄存器LSR0D6D5D4D3D2D1D0为1,表示发送移位寄存器空;当数据由发送保持寄存器移入发送移位寄存器时,该位为0提供串行异步通信的当前状态供CP
U读取和处理为1,表示发送保持寄存器空,当CPU将字符写入发送保持寄存器后,该位为0为1,表示正在传输中止字符为1,表示出现帧错误为1,表示出现奇偶错为1,表示出现溢出错为1,表示接收数据缓冲器收到一个数据,既接收数据准备好;当CPU读走数据后,该位为0为1使DTR*引脚为低否
则为高6.调制解调器控制寄存器MCR设置8250与数据通信设备之间联络应答的输出信号000LOOPOUT2OUT1RTSDTR为1使RTS*引脚为低否则为高为1使OUT1*引脚为低否则为高为1使OUT2*引脚为
低否则为高为1使8250为循环工作方式否则为正常工作方式7.调制解调器状态寄存器MSR反映4个控制输入信号的当前状态及其变化MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平MSR低4位中某位为1,则说明从上次CPU读取该状态字后,相应输入信号已发生改
变,从高变低或反之MCR低4位任一位置1,均产生调制解调器状态中断,当CPU读取该寄存器或复位后,低4位被清零4级中断接收线路状态中断奇偶错、溢出错、帧错和中止字符接收器数据准备好中断发送保持寄存器空中断调制解调器状态中断清除发送状态改变数据终端准备好状态改变振铃接通变成断
开接收线路信号检测状态改变优先权高优先权高优先权低8.中断允许寄存器IER8250设计有2个中断寄存器和4级中断4级中断的优先权,是按照串行通信过程中事件的紧迫程度安排的、是固定不变的用户可利用中断允许或禁止进行控制中断允许寄存器的低4位控制825
0这4级中断是否被允许某位为1,则对应的中断被允许否则,被禁止9.中断识别IIR保存正在请求中断的优先权最高的中断级别编码00000ID1ID0IP0有中断1无中断ID1ID0优先权中断类型111001001234接收线路状态接收数据准备好发送保持寄存器空调制解调器状态5.4
异步通信适配器IBMPC/XT机的串行异步通信适配器以8250为核心完成发送时的并转串和接收时的串转并以及相应的控制工作配置了TTL电平与EIA电平转换电路等展开异步通信适配器的硬件电路软件编程RCL
KBAUDOUTIRQ4IRQ3RESET+5VA8AENA3~A7A9IORIOWA0~A2MRXTAL1OUT1OUT2INTRPTDISTRDOSTRA0~A2CS28250LS245D0~D7D0~D7J9J10J11J12DI
R1.8432MHzCS0CS1ADSDISTRDOSTR+5V5.4.1异步通信适配器的接口电路注意:J9~J11跨接器和OUT2*的作用5.4.2异步通信适配器的初始化编程对8250的内部控制寄存器进行编程写入⑴写入除数寄存器设置传输率⑵写入通信线路控制
寄存器设置字符格式⑶写入调制解调器控制寄存器设置工作方式⑷写入中断允许寄存器设置中断允许或屏蔽位设置传输率moval,80hmovdx,3fbhoutdx,al;写入通信线路控制寄存器,使DLAB=1movax,96;分频系数:1.8432MHz÷(1200×16)=96=6
0Hmovdx,3f8houtdx,al;写入除数寄存器低8位moval,ahincdxoutdx,al;写入除数寄存器高8位写入除数寄存器设置字符格式moval,00001010bmovdx,3fbhoutdx,al;写入通信线路控制寄存器;这段程序
同时使DLAB=0写入通信线路控制寄存器设置工作方式设置查询通信方式moval,03h;控制OUT2*为高,DTR*和RTS*为低movdx,3fchoutdx,al;写入调制解调器控制寄存器设置中断通信方式moval,0bh;控制为OUT
2*低,允许INTRPT产生请求movdx,3fchoutdx,al写入调制解调器控制寄存器设置中断允许或屏蔽位moval,0;禁止所有中断movdx,3f9houtdx,al;写入中断允许寄存器(此时DLAB=0)写入中断允许寄存器5.
4.3异步通信程序程序循环读取8250的通信状态寄存器数据传输错误就显示一个问号“?”接收到数据就显示出来可以发送数据就从键盘输入发送字符(用户没有输入字符就不发送)如果按下ESC键返回DOS查询通信线路状态statue:movdx,2fdh;读通信线路状态寄存器inal,dxtest
al,1eh;接收有错误否?jnzerror;有错,则转错误处理testal,01h;接收到数据吗?jnzreceive;是,转接收处理testal,20h;保持寄存器空吗?jzstatue;不能,循环查询异步通信程序检测键盘输入movah,0bh;检测键盘有无输入字符int21
hcmpal,0jzstatue;无输入字符,循环等待movah,0;有输入字符,读取字符int16h;采用01号DOS功能调用,则有回显cmpal,1bhjzdone;是ESC键,程序返回DOS异步通信程序发送数据movdx,2f8h;将字符输出给发送保持寄存器outdx,al
;串行发送数据jmpstatue;继续查询异步通信程序接收数据receive:movdx,2f8h;从输入缓冲寄存器读取字符inal,dxandal,7fh;传送标准ASCII码(7个数据位);所以仅取低7位pushax;保存数据异步通信程序显示数据movdl,al;屏幕显示该数据movah
,2int21hpopax;恢复数据cmpal,0dh;数据是回车符吗?jnzstatue;不是,则循环movdl,0ah;是,再进行换行movah,2int21hjmpstatue;继续查询异步通信程序接收错误处理error:movdx,2f8h;读出接收有误的数据,丢掉ina
l,dxmovdl,’?’;显示问号movah,2int21hjmpstatue;继续查询异步通信程序5.4.4中断通信方式的编程方法关键解决主程序与中断服务程序的数据传递注意处理好8250的4级10种中断源简便方法只允许接收数据准备好中断中断通信方式的循环队列接收缓冲寄存器
中断服务程序主程序读队列送UART(保持寄存器空中断)读UART送队列(接收数据准备好中断)发送处理:向队列输出字符接收处理:从队列输入字符接收队列尾指针头指针头指针尾指针发送队列UART发送保持寄存器