备,绝大多数的功能都集成在各种类型的计算机上。随着 USB 应用领域的逐渐
扩大, 人们对于 USB 的期望也越来越高, 希望 USB能应用在各种计算机领域中,
尤其是在工业场合中工业接口和 USB 接口数据通信的实现[3]
。常用的工业接口,
如 RS-232,这些接口都是上个世纪七八十年代设计的。随着 USB 设备的普及,
如何方便实现 RS-232接口到 USB 接口的转换, 实现 USB 到RS-232 的双向数据
通信,就成为当前急需解决的问题。1.2设计目的和意义
驱动程序就是用来向操作系统提供访问、使用硬件设备的接口,实现操作系
统和系统中的硬件设备之间的通信程序。 它能告诉操作系统硬件设备所具有的功
能,并且在软件系统要求实现某个功能时,它能调动硬件最有效的方式去完成。
形象地说,驱动程序就是软件与硬件之间的“传令兵” 。这个环节是非常重要的,
一旦驱动出现了问题,那么性能强大的硬件便实现不了应有的功能,因此说驱动
是硬件的灵魂。日常使用的大部分电脑在安装了 Windows 操作系统后,就已经
安装好了驱动程序。当前的个人计算机操作系统内部集成了庞大的驱动程序库。
一般情况下, 当用户添加了一个新硬件后操作系统就会为该硬件寻找一个合适的
驱动程序并自动安装。本文开发的是非标准的 USB 设备,在 Windows XP 驱动
程序库中不存在相应的兼容设备驱动。当前现有的驱动程序效率不高。本课题就
是为了开发合适的驱动程序,以求正确实现现场总线和计算机之间的数据交换,
并且开发了 USB转接 RS-232 的驱动,以适应大部分工业现场的需要。
1.3 本文主要工作
第一部分: 绪论。 介绍该课题背景, 对该系统的设计目的和意义做简单介绍。
第二部分:系统介绍 USB通信协议。
第三部分:系统方案的分析 设计、及程序的设计。
第四部分:系统的设计总结。2. USB通信协议
本课题研究的通信协议主要是指设备和主机间的数据流协议以及其他相关
协议。USB 包含 4 种传输类型:控制传输、中断传输、同步传输、批量传输[4]。
传输是由事务构成的,事务按特点可分为输入事务、输出事务、设置事务。任何
传输都是由这三种事务组成。 事务由信息包组成, 信息包主要有令牌包、 数据包、
握手包三类[5]
。
信息包是 USB 总线上数据传输的最小单位, 包含了进行 USB通信所需的全
部信息。它由一系列字段组成:同步字段、包标识字段、地址字段、端点字段、
帧号字段、数据字段和循环冗余检验(CRC)字段。
USB 协议规定:USB总线最先发送最低有效位(LSB),跟着是下一个最低有
效位,之后是最高有效位(MSB)[6]
。
2.1 同步字段
所有包都从同步字段(SYNC)开始。同步字段作为空闲状态出现在总线上,
后面跟着以 NRZI 编码的二进制串“KJKJKJKK”[7]
。通过被定义为 8位长的二
进制串,输入电路以本地时钟对齐输入数据。同步字段用于同步机制。同步字段
最后 2 位是同步字段结束的记号,并且标志了包标识符的开始。只有当检测到包
的开始(SOP)才开始后面的 NRZI 解码、去位填充和串并操作,否则就继续处于
等待阶段。
2.2 包标志字段
USB 信息包中,包标识字段紧跟同步字段,用于指明信息包的类型、格式和所采用的差错控制机制,由4 位类型字段和 4 位校验字段组成[8]
。其中校验字
段是类型字段的二进制补码,用于保证包标识符(PID)字段译码的可靠性,使 Windows下USB驱动程序的设计(2):http://www.youerw.com/jisuanji/lunwen_8467.html