本书共分三部分,第一部分是编程实例,包括前十章,从体验轻松的串口编程开始,在有了一定的感性知识后,由浅入深地介绍了各种编程方法,并将一些串口通信的基础知识融入其中,使读者不知不觉中掌握了许多基本概念。考虑到当前DOS环境下的串口编程还应用很广,本书也深入地介绍了DOS环境下Turbo C的编程。
第二部分为第11章,汇集了常用串行通信的基本概念和规范,介绍了各种接线匹配方法,将第一部分中分散的基础知识进行了总结。
第三部分是一些较深层次技术问题的探讨,其中对不占用串口资源的串口数据捕捉给出了实例程序,并简要介绍了虚拟串口的应用,并对这些问题的相关知识进行了必要的说明。
本书从编程实践的角度详细介绍了Windows环境下和DOS环境下的串口通信的基本方法,并根据当前串口与网络结合发展的趋势,介绍了串口与网络TCP/IP、远程控制与监测相结合的一些解决方案和编程要点。由于编程步骤详尽,初学Visual C++/C(甚至是以前完全没有接触过Visual C++)的读者也能很快编写出Visual C++的串口通信程序。本书配光盘,书中实例源程序和相关资料可在对应章节的文件夹中找到。
本书是从事串口及网络通信的技术人员和学习者的极佳参考资料,也可以作为数据通信课程的辅助教材。
第1章 轻松体验串口通信编程与调试
1.1 使用串口调试助手来体验串口通信
1.2 体验windOWS环境下的Visual C++串口通信编程
1.3 体验DOS环境下Turbo C串口通信编程
第2章 多线程串口编程工具CSerialPort类
2.1 CSerialPort类的功能及成员函数介绍
2.2 应用CSerialPort类编制基于对话框的应用程序
2.3 应用CSerialPort类编制基于单文档的应用程序
2.4 对CSerialPort类的改进
2.4.1 改进一:ASCII文本和二进制数据发送方式兼容
2.4.2 改进二:也许能解决内存泄漏
2.4.3 改进三:彻底关闭串口,释放串口资源
第3章 控件MsComlll串口编程
3.1 MSComm控件介绍
3.1.1 VC中应用MSComm控件编程步骤
3.1.2 MSComm控件串行通信处理方式
3.1.3 MSComm控件的属性说明
3.1.4 MSComm控件错误信息
3.2 使用MsComm控件的几个疑难问题
3.2.1 使用VARJANT和SAFEARRAY数据类型从串口读写数据
3.2.2 MSComm控件能离开对话框独立存在吗
3.2.3 如何发送接收ASCII值为0和大于128的字符
3.2.4 在同一程序中用MSComm控件控制多个串口的具体操作方法
3.2.5 解决使用控件编程时程序占用的内存会不断增大的问题
3.2.6 在MSComm控件串口编程时遇到的其他问题
3.3 在基于单文档(SDI)程序中应用MSComm.控件
3.4 应用MSComm控件控制多个串口实例
3.5 串口与MODEM拨号应用简例
3.5.1 创建工程
3.5.2 代码分析
3.5.3 应用
第4章 W1ndtOWS API串口编程
4.1 Windows API串口编程概述
4.2 API串口编程中用到的结构及相关概念说明
4.2.1 DCB(Device Control Block)结构
4.2.2 超时设置COMMTIMEOUTS结构
4.2.3 OVERLAPPED异步I/O重叠结构
4.2.4 通信错误与通信设备状态
4.2.5 串行通信事件
4.3 Windows API串行通信函数
4.4 Win32 API串口通信编程的一般流程和特殊实例
4.4.1 Win32 API串口通信编程的一般流程
4.4.2 用查询方式读串口
4.4.3 同步I/O读写数据
4.4.4 关于流控制的设置问题
4.5 CScnalPort类中的API函数编程应用剖析
4.6 win32 API串口编程TTY(虚拟终端)实例
4.6.1 建立程序工程
4.6.2 建立串口设置对话框
4.6.3 编写C.FermDoc类的相关代码
4.6.4 小结
4.6.5 在CTermView类中字添加符键入处理代码与串口接收处理代码
第5章 串口调试助手V2.2编程
5.1 建立sCOMM程序工程实现界面功能
5.2 串口的初始化及关闭
5.3 串口数据的发送与接收及十六进制数据的处理
5.3.1 十六进数据发送处理
5.3.2 手动发送处理
5.3.3 自动发送处理
5.3.4 接收处理及十六进制显示
5.4 其他辅助功能的实现
5.4.1 接收数据的文件保存
5.4.2 实现小文件发送
5.4.3 图钉按钮功能使程序能浮在最上层
5.4.4 对话框动画图标的实现
5.4.5 超链接功能的实现
5.4.6 如何打开帮助网页文件
第6章 D0s环境下的Turbo C串口编程及通用实例GSerial类
6.1 PC机异步通信适配器8250及其编程操作
6.1.1 INS8250内部寄存器及其选择方式
6.1.2 波特率设置
6.1.3 数据位、奇偶校验、停止位等数据格式设置
6.1.4 查询.UO方式相关设置
6.1.5 中断FO通信方式相关设置
6.1.6 MODEM寄存器
6.2 COMRXTX程序实例
6.3 通用实例程序Gserial类
6.4 用Gselial类控制多串口
6.5 多串口编程PC机高号中断8259A可编程中断控制器的控制
第7章 串口通信用户层协议的编制与数据处理方法
7.1 通信协议的编制
7.1.1 为什么要编制用户通信协议
7.1.2 串口通信中用户层协议编制原则
7.1.3 在串口通信中几种常用的用户层协议
7.2 串口通信数据包处理方法编程实例
7.2.1 编程任务
7.2.2 编程步骤
7.2.3 程序测试
第8章 单片机串口通信
8.1 单片机串口硬件系统及C5l程序开发
8.1.1 较典型的单片机硬件系统实例
8.1.2 C51语言及程序简介
8.1.3 开发C51程序的利器:Keil C51 uVision2及串口程序仿真
8.2 C51单片机串口通信程序实例
8.2.1 实例一
8.2.2 实例二
第9章 串口与网络结合的解决方案及编程
9.1 串口与网络结合的硬件解决方案
9.2 典型串口与联网的设备
9.2.1 NPort5400系列产品的特点
9.2.2 NPort 5400系列产品的典型应用介绍
9.2.3 NPoa5400系列产品的设置与编程测试
9.3 与Access数据库结合的串口通信实例
9.3.1 微机网络检测系统说明
9.3.2 创建ODBC数据源
9.3.3 创建工程
9.3.4 程序简介
9.4 与WinSock结合的串口通信实例
9.4.1 客户端应用程序
9.4.2 服务器应用程序
9.5 在已经编好的串口通信程序中加入网络通信功能
9.5.1 参照MFC AppWizard创建WinSockets程序
9.5.2 利用Windows Sockets API和第三方提供的类进行编程
9.6 串口通信用于遥控操作简例
第10章 计算机串口与其他设备通信编程实例
10.1 通过串口收发短消息
10.1.1 SMS编码规范及编码与解码例程
10.1.2 AT命令收发短消息实例
10.1.3 “实时”接收短消息的方法
10.1.4 用串口收发SMS短信编程的一些讨论
10.2 计算机与Rabbit 2000嵌入式系统通信编程实例
10.2.1 Rabbit 2000微处理器介绍
10.2.2 动态C(Dynamic C)语言介绍
10.2.3 某车载无线调度系统实例介绍
10.3 计算机与PLC通信程序实例
10.4 MATLAB环境串口编程通信实例
10.4.1 MATLAB串口类SefiN应用
10.4.2 通过串口使MATLAB Simulink与下位机通讯进行控制
10.4.3 xPC目标环境下串口通信实现
第11章 串口通信基本概念及标准
11.1 串口通信基本概念
11.1.1 串行通信概述
11.1.2 单工、半双工和全双工的定义
11.1.3 同步传送与异步传送
11.1.4 串行通信协议
11.2 Rs-232-C串口标准
11.2.1 Rs-232-C标准
11.2.2 Rs-232-C串行通信接线实例
11.3 Rs-422/485串口标准
11.3.1 概述
11.3.2 Rs-422与RS-485串行接口标准
11.3.3 Rs-422与RS-485的网络安装注意要点
11.3.4 Rs-232、RS422、RS485电气参数对比
11.4 串口调试注意事项
11.5 常用数据校验法
11.5.1 奇偶校验
11.5.2 循环冗余码校验
11.6 串口连接和TC/IP连接对比
11.7 现场总线与RS.232、RS-485的本质区别
11.8 MODEM通信技术
11.8.1 MODEM的基本工作原理
11.8.2 MODEM的功能
11.8.3 MODEM的分类
11.8.4 MODEM的安装
11.8.5 MODEM V92标准介绍
11.8.6 MODEM的速度
11.8.7 MODEM优化方法
11.8.8 MODEM命令/AT命令
第12章 不占用串口的串口数据捕捉
12.1 驱动程序的基本概念:VxD与WDM
12.1.1 虚拟设备驱动程序VxD
12.1.2 Win32驱动程序模型WDM
12.1.3 在不同操作系统下选用哪种驱动程序模式
12.2 VXD示例程序介绍——VTOOlsD中的CominHook
12.3 串口数据捕捉实例程序
12.3.1 编程任务
12.3.2 编程步骤
12.4 虚拟串口简介
附录A turbo C说明
附录B ASCⅡ码表