第2章 串行通信
串行通信是设备间通信的最古老的机制之一。从IBM PC及其兼容机开始,几乎所有的计算机都配备了一个或多个串口和一个并口。顾名思义,串口每次1位地连续收发数据,而并口则使用8条独立的数据线每次收发8位数据。
提示 为了让串行通信工作,最少只需要3条线:1条发送线、1条接收线和1条信号地线。并行通信则需要8条线。
尽管传输速度相对低于并口,但串行通信仍然是设备连接的流行选项,因为它简单而且成本较低。图2-1展示了几个用串口连接到计算机的设备。使用串口,你可以连接到调制解调器、鼠标或者网桥/路由器之类用于配置目的的设备。
|
| 图2-1 一些常见的串行设备——调制解调器、鼠标和路由器 |
虽然当今的消费产品正在使用USB连接取代串行连接,但是仍有大量的设备把串口作为它们与外部世界连接的唯一途径。
本章将介绍怎样使用.NET Framework 2.0和.NET Compact Framework 2.0里新的SerialPort类实现与其他串行设备的通信。我们将建立3个项目,用实例说明怎样使用串行通信。第一个项目是一个聊天程序,它允许(使用串行数据线或者蓝牙互相连接的)两台计算机进行通信。你可以以此程序为基础,对其进行扩展来实现与移动电话之类的其他外部串行设备的通信。你将学会如何通过一个串行的蓝牙连接使用AT命令以程序控制移动电话。第二个项目是一个Pocket PC聊天程序,与前一个项目十分类似。第三个项目展示了怎样与GPS接收器通信,并从中提取有用的数据用于在地图上显示当前位置。
2.1 串行通信基础
如前所述,串行设备每次发送和接收一位数据。一些设备能够同时发送和接收数据,称为全双工(full-duplex)设备。另外一些设备在某一时刻只能发送或者接收数据,称为单双工(single-duplex)。
为了发起传送,设备首先发送一个开始位(start bit),随后是数据位(data bit)。数据位的个数可以是5、6、7或者8,这取决于具体的协议。发送和接收的双方都必须设置相同的数据位数,以保证通信的正确进行。数据位发送以后,停止位(stop bit)随即被发送。停止位可以是1位、1.5位或者2位。波特率(baud rate)是从一个设备到另一个设备的数据传输速度,通常以位每秒(bits per second,bit/s)来衡量。
注解 大多数串行设备以7个或者8个数据位进行传输。
为了检测数据传输的正确性,数据位中可以包含一个可选的奇偶校验位(parity bit)。奇偶校验位可以是以下之一:奇、偶、符号、空格或者没有(符号和空格是最常用的)。使用奇偶校验位可以提供基本的检测数据讹误的机制,但是并不能保证收到的数据是没有错误的。尽管如此,奇偶校验位在改善数据发送的完整性上还是非常有用的。
大多数串行端口支持RS232C标准,该标准定义了25针或者9针的连接器(见图2-2)。多数串行设备使用9针连接器。
|
| 图2-2 25针和9针的串行连接器 |
| 回书目 上一节 下一节 |
|
||||
| · 微软出价446亿美元收购.. · CCNA认证考试Pass必备 · 求职必杀技 决战面试官 · 龙芯要做中国的“奔腾” · 2008年上半年IT技术图.. · 虚拟化的“赤壁之战” · 服务器节能与绿色IT · 脉冲无线电uwb专题 |
· 802.11n:下一代的无线.. · IT工程师该不该考CCIE.. · 浏览器的战国时代 · 2008年上半年全国软考.. · 无线网络环境 · 无线网状网(MESH) · 无线重中之重:安全问题 · 网络故障排除宝典 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · 无线网状网(MESH) · Windows远程桌面应用 · C#技术开发指南 |
· Apache技术专题 · Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 解析35岁技术人的价值.. |
|||