在 Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题
计算机和单片机(如 MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务
实际工作中利用串口完成通信任务的时候非常之多
已有一些文章介绍串口编程的文章在计算机杂志上发表
但总的感觉说来不太全面,特别是介绍 32位下编程的更少,且很不详细
笔者在实际工作中积累了较多经验,结合硬件、软件,重点提及比较新的技术,及需要注意的要点作一番探讨
希望对各位需要编写串口通信程序的朋友有一些帮助 一.串行通信的基本原理 串行端口的本质功能是作为CPU和串行设备间的编码转换器
当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位
在接收数据时,串行的位被转换为字节数据
在 Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)
串口通信程序的流程如下图: 二.串口信号线的接法 一个完整的 RS-232C接口有 22根线,采用标准的 25芯插头座(或者 9芯插头座)
25芯和 9芯的主要信号线相同
以下的介绍是以 25芯的 RS-232C为例
①主要信号线定义: 2脚:发送数据 TXD; 3脚:接收数据 RXD; 4脚:请求发送RTS; 5脚:清除发送CTS; 6脚:数据设备就绪 DSR;20脚:数据终端就绪 DTR; 8脚:数据载波检测 DCD; 1脚:保护地; 7脚:信号地
②电气特性: 数据传输速率最大可到 20K bps,最大距离仅 15m
注:看了微软的 MSDN 6
0,其 Windows API中关于串行通讯设备(不一定都是串口 RS-232C或RS-422或RS-449)速率的