第九章彩色图形适配器及其编程 9.1串行通讯口I/O 在现实生活和工作中,常会有将两台计算机实现资源共享和数据交换的 要求。微机双机直接通讯的方法有很多种,根据两台微机的距离远近,可分 为近程通讯和远程通讯,如果两台通讯的微机在同一间屋内或相距在几十米 到一两百米内,称为近程通讯;如果两台微机相距在几百米到几千米甚至更 远,则把它们之间的通讯称为远程通讯。 IBM PC机内装有通讯适配器板,这使得PC机可以和其它配有串行通讯接 口的计算机或设备进行通讯。串行接口每次由CPU得到8位的数据,然后串 行地通过一条线路,每次发送一位将该数据发送出去。 最常用于个人计算机上的串行接口是标准的RS-232串行接口,它装于 PC机内的通讯适配器板上。这个标准串行接口既可用于近程或远程的数据通 讯,每个系统中可以有两个或多个串行控制器连接到不同的外设上,如IBM PC可连接两个串行接口(COM和COM2),但是程序每次只能对一个串口进 行存取
第九章第一章 彩色图形适配器及其编程 基础知识 9.1 串行通讯口I/O 在现实生活和工作中,常会有将两台计算机实现资源共享和数据交换的 要求。微机双机直接通讯的方法有很多种,根据两台微机的距离远近,可分 为近程通讯和远程通讯,如果两台通讯的微机在同一间屋内或相距在几十米 到一两百米内,称为近程通讯;如果两台微机相距在几百米到几千米甚至更 远,则把它们之间的通讯称为远程通讯。 由于计算机通讯的广泛应用,串行接口已成为个人计算机必备的部件, IBM PC机内装有通讯适配器板,这使得PC机可以和其它配有串行通讯接 口的计算机或设备进行通讯。串行接口每次由CPU得到8位的数据,然后串 行地通过一条线路,每次发送一位将该数据发送出去。 最常用于个人计算机上的串行接口是标准的RS一232串行接口,它装于 PC机内的通讯适配器板上。这个标准串行接口既可用于近程或远程的数据通 讯,每个系统中可以有两个或多个串行控制器连接到不同的外设上,如IBM PC可连接两个串行接口(COM1和COM2),但是程序每次只能对一个串口进 行存取
第九章彩色图形适配器及其编程 串口的连接方式 PCI PC2 两台PC机或设备进行近 距离通讯时,可直接将它 RS 近距离 RS- 们连接。当它们进行远距 232 232 离通讯时,要使用调制解 调器( MODEN连接到电话 线上,因为RS-232标准串 行接口输出的是电压信号, PCl PC2 不能直接接到电话线上, RS 调制解调器把代表逻辑1和 232 1232 逻辑0的电压信号转换成能 在电话线上传输的不同频 率的信号:电话线另一端 的调制解调器又把这些不 电话线 MODEM MODEM 同频率的信号转换成接口 要求的电压信号。左图为 两种连接方式的示意图。 两台PC机串行通讯的连接方式
第九章第一章 彩色图形适配器及其编程 基础知识 两台PC机或设备进行近 距离通讯时,可直接将它 们连接。当它们进行远距 离通讯时,要使用调制解 调器(MODEN)连接到电话 线上,因为RS一232标准串 行接口输出的是电压信号, 不能直接接到电话线上, 调制解调器把代表逻辑1和 逻辑0的电压信号转换成能 在电话线上传输的不同频 率的信号:电话线另一端 的调制解调器又把这些不 同频率的信号转换成接口 要求的电压信号。左图为 两种连接方式的示意图。 串口的连接方式
第九章彩色图形适配器及其编程 串口的典型结构 许多外部设备和计算机 是按照串行方式来进行 状态寄存器 通信的。即数据是1位1 位进行传输的,在传输 数据总线 控制寄存器 过程中,每1位数据都 收发器 控制 据输人寄存器 占据一个固定的时间长 度。这种情况下,就要 中断请求 用串行接口把这个外部 联络号读 事行输入/并行验出 事行轎人 设备连接到总线上。 逻辑L写 当前,可编程的串行接 升行人/串行输出十一行 口有许多种。左图是串 行接口部件的典型结构, 地址译吗 从图中可以看到,串行 數据输出寄存器 接口部件内部有4个主 要寄存器,即控制寄存 禁血地址总线 发送时钟 餞收时钟 器、状态寄存器、数据 输入寄存器和数据输出 寄存器。 可编程串行接口的典型结构
第九章第一章 彩色图形适配器及其编程 基础知识 串口的典型结构 许多外部设备和计算机 是按照串行方式来进行 通信的。即数据是1位1 位进行传输的,在传输 过程中,每1位数据都 占据一个固定的时间长 度。这种情况下,就要 用串行接口把这个外部 设备连接到总线上。 当前,可编程的串行接 口有许多种。左图是串 行接口部件的典型结构, 从图中可以看到,串行 接口部件内部有4个主 要寄存器,即控制寄存 器、状态寄存器、数据 输入寄存器和数据输出 寄存器
第九章彩色图形适配器及其编程 控制寄存器用来容纳CPU送给此接口的各种控制信息,而控制信息决定接口的工 作方式。 状态寄存器的各位叫状态位,每一个状态值都可以用来指示传输过程中的某一种 错误或者当前传输状态。 数据输入寄存器总是和串行输入/并行输出移位寄存器配对使用的。在输入过程 中,数据1位1位从外部设备进入接口的移位寄存器,当接收完1个字符以后,数 据就从移位寄存器送到数据输入寄存器,再等待CPU来取走。 数据输出寄存器和并行输入/串行输出移位寄存器配对使用。当CPU往数据输出 寄存器中输出1个数据后,数据使传输到移位寄存器,然后1位1位地通过输出线 送到外设。 CPU可以访问串行接口中的4个主要寄存器。从原则来说,对这4个 寄存器可以通过不同的地址来访问,不过,因为控制寄存器和数据 输出寄存器是只写的,状态寄存器和数据入寄存器是只读的,所以, 可以用读信号和写信号来区分这两组寄存器,再用1位地址来区分2 个只读寄存器或2个只写寄存器
第九章第一章 彩色图形适配器及其编程 基础知识 控制寄存器用来容纳CPU送给此接口的各种控制信息,而控制信息决定接口的工 作方式。 状态寄存器的各位叫状态位,每一个状态值都可以用来指示传输过程中的某一种 错误或者当前传输状态。 数据输入寄存器总是和串行输入/并行输出移位寄存器配对使用的。在输入过程 中,数据1位1位从外部设备进入接口的移位寄存器,当接收完1个字符以后,数 据就从移位寄存器送到数据输入寄存器,再等待CPU来取走。 数据输出寄存器和并行输入/串行输出移位寄存器配对使用。当CPU往数据输出 寄存器中输出1个数据后,数据使传输到移位寄存器,然后1位1位地通过输出线 送到外设。 CPU可以访问串行接口中的4个主要寄存器。从原则来说,对这4个 寄存器可以通过不同的地址来访问,不过,因为控制寄存器和数据 输出寄存器是只写的,状态寄存器和数据入寄存器是只读的,所以, 可以用读信号和写信号来区分这两组寄存器,再用1位地址来区分2 个只读寄存器或2个只写寄存器
第九章彩色图形适配器及其编程 九针串口线的连接方式 9针串行口的针脚功能 针脚功能 针脚功能 载波检测(OCD 接受数据(RXD 678 数据准备好(DSR) 请求发送(RTS) 2345 发出数据(TXD 清除发送(CTS) 数据终端准备好OTR)9 振铃指示(RD 信号地线(SG) 通讯电缆制作原理: 串行通讯电缆的制作方法:其串行通讯电缆连接时都遵循下列对接关 系 :SG←-SG TXD←→ RXD RXD←→TXD RTS←→ CTS CTS←→RTS DTR←→ DSR DSR←→DTR :根据上述对接关系,就可以非常方便地连接串行通讯电缆
第九章第一章 彩色图形适配器及其编程 基础知识 九针串口线的连接方式 9针串行口的针脚功能。 : 针脚 功能 针脚 功能 : 1 载波检测(DCD) 6 数据准备好(DSR) : 2 接受数据(RXD) 7 请求发送(RTS) : 3 发出数据(TXD) 8 清除发送(CTS) : 4 数据终端准备好(DTR) 9 振铃指示(RI) : 5 信号地线(SG) 通讯电缆制作原理: : 串行通讯电缆的制作方法:其串行通讯电缆连接时都遵循下列对接关 系: : SG←→SG : TXD←→RXD RXD←→TXD : RTS←→CTS CTS←→RTS : DTR←→DSR DSR←→DTR : 根据上述对接关系,就可以非常方便地连接串行通讯电缆
第九章彩色图形适配器及其编程 注意事项 注意事项: 为了保证传输的信号正确、完整,导线的长度最好不要超过2米;并且宜 选用计算机专用电缆。 导线必须焊接到所对应的位置,焊头连接必须牢固,并且注意不要短路。 对于串行通讯电缆,也可使用9针到25针转换接头来连接其中的一个或两 个串口。 电脑商店也有卖“串口通讯电缆”和“并口通讯电缆”的,购买时要注意 弄清楚是微机与微机相连的还是微机与外设相连的,这两种线的内部接法有点不 同,弄错了会造成通讯失败。 不用于连接电缆的接头(如1、9接头等)宜悬空。这一点对于自己改造从电 脑商店买来的所谓“串行通讯电缆”和“并行通讯电缆”尤其重要。 并口线不可能太长,串口线速率又较慢。因此本法所制电缆只适合于那些 放得很近并有空闲串并口的微机。对于随身携带笔记本电脑要与其它计算交换数 据的用户,本法最适合。 把串行或并行电缆两端插到两台机器对应端口上,还不能立即进行 数据通讯,还必须有通讯软件的支持
第九章第一章 彩色图形适配器及其编程 基础知识 注意事项 注意事项: : ·为了保证传输的信号正确、完整,导线的长度最好不要超过2米;并且宜 选用计算机专用电缆。 : ·导线必须焊接到所对应的位置,焊头连接必须牢固,并且注意不要短路。 : ·对于串行通讯电缆,也可使用9针到25针转换接头来连接其中的一个或两 个串口。 : ·电脑商店也有卖“串口通讯电缆”和“并口通讯电缆”的,购买时要注意 弄清楚是微机与微机相连的还是微机与外设相连的,这两种线的内部接法有点不 同,弄错了会造成通讯失败。 : ·不用于连接电缆的接头(如1、9接头等)宜悬空。这一点对于自己改造从电 脑商店买来的所谓“串行通讯电缆”和“并行通讯电缆”尤其重要。 : ·并口线不可能太长,串口线速率又较慢。因此本法所制电缆只适合于那些 放得很近并有空闲串并口的微机。对于随身携带笔记本电脑要与其它计算交换数 据的用户,本法最适合。 把串行或并行电缆两端插到两台机器对应端口上,还不能立即进行 数据通讯,还必须有通讯软件的支持
第九章彩色图形适配器及其编程 DOS串行通讯口功能 串行通讯接口为辅助设备,DOS中断操作如下 读取操作:INT21H的功能03H是从捕助设备(第一个串行口COM1)读一个 字符到寄存器AL。 发送操作:功能04H将DL寄存器中的字符传送给串行设备,如果输出设备 正忙,该功能调用等待,直到设备准备好接收字符。 DOs串行通识口功能 AH 调用参数 返回参数 AL=输入的8位教据 4D=输出的8位数据 注意:在多数DOS系统中,串行设备没有缓冲和中断,如果串行通讯口或其它辅助设备 送的数据比程序处理数据快,字符可能丢失。在PC系统中,第一个串行口COM1被初始 化为2400波特(所谓传输率就是指每秒传输多少位,传输率也常叫波特率。),无奇偶 校验位,1个终止位和8位数据。其它机器上的DOS实现可能有不同的初始化
第九章第一章 彩色图形适配器及其编程 基础知识 DOS串行通讯口功能 串行通讯接口为辅助设备,DOS中断操作如下。 读取操作:INT 21H的功能03H是从捕助设备(第一个串行口COM1)读一个 字符到寄存器AL。 发送操作:功能04H将DL寄存器中的字符传送给串行设备,如果输出设备 正忙,该功能调用等待,直到设备准备好接收字符。 注意:在多数DOS系统中,串行设备没有缓冲和中断,如果串行通讯口或其它辅助设备 送的数据比程序处理数据快,字符可能丢失。在PC系统中,第一个串行口COM1被初始 化为2400波特(所谓传输率就是指每秒传输多少位,传输率也常叫波特率。),无奇偶 校验位,1个终止位和8位数据。其它机器上的DOS实现可能有不同的初始化
第九章彩色图形适配器及其编程 例从串行通讯口输入一字符并存入 input- char单元中。 MOV AH. 3 INT 21H MOV INPUT_. CHAR. AL INPUT- CHAR DB 0 例将字符串hel输出到串行通讯口。 MOV BX SEG BUFFER g DS 1 BX=addr of string MOv DS, BX MOv BX, OFFSET BUFFER MOY CX. BUF_ LEN I CX-length of string NeXT: v DL, [BX] a take the next chat. MOV AH, 4 j AUX output call DOS INC BX Lne pointer LOOP NEXT 注意:DOS没有提供读辅助设备的状态和 BUFFER DB ′ HELLO 检测I/O错误(如丢失字符等)的功能,但 BUF LEN EQU$- BUFFER ROM中 BIOS INT14H提供了这些功能
第九章第一章 彩色图形适配器及其编程 基础知识 注意:DOS没有提供读辅助设备的状态和 检测I/O错误(如丢失字符等)的功能,但 ROM中BIOS INT 14H提供了这些功能
第九章彩色图形适配器及其编程 BIOS串行通讯口功能 IBM PO的 率行通讯口BIoS功能(IT14H) AH BIOS串行通讯 功能 调用参数 返回参数 提供如下操作: 0初始化串 AL=初始化参数 AH=通讯口状态 行通讯口 DX=通讯口号 AL=调制解调器状态 通过INT COMI=0 14H调用ROM COM2=1 BIOS串行通讯 向串行通 AL=所写字符 写字符成功: 口例行程序。该 讯口写字符 DX=通讯口号 (AH)=0(AL)不变 例行程序包括将 COM1=0 写字符失败: 串行口初始化为 CoM2=1 (AH)=1 指定的字节结构 (AH)。=通讯口状态 和传输速率,检 2从串行口读字符DX=通讯口号 读成功: COMI=0 查控制器的状态 (AH)=0(AL)=字符 COM2=1 读写字符等功能 读失 (AH)7=1 (AH)08=通讯口状态 通讯口状态DX=通讯口号 (AH)=通讯口状态 COM1=0 (AL)=调制解调器状态 COM2= 1
第九章第一章 彩色图形适配器及其编程 基础知识 BIOS串行通讯口功能 IBM PC的 BIOS串行通讯 提供如下操作: 通过INT 14H调用ROM BIOS串行通讯 口例行程序。该 例行程序包括将 串行口初始化为 指定的字节结构 和传输速率,检 查控制器的状态, 读写字符等功能
第九章彩色图形适配器及其编程 INT14HAH=0功能 把指定的串行通讯口初始化为希望的波特率,奇偶性,字长和终止位的位数 这些初始化参数设置在AL寄存器。其各位的含义如下图所示。 1O7位 长 】-8位 终止位f0=f 1二2位 奇偶性{1二 波持率000=t]0波特 00=150波特 300波特 o11=600波特 100一1200波特 1o1=2400波特 10=800特 串行通讯口初始化参数
第九章第一章 彩色图形适配器及其编程 基础知识 INT 14H AH=0功能 把指定的串行通讯口初始化为希望的波特率,奇偶性,字长和终止位的位数。 这些初始化参数设置在AL寄存器。其各位的含义如下图所示