首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

Visual C++串口通信开发入门与编程实践

2011-12-27 
商家名称 信用等级 购买信息 订购本书
Visual C++串口通信开发入门与编程实践 去商家看看
Visual C++串口通信开发入门与编程实践 去商家看看

 Visual C++串口通信开发入门与编程实践


基本信息·出版社:电子工业出版社
·页码:485 页
·出版日期:2009年04月
·ISBN:7121082691/9787121082696
·条形码:9787121082696
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:C/C++开发专家

内容简介 《VisualC++串口通信开发入门与编程实践》着重介绍计算机串口通信的硬件原理、软件开发和工程实例。《VisualC++串口通信开发入门与编程实践》从通信原理和工程实现出发,结合示例讲述使用串口进行通信的原理和开发技术。全书共分12章,第1、2章从电路和通信电子设备角度出发,详细讲解串行通信的理论基础和物理实现;第3~6章介绍在通用计算机(PC)的Windows环境下如何进行串口通信软件的开发,包括使用Windows API、C++串口类以及Qt串口类等;第7~12章以工程中的6个实例为蓝本,介绍Windows平台下串行接口开发与嵌入式设备串口通信开发的相关技术。
书中源代码和项目设计代码请到www.fecit.com.cn的“下载专区”中下载。
《VisualC++串口通信开发入门与编程实践》的编写者具有计算机接口设备开发及软件开发的大量经验。《VisualC++串口通信开发入门与编程实践》适合于对电子电路和计算机体系有初步了解,但对软件开发掌握不多的读者作为自学用书,也可以作为自动化、电气、工控、机械等领域有相关需求的工程人员的参考书。
作者简介 周韧研,清华大学电子的工程学士。现就读清华大学微电子学研究所博士生,从事片上系统(SoC)和集成电路设计的研究工作,负责并参与多个国家自然科学基金项目。在嵌入式硬件电路设计、嵌入式网络通信方面具有多年的项目开发经验,熟悉PPC和ARM体系结构,精通Visual C串口通信编程。
商斌,北京理工大学软件工程硕士。4年外企研发工作经验,6年嵌入式系统编程经验,精通嵌入式系统通信接口开发,具备扎实的理论功底,发表SCI论文3篇。曾赴德国4所著名高校、研究所交流方向,已出版《嵌入式Linux C语言开发入门与编程实践》、《Linux设备驱动开发入门与编程实践》等多部技术书籍。
编辑推荐 《VisualC++串口通信开发入门与编程实践》着重介绍计算机串口通信的硬件原理、软件开发和工程实例。案例式教学,丰富的项目实例+详尽的代码+完整的注解.全书讲解由浅入深、通俗易懂、注重实践,是一本不可多得的程序员手册。《VisualC++串口通信开发入门与编程实践》作者具有计算机接口设备开发以及软件开发的大量经验。配套代码免去烦琐输入代码的工作,提高学习效率。
与初学者探讨Visual C++串口通信开发技术,每一步都有详尽说明;案例式教学,丰富的项目实例+详尽的代码+完整的注解;倡导轻松、快捷编程的程序员必务手册;Visual C++串口通信开发入门、进阶的“一指神功”。
目录
第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-RS232串行接口标准介绍 28
1.4.1 EIA-RS232标准概述 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 Visual C++ 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——基本的4.2 读写问题 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 CSerial简介 134
5.2.1 概述 134
5.2.2 修改“Hello World”程序 134
5.3 CSerial的串口事件 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 使用MFC 169
5.5 使用CSerial和MFC编写串口通信程序 174
5.5.1 向框架添加CSerial 174
5.5.2 设计应用程序界面 176
5.5.3 串口配置 178
5.5.4 数据的发送和接收 184
5.5.5 有关CSerialMFC的特别说明 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 使用QextSerialPort——简单的实验 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开发包和编程工具Dynamic C简介 306
9.3.1 Rabbit微处理器结构图与Rabbit2000特点介绍 307
9.3.2 RCM2200系统结构与详细技术参数 309
9.3.3 Dynamic C的特点 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 Buffer设计 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
……
序言 计算机的体系接口是计算机体系中的重要组成部分,体系接口的发展也是计算机技术发展的一个重要标志。计算机体系接口复杂多样,在它的发展过程中,总有一些接口在慢慢消失,又有一些接口在不断出现。在当代,主流的体系接口有PCI/PCI-E接口、USB 1.0/2.0、百兆位以太网等,新兴接口还有蓝牙、USB 3.0、吉位以太网、光纤等。这些体系接口都能够提供通用计算机与包括嵌入式系统在内的非计算机电子设备之间进行通信的功能。
无论是主流的体系接口还是新兴的体系接口,其传输速度和传输可靠性都使得传统体系接口(并口、串口)不能望其项背。但与此同时,这些接口的复杂性也是传统体系接口所不能比拟的。这体现在两个方面:一个是下位设备,也就是与通用计算机通信的设备的复杂性。通常,为了支持诸如以太网或者USB的接口,要么需要专业的硬件或者嵌入式软件开发者投入大量的精力进行开发、验证和维护,要么花费资金购买相应的硬件授权(IP核)或者接口芯片,硬件(嵌入式软件)的复杂性必然带来各种硬件开销(硬件量、功耗等)的增加。另一个是通用计算机上软件的复杂性。对支持以太网或者USB通信的软件的开发,由于体系本身的复杂性,程序员需要拥有相当的知识储备和过硬的调试能力。
考察在科研和生产中所使用的电子电气设备和与通用计算机的交互状态,我们发现,有相当一部分设备并不需要主流或者新兴计算机体系接口所提供的大吞吐量,而是往往对通信的实时性有特别的要求。显然,对于这样的情况,使用主流或者新兴计算机体系接口就不合适。嵌入式设备,特别是嵌入式计算机系统,都希望能够通过一种简单、可靠、高实时性的接口与通用计算机通信,而且,在通用计算机上运行的软件也要易于开发和调试。作者认为,正是由于这个需求的存在,是通用计算机上的异步串行通信接口(UART)能够保留到现在的原因。
文摘 插图:


因此,在“Hello World”中所使用的标准库开发方法掩盖了操作系统的实际功能,这对我们的学习是不利的。
4.1.2 Windows API初探
Windows API是Windows操作系统的编程接口,它以C语言库的形式提供给开发者。这个库包含了必要的头文件和库文件,和一些小工具组合在一起,构成了Windows SDK。用户可以从Microsoft网站获取单独的Windows SDK。Visual C++包含了当时最稳定的SDK。
对于绝大多数系统核心的功能实现在于操作系统本身,而并不包含在Windows SDK中。在SDK中只以引导库的方式提供了这些功能函数的符号链接。例如,CreateFile函数的符号存在于kernel32.1ib中,在链接的过程中应用程序包含CreateFile的符号,当应用程序运行时,通过符号的引导调用系统kernel32.dll中所对应的函数。
显式地(这里指不通过标准库等迂回的方式)使用绝大多数Windows API,尤其是核心Windows API,只需要包含头文件Windows.h。
热点排行