第1章 串行通信的基本概念 1
1.1 从电路到通信系统 2
1.1.1 应用信息论简要 2
1.1.2 串行通信的信源特性 8
1.1.3 串行通信的信道特性 9
1.2 计算机的数据接口 12
1.2.1 使用数据接口 13
1.2.2 计算机数据接口的发展 14
1.2.3 LPC总线与串口适配器 17
1.3 串行通信协议 19
1.3.1 为什么制定协议 19
1.3.2 OSI协议参考模型 20
1.3.3 一般模型与协议栈 20
1.3.4 串行通信协议 23
1.4 EIA RS-232串行接口标准介绍 28
1.4.1 EIA RS-232标准概述 28
1.4.2 电气特性 30
1.4.3 机械特性 32
1.4.4 信号线定义 35
1.4.5 串口近距离通信 39
1.4.6 串口通信的流控制 41
1.5 RS-422与RS-485串行接口标准 45
1.5.1 RS-422电气规定 46
1.5.2 RS-485电气规定 47
1.5.3 RS-422与RS-485的网络安装注意要点 48
1.5.4 RS-422与RS-485传输线上匹配的一些说明 49
1.5.5 RS-422与RS-485的接地问题 50
1.5.6 RS-422与RS-485的网络失效保护 51
1.5.7 RS-422与RS-485的瞬态保护 52
1.6 本章小结 53
第2章 异步串行通信接口电路简介 55
2.1 8250兼容接口电路 56
2.1.1 8250兼容接口电路概述 56
2.1.2 8250的结构 57
2.1.3 8250的编程方法 58
2.2 8251A接口电路 76
2.2.1 8251A的外部特性 76
2.2.2 8251A的内部结构和编程模型 77
2.2.3 8251A的状态字 79
2.2.4 8251A的方式命令和工作命令的使用 79
2.2.5 8251A应用举例 79
2.3 本章小结 81
第3章 在Windows NT中搭建开发环境 83
3.1 准备工作 84
3.1.1 使用串口调试助手 84
3.1.2 双端口互联方案 84
3.1.3 单端口自联方案 85
3.1.4 使用USB-UART转换器 85
3.1.5 使用虚拟串口 86
3.2 使用Microsoft VisualC++ 88
3.2.1 开发平台的选择 89
3.2.2 工程类型和开发流程 89
3.2.3 Hello World—第一个串口通信程序 90
3.3 本章小结 95
第4章 使用Windows API串口编程 97
4.1 Windows API串口编程概述 98
4.1.1 不使用Windows API 98
4.1.2 Windows API初探 100
4.1.3 使用Windows API进行串口开发 102
4.2 同步和异步I/O—基本的读写问题 104
4.2.1 CreateFile函数—开启串口 104
4.2.2 CreateEvent函数—创建事件 105
4.2.3 Overlapped结构—异步模式信息的表达 106
4.2.4 WriteFile函数—发送数据 107
4.2.5 ReadFile函数—接收数据 107
4.2.6 WaitForSingleObject—等待事件信号 108
4.2.7 一个同步和异步I/O例子 108
4.3 Windows通信API 114
4.3.1 DCB概述 114
4.3.2 流控制 117
4.3.3 传输超时 118
4.3.4 串口状态 121
4.4 本章小结 128
第5章 使用CSerial类 129
5.1 封装串口通信API 130
5.1.1 串口编程回顾 130
5.1.2 封装串口通信相关的API 131
5.1.3 封装方案 133
5.2 CSe简介 134
5.2.1 概述 134
5.2.2 修改“Hello World”程序 134
5.3 CSe的串口事件 143
5.3.1 监听器:串口事件的响应 143
5.3.2 异步串口事件 149
5.4 Windows GUI编程初探 154
5.4.1 函数指针与Windows GUI 154
5.4.2 使用SDK开发Windows GUI程序 156
5.4.3 资源、对话框和对话框模板 162
5.4.4 使用MPC 169
5.5 使用CSeal和MFC编写串口通信程序 174
5.5.1 向框架添加CSeal 174
5.5.2 设计应用程序界面 176
5.5.3 串口配置 178
5.5.4 数据的发送和接收 184
5.5.5 有关CSea1 MFC的特别说明 187
5.6 本章小结 187
第6章 使用Qt进行串口编程 189
6.1 Qt简介 190
6.1.1 Qt的组成和特点 190
6.1.2 Qt的安装 190
6.1.3 Qt应用程序开发流程 194
6.1.4 获取帮助 213
6.2 使用Qt开发串口通信程序 213
6.2.1 Qt中的多线程编程 213
6.2.2 使用QextSealPo—简单的实验 221
6.2.3 完善的串口通信程序 228
6.2.4 若干问题 240
6.3 本章小结 241
第7章 Windows下双机点到点串行通信系统设计与开发 243
7.1 Windows下双机的串行通信系统简介 244
7.2 Windows下双机点到点的串行通信系统的用户需求 244
7.3 Windows下双机的串行通信系统的分析 244
7.4 利用UML为本工程实例建模 245
7.5 Windows下双机的串行通信系统设计概述 247
7.5.1 系统模块图与面向对象方法介绍 248
7.5.2 封面设计 249
7.5.3 主界面设计 252
7.6 Windows下双机的串行通信系统的调试与实现 262
7.6.1 系统调试出现的问题 262
7.6.2 系统的实现 263
7.7 本章小结 263
第8章 16位高速DSP增强型同步串口的设计 265
8.1 概述 266
8.2 F206 DSP处理器体系结构分析 266
8.2.1 F206 DSP处理器概述 266
8.2.2 总线结构 268
8.2.3 中央处理单元概述 269
8.2.4 存储器和I/O空间 272
8.3 增强型同步串口的系统及设计 273
8.3.1 同步串口的基本原理 274
8.3.2 同步串口基本操作结构图 275
8.3.3 各种信号 275
8.3.4 缓存器与寄存器 276
8.3.5 中断 277
8.3.6 查错 277
8.4 接收电路的设计 280
8.4.1 突发模式的接收 280
8.4.2 连续模式的接收 281
8.5 发送电路的设计 282
8.5.1 利用内部帧同步的突发模式传送 283
8.5.2 利用外部帧同步的突发模式传送 284
8.5.3 利用内部帧同步的连续模式传送 285
8.5.4 利用外部帧同步的连续模式传送 286
8.6 接收与发送电路的实现与研究 286
8.7 同步串口中帧同步的设计 287
8.7.1 并行同步设计思想 288
8.7.2 多路并行帧同步系统 288
8.8 FIFO缓存器电路的设计 289
8.8.1 FIFO基本原理 289
8.8.2 通用FIFO的设计 290
8.8.3 同步串口中FIFO的设计 291
8.9 同步串口中特殊功能的设计 293
8.9.1 内部时钟和帧同步电路的设计 293
8.9.2 多通道选择电路的设计 294
8.10 同步串口中的状态寄存器 296
8.11 本章小结 297
第9章 串口与以太网数据传输实现 299
9.1 概述 300
9.2 设计芯片的软硬件选择 301
9.2.1 嵌入式网络模块DSLC-SOM-01 301
9.2.2 CT-xweb2000系统 302
9.2.3 ZNE-100T增强型嵌入式以太网转串口模块 303
9.2.4 RCM2200模块 305
9.2.5 各开发包的优缺点及其最终选择 306
9.3 Rabbit开发包和编程工具DynamicC简介 306
9.3.1 Rabbit微处理器结构图与Rabbit2000特点介绍 307
9.3.2 RCM2200系统结构与详细技术参数 309
9.3.3 DynamicC的特点 310
9.4 传输协议概述 311
9.5 串口传输协议的选择 312
9.5.1 XMODEM协议概述 313
9.5.2 XMODEM传输协议的实现函数 313
9.5.3 CHECKSUM校验方法 314
9.6 以太网口传输协议的选择与实现 316
9.6.1 网络传输协议的选择和UDP协议 316
9.6.2 TFTP服务器和客户端概述 317
9.6.3 TFTP传输的初始连接 318
9.6.4 TFTP包 318
9.6.5 TFTP传输的正常终止 319
9.6.6 TFTP协议的实现 320
9.7 串口到以太网口传输文件的实现 321
9.7.1 程序设计思想 321
9.7.2 程序实现 322
9.7.3 串口到以太网口文件传输源程序 323
9.8 以太网口到串口传输文件的实现 331
9.8.1 程序设计思想 331
9.8.2 程序实现 332
9.8.3 以太网口到串口文件传输源程序 332
9.9 工程应用概述 340
9.10 本章小结 341
第10章 基于串口的DNC信息采集系统的开发 343
10.1 DNC技术概述 344
10.1.1 DNC技术的产生与发展 344
10.1.2 DNC数据采集的重要性 345
10.1.3 DNC数据采集的现状 346
10.2 DNC信息采集系统的功能 346
10.3 DNC信息采集系统的底层设备接口 347
10.4 DNC数据采集系统通信技术 348
10.4.1 DNC数据采集系统的内部通信技术概述 349
10.4.2 DNC数据采集系统的外部通信技术概述 351
10.4.3 DNC数据采集的方法 352
10.5 基于串口的DNC信息采集系统的总体设计 354
10.5.1 系统总体结构 355
10.5.2 系统硬件组成 355
10.5.3 系统软件组成及主要功能 356
10.6 DNC信息采集系统相关技术 358
10.6.1 串口通信技术 358
10.6.2 宏指令采集 359
10.6.3 特殊程序上报采集 364
10.6.4 采集数据处理与信息发布 365
10.6.5 串口传输速度匹配 366
10.7 基于串口的DNC信息采集系统设计和开发 367
10.7.1 系统概述 367
10.7.2 数据库设计 367
10.7.3 串口通信实现 369
10.7.4 多线程的实现 369
10.7.5 数据采集的实现 370
10.7.6 信息发布实现 372
10.7.7 系统测试 374
10.7.8 系统的测试效果 377
10.8 本章小结 378
第11章 Windows XP下USB转RS-232桥接器驱动程序开发 379
11.1 USB转RS-232桥接器概述 380
11.1.1 设备驱动的概念 380
11.1.2 USB技术特点 380
11.1.3 USB的广泛应用 381
11.1.4 USB在嵌入式设备中的应用 383
11.1.5 计算机常用外部总线比较 383
11.1.6 USB转RS-232桥接器发展现状 385
11.1.7 USB转RS-232桥接器驱动发展现状 385
11.2 USB总线技术介绍 386
11.2.1 USB系统拓扑结构 386
11.2.2 USB总线逻辑结构 388
11.2.3 传输协议 388
11.2.4 传输类型 394
11.2.5 设备框架 399
11.2.6 USB主机协议 402
11.3 USB转RS-232桥接器硬件设计 404
11.3.1 系统整体结构 404
11.3.2 USB接口设计 406
11.3.3 UART设计 407
11.3.4 Buer设计 409
11.3.5 FIFO设计 409
11.4 桥接器驱动模型分析与实现机制 411
11.4.1 Windows驱动模型的发展 412
11.4.2 WDM驱动模型简介 412
11.4.3 基于WDM模型的桥接器驱动框架设计 414
11.4.4 确立开发方案 418
11.4.5 I/O请求包(IRP) 418
11.4.6 USB数据处理 420
11.4.7 内存分配策略 421
11.4.8 同步问题 422
11.4.9 使用推迟过程调用 424
11.4.10 使用完成例程 425
11.5 桥接器驱动程序重点例程设计 426
11.5.1 驱动程序入口例程 426
11.5.2 即插即用例程实现策略. 428
11.5.3 分发例程实现策略 432
11.5.4 电源管理例程 438
11.5.5 卸载例程 438
11.6 驱动测试与安装 438
11.6.1 驱动测试 438
11.6.2 驱动的安装 440
11.7 本章小结 441
第12章 串口通信在机器人实时控制中的应用开发 443
12.1 工业机器人概述 444
12.1.1 工业机器人的发展 444
12.1.2 工业机器人的应用 445
12.1.3 工业机器人技术概述 446
12.1.4 机器人控制技术概述 447
12.1.5 串行通信 449
12.1.6 实时控制系统 450
12.2 MOTOMAN UP6工业机器人系统介绍 450
12.2.1 MOTOMAN UP6的结构与性能 451
12.2.2 MOTOMAN UP6机器人控制系统 451
12.2.3 MOTOMAN UP6机器人运动参数 452
12.2.4 机器人虚拟样机技术 453
12.2.5 机器人运动仿真 454
12.3 实时控制系统的总体分析 455
12.3.1 系统总体结构和组成 455
12.3.2 机器人功能分析 456
12.3.3 通信协议分析 456
12.3.4 RS-232C的不足之处及修正方案 457
12.3.5 机器人控制系统的图像监控 458
12.4 实时控制系统的实现 459
12.4.1 程序设计思路 459
12.4.2 编程语言及方法选择 460
12.4.3 Visual C+++环境配置 462
12.4.4 通信参数设置与建立连接 463
12.4.5 机器人的主要状态 463
12.4.6 机器人通信功能模块及其具体实现 464
12.4.7 机器人可执行文件格式 480
12.4.8 编程注意事项 481
12.4.9 系统软件发布 482
12.5 控制系统中图像监控的实现 482
12.5.1 视频捕获 482
12.5.2 多线程编程技术在图像监控中的运用 483
12.6 本章小结 485