《大学《接口与通信》第4章2.ppt》由会员分享,可在线阅读,更多相关《大学《接口与通信》第4章2.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4.3 Intel 8250可编程异步通讯接口可编程异步通讯接口4.3.1 8250的基本性能指标的基本性能指标完全双工、双缓冲器发送和接收器的异步通信完全双工、双缓冲器发送和接收器的异步通信接口电路。接口电路。异步传送:异步传送:5 58 8位字符,时钟频率为通讯波特位字符,时钟频率为通讯波特率的率的1616倍。倍。通信波特率:通信波特率:50509,6009,600。停止位可编程选择为停止位可编程选择为1 1、1.51.5和和2 2位,可编程产生位,可编程产生终止字符。终止字符。可编程选择奇偶校验方式:奇校验、偶校验。可编程选择奇偶校验方式:奇校验、偶校验。出错检测出错检测具有奇偶、溢出、
2、帧错误等检测具有奇偶、溢出、帧错误等检测电路。电路。片内具有优先权中断控制逻辑,具有很强的中片内具有优先权中断控制逻辑,具有很强的中断控制能力。断控制能力。4.3.2 8250的功能结构的功能结构4.3.2.1 发送与接收部分 发送器发送器接收到发送数据后,将发送数据保存在数据发送缓冲器(THR)中。当发送移位寄存器没有正在发送的数据时,8250把待发送数据由发送缓冲器传送到移位寄存器(TSR),按照编程指定的参数(包括数据格式和波特率等),加入起始位、奇偶校验位和停止位,从8250的串行数据输出端(SOUT)移位输出,输出的顺序为字符的低位在前、高位在后。当将THR中的数据传送至TSR以后,
3、THR“空”状态位置位或通过中断逻辑发出中断申请,要求CPU传送下一个字符。当CPU向THR写入一个字符后,THR“空”状态位复位并清除中断请求。当在TSR中的字符移位输出完后,8250再次把THR中的字符,传送至TSR,开始下一个字符的传送过程。另外,发送器的另一个功能是能发送终止符(Break Character)。终止符是由在通信线上的连续的低电平组成,用来通知接收方终止完全双工通信中通信。接收器接收移位寄存器(RSR)对数据输入端(SIN)输入的串行数据进行移位接收。在接收时,首先要搜索起始位,使用16倍波特率的数据接收时钟(RCLK)采样传送电路上的输入信号。当输入信号由高电平变低后
4、,连续测试8个RCLK时钟周期,若采样到的都是低电平,则确认为起始位,否则认为是传输线上的干扰。确认起始位后,每隔16个RCLK时钟周期对SIN输入的数据位进行采样,直到规定的数据格式结束。RSRRSR接收完一个字符后,接收控制电路按规定的接收完一个字符后,接收控制电路按规定的数据格式进行奇偶校验,如果没有错误自动删除数据格式进行奇偶校验,如果没有错误自动删除起始位、奇偶校验位和停止位,把串行输入的数起始位、奇偶校验位和停止位,把串行输入的数据移位转换成并行数据送人接收缓冲寄存器据移位转换成并行数据送人接收缓冲寄存器(RBRRBR),使接收数据),使接收数据“可用位可用位”置位,并通过置位,并
5、通过中断控制电路发出读取数据中断请求。对中断控制电路发出读取数据中断请求。对RBRRBR的的读取,使接收数据读取,使接收数据“可用位可用位”复位,清除中断请复位,清除中断请求。在上述过程中接收器继续接收字符。求。在上述过程中接收器继续接收字符。接收时,如果发现接收数据出现奇偶校验错接收时,如果发现接收数据出现奇偶校验错(PE)(PE)、数据格式错数据格式错帧错误帧错误(FE)(FE)、接收数据时发生溢、接收数据时发生溢出错出错(OE)(OE),即上一个保存在,即上一个保存在RBRRBR中的数据尚未被中的数据尚未被读取,下一个接收的数据准备送至读取,下一个接收的数据准备送至RBRRBR中、接收中
6、、接收到终止信号到终止信号(BI)(BI),都置位状态寄存器中的相应位,都置位状态寄存器中的相应位,并通过中断控制逻辑发出中断请求,要求处理。并通过中断控制逻辑发出中断请求,要求处理。4.3.2.2 通信控制和状态寄存器通过对LCR写入控制信息,确定通信的字符格式(包括字符长度、停止位的个数、奇偶校验设置)。也可以使LCR的第6位置“1”迫使8250输出终止符。LCR的最高位是一种特殊用途,在8250内部有10个寄存器,但8250只有三条地址线(A2A0)来寻址内部寄存器,最多只能寻址8个内部寄存器,所以,存在有两组寄存器要共用同一个地址,LCR的最高位DLAB作为另一个寻址依据,来区分是寻址
7、哪一组寄存器。LSR提供串行数据发送和接收时的状态,供CPU读取和处理。CPU不仅可以对LSR实行读出,也可以对其写入(除第6位以外),供系统自检时使用。4.3.2.3 波特率发生控制电路8250使用频率1.8432MHz作为基准时钟输入信号。需用分频方法产生所需的波特率。8250传送或接收串行数据时,使用的时钟信号频率是数据传送波特率的16倍。当8250工作于不同的波特率时,所使用的分频系数也是不同的,在8250内部有两个保存分频系数的寄存器称为除数锁存器。波特率与除数寄存器的值之间的关系如表4-6示。4.3.2.4 调制解调控制部分 D2/D3=1时,引脚OUT1/OUT2=04.3.2.
8、5 中断控制 1中断识别寄存器(IIR)当接收数据错、接收缓冲寄存器满、发送缓冲器空以及应答联络的输入控制信号的状态变化等有一种或多种出现时,在允许中断的情况下,可通过读中断识别寄存器识别是何种事件引起中断。有选择地设置中断允许位,可以改变8250内部的中断控制机构。4.3.2.6 8250内部寄存器的寻址 8250内部有上述的10个可访问的寄存器,都是通过8250的引脚A2A0来访问。存在有两个端口地址由两个寄存器共用的情况,这就要求引入另一个信号区别共用同一地址的寄存器。完成上述功能的选择信号是8250中的通信线路控制寄存器最高位,即除数锁存器访问位(DLAB)来识别。参见表4-8。表4-
9、8 用于8250内部寄存器选择地址表4.3.3 8250的引脚的引脚4.3.3.1 与系统相连接部分数据线D0D7(双向、三态、高电平有效,引脚18)CPU与8250之间的信息通过这些数据线传送。具体包括:对8250的编程信息;从8250的有关寄存器中读取的状态;通过8250发送的数据;8250接收的数据;数据输入选通脉冲DISTR、DISTR:两者中只要有一个有效,就允许从8250读取状态信息或数据。即只需用两个信号中的一个信号作为选通控制信号,另一个可以固定为无效。数据输出选通脉冲DOSTR、DOSTR:情况与数据输入选通脉冲相似。数据选通线驱动器禁止信号DDIS(输出):每当CPU从82
10、50读取信息时,DDIS变为低电平。输出高电平时,用来禁止外部的收发器继续往PC机发送数据。地址线A0A2(输入):这三条引线一般与系统地址总线相连,CPU用这三个信息来寻址8250内部不同的寄存器。选片控制信号CS0、CS1、CS2:三个选片控制信号,必须三个信号都有效时8250才能正常工作。一般用CPU访问外设控制线和高位地址组成选片信号。地址选通脉冲ADS(输入):其有效时,锁存地址(A0、Al、A2)和选片信号(CS0、CS1、CS2)。主复位信号MR(输入):该信号连接到系统的复位信号。当其有效时,清除所有寄存器(除了接收缓冲器、发送缓冲器和除数锁存器外)和8250的控制逻辑以及有关
11、的输出信号,如表4-9所示。4.3.3.2 与通信设备相连部分 外部时钟输人输出XTAL1、XTAL2(引脚16、17):这两个引脚把串行通信的主定时基准信号(晶体振荡器或时钟信号)接到8250。接收时钟RCLK(输入、引脚9):从这个引脚向8250输人16波特率的接收器时钟。BOUNDOUT波特率输出(输出、引脚15):是8250输出的一个时钟信号,其频率是8250的主振频率除以除数锁存器的值,即为16波特率。通常可用该信号作为接收器时钟,所以常把它连至RCLK输入端。串行数据输入信号SIN(输入):由通信设备(外设或调制解调器)送来的串行的输人数据。串行数据输出信号SOUT(输出):825
12、0发送给通信设备(外设或调制解调器)的串行输出数据。数据终端准备就绪DTR(输出):可由CPU使调制解调控制寄存器的位0(DTR位)置“1”而输出有效(低电平),主复位信号MR把它置为高电平。通常情况下,当8250已准备好通信,这有效信号用以通知通信设备或调制解调器。发送请求RTS(输出):当8250已准备好通信,使RTS输出有效信号以通知通信设备。此信号可由CPU使调制解调控制寄存器的位1(RTS位)置“1”而输出有效(低电平),主复位信号把它置为高电平。允许发送CTS(输入):当调制解调器作好了通信准备时,向8250输入有效的CTS信号,通知8250开始发送。它的状态可由读调制解调状态寄存
13、器的第4位得到。调制解调器状态寄存器的位0,指示自最后一次读操作以来,CTS的输入状态是否发生变化。如果编程允许调制解调器状态中断,CTS状态的变化就产生中断请求。数据设备准备就绪数据设备准备就绪DSR(DSR(输入输入):当调制解调器:当调制解调器或通信设备已准备好建立通信环路或通信设备已准备好建立通信环路(链链)准备与准备与82508250传送数据时,就向传送数据时,就向82508250输送有效的输送有效的DSRDSR信号。信号。它的状态可由读调制解调状态寄存器的第它的状态可由读调制解调状态寄存器的第5 5位得到,位得到,此寄存器的第此寄存器的第1 1位指示了自上次读操作后此信号是位指示了
14、自上次读操作后此信号是否发生了变化。若允许调制解调器状态中断的话,否发生了变化。若允许调制解调器状态中断的话,DSRDSR状态的变化就产生中断请求。状态的变化就产生中断请求。接收线路检测接收线路检测RLSDRLSD和振铃指示和振铃指示RI(RI(输入输入):它们:它们为低电平为低电平(有效有效)时,表示通信设备已检测到数据时,表示通信设备已检测到数据串串(RLSD)(RLSD)或收到了振铃信号(或收到了振铃信号(RIRI)。它们的状态)。它们的状态可由读调制解调状态寄存器的第可由读调制解调状态寄存器的第7 7、6 6位得到,此位得到,此寄存器的第寄存器的第3 3、2 2位分别表示自上一次读操作
15、以后位分别表示自上一次读操作以后这些信号是否发生了变化。若允许调制解调器状这些信号是否发生了变化。若允许调制解调器状态中断,这两信号中的任意一个状态发生变化,态中断,这两信号中的任意一个状态发生变化,都将产生中断请求。都将产生中断请求。中断请求信号INTRPT(输出):8250内部的中断申请源任一个未被屏蔽源有请求时,INTRPT输出高电平。适当的中断服务和主复位信号使INTRPT处于低电平。输出信号OUT1、OUT2(输出):是两个编程控制的输出。可对调制解调器控制寄存器的第2位和第3位编程使其输出有效信号。主复位信号使这两者处在高电平。选片输出CSOUT(输出):当8250的三个选片输入端
16、CS0、CS1和CS2都有效时,此引脚输出高电平,此时才能开始数据传送。4.3.4 8250的初始化编程的初始化编程编程主要步骤是:确定波特率:设置除数锁存器的分频值。为了能对除数锁存器写入,要先使通信线路控制寄存器的D7=1。设置通信的数据格式:通过对通信线路控制寄存器编程实现,而且要使它的D7=0,以便接下来对接收和发送缓冲器以及中断允许寄存器进行操作。如果使用中断,则设置中断允许寄存器的状态。若不使用中断,这个寄存器可设置成0。设置调制解调器控制寄存器:通常,这寄存器设定的值为03H,使8250输出DTR和RTS这两个调制解调器控制信号。如果系统中不使用这两个信号,这样的设置也不会带来问
17、题。如果使用中断,OUT2位应设置为“1”,这样8250产生的中断信号可以通过系统总线送给8259中断控制器。下面举一个例子:要求以9600波特率进行异步通信,每字符的数据位7位,2个停止位,奇校验,允许所有中断。下面给出了采用8086汇编编写的8250初始化部分程序。;BIOS分配异步通信的端口地址为3F8H3FFHMOV AL,80HMOV DX,3FBHOUT DX,AL;使通信线控制寄存器最高位置1MOV AL,0CHMOV DX,3F8HOUT DX,AL MOV DX,3F9HMOV AL,0OUT DX,AL;对除数锁存器置初值MOV AL,00001110B;设置数据格式为7位
18、字符两个停止位,奇校验MOV DX,3FBHOUT DX,ALMOV AL,0FH;允许所有中断MOV DX,3F9HOUT DX,ALMOV AL,OBH;OUT2、DTR、RTS信号有效MOV DX,3FCHOUT DX,AL4.3.5 INS8250INS8250应用编程应用编程1 1、查询方式发送、查询方式发送初始化初始化8250读读LSRD5=1?发送一个字符发送一个字符发完?发完?结束结束YYNN2 2、查询方式接收、查询方式接收初始化初始化82508250读读LSRD0=1?接收一个字符接收一个字符收完?收完?结束结束YYNN有错?有错?NY错误处理错误处理发送寄存器接收数据就绪
19、3 3、中断方式通信程序设计、中断方式通信程序设计1 1)中断通信方式初始化)中断通信方式初始化 修改中断向量:修改中断向量:按使用的端口按使用的端口COM1COM1或或COM2COM2,接管中接管中断断0CH0CH或中断或中断0BH0BH(保存原中断向量,将新的中断向量保存原中断向量,将新的中断向量替换上去,注意程序结束时恢复原中断向量)替换上去,注意程序结束时恢复原中断向量)。确定通信协议:确定通信协议:设置波特率及数据传输格式。设置波特率及数据传输格式。确定确定INS8250INS8250操作方式:操作方式:设置中断允许寄存器相应位设置中断允许寄存器相应位的允许或禁止,并设允许向量中断模
20、式的允许或禁止,并设允许向量中断模式(置置MCRMCR的的D3=1D3=1)。开放通信中断:开放通信中断:对对8259A8259A中断控制器的屏蔽寄存器编中断控制器的屏蔽寄存器编程(程(OCW1OCW1),),允许中断允许中断IRQ4IRQ4或或IRQ3IRQ3。中断通信方式有查询中断和向量中断两种方式。中断通信方式有查询中断和向量中断两种方式。DATASEGMENT DATAINT_SEG DW?INT_OFF DW?DATAENDSmoval,0ch ;取原取原OCH中断向量中断向量movah,35hint21hmovINT_OFF,bx;将返回的向量将返回的向量ES:BX保存在双字保存在
21、双字movbx,es ;变量变量INT中中movINT_SEG,bxcli ;修改中断向量前关中断修改中断向量前关中断moval,0chmovah,25hmovdx,SEG INSEV;DS:DX指向中断向量,其中指向中断向量,其中movds,dx;DS指向段地址指向段地址movdx,OFFSET INSEV;DX指向偏移量指向偏移量int21hmovdx,3fbh;线路控制寄存器线路控制寄存器LCR地址地址outdx,80h;置置DLAB=1movdx,3f8h;低位除数寄存器低位除数寄存器DLL地址地址outdx,0ch;写写9600波特率的除数低波特率的除数低8位位incdx;高位除数寄
22、存器高位除数寄存器DLH地址地址outdx,00h;写写9600波特率的除数高波特率的除数高8位位mov dx,3fbh;线路控制寄存器线路控制寄存器LCR地址地址mov al,00011011b;偶校验、偶校验、1位停止位、位停止位、8位数据位位数据位out dx,almov dx,3fch;MODEM控制寄存器控制寄存器MCR地址地址out dx,08h;OUT2位置位置1,打开,打开COM1中断中断mov dx,3f9h;中断允许寄存器地址中断允许寄存器地址out dx,03h;允许收允许收/发中断发中断inal,21h;读读8259A的的IMRandal,efhout21h,al;开放
23、开放IRQ4中断中断sti D5D4D3D2D1D0WLS0WLS1PENSTBEPSSPSBDLAB字符长度选择字符长度选择005位位016位位107位位118位位停止位选择停止位选择01位位11.5位位(D1D0=00)2位位(D1D000)奇偶校奇偶校验允许验允许奇偶校奇偶校验选择验选择11偶校验偶校验01奇校验奇校验附加奇偶标志附加奇偶标志位选择位选择0不附加不附加1附加附加1位位中止设置中止设置1中止中止0正常正常除数寄存器除数寄存器访问允许访问允许0禁止禁止1允许允许82508250中的通信线路控制寄存器中的通信线路控制寄存器D7 D6 D5 D4 D3 D2 D1 D02 2)通
24、信中断服务程序)通信中断服务程序 首首先先读读中中断断识识别别寄寄存存器器IIRIIR,判判断断中中断断源源,然然后后转转向向对对应应的的处处理理子子过过程程(程程序序)。判判断断中中断断源源应应该该按按照照中中断断优先级别次序进行。优先级别次序进行。当当中中断断识识别别寄寄存存器器D2D1=11D2D1=11时时,表表明明接接收收出出错错中中断断,需需要要再再读读取取线线路路状状态态寄寄存存器器,分分析析错错误误原原因因,再再进进行行错误处理。错误处理。可可能能出出现现多多个个中中断断源源同同时时引引发发中中断断。因因此此,每每处处理理完完一一种种中中断断源源后后,应应继继续续读读取取中中断
25、断识识别别寄寄存存器器,检检测测D0D0是是否否为为“0 0”,当当D0=0D0=0时时,表表明明还还有有未未决决中中断断,应应该继续分析中断源并进行中断处理。该继续分析中断源并进行中断处理。中断程序返回的条件是中断识别寄存器的中断程序返回的条件是中断识别寄存器的D0=1。4.4 Intel 8251A可编程通信接口可编程通信接口4.4.1 8251的性能指标的性能指标可用于串行通讯的同步和异步传送。可用于串行通讯的同步和异步传送。同步传送:同步传送:58位字符,内部或外部位字符,内部或外部同步,可自动插入同步字符。同步,可自动插入同步字符。异步传送:异步传送:58位字符,时钟速率为位字符,时
26、钟速率为通信波特率的通信波特率的1、16或或64倍。倍。可产生终止字符(可产生终止字符(Break Character););可产生可产生1、1.5或或2个位的停止位。自动检测个位的停止位。自动检测和处理终止字符。和处理终止字符。可检查假的启动位。可检查假的启动位。波特率:异步传送的最大波特率为19.2K;同步传送的最大波特率64K。完全双工,发送和接收双缓冲器。出错检测具有奇偶、溢出、帧错误等检测电路。4.4.2 8251的功能结构的功能结构 I/O控制4.4.3 8251的接口信号的接口信号命令,状态/数据同步检测信号 数据终端准备好 数据装置准备好 请求传送 允许传送 接收器时钟 发送器
27、时钟 4.4.4 8251的编程的编程8251是一个可编程的多功能通信接口。使用时必须对它进行初始化编程,确定8251的具体工作方式。例如:规定工作于同步还是异步方式;传送的波特率;字符格式等等。初始化编程必须在系统复位以后,启动8251工作以前进行。正确写控制字的顺序如图所示。工作方式字格式在同步方式时,紧跟在方式指令后面的是由程序输入的同步字符。同步字符用与方式指令类似的方法由CPU发送给8251的。在输入同步字符后,或在异步方式时,在方式选择指令后应由CPU发送工作命令指令。命令指令直接使8251处于规定的工作状态。以准备接收或发送数据。命令字格式如图4-29RXESBRKERRTSTX
28、ENDTRIREHRXESBRKERRTSTXENDTRIREH允许发送“1”允许“0”不允许数据终端就绪:“1”使DTR输出为低允许接收“1”允许“0”不允许送间隔字符“1”使TXD为低“0”正常工作出错标志复位:“1”使PE、OE、TE标志复位请求发送:“1”使 RTS 输出变低内部复位:“1”使芯片回到方式指令状态进入搜索态:“1”使开始搜索同步字符D7D6 D5 D4 D3 D2 D1 D0对8251的工作状态,CPU可通过IO读操作把8251的状态字读人CPU,用以控制CPU与8251之间的数据交换。在读状态字时,CD端为“1”。状态字格式如图4-30所示。它只要数据缓冲器空就置位;
29、而引脚TxRDY只能当条件:数据缓冲器空CTSTxEN成立时,才置位。4.4.5 8251应用举例应用举例例4-2:8251工作在异步方式,波特率速度系数为64,字符长度为7位,偶校验。方式控制字为11111011B即0FBH。用命令字使8251发送允许,接收允许,使错误位复位,则命令字为00010101B即15H。设备端口号为0F1H(CD=1)和0F0H(CD=0),则在主程序的初始化程序为:MOV AL,0FBH;方式控制字 OUT 0F1H,AL MOV AL,15H ;工作命令字 OUT 0F1H,AL 于是8251做好了准备,能接收和发送数据。如果由于发送或接收而产生中断请求,则引
30、起CPU中断,于是CPU进人中断服务程序。其中断服务程序为:INT:PUSH AX PUSH BX IN AL,0FlH RCR AL,1 ;TxRDY=1转至发送 JC SISP RCR AL,1 JC RISP ;RxRDY=1转至接收REN:POP BX MOV AL,20H;发EOI命令 OUT 20H,AL POP AX STI RETIRISPRISP:;接收数据子程序;接收数据子程序 IN AL IN AL,0F1H 0F1H ;先检查有无错误;先检查有无错误 AND ALAND AL,38H38H JNZ ERRSPP JNZ ERRSPP ;有错,转至出错处理于程;有错,转至
31、出错处理于程序序 IN ALIN AL,0F0H0F0H MOV CL MOV CL,ALAL JMP REN JMP RENSISPSISP:;发送数据子程序;发送数据子程序 MOV AL MOV AL,BL BL ;要输出的数据在;要输出的数据在BLBL中中 OUT 0F0HOUT 0F0H,ALAL JMP REN JMP REN4.5 IEEE 1394它支持不经集线器的点对点连接,最多允许63个相同速度的设备连接到同一总线上,最多允许1023条总线相互连接。支持点对点连接,所以各连接节点上设备都是在相同位点,也就相当局域网络拓扑结构中的“对等网”一样。是一种与平台无关的串行通信协议。
32、1987年Apple发布了第一个完整规范,IEEE(电气与电子工程师协会)于1995年正式制定该总线标准。IEEE 1394的数据传输速率(支持100Mbps、200Mbps和400Mbps)相当快,因此又叫它“高速串行总线”、“火线”(FireWire)。与当时的USB 1.0总线速度(传输速率为12Mbps)相比,IEEE 1394的速度显然要高出很多。4.5.1 概述概述IEEE 1394标准的特点:高速的数据传送。是目前主流总线中速度最快的串行总线。支持100Mbps、200Mbps和400Mbps的数据传输率。而目前主流的USB1.1规格的数据传输率仅为12Mbps。新的USB 2.
33、0标准的传输速率可达到480Mbps,但是IEEE 1394新标准b版本中能够实现G位(最高为1.6Gbps)传输速率。高度的实时性,支持异步传送和等时传送两种模式。而等时传送模式专用于实时地传送视频和音频数据。高自由度连接/拓扑结构:允许接点菊花链(Node Daisy Chain)和接点分枝,实现混合连接。同时,通过协议时序优化(Protocol Timing Optimization)还可实现更高效率的网络结构。用一线串珠方式的连接,最多连接16台设备;采取混合连接能实现额定的63台设备连接。图4-34 IEEE 1394菊花链结构示意图支持带电插拔/即插即用。传输距离长:允许两结点间的
34、距离最大为4.5米。新的标准可以实现100米范围内的设备互连。对等支持:两台设备无需连接到个人计算机,即可实现共连。可以把配备IEEE 1394端口的数字照相机直接连接到其它支持IEEE 1394的设备上。支持同、异步传输:互联网络中所传输的视频数据不间断,就必须保证数据带宽的稳定,异步传输方式是无法实现的。采取同步传输方式就可以保证在传输过程中带宽的稳定。IEEE 1394标准接口结构的所有资源都是以统一存储编址形式用存储变换(Memory-Maps)方式识别,实现资源配置和管理。它向系统各设备发送数据时,各设备就像内存的存储单元一样,进行从CPU到内存的直接传送。4.6.2 IEEE 1394的组成的组成(自学)(自学)4.6.3 IEEE 1394的数据传输模式 4.6.4 USB和IEEE 1394的异同