接口与通信 第9章 串行接口(3.3).ppt_第1页
接口与通信 第9章 串行接口(3.3).ppt_第2页
接口与通信 第9章 串行接口(3.3).ppt_第3页
接口与通信 第9章 串行接口(3.3).ppt_第4页
接口与通信 第9章 串行接口(3.3).ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(五)INS8250初始化在使用INS 8250进行串行异步通信之前,上述INS 8250的所有内部寄存器都应根据通信要求进行初始化,并为其设置相应的参数。首先,设置波特率除数。8250中的波特率发生器将把从INS8250的XTALl引脚输入的时钟脉冲与这个除数值相除,产生用于接收和发送数据的时钟脉冲。实现方法如下:首先利用OUT指令将通信线路控制寄存器的最高位DLAB设置为1,然后利用OUT指令将除数值写入除数锁存器(高字节和低字节写入两次)。完成上述设置后,将DLAB设置为0,以便将来中央处理器可以将发送的数据写入THR或从RBR读取数据。然后,设置一个通信线路控制寄存器来确定通信的格式:

2、字符码的长度、停止位数、是否进行奇偶校验以及奇偶校验的类型。通常,通信线路控制寄存器的高3位应该设置为0,这样在波特率除数寄存器的值被设置后,中央处理器不应该改变它。其次,应该设置调制解调器控制寄存器。通常,该寄存器中设置的值是03H,这将使8250输出DTR和CTS调制解调器控制信号。要诊断和测试接口,将MCR的回路位置设置为1。稍后要设置的寄存器是中断允许寄存器IER,以便确定四个事件中的哪一个用于产生中断。如果不使用中断,该寄存器的值应设为0。完成上述寄存器初始化后,可以用8250进行异步通信。发送时,用输出指令将数据写入发送保持寄存器,接收时,用输入指令将接收缓冲寄存器中的接收数据取出

3、。在数据通信过程中,可以用输入指令读取通信线路状态寄存器LSR和调制解调器状态寄存器中的状态,以了解通信情况,并采取相应措施,确保通信正常。接下来,我们通过一个例子来说明如何使用8250进行串行异步通信。在IBM PCXT及其兼容计算机中,异步通信适配器以串行异步方式与外界通信,物理接口标准为EIARS232C和20mA电流回路。INS8250异步通信控制器用于IBM PCXT的异步通信适配器,它在发送数据时完成并串转换,在接收数据时完成串串转换。(1)INS8250与中央处理器系统的接口上图显示了INS 8250与IBM个人计算机系统总线在异步通信适配器中的接口。异步通信适配器是一种串行接口

4、卡,它控制微机和外设之间的串行通信。接口卡与微机的连接是通过IBM PC机总线实现的。从图中可以看出,8250的CS0和CS1都连接到5V,所以8250的端口地址由CS2决定。当AEN=0,A3=A4=A5=A6=A7=A8=A9=l时,CS2为有效低电平。此时,无论选择A0、A1和A2,8250都是芯片的端口地址。8250的A0、A1和A2引脚直接连接到地址总线的低位三位A0、A1和A2,用于选择8250的内部寄存器。表9-9显示了8250中每个寄存器的端口地址。从表中可以看出,接收缓冲寄存器、发送保持寄存器和除数锁存器(LSB)的端口地址都是3F8H,它们由通信线路控制寄存器的最高位DLA

5、B和读写信号来区分。当除数被写入除数锁存器的低位字节时,DLAB在此之前必须被设置为1;相反,当从接收缓冲区读取或写入发送保持寄存器时,DLAB应在操作前清0,因此当用输入指令从3F8H读取时,接收的字符自然会从接收缓冲区寄存器读取,而当用输出指令写入3F8H时,数据自然会发送到发送保持寄存器。此外,中断允许寄存器和除数锁存器的高字节MSB都占用相同的端口地址3F9H,这由DLAB来区分。在操作它们之前,DLAB应设置为相应的0或1。芯片选择信号CS2仅在AEN=0时有效(中央处理器持有总线控制权),因此异步通信控制器不能执行直接存储器存取表9-9 8250内部寄存器的端口地址。8250的数据

6、线D0D7通过LS245与系统的数据总线相连,起到隔离的作用。只有当中央处理器需要操作8250(此时CS2有效)时,LS245才打开数据路径,数据传输方向由IOR控制。读取时,数据从8250传输到总线;写入时,数据从总线传输到8250。8250使用中断模式发送或接收异步通信数据。在接收数据错误、接收缓冲寄存器满、传输保持寄存器空以及输入控制信号状态改变的情况下,8250将提出一个中断,并通过PC机总线上的IRQ3向中央处理器施加。此外,在该适配器的8250中,只有当OUT2有效时,中断才能呈现给中央处理器,OUT2起到中断许可的作用。当系统复位时,复位信号被发送到8250的主复位端子,以复位8

