9.4.3 串行口功能调用

 
DOS和BIOS都提供了存取PC机串行COM端口的功能,BIOS INT14H为串行数据通信功能,在MS-DOS或 PC-DOS下,可以用MODE命令对COM端口的数据大小,波特率等参数进行初始化。

 
9.4.3.1 DOS串行通信口功能

  
使用DOS命令 MODE可以设置串行通信参数,如数据的字长、波特率、校验位和终止位数。
设置串行通信参数命令的一般格式为:
  MODE  COMm:b,p,d,s

  这里m表示 COM的端口号(1―4),b是波特率,用波特率数高两位数字来表示,如11表示110波特,96表示9600波特,19表示19200波特(对IBM PS及兼容机)。p是校验位(N为无校验,O为奇校验,E为偶校验),d表示数据的字长(5、6、7、8位、缺省值为7位),s是终止位的位数(1、1.5或2位)。如果传输率为110波特,则终止位必须是2位,其它情况终止位可以是1位。我们如果直接通过BIOS和8250 UART编程,传输率则可以超过19200波特。

  要注意的是,DOS手册中称串行通信接口为辅助设备。在多数DOS系统中,串行设备没有缓冲和中断,如果串行通信口或其它辅助设备送的数据比程序处理数据快,字符可能丢失。

  DOS没有提供读辅助设备状态和检测I/O错误(如丢失字符等)的功能,但ROM中BIOS INT 14H提供了这些功能。