




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机系统的通信实验一目的:了解计算机间的数据通信的基本技术;了解RS232C的结构及使用方法。RS-232C 9芯连接器插针定义如下: 1 保护地 1 2 发送数据TXD 2 3 接收数据RXD 3 4 请求发送RTS 4 5 准允发送CTS 5 6 数据装置准备好DSR 6 20 数据终端准备好DTR 20 8 载波检测CD 8 7 信号地 7 二使用设备:带有RS232C通信接口的微型计算器及一根多芯电缆。三8250异步串行接口:IBM PC系统可选的串行异步通信接口板上用的UART是一片INS8250,以它为核心,附加一些辅助电路,如I / O地址译码电路电平变换电路等,组成了RS232C接口,所以,对RS232C编程实际上是对8250的编程。8250的逻辑框图如下: 内部总线路 SIN 接收数据寄存器 移位寄存器 数据总线 线控制寄存器 接收定时 CLK 和控制 分频寄存器(L) 波特率地址 分频寄存器(H) 产生器总线 地址 发送定时选 线状态寄存器 和控制择 SOUT控制线 等 发送保持寄存器 移位寄存器 控 制 Moden控制寄存器 Moden RTS CTS 逻 控 制 DTR DSR 辑 逻 辑 RI OUT1 Moden状态寄存器 OUT2 RLSD 中断允许寄存器 中断控 INTRPT制逻辑 中断标识寄存器(一)8250的编程模型8250异步串行接口是用于IBMPC串行通讯的接口芯片,8250内含比特率分频器,无须外接,所以用它构成接口非常简单。有两个串口,每个串口上有10个寄存器,IBM PC系统只为这10个寄存器分配了连续的个端口地址,其端口地址分配如下:分配的端口地址输入还是输出相应寄存器3F8H2F8H输出发送数据寄存器3F8H2F8H输入接收数据寄存器3F8H2F8H输出波特率分频器(数据传输速度)3F9H2F9H输出波特率分频器3F9H2F9H输出中断允许寄存器3FAH2FAH输入中断标识寄存器3FBH2FBH输出线控制寄存器3FCH2FCH输出Modem控制寄存器3FDH2FDH输入线狀态寄存器3FEH2FEH输入Modem狀态寄存器注:标有寄存器地址是线控制存器位为时的寄存器地址,标有寄存器地址是线控制存器位为时的寄存器地址。从功能上分,这10个寄存器可分为两组:一组用于工作方式,通信参数的控置和设置。如数据格式有关参数的设置,是否允许中断方式的设置以及是否使用RTS,DTR等联络控制信号等,属于这一组的有5个寄存器:波特率分频器L(低位)和H(高位)线控制寄存器,Moden控制寄存器,中断允许寄存器。这5个寄存器都是在8250初始化时用OUT指令向其中置入初值的。 另一组寄存器用于实现通信传输,有5个寄存器,它包括:输入和输出的缓冲寄存器接收数据寄存器和发送保持寄存器, 记忆当前状态的寄存器线状态寄存器, Moden状态寄存器和中断标识寄存器。 (二)8250的初始化:波特率的设置:(波特率分频器L和H)是用OUT指令向地址为3F8H和3F9H的两个波特率分频器置入合适的值实现的。在初始化时,将线控寄存器最高为置,然后写3F8H,3F9H便可对串行传送速率进行初始化。波特率分频器确定串行传送的速率(每秒传送的位数)如下:波特率 分频器H 分频器L50 09H 00H75 06H 00H110 04H 17H1345 03H 59H150 03H 00H300 01H 80H600 00H C0H1200 00H 60H1800 00H 40H2000 00H 3AH2400 00H 30H3600 00H 20H4800 00H 18H7200 00H 10H9600 00H 0CH19200 00H 06H2对线控制寄存器初始化:(线控制寄存器: 3FBH/2FBH)写线控制寄存器可以设置串行数据的格式和选择是否设置波特率,其各位定义如下:D7 D6 D5 D4 D3 D2 D1 D0 数据定位0 0 5位0 1 6位1 0 7位1 1 8位 停止位 0 1位 1 1. 5位(D1 D0=00) 1 2位(D1 D000) 校验 X 0 无校验位 0 1 形成奇校验位 1 1 形成偶校验位 是否为不变校验位0 1 否 0 校验位永为1(D4 D3=01) 0 校验位永为0(D4 D3=11) 0 永无校验位(D3=0) 是否置段点电平0 0 否 1 是,强迫在送数据线上输出01 置波特率0 其它3. 对MODEM控制寄存器初始化:(MODEM控制寄存器: 3FCH/2FCH)MODEM控制寄存器各位意义如下: 0 0 0 D4 D3 D2 D1 D0 1 使DTR输出有效 准备好 1 使RTS输出有效 1 使OUT1输出有效(没利用)0 1使OUT2输出有效(用于开放和禁止中断)0(这节课) 1使SOUT与SIN内部接通04.中断允许寄存器初始化:(中断允许寄存器:3F9H/2F9H)8250具有形成和发出中断请求信号的功能(见逻辑框图的INTRPT),在IBM PC的RS232C接口板上,这个信号从插头上输出,在接口板插入系统总线插槽时,这个信号接点与系统总线的IRQ4相接,是否利用中断功能,可以由编程设定。对IBM PC而言,只有在置MODEN控制寄存器第3位OUT2为1时,才能允许下图所示的各种中断,中断允许寄存器各位意义如下: 0 0 0 0 D3 D2 D1 D0 1 允许接收数据寄存器满发中断 1允许发送数据寄存器空发中断 1 允许接收字符出错或收到断点发中断 1 允许MODEM状态改变发中断(三)收发通信编程:在8250初始化之后就可以通信了。接收的基本操作是对接收数据寄存器(地址为3F8H)执行IN指令: MOV DX,3F8H IN AL,DX发送的基本操作是对发送保持寄存器(地址为3F8H)执行OUT指令: MOV DX,3F8HOUT DX,AL为了在发送和接收过程中不丢失信息,除上述基本操作外,还有许多问题需要解决。在通信技术术语中,解决串行通信过程中在接口丢失信息的问题,称为流量控制 (Flow Control)。流量控制有两种方法:一种是完全用程序控制,另一种是程序借助接口硬件实现。1 完全用程序实现流量控制,如果计算机的RS232C接口与一个输出设备相接,这时要求设备具有向计算机发XOFF和XON代码的功能,而计算机用程序与之相配合实现流量控制。同样,如果与计算机的RS232C接口相接的是输入设备,要求它具有对XOFF和XON代码有合适的响应能力:当计算机来不及处理接收的数据时,向输入设备发XOFF代码,输入设备的响应应该是暂停向计算机发字符代码;计算机希望输入设备恢复发来代码时,向输入设备发XON代码,输入设备的响应应该是恢复向计算机发送数据,有些外部设备与计算机之间是双向传送的,这要根据这种外设是否有发出和响应XOFF和XON的功能,来决定是否能用程序进行流量控制。2 借助接口硬件实现流量控制。借助接口硬件实现流量控制,必须依靠接口中的状态信息和控制功能。这实际上是把Moden状态寄存器,线状态寄存器提供的信息利用起来,并通过Moden控制寄存器实施控制。在用IN指令输入代码前,必须先测试状态信息的位0是否已经为1,在对接收数据寄存器执行IN指令时,将使线状态寄存器的位0置0,表示数据已取走。在发送数据时,要先测试位5是否为1。向发送保持寄存器发送新的代码后,使状态位5置0。(a).线状态寄存器: 3FDH/2FDH 读线状态寄存器可以了解线路传输状态,其各位定义如下: 0 D6 D5 D4 D3 D2 D1 D0 1 接收数据寄存器满(接收准备好) 1 数据重迭错 1 奇偶出错 1 数据格式出错 1 检出断点 1 发送数据寄存器空(发送准备好) 1 发送移位寄存器空发送数据寄存器空,表示CPU送给8250的数据已从发送数据寄存发送移位寄存器。此时8250又可以接收CPU的新数据,也就是发送准备好,写发送数据寄存器将使本位复位。发送移位寄存器空,表示发送移位寄存器已将从发送数据寄存器收到的数据移位输出完备。此时又可从发送数据寄存器接收新数据。接收数据寄存器满,表示已经接收完一个数据,放在接收数据寄存器中,此时CPU可已从8250读入数据,也就是接收准备好,读接收数据寄存器将使本位复位。数据重迭错,表示接收数据寄存器满时,CPU尚未取走这个数据,又一个新接收到的串行数据又收完,并送入接收数据寄存器。这样,原来的数据就被冲掉。这就称为重迭错,或溢出错。数据格式出错,8250接收一个串行数据,经过起始位,数据位和奇偶校验位后应收到停止位“1”。如果此时仍收到“0”,则发生格式错。检出断点,表示8250收到“0”电平的持续时间超过从起始位到停止位的总时间,注意检出断点和收到全0字节是完全不同的。读线状态寄存器将使D1D4位复位。(b).MODEM状态寄存器: 3FEH/2FEHMODEM状态寄存器各位意义如下: D7 D6 D5 D4 D3 D2 D1 D0 1 CTS上的信号改变过 1 DSR上的信号改变过 1 RI上信号改变过 1 DCD上的信号改变过 CTS状态 DST状态 RI 状态 D CD状态 表示接口对方当前状态的信息有四位:位4位7 CTS:对方通知本方可以向对方发送信息 DSR:对方通知本方对方已可以工作 RI: 对方来的铃响信号指示 DCD:对方通知本方已检测到线路有载波要正确进行通信操作,只有这4位状态信息是不够的,还要根据Moden状态寄存器低4位提供的信息来进行通信操作。每次对这个状态寄存器执行IN指令都将使低4位清0,只有相应的状态信号线上的有效信号重新到来,才能使低4位内相应位置1。其中,低4位所谓信号改变过是指从上次读MODEM状态寄存器以来信号改变过。(c).对上述两个状态寄存器状态的测试,可以决定是否用指令输入或输出字符代码。Moden控制寄存器的控制字节可以用来向对方提供状态信息。Moden控制寄存器的位0和位1分别控制发出DTR和RTS信号:DTR信号表示本方接口是否正常工作 RTS是向对方表示是否将向对方发送代码,对方可以判别这两个信号,决定自己的操作。综上所述,借助硬件实现流量控制的过程就是,无论读入字符还是发送字符前,要先测试线路状态和对方(Moden)的状态,根据测试结果再决定下面操作,另一方面,向对方提供自己的状态,使对方也能根据对本方状态的测试决定如何操作。3发送数据寄存器:(3F8H/2F8H)它寄存CPU送给8250的8位并行数据,8250内部电路再将它送到移位寄存器,变成串行数据输出。4接收数据寄存器:( 3F8H/2F8H)它寄存8250将要送给CPU的8位并行数据,8250收到串行数据通过移位寄存器变成并行数据,然后存入接收数据寄存器中。(四).中断功能的实现用编程的方法可以使8250具有发出中断请求的能力。IBM PC系统的串行接口板的中断请求信号是通过系统总线的IRQ4端加入的。中断服务程序的入口地址应该在中断向量地址表的0000:0030H开始的4个单元内。8250内对中断起作用的是Moden控制寄存器位3(OUT2), 中断允许寄存器和中断标识寄存器。Moden控制寄存器位3在初始化时必须设置为1,8250内的中断管理机构才起作用。1.中断允许寄存器中断允许寄存器的位0位3分别管理4种中断源,初始化时,将中断允许寄存器的位0位3的一位或几位置1,就能在对应的条件出现时发出中断请求。中断允许寄存器各位意义如下: 0 0 0 0 D3 D2 D1 D0 1允许接收数据寄存器满发中断 1允许发送数据寄存器空发中断 1允许接收字符出错或收到断点发中断 1允许MODEM状态改变发中断2.中断标识寄存器由于4种中断源中可能同时有一个以上的中断源满足条件,所以存在着识别中断源的问题,中断标识寄存器提供这种信息。读中断标识寄存器可以知道当前8250发生的最优中断是什么,以及是否还有其他8250中断发生。中断标识寄存器的含义如下:0 0 0 0 0 D2 D1 D0 0 还有其他中断等待处理 1 无其他中断等待处理 0 0 MODEM状态改变 0 1 发生数据寄存器空 1 0 接收数据寄存器满 1 1 接收出错或检出断点8250决定的中断优先级次序:中断条件标识码(D1 D2)优先级撤消标识码条件接收出错或有间断 1 1 0对线状态数据寄存器读接收数据准备好 1 0 1对接收数据寄存器读发送保持寄存器空 0 1 2向发送保持寄存器写Moden状态变 0 0 3对Moden状态寄存器读四 8250应用程序举例(一). 查询方式1. 要求:任何从键盘上输入的信息,一方面显示在CRT上,另一方面从串行接口输出;任何从串行接口输入的信息都将在CRT上显示出来;在键盘上输入“Esc”键时,则退出程序运行。(1) 收发处理程序测线路状态寄存器(3FDH)的值以判通信接口处于发送或接收就绪状态。 举例如下: REPEAT: MOV DX, 3FDHIN AL, DXTEST AL, 01HJNZ RECEIVTEST AL, 20HJZ REPEAT . . .MOV DX, 3F8H ; 发送字符OUT DX, ALJMP REPEAT RECEIV: MOV DX, 3F8H ; 接收字符IN AL, DX . . .JMP REPEAT(2) 键盘输入程序举例MOV AH, 01H检测键盘是否有按键INT 16HJZ REPEATMOV AH, 00H键盘缓冲区有,从键盘取值INT 16HCMP AL,27JZ RE . . .JMP REPEATRE: MOV AX,4C00HINT 21H(3) 显示通信字符举例 PUSH AXPUSH BXMOV BL, 00HMOV AH, 0EHINT 10HPOP BXPOP AX2. 程序的流程图如下: 波特率、数据位数、校验位、停止位的初始化 Modem控制寄存器初始化, 使DTR、RTS有效,输出 反馈输入线状态寄存器AL Y 显示“?” 接收有错? N Y 接收数据准备好? N N 发送保持寄存器空? 输入字符代码入AL Y Y 键盘缓冲区空? 调BIOS子程序显示 N N 从键盘缓冲区取出字符输出 是回车字符? Y 显示换行 3程序清单:略。(学生自编)(二). 中断方式1 要求:使用IBM PC串口 1, 编制一个简易的仿终端程序, 其功能如下: 当按键时,将该键的ASCII码送串口输出,并将从串口1 收到的字符送显示器显示, 假设接收用中断方式, 发送用程序查询方式。并设串口参数为:8 位数据位,无效验,2位停止位,波特率为9600BIT/S。2 8259A中断控制器在IBM PC 微机系统中,8088管理三类中断:(1) 内部中断,即软中断,包括由PSW的状态标志所产生的溢出中断,陷阱中断。(2) 非屏蔽中断NMI,外部中断产生。(3) 可屏蔽中断INTR,由8级外部中断产生。8259A是一种可编程的中断控制器芯片,每片8259A可以管理8 级优先级中断。8259A的中断管理功能如下: 记录各级中断源的中断请求; 判优,确定是否应该响应和响应哪一级中断请求; 响应中断时,向CPU传送中断类型号。8259A所管理的8个中断源的类型号为8-0FH中断优先级 中 断 源 中断类型码 IRQ0 电子钟时间基准 08H IRQ1 键盘 09H IRQ2 为用户保留的中断 0AH IRQ3 异步通信(COM2) 0BH IRQ4 异步通信(COM1) 0CH IRQ5 硬盘 0DH IRQ6 软磁盘 0EH IRQ7 并行打印机 0FHIBM PC系统板上的8259A占有两个端口地址:20H,21H。3 可屏蔽中断传送数据的全过程:(1)主程序为中断传送作准备A 系统初始化中布置8259A以及其他接口将IBM PC系统板上的8259A布置为单级,缓冲,普通非指定EOI方式。IBM PC系统板上的8259A的初始化程序段在ROM BIOS中。B 应用程序进行的初始化包括将中断服务程序首址的偏移和段值填入中断向量表相应类型号位置。开放8259A对应中断(IRQ4),有关编程接口的布置,等等。应强调,初始化布置必须在关中断条件下进行。例: 开放IRQ4: IN AL,21H AND AL,0EFH OUT 21H,AL 设置中断向量: CLI ;关中断 MOV AX,00 MOV ES,AX MOV DI,4*12 MOV AX,OFFSET RINT CLD ;在串操作时,使地址增量 STOSW ;将AX的内容传送到由DI作为指针的目的串中 MOV AX,CS STOSW串操作指令:SI寻址源操作数,现行段在DS中DI寻址目的操作数,现行段在ES中 或: 用DOS系统功能调用(INT 21H)DS: DX=中断向量 AL=中断类型号 AH=25H MOV DX,OFFSET RINT MOV AX,SEG RINT MOV DS,AX MOV AL,0CH ;COM1的中断类型码 MOV AH,25H INT 21H(2) 中断申请当外设准备好数据,则向8259A提出中断申请。8259A将新申请的中断和正在服务的中断进行比较判优。假设新的中断请求最优,则8259
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南专业活动策划执行方案
- 气象科普活动策划方案
- 电液控液压支架培训课件
- 电池阻尼和电池驱动课件
- 甘肃酒店隔墙施工方案
- 铁路下穿段施工方案
- 2025年儿科医生个人年度工作总结
- 混凝土槽身施工方案范本
- 村居活动策划方案设计
- 电气安全器具培训内容课件
- 甲油胶行业报告
- 《基于模型的系统工程(MBSE)及MWORKS实践》全套教学课件
- 医务人员职业暴露与防护讲课
- 苏教版4四年级数学上册(全册)表格式教案
- 小学教育课件古诗
- BEC商务英语初级考试历年真题及答案6套
- 消除“艾梅乙”医疗歧视-从我做起
- 感恩老师课件教学课件
- GB/T 44625-2024动态响应同步调相机技术要求
- 不违反计划生育协议书模板
- (人教2024版)七年级数学开学第一课-课件
评论
0/150
提交评论