7、250。异步通信适配器板上还有一个晶体振荡器电路,它产生1.8432兆赫兹的时钟脉冲信号,并将其作为8250的工作时钟发送到8250的XTALl端。(INS8250与外设之间的通信接口异步通信适配器与外设之间的通信接口电路如图9-27所示。它由一个20mA电流回路接口电路和一个EIARS-232C接口电路组成。电流回路接口电路由IBM打印机或电传机使用,提供20mA发送电流或接收20mA,使异步设备可以远离主机工作。EIARS-232C接口为外部通信设备提供标准的串行异步通信接口。当异步通信适配器作为20mA电流回路接口工作时,应连接上图中的跳线J1、J2和above乐队,电流回路的输出电路如

8、图9-28所示。发送时,8250通过SOUT将输出串行数据发送到三个并联的开路集电极门7406,然后从25引脚D-SHELL连接器的引脚11输出,通过接收设备从连接器的引脚9返回,然后通过49.9欧姆电阻和5V电源将其与图10-28中电流环路的输出驱动电路相连。此时,如果SOUT输出高电平(逻辑1),一个20mA的电流流过接收设备,表示输出逻辑1;相反,如果SOUT输出低电平(逻辑0),没有20mA电流流过接收设备,表示输出0。当用电流回路接收数据时,如图9-29所示。当外设发送逻辑1时,外设发送的20mA电流通过25针D-SHELL连接器的18针和25针流经光电耦合器的发光二极管,使光电二极

9、管导通,然后驱动三极管导通。三极管的集电极输出一个低电平信号,该信号由LS04反相为高电平,并通过跳线JBOY3乐队连接到8250的数据输入端口,因此,8250接收一位逻辑1串行数据。相反,当外设发送逻辑0时,外设不发送20mA电流,这是光电耦合器的感光。图9-29 20ma电流回路的数据接收电路,二极管和三极管处于关断状态,三极管的集电极为高电平。LS04反相后,跳线JBOY3乐队连接,向8250的数据输入端发送TTL低电平信号,因此,8250接收到二进制逻辑0。当异步通信适配器作为EIARS-232C接口工作时,跳线的J7和j8应该连接(J1、J2和JBOY3乐队断开)。根据EIARS-2

10、32C物理接口标准的要求,8250输出的串行数据SOUT和控制信号由电平转换驱动器75150P从正逻辑TTL电平转换为12V负逻辑电平,25针D-SHELL接口对应的信号为EIA TXD、EIA DTR和EIA RTS;另一方面,从外部设备接收的串行数据EIA RXD和控制信号EIA DCD、eiasdsr、eiacCTS、eiarri由电平移位器75154从负逻辑RS-232C电平转换为正逻辑TTL电平,并分别发送到8250的输入端SIN、RLSD、dsr、CTS和ri。此外,25针D-SHELL连接器的针脚7是信号地。当异步通信适配器以RS-232C串行方式与外界通信时,引脚7与通信设备的

11、逻辑地相连,为所有RS-232C接口信号提供公共信号参考地。异步通信适配器中8250的波特率输出引脚直接与芯片本身的RCLK引脚相连,以保证数据接收时钟和数据发送时钟具有相同的频率。因此,要求连接到异步通信控制器的通信设备的波特率应与8250的波特率一致。请注意这一点。综上所述,EIARS-232 C SerVices异步通信接口的异步通信适配器提供了8个标准信号:RXD、TXD、RTS、CTS、DTR、DSR、DCD和ri与通信设备接口。使用时,可以根据具体情况选择部分或全部与特定的通信设备连接,实现串行通信。最后,不要忘记将两者的信号连接在一起。(3)程序示例通过上述接口,我们可以与外界进

12、行通信,可以使用20mA电流回路,也可以使用RS-232,C,根据需要进行选择。下面,我们给出一个程序实例,它使用了EIARS-232C异步串行接口的异步通信控制器。该程序基于IBMPCXT。通过编程8250和使用8250的回路诊断测试功能,键盘输入的字符通过8250传输,检索并显示在阴极射线管屏幕上。8250通信初始化为7个数据位,1个停止位,采用奇数校验,波特率为1200Bd,8250设置为诊断测试模式。编程示例8250 STACKSEGMENTPARASTACKSTACK db256 dup(0);将堆栈区域设置为标签堆栈结束代码段假设cs:代码,ss:堆栈开始procfar movex

13、,堆栈;将短轴和短轴设置为指向堆栈顶部移动短轴、最大移动短轴、最大移动短轴和最大移动短轴;以上三条指令完成保存并返回到操作系统的断点处;以下程序初始化INS 8250,将其设置为7位代码、1位停止位、奇数校验和1200Bd的波特率。环回诊断的测试模式。MOVDX,3FBH将LCR的端口地址发送到DX,并将LCR的最高位DLAB设置为1移动、80H输出DX、1移动、3F8H;除数锁存器的低位字节被发送到60H MOVAL、60H OUT DX、AL、MOVDX和3F9H;除数锁存器的高字节被发送到0 MOVAL、0 OUTDX、1 MOVADX和3FBH;将LCR设置为奇数,一个停止位,7;生成

14、代码长度移动,0AH输出DX,移动,3FCH;初始化MCR,并将8250设置为诊断测试;模式MOVAL,13H OUTDX,AL MOVDX,3F9H;设置IER禁止所有四个中断MOVAL,0 OUTDX,AL。下面的程序用于从键盘输入字符,并将它们发送到8250。该字符通过使用8250的回送功能接收,然后显示在阴极射线管上。永远:摩凡陀,3FDH阅读LSRINAL,DX TESTAL,1EH;检查是否有数据接收错误JNZERROR;出现错误,请转到错误处理。TESTAL,01H没有错误,检查接收的数据是否准备好了。JNZRECEIVE准备,传送接收字符处理。遗嘱,20H还没准备好,看看THR

15、是不是空的。JZEPURE;非空循环测试。MOVAH,1;清空,调用BIOS INT 16H并检查键盘缓冲INT 16H空的或不空的,JZEPURE;空,传输字符不在键盘上输入,并执行循环测试。MOVAH,0;缓冲区不为空,如果有按键输入,读取缓冲区字;发送国际16小时;铝蓄电池。MOVDX,3F8H8250发出键盘输入的字符。OUTDX,AL JMPFOREVER循环上述操作。当8250接收到一个字符,并且没有出现错误时,进行以下程序,完成接收字符并在阴极射线管上显示接收到的字符。接收:MOVDX,3F8H中央处理器读取8250接收的数据字符。阿拉伯语、德语、西班牙语和阿拉伯语,7FH因为它

16、是一个7位代码,最高位被删除。PUSHAX将收到的字符按到堆栈上并保护它们。MOVBX,0;设置INT 10H输入参数。MOVAH,14岁;设置INT 10H的功能号。INT10H调用基本输入输出系统显示人工智能中的字符。POPAX从堆栈中恢复接收到的字符。CMPAL,0DH这是回车码吗?JNZPEURE;否,执行上述操作的下一个周期。MOVAL,0AH是回车,然后将换行符发送给AL。MOVBX,0;调用基本输入输出系统并输出一个换行符到阴极射线管,即阴极射线管MOVAH,14;将显示INT10H JMPFOREVER;执行上述操作的下一个周期。如果接收到的字符错误,执行以下步骤完成以下操作:

17、清除接收到的数据缓冲区;记忆和显示1?错误:MOVDX,3F8H读取空接收缓冲寄存器。INAL,DX MOVAL?发送到移动闭塞中心,0;调用基本输入输出系统在阴极射线管上显示字符?MOVAH,14 INT10H JMPFOREVER执行下一个循环RET对于上述操作;回到DOS STARTENDP CODEENDS ENDSTART,上面的程序有一定的通用性,我们可以用这个程序来交流。例如,使用此程序在两台电脑之间进行通信:我们可以用标准方式或最简单的方式连接两台电脑,即连接两台电脑的脚7(地线),将一台电脑的脚2和3与另一台电脑的脚3和2连接,并清除上述程序中设置的环回诊断测试模式,这样从一台电脑的键盘输入的字符将显示在另一台电脑的阴极射线管屏幕上。上述程序是通过程序查询输入输出的,运行该程序进行串行通信时,中央处理器不能做其他任何事情。事实上,当使用异步通信适配器传输串行数据时,8250会被中断。通常,中央处理器执行主程序。当要发送或接收数据时,8250向中央处理器发出中断请求,中央处理器暂停主程序的执行,以执行8250的中断服务程序。在中断服务程序中,中央处理器查询中断源,如果接收到的数据是错误的,则处理错误;如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论