计算机传输数据有并行和串行两种方式。
串行通信采用两种方式:同步方式和异步方式。
一、串行通信基础
串行通信接口:计算机利用异步通讯适配器和调制解调器(MODEM)通过RS-232串行接口与外进行远距离通信。近距离通信不用MODEM。
在异步通信方式中,每个字符都需要加上起始位、校验位和终止位,此过程称为“组帧(framing)”。
串行通信的数据传输率用bps(bits per second)来表示,在计算机中就是波特率。
RS 232串行通信接口:为了兼容各厂家生产的数据通信设备,1960年电子工业协会(EIA)制定了RS-232接口标准。
IBM PC通信端口
IBM PC机提供两个串行接口COM1和COM2。80x86兼容机可以连接4个通信端口,它们的编号为COM1~4(相应的BIOS编号为COM0~3)。
如果微机系统设置了COM端口,则设置的每个COM端口的I/O地址就写到BIOS数据区的0040:0000~0040:0007字节,每个COM地址占用2个字节。
二、串行口功能调用
DOS串行通信口功能
使用DOS命令MODE可以设置串行通信参数,如数据的字长、波特率、校验位和终止位数。设置串行通信参数命令的一般格式为:
MODE COMm:b,p,d,s
这里m表示COM的端口号(1~4);b是波特率,用波特率数的高两位数字来表示;p是校验位(N为无校验,O为奇校验,E为偶校验);d表示数据的字长(5,6,7,8位、默认值为7位);s是终止位的位数(1,1.5或2位)。
DOS手册中称串行通信口为辅助设备。DOS的INT 21H调用,对COM1操作。
AH=3:从COM1读一个字符到AL中。
AH=4:将DL中的字符传送给COM1。
BIOS串行通信口功能:INT 14H调用。
AH=0:初始化串行口,AL=初始化参数,DX=通信口号(COM1为0号,COM2为1号)。在AH中返回通信口状态,AL中返回调制解调器状态。
AH=1:向串行口(DX号)写AL指定的字符。写成功AH7=0,AL不变;写失败AH7=1,AH6~0=通信口状态。
AH=2:从串行通信口(DX号)读字符。读成功AH7=0,AL为所读字符;读失败AH7=1,AH6~0=通信口状态。
AH=3:取串行通信口(DX号)状态。在AH中返回通信口状态,AL中返回调制解调器状态。