基于usb的无线测控平台的设计-本科毕业论文内容摘要:

测控现场间的数据通信的畅通是高效、稳定的测控实现的前提。 一般情况下,主控平台和测控现场之间存在一定距离,为此人们提出了诸多总线协议诸如 CAN、RS232 等用来实现这一目的。 相比于靠电缆来构成数据传输通道,无线传输方式则显得更加的方便。 综合上述考虑,设计出了如图 21 所示的系统结构。 图 21 系统结构 4/48 基于 USB 的无线测控平台的设计 167。 应用 LabVIEW 开发虚拟平台 虚拟仪器概念最早由美国国家仪器公司 NI 提出,同时, NI 推出了图形化的虚拟仪器编程环境 LabVIEW,标志着虚拟仪器软件设计平台的基本形成, 虚拟仪器从概念构思变为工程师可以实现的具体对象。 虚拟仪器是根据不同的测试需要, 由 实际的物理系统构成且主要功能由软件实现的现实测试仪器。 LabVIEW 通过 PCI、 GPIB、 RS232 等总线与物理系统通信,控制仪器的工作和实现数据采集等。 LabVIEW 具有强大的连通性,支持 Web、DLL 调用、 SQL 连接、 ActiveX 和 .NET 等交互设计。 作 为图形化编程语言的编程环境, 其拥有强大的生产效率。 LabVIEW 专为测量、数据分析并提交结果而设计,其拥有如此功能众多的图形用户界面又易于仿真,使得对于仿真、结果显示、通用编程等都十分有利。 LabVIEW 拥有庞大的函数和子程序库,也有特定应用程序库代码,如:数据采集( DAQ)、通用功能接口总线( GPIB)、串行 接 口仪器控制、数据分析、数据显示、数据存储、 Inter 通信。 分析库则包含了大量 实用函数,包括信号产生、信号处理、滤波器、窗口、统计、回 归、线性代数、矩阵运算等。 本设计拟采用 LabVIEW环境开发 PC机 控制平台正是基于 LabVIEW的诸多优秀特性和功能 ,可以不必将精力花在图形用户接口的设计,转而专注于控制流程的实现上 来 [4]。 167。 USB 接口 的设计 在图 21 中,测控平台与无线主站之间依靠 USB 接口进行数据的传输 , 相比于串口,USB 接口热 拔插 和高速可靠的数据传输特性可以保证 二者之间的可靠通信。 USB 接口的软件主要包含主机底层驱动、 Windows API、主机应用程序、设备固件程序和设备应用程序等复杂体系。 其中, 主机 USB 底层驱动程序 的开发需要有专业的驱动程序开发技术和经验,对于非软件专业的开发者而言,这将 成为开发 USB 接口的最大难点。 如何更加快速 的构建 USB 接口而避免将大量工作投入其主机驱动程序的开发,本设计将采用 Silicon Laboratories 公司的 C8051F340 作为 USB 接口的设备控制器。 C8051F340是 Silicon Laboratories 推出的一款 USB Flash 微控制器,其内部集成 USB 功能 单元,实现了 USB协议的物理层和数据链路层,通过对 其 诸多寄存器的操作可以方便的控制整个 USB通信流程。 此外, Silicon Laboratories 为推广其 USB 控制芯片专门开发了 USBXpress 开发工具,大大方便了 USB 接口的开发。 USB( Universal Serial Bus)即通用串行总线自被提出以来,被广泛应用于各种场合,其即插即用和四线制连接方式得到了业界一致认可。 本小节将从 USB 体系构成、数据流模 5/48 型和数据包来简要介绍 USB 协议。 USB体系的构成 USB 体系包括主机( USB Host)、设备( USB Device)以及物理连接三个部分。 其中主机是一个提供 USB 接口及接口管理能力的硬件、软 件及固件的复合体,可以是 PC,也可以是 OTG设备。 一个 USB 系统中仅有一个 USB 主机;设备包括 USB 功能设备和 USB HUB,最多支持 127 个设备;物理连接即指的是 USB 的传输线。 在 系统中,要求使用屏蔽的双绞线。 USB 体系采用分层的星型拓扑来连接所有 USB 设备。 USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个 USB 体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包 [5]。 USB数据链路层模型 USB 数据链路层采用分层体系 结构,其结构如图 22 所示。 图 22 USB数据链路层模型 在 HSOT 端,应用软件( ClientSW)不能直接访问 USB 总线,而必须通过 USB 系统软件和 USB 主机控制器来访问 USB 总线,在 USB 总线上和 USB 设备进行通讯。 从逻 辑上可以分为功能层、设备层和总线接口层三个层次。 其中功能层完成功能级的描述、定义和行为;设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次基本传输; USB 总线接口层则处理总线上的比特流,完成数据传输的物理层实现和总线管理。 物理上, USB 设备通过分层的星型总 线连接到 HOST,但在逻辑上 HUB 是透明的,各 USB设备和 HOST 直接连接,和 HOST 上的应用软件形成一对一的关系 [5]。 6/48 基于 USB 的无线测控平台的设计 USB数据包 所有的 USB 数据包 都由 同步字符 ( SYNC) 开始,高速包的 SYNC 宽度 为 32 比特 ,全速 /低速包 的 SYNC 宽 度为 8比特。 实际接收到的 SYNC 宽 度由于 USB HUB的关系,可 能会小于该值。 USB 数据包的格式如图 23 所示。 图 23 USB数据包格式 PID表征了该数据包的类型,分为令牌、数据、握手以及特殊包四大类,共 16种 PID。 数据在 USB 总线上的传输以包 为单位,包只能在帧内传输。 高速 USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。 帧的起始由一个特定的包( SOF 包)表示,帧尾为 EOF。 EOF 不是一个包,而是一种电平状态, EOF期间不允许有数据传输 [5]。 167。 无线 通信 通道 的设计 无线通信通道作为主控室与厂房之间的远距离数据传输通道,是实现远程控制的关键所在。 目前的无线芯片有 nRF40 nRF90 CC2430 等。 相比于 nRF401 射频芯片, nRF905由于其内部拥有更多的寄存器单元因而容易控制整个数据的发送和接收,其某些引脚 电平指示了整个数据传输过程中 nRF905 的一些状态,单片机可以查询这些引脚电平从而控制nRF905工作。 另外, nRF905与微控制器的接口采用 SPI方式 ,微控制器通过 SPI来向 nRF905写命令数据或读取 nRF905 内部寄存器的值。 再者, nRF905 具有地址匹配机制 和收发一体的特点 可以方便的搭建一个点对多的通信网络。 CC2430 是一个基于 ZigBee 协议的 无线收发器,其具有强大的互相定位功能和 的载波频率,开发成本也较高。 综上所述,nRF905 不但开发成本低、控制灵活而且功能满足设计需要,因而采用 nRF905 搭建无线通信通道。 7/48 167。 系统整体控制流程 系统整体控制流程 如图 24 所示。 图 24 控制流程 系统完成一次 控制任务 的流程为 :通过 LabVIEW 平台发出指令,当 MCU 接收到通过USB 接口发送来的指令后,通过对该指令的解析得到 设备 对象的地址和其所在无线 子站 的地址。 MCU 解析之后再将这些信息 通过 SPI 接口 写入无线 主 站的缓冲区等待发送,写入完毕后 MCU 控制无线主站开始发送,此时无线子站均处于接收状态。 无线主站发送的数据 包含欲接收该信息的无线子 站地址 ,当无线子站检测到与自身地址 相同时, 则向 MCU发出地址匹配信号 ,其他无线子站均不会接收这些数据。 无线子站随之接收余下的有效数据,待数据接收完成 后, 无线子站通知 MCU 读取接收到的数据。 MCU 通过 SPI 接口读取后再对这些数据进行解析, 如果为控制命令则控制执行 器工作 ,同时 MCU 通过无线通道返回给控制平台本次控制 状态 信息;如果本次接收到的是测量命令,则 MCU 开始测量后将该测量值通过无线通道返回给控制平台。 167。 应用层 协议 对设备的编址 当无线主站向子站发送数据时,并不是所有的无线子站都接收该次发送的数据,这是靠无线子站的地址匹配机制 来实现的。 在如图 21 所示的系统结构中,一个厂房只有一个无线子站,则可以使用该无线子站的地址作为该厂房的地址。 本协议 厂房 地址为 1字节宽度,其中无线主站地址为 0x00,无线子站 即厂房的 地址为 0x010xff,则 共支持 255 个厂房。 一个厂房 内 的设备可以归结为三类:模拟量、数字量和开关量。 模拟量是输入量, 来8/48 基于 USB 的无线测控平台的设计 自于设备的模拟输出,最终通过 ADC送入控制平台; 数字量是输出量, 用于送入设备的 DAC后转换为模拟量来控制设备; 开关量则既有输入也有输出量。 为区别这些 设备,也需要对其进行编址。 命令与状态类型 本协议约定命令有 以 下几种,即设备搜索命令、控制命令、查询命令,这些命令均由位于主控室的主控平台发 出 并经由无线主站发送 给 无线子站。 针对各种命令, 厂房里的 MCU执行后将根据情况返回一定的状态类型和数据值。 设备搜索命令用于 系统开机时对 厂房无线子站的 搜索 ,已确定当前处于工作状态的厂房无线子站的地址。 无线主站采取轮询的方式对每一个无线子站进行搜索,正处于工作状态的无线子站收到该命令后将返回给主站一个工作状态数据帧。 在无线主站发送呼叫命令10ms 后若还收不到来自子站的工作状态数据帧, 主站即默认该子站没有处于工作状态 转而搜索下一子站。 控制命令 标志该帧是主控平台欲控制某一 设备 对象而发 出 的数据帧, 子站接收到该数据帧后即返回一个 控制状态帧。 当主站 10ms 内接收不到该帧时即表示此次控制失败重新发送该帧,尝试 5 次均 未 收到该控制状态帧时将 向主控平台返回 控制失败报告。 查询命令则表示该帧是一欲查询某一设备某些参数的数据帧 ,该数据帧被子站接收后将返回一个包含测量参数值在内的查询状态帧。 当主站 10ms 内接收不到该帧时即表示此次查询失败重新发送该帧,尝试 5 次均 未 收到该查询状态帧时将 向主控平台返回 查询失败报告。 另外,当本次控制或查 询命令被子站接收后,子站可能 因为 数据传送错误而返回一个错误状态帧,主站接收到该帧后 将再尝试最多 5 次,再次失败将向主控平台返回对应的失败报告。 传送错误处理机制 主控平台的各项命令均需 经由两个传送通道即 USB 接口和无线射频通道。 根据 USB协议的约定,传送失败或错误的数据, USB 将自动重传 , USB 协议本身可以保证数据传输的完整性与正确性。 而本设计所采用的无线射频模块则不支持 错误 自动重传机制,但是对经由其发送的数据自动产生 CRC 码并一起发送出去,数据被其他无线射频模块接收后将会自动校验该数据帧的正确 性。 综上所述,在无线传输阶段数据包的丢失错误需要靠该协议纠正 ,在 “ ”一节 ,主站 在 10ms内没有接收到该状态帧即将再尝试最多5 次,再次失败将向主控平台返回对应的失败报告的方法可以纠正这样的错误。 9/48 数据帧格式 本协议约定数据帧长度为固定的 8 字节。 根据命令与状态的类型,存在 以 下几种数据帧类型: ,其格式如下: 字节 1 2 3 4 5 6 7 8 值 0x00 SADDR 意义 搜索帧特征字 保留 字节 保留 字节 保留 字节 保 留 字节 保留 字节 保留 字节 子站 地址 其中,子站地址 SADDR 从 0x010xff,共支持 255 个无线子站。 ,其格式如下: 字节 1 2 3 4 5 6 7 8 值 0xf0 SSTATUS SADDR 意义 搜索 状态 帧特征字 保留 字节 保留 字节 保留 字节 保留 字节 保留 字节 子站 状态 子站 地址 其中,当设备状态字节 SSTATUS=0xff 时即表示该无线子站处于工作状态; 当SSTATUS=0x00 时表示该无线子站处于停用状态。 制命令帧,其格式如下: 字节 1 2 3 4 5 6 7 8 值 0x02 DATAH DATAL DADDRH DADDRL SADDR 意义 控制帧特征字 保留 字节 数据 字节 数据 字节 设备 地址 设备 地址 保留 字节 子站 地址 其中, SADDR 为被控设备所在无线子站的地址, DADDRH 为欲控制设备的高 8 位地址, DADD。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。