时间:2022-09-24 06:36:12
引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇数据采集论文范例。如需获取更多原创内容,可随时联系我们的客服老师。
GPRS移动数据传输网络的主要作用就是对无线数据进行传输。在监控对象安装的数据采集点会对数据进行采集,然后经过GSM网络的空中接口模块,同时对数据进行解码处理,然后将其转换为可以在公网传输的格式,最后通过GPRS移动数据传输网络将数据传输至监控中心的服务器。在整个系统中,各个监控点的数据采集模块通过GPRS移动数据传输网络与监控中心相连,数据采集点同意使用STK卡,与此同时,监控中心会对各点进行登记,并在服务器中保存相关资料。各个监控点的数据采集模块中装有数据采集软件,该软件24h在线,对电网中的信息数据进行24h不间断的采集工作。关于信息的传输,使用的是JW0D2系列的GPRS无限透明数据传输终端。该终端基于移动网络,抗干扰能力较强,同时性能较高。此外,该传输终端还提供标准的RS232接口,以便实现与计算机的连接。在传输过程中,速率可以达到172kbps,能满足监控中心与各个监控点的数据采集与处理工作。由于电网数据传输的特殊性较强,因此本系统使用了安全保障,以保证系统运行的稳定性和可靠性。在网络安全方面,经过对信源加密、信道加密、登录防护、接入防护、访问防护等,能有效增强网络安全,加强安全防护。在硬件方面,使用VPN将公网接入到GPRS网中,成本低廉,不用租用专线。此外,使用VPN还可以增强安全性,客户端在链接应用服务器之前,要经过服务器的认证,而且整个数据传输过程均会加密,如此一来,安全性就得到了保障。另外,系统还对用户的SIM卡手机继续鉴别授权,在网络侧对SIM卡号和APN进行绑定处理,只有拥有权限的相关用户才能对专用APN进行访问,没经过授权的SIM卡将无法对APN网络进行访问。
2特点与优势
传输模块的特点主要有:①传输模块采用了工业级的GPRS模块,该模块性能较为稳定,而且其工作温度范围较大。另外,用了嵌入式的CPU作为处理器,功耗低、性能高,还能高速处理协议和大量的数据。②由于该模块的工作方式为multi-tasking,因此实时性较好。③其AT指令的预设简单方便。该模块的通信距离较远,而且具有覆盖面积广的特点,能使终端实时在线,能将无线电无法到达的区域采用GPRS通信的方式进行传输,真正实现了高效传输。此外,该系统还有组网灵活、扩展容易、维护简单、性价比高的特点。
与短消息服务相比,GPRS服务的实施性很强,而且系统不会出现延时的情况,可以对所有数据进行采集。此外,由于GPRS具有双向功能,还可以对采集设备进行反向控制,因此进一步提高了系统的便捷性。本系统的扩展性良好,是大面积覆盖的GPRS网络,所以该系统不存在盲区,而且由于该系统的输出容量较大,数据采集点较多,监控中心要与每一个监控点相连,因此需要系统能满足传输需求。该系统的传输容量较大,能满足突发性数据的传输要求,因此该系统的优点明显。
3结束语
CC2530射频模块通过外引24个引脚,包括普通IO引脚P00-P24和电源、复位引脚,实现与电路的连接。电路包括复位电路、开关电路、传感器接口电路、按键指示电路、通信调试电路、电源供电电路。主要电路功能介绍如下:按键指示电路:节点包括Led和蜂鸣器指示电路,用于本节点的指示功能;支持按键功能,进行节点工作模式的转换。开关电路:由三极管电路组成,用于实现传感器供电的通断。通信调试电路:由串口电路和JTAG调试接口组成;串口负责与PC上位机软件的连接,方便修改节点的参数;JTAG接口方便上位机集成环境IAR等调试用。电源供电电路:基本供电由外部USB接口电源5V通过AMS1117转3.3V以及直接电池3.3V供电组成;传感器可由内部3.3V供电,而大于3.3V则由外部电源直接提供。传感器接口电路:包括危化品物流车辆常见的几种信号(0-5V、4-20mA、开关量、数字量)采集电路,可同时接四种类型的传感器。其中数字量主要是DS18B20、DHT11温湿度传感器的输出信号;0-5V主要是气体泄露检测、光敏、真空度传感器的输出信号;4-20mA主要是压力、液位传感器的输出信号;开关量主要是红外、门开关、倾斜传感器的输出信号;信号接入后进行了信号隔离和二极管钳位保护电路。
2节点软件
2.1节点软件架构软件设计部分主要是基于TI公司的Z-stack协议栈进行应用程序的开发。Z-stack协议栈是一款稳定性强的Zigbee开发协议栈,是对Zigbee标准的具体实现。协议栈APL(应用层)包含了主要的API函数接口,方便进行应用开发,从而实现对CC2530芯片硬件资源的控制功能。具体软件框架设计如图4所示。应用层软件主要包括节点间数据的接收/发送、节点内应用层与底层的交互。应用层的数据经过应用层数据帧格式进行封装传给底层继续封装并发送出去;接收数据则由底层先进行解释,再由应用层进行解释,然后进行数据的计算、更新参数等步骤。应用层还可通过API控制接口对底层进行控制与信号、参数获取。
2.2数据帧格式Zigbee采集节点和主节点模块的数据传输格式采用字符串形式进行数据的发送/接收。由于是采用字符进行数据传输,所以可以利用上位机现有的字符串处理函数,很容易校验数据正确性,并从数据帧中提取有效信息,避免因帧长度判断引起的错误。另外,基于Zigbee传输速率较低、传感器数据量小、刷新速度慢的需求等特点尽量减小和限制了协议中各数据域的占位宽度,保证传输效率。具体数据格式如表1所示。帧头:本协议节点间的应用层交互主要有命令帧和数据帧。帧头是辨别命令帧和数据帧而设立的。帧头包括:Set、Get、Ack、Data4种。Set指的是主节点对采集节点进行参数设定,为命令帧,是主节点需要对子节点进行参数配置的时候发送的,子节点收到此类型帧后,发回Ack帧,说明参数设置成功与否;Get指的是其他节点需要获取本节点信息,为命令帧,本节点收到此类型帧后,发送数据帧;Ack指的是节点间通信应答状态帧,SUCC为成功、FAIL为失败;Data指的是数据帧,携带节点参数、传感器采集数据。如表2所示。目的地址:目的地址指的是Zigbee网络中的设备唯一标识的网络ID。为十六进制0X0000-0XFFFF之间值。其中有几个地址值有特殊的含义,0XFFFF表示广播地址;0XFFFE表示所有接收功能打开的设备;0XFFFC表示所有路由设备;其余地址为单一设备的网络地址。网络地址的获得过程是:主节点设备启动成功后,自设定为Zigbee网络的主网络ID0X0000,子节点设备在申请加入成功后获得一个网络身份标志ID。帧类型:在帧头为Set、Get、Data时,此帧位置都有意义,分别代表设置、获取、携带相应类型的节点信息。这些类型包括,传感器数据(Sensor)、节点网络地址(NAdr)、节点网络类型(NType)、采集周期(Cycle)、产品信息(Info)、发送方式(SWay)、功率模式(PMode)、信道选择(Channel)、AD参考电压(ADMode)、默认发送地址(DSAdr)。信道数据:DataChannel796F800\r\n(第11(0x0B)无线信号通道)载荷:载荷是整个通信帧中最重要的部分,包括了通信的主要内容。载荷的具体内容需要根据帧类型来确定。描述如下:(1)帧类型为传感器数据:此时载荷部分包括传感器类型、传感器ID、传感器值。传感器类型包括危化品物流车辆常见信号:1.温度、2.门开关、3.真空度、4.液位、5.压力、6.电压、7.湿度、8.气体、9.红外10.光敏、11.倾斜。传感器ID从0开始分配,表示同种类传感器的使用编号。(2)帧类型为非传感器数据:此时载荷部分携带网络地址、采集周期、发送地址等值。结尾符:本协议结尾符为字符“\r\n”,加上字符串结束符‘\0’,固定为3个字节。结尾符是一帧数据的界定符,上位机软件可以根据此结尾符很快能判定帧的长度,避免一些数据长度判读错误的发生。
2.3软件处理流程Z-stack协议栈基于轮询机制,事件是最小处理单元,每个事件都有相应的处理函数,当事件管理数据结构相应的位置位时,协议栈通过轮询机制就能发现并跳入相对应处理函数进行处理步骤,处理完再返回轮询大循环。这里主要设置了3个事件,分别是串口事件、无线事件和采集事件。串口事件主要处理与上位机的通信;包括根据上位机命令修改本节点参数、接收发送数据等;无线事件主要处理数据的无线发送和接收;采集事件主要处理传感器的数据读入、封装、发送或者接收、解析、转发等。处理流程图如图5所示。
2.4上位机配置软件Zigbee设备逻辑类型包括3种,分别是主节点、路由节点、终端节点。对于不同设备类型的具体处理流程,本设计编写了统一的参数配置服务函数,可通过上位机软件方便进行配置。比如,终端节点配置成具有传感器数据的采集功能,可选择无线和串口两种发送方式,而对于路由器或者协调器,基于功耗考虑,则配置成不具有传感器数据采集功能。通过设计节点上位机配置软件ZigConfig来实现参数的配置,简单的界面操作就能通过串口以上述数据格式下载到节点,并烧写到CC2530的flash中永久保存起来,节点下一次启动将以新的参数启动。上位机配置软件介绍如下:(1)配置软件由QtCreator开发。QtCreator是Qt被Nokia收购后推出的一款新的轻量级跨平台集成开发环境(IDE)。支持的系统包括Linux(32位及64位)、MacOSX以及Windows。开发人员能利用该应用程序框架更快速及轻易地完成开发任务。(2)该配置软件完成节点的设备类型、接口采集逻辑、入网参数等的配置。可直接通过串口线与待配置节点连接,也可以通过一个中间节点对待配置节点进行无线配置,中间节点通过串口线与上位机连接。操作界面如图6所示。(3)如图7,图8所示,通过上位机配置软件S1(实物图如图6所示)可方便地对待配置节点S2进行参数配置。对于待配置设备,如果是终端设备,配置前需先按下配置按键,指示灯亮后,装置即进入配置模式;而如果是路由设备或协调器设备则无需此步骤。(4)有线配置如图6所示:上位机通过串口线连接待配置设备,然后配置软件上收到待配置节点S2发送过来的设备信息,并显示在界面上,然后点击配置按钮,即发送配置帧到节点S2,点击读取配置按钮,则将节点S2各项参数显示在界面上,如果节点S2是数据透传模块,则可以直接接收数据或填写目标地址发送数据。配置完后再按一下按键,指示灯不亮,表示配置完成。可以配置设备类型为Zigbee终端设备、路由设备、协调器设备和点对点透传设备;可以配置入网参数,比如PANID值、信道、网络模型、网络层次等;可以配置传感器发送周期,使各传感器通道数据可以同一周期发送,也可以不相同周期发送等。(5)无线配置如图8所示,采用一个节点作为数据中转与上位机有线连接,通过这个节点无线发送指令到待配置节点进行配置,配置过程中的操作步骤与有线时类似。
3节点测试
3.1信号强度RSSI(ReceivedSignalStrengthIndication)是接收端的信号强度指示,可用来判定链接质量。实际应用中,普遍采用简化后的Shadowing模型,即如下公式计算RSSI值。其中Pr(d)为接收端接收信号强度,Pr(d0)为参考处接收端接收信号强度,d为接收端与发送端实际距离,d0为接收端与发送端参考距离,n为路径损耗指数,通常取2~4。取d0=1m,实测得Pr(d0)的值代入,并取n=3代入公式(1)得新的计算公式。实际测试中取两个节点,分别设为协调器节点和终端节点。将协调器节点固定,令终端节点远离,终端节点加入协调器节点网络后,每隔1s发送一次数据到协调器节点。协调器接收到数据包后,从TI协议栈Z-Stack的数据结构afIncom-ingMSGPacket_t中提取RSSI值记录下来。100M范围每隔5M记录一次RSSI值,每次记录100个值,然后取100个中的随机值和平均值分别作为本次终值绘制曲线。
3.1.1空旷环境下测得Pr(d0)=-28dbm,按照公式(2)与实际数据,绘制对比曲线。从图9和图10对比曲线可以看出,随着两节点间距离增大,RSSI值会逐渐衰减,符合一般规律。0-20m范围内,RSSI衰减较快,之后较为平缓。40m后信号质量普遍较理论值平缓,可能是受硬件条件影响,误差增大。图9由于每次记录取的随机值,存在较大误差,图10每次记录取100个数据的平均值,曲线较为平缓。误差因素包括硬件设计、周边环境影响等。
3.1.2危化品物流车辆环境下采用深圳市中集集团液化气罐(空罐)危化品物流车辆进行实地测试,测试车辆长度14m,宽度2.5m。将协调器节点放置在车驾驶座,终端节点自由放置于车厢体内部,加入网络并发送数据到协调器节点。测得Pr(d0)=-44dbm,根据公式(2)和实际数据的结果曲线如下:由图11和图12可以看出,在车辆环境下,节点信号普遍较空旷环境下差,这主要是因为接收节点被放进车辆箱体内部,信号一定程度上受到厢体衰减。大于40m距离后信号变得不稳定,通信断续和重连情况发生频繁,此时RSSI值普遍>82dbm,80m后多次测试接收端均接收不到数据。
3.2数据传输将协调器节点放置在车驾驶座,终端节点自由放置于车辆厢体内部,加入网络并发送数据到协调器节点。在协调器端统计接收数据包个数,并计算丢包情况和最大稳定通信距离(即数据通信情况良好,极少发生重连情况),结果如下。由表3可以看出,主节点在车驾驶室情况下,车正前方和侧面信号要好于车后方信号,节点丢包率较低,通信距离>=25M,满足一般危化品物流车辆要求。另外,通信的最大稳定传输RSSI值是极少断网重连情况发生下的统计值,所以普遍低于信号强度曲线中的极限值。随着距离增大,节点间的网络传输也会变得不稳定,常常发生断网重连,甚至无法重连状况。实际数据包传输受节点间不同阻挡物、不同车型、车体电磁干扰、程序执行等因素影响。
3.3功耗通过万用表、示波器和在程序中设计测试模块的结合进行功耗测试,测试结果如下。从表4的测试结果可以看出,节点满足低功耗要求,休眠情况下,节点功耗低至0.33uA。
4结语
系统框架设计
林业资源监管通用数据采集系统采用C#语言、ArcEngine和开普互联智能表台进行设计开发。系统分为B/S架构的Web配置系统和C/S架构的桌面系统两部分,如图1所示。这种设计方式基于:1)B/S架构已成为林业业务系统的主流架构,借助配置系统以便将通用数据采集系统与业务系统进行集成;2)使桌面系统可以专注于数据采集,实现与业务流程、功能的松散耦合。Web配置系统包括数据交换以及桌面系统的配置管理功能模块,支持本地和远程配置方式。数据交换通过将事先制作完成的支撑数据提供给桌面系统,作为各业务数据采集系统运行的基础,并将采集完成的数据返回数据库,提供给其他业务系统使用。配置管理支持对采集数据、支撑数据以及桌面系统功能界面的配置,并将配置结果保存在XML配置文件中,作为桌面业务系统运行的基础。通过配置系统为桌面系统提供支撑数据并进行相关配置,就可以为不同业务定制数据采集系统。桌面系统包括通用功能元件、业务系统配置、动态数据的管理以及界面的生成4个功能模块。通用功能元件包含数据采集的一般功能。业务系统配置提供配置内容的读写功能。动态数据管理根据配置实现对不同业务支撑数据的访问、更新以及采集数据的导出。界面生成根据配置信息生成特定于业务的系统界面。桌面系统框架采用变种MVC模式(模型--视图--控制器),该模式采用数据驱动设计[9],使得视图、控制器和模型可以随业务而变。在数据层,空间数据与属性数据分表存储,空间数据表只存储与业务无关的图形信息,从而能以统一的形式访问、处理及显示空间数据,不受业务变化的影响。而与业务紧密相关的属性数据单独存储在属性表中,并将与属性数据相关的视图、控制器及模型的变化存储在用开普互联智能表台制作的表单文件、数据映射文件中,系统在运行时就可以基于表单文件、数据映射文件及配置文件动态地构建视图、控制器及模型,从而将业务数据的变化隔离在源代码之外,使源代码高度内聚,不会变异。由于两类数据的处理方式不同,数据间的完整性通过逻辑校验来保证。
关键技术及实现
林业资源监管通用数据采集系统采用的关键技术包括智能配置、界面自动生成和动态数据管理技术。
1智能配置技术
智能配置技术是指将与业务相关的变化信息存储在配置文件中,系统在运行时读取配置文件,根据其中的信息实现对不同业务数据采集功能的定制。当业务数据采集需求发生变化时,仅需通过改变配置信息就能满足需求,这样既增加了系统的灵活性,又能保持系统的稳定。数据采集系统通过配置系统实现智能配置,主要包括系统配置、采集数据配置两方面。(1)系统配置。系统配置包括支撑数据、用户功能界面配置两部分。支撑数据的配置内容包括数据版本号,采集人员的账户信息及该账户关联的业务名列表,支撑数据中各数据名称、类型、对数据操作的命令和命令状态列表。版本号为自然数值,作为数据是否需要更新的依据;业务名列表的形式为“Reforestation/造林,Harvesting/采伐”,前面是业务系统的英文名,后面是对应的中文名,之间用反斜杠隔开,指明账号可以使用的数据采集系统;数据名称为数据文件的名称,类型包括数据库、表和普通文件。命令指明了如何处理数据,包括覆盖、更新、添加、删除4种。命令状态包括已执行或未执行,决定系统是否执行命令。用户功能界面配置内容包括功能元件、逻辑验证规则和表单配置。功能元件和逻辑验证规则的配置目标可以是单个图层或整个系统。功能元件的状态包括可见、隐藏、可用与禁用,当不需要使用某项功能时,根据功能元件的名称将其状态设置为隐藏或禁用即可。逻辑验证规则的配置内容包括SQL语句及其描述,通过执行SQL语句进行验证;SQL语句的执行方式不随业务变化,规则的描述为界面上呈现给用户的信息,如地类检查。表单的配置目标是图层,包括图层名、表单文件名及其描述,通过将图层名和表单文件名配对存储,就能根据图层找到对应的表单进行属性数据的录入,描述为用户界面上呈现给用户的信息,如造林模式表。(2)数据配置。采集数据的配置包括需要导出的数据版本号、表名称、数据记录主键序列以及其他数据文件的名称。数据版本是自然数值,作为外界是否需要下载该数据的依据。系统根据数据名称和主键序列导出数据。
2功能界面自动生成
功能界面自动生成以功能元件为基础,通过建立配置文件完成用户界面的按需定制。(1)系统功能元件。系统是功能元件的集合,功能元件可能是单个功能或一类功能,如图形创建是单个功能,图形编辑是一类功能,在界面上表现为单个控件。本文使用功能元件名称、控件名称、功能状态及功能描述来表达功能元件。对于用户而言,只需配置功能名称及状态来控制功能界面。系统功能元件信息存储在XML文档中,该文档需要按照模板文件制作,配置系统解析该XML文档,并在界面上列举出功能元件列表供用户配置。(2)界面生成算法。数据采集系统中涉及界面变化的模块主要包括:1)空间编辑和拓扑校验界面。该界面因功能是否需要使用而变化。2)属性编辑界面。该界面随数据内容和结构而变化。3)逻辑校验界面。该界面随校验规则内容而变化。界面自动生成以功能元件及系统配置文件为基础,通过解析配置文件动态生成用户界面,生成流程如图2所示。3个界面的生成算法各有不同。空间编辑和拓扑校验界面的生成是根据配置对WindowsForm控件的可见性和可用性进行控制来实现的;属性编辑界面的生成是通过加载开普互联智能表单文件到WindowsForm窗体中来实现的,开普互联智能表单界面如图3所示;逻辑校验界面的生成是通过加载验证规则到WindowsForm窗体中的列表控件中来实现的。
3动态数据库管理
动态数据库是结构和数据都可以随需要而变化的数据库[10--11],在本文中是指整个数据库的改变。数据采集系统以单一业务配置为基础,每个采集人员配备独立的设备和采集系统,但在人力和设备资源有限的情况下,数据采集系统需要支持多个业务的数据采集或多个采集人员共用一套设备和系统。系统需要根据业务、人员职责调用不同的支撑数据。解决方案为:建立以采集人员账号名和业务名组合命名的文件夹,通过配置系统将不同的支撑数据放到对应的文件夹内。当用户登录系统时,系统依据账号列出可操作业务,采集人员从中选择业务名称,系统就可以将正确的支撑数据供给用户使用。
4数据交换
数据交换包括支撑数据的上传及采集数据的下载,使用配置系统完成,交换的数据放在该系统目录下。支撑数据的上传有2种情况:1)采集系统的定制。将所有支撑数据以添加命令上传,桌面系统运行时会判断是否存在数据,如果不存在数据,就会从配置系统目录拷贝数据到本系统目录,结合这些数据形成特定于业务的采集系统。2)部分支撑数据的变更。将部分支撑数据以添加、删除、更新3种命令之一上传,桌面系统运行时检查配置系统目录下的数据版本号,如果版本号小于配置系统目录下数据版本号,就按照配置的命令进行更改。数据采集完成并通过校验后,由桌面系统将数据导出并压缩,然后拷贝到配置系统目录。每导出一次数据都会累加版本号,系统用户根据版本号下载最新的采集数据。
1.1系统的整体结构设计整个系统采用了模块化的设计,各模块布局合理,整体的结构紧凑。主要功能是数据的传输和程序下载,USB转TTL模块的作用是给单片机供电以及上位PC机和下位单片机之间的电平转换,其原理图如图1所示。单片机与PC机是使用USB转TTL模块进行串口通信,它可以将USB虚拟成一个串口,解决笔记本电脑用户无串口的烦恼。此模块传输速度、传输准确性都满足实验需求,而且价格便宜,使用方便。
1.2系统各部分的功能介绍模拟信号采集部分的目的是为了采集所需要的原始的数据,即本系统中所需要的电压和电流。下位机以AT89C52RC单片机为控制单元,16路A/D转换芯片AD7705采集电压和电流信号转换为相应的数字信号,便于单片机后续的处理并以一定的协议将数据通过串口发送至PC机,最终通过运行在上位PC机的程序对接收到的数字信号进行处理和显示。微控制器STC89C52RC以一定的的协议将数据通过串口发送至PC机。单片机的晶振电路和复位电路是单片机正常工作的先决条件。PC机通过串行USB转串口接收单片机发送的数据,并进行实时处理和显示。
2系统硬件部分设计
2.1MCU芯片的选择STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗和超强抗干扰的CMOS8位微控制器,采用经典的MCS-51内核,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。工作电压:5.5~3.3V(5V单片机)/3.8~2.0V(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHZ,用户应用程序空间为8k字节。
2.2A/D转换器选择及采样设计模数转换器,是把经过与标准量(或参考量)比较处理后的模拟量转换成以二进制数值表示的离散信号的转换器,简称ADC或A/D转换器。本系统模数转换器采用的是芯片AD7705,AD7705是AD公司推出的16位Σ-ΔA/D转换器,该转换器采用SPI兼容的三线串行接口,能够方便地与各种微控制器和DSP连接,也比并行接口方式大大节省了CPU的IO口,能直接将传感器测量到的多路微小信号进行AD转换。这种器件还具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点,非常适合仪表测量、工业控制等领域的应用[7]。本系统是采集两路信号(电压和电流),AD7705芯片精度为16位(Δ=(5/65536)V≈0.076mV,其精度满足实验需求),高精度A/D转换芯片AD7705有两个双端模拟信号输入通道,分辨率为16位无丢失代码,增益、信号极性以及更新速率等可由软件设置[8-10]。片内可编程增益放大器的增益范围为1~128,这使AD7705可与多种传感器直接相连,无须外接放大器,并且内置可编程的自校准电路,通过对零点和满度的校准,可有效去除零点漂移和增益误差的影响。接口为SPI串行总线,因而与单片机的接线大大减少,简化了硬件的设计。在测量电流时,我们对两种实验方案进行了比较,第一种是利用电流变送器进行电流的测量;第二种是利用采样电阻进行电流的测量。采用了第二套方案,原因是其价格低、精度满足实验要求。
3系统软件部分的设计
PC端主程序框架如图2所示。
3.1数据采集PC端软件设计PC端软件是基于MFC对话框进行程序的编写,其主要包括以下几部分:1.窗口界面的绘制(包括开始界面绘制、控件绘制、坐标系绘制、网格绘制、LIST表格绘制等);2.串口通信控件的连接、初始化和设置;3.数据库的嵌入(包括数据库的连接、读写、修改等);4.采集数据时的动态响应(包括动态图形绘制、动态数据表数据显示等)。
3.2界面介绍首先是开始界面,如图3所示。1.菜单栏区域:包括串口设置、开始采集、暂停、停止采集(同时关闭串口)四部分是本程序所有功能的体现;2.绘图区域:包括两个TABLE,一个是励磁电流不变、励磁电流变化两个子窗口。每个窗口中包含一个二维坐标系进行图形的绘制;3.数据表区域:包含一个LIST控件,对实时采集的数据进行显示;4.系统控制区域:与菜单栏区域功能相同,都是对采集整个过程进行控制,同时能够实时的对数据进行一个显示、也能够对偏差的数据进行手动删除,避免实验错误对绘制出的图像造成的影响,而影响实验效果。根据端口信息,选择串口端号,点击打开串口后,绿灯变为红灯,打开串口按钮变为灰色,表示串口已经连接,可以进行串口通信(即采集可以开始)。选择两种模式,“励磁电流不变”、“励磁电流变化”,并点击进入相应的子窗口。然后就可以进行采集。传输电流电压时,图像会实时显示,数据表也会同时显示。图5显示了励磁电流不变时,工作电流和霍尔电压之间的关系曲线。
4结论
硬件设计包括温度与磁场探头、供电电源、多通道数据采集仪器、PC上位机的选型以及机柜设计。
1.1温度检测温度探头类型为热电阻,热电阻测温原理是给热电阻通小电流,测量电阻上的电压,得出热敏电阻的阻值,对照热敏电阻的参数曲线得出温度。温度探头需要恒流源提供稳定的电流才可以保证读取电压的准确性,选择lakeshore公司生产的121系列恒流源可满足精度要求。该恒流源既提供固定档位电源供电也可以通过编程实现连续可调电流输出。由于超导线圈采用过冷液氮浸泡冷却[2],根据液氮温区(70K~77K)对探头型号进行选择。对于需要在30K~800K之间对温度测量的场合,可选择PT100系列铂电阻温度计[3],其额定电流为1mA。在这个温度范围内,铂电阻温度计具有很好的重复性和较高灵敏度,同时满足在电抗器的磁场环境下使用的要求。70K以上铂电阻温度计具有通用的标准曲线,如图2所示。相比较于其他种类温度探头具有更好的通用性,而且具有互换性。另外,在温度测量中,探头需要贴近超导带材,薄膜型的铂电阻温度计满足设计要求。探头的接线方式有二线制和四线制。采用二线制接线方法,会引入线路电阻,造成测量误差。因此在35kV电抗器的数据采集系统中,均采用四线制接线方法。
1.2磁场检测测量磁场强度的原理是霍尔效应,在半导体薄片两端通以控制电流,并在薄片的垂直方向施加匀强磁场,则在垂直于电流和磁场的方向上,将产生霍尔电压,根据产生的电压就可以知道磁场的大小[4]。在实际测量中需要在两个方向(轴向场与垂直场)对磁场进行测量。在35kV电抗器设计中,根据电磁设计仿真得到磁场的最大值约为2000高斯,并且该磁场探头的工作环境为液氮温区。Lakeshore公司生产的HGCA3020的轴向磁场探头与HGCT3020的径向磁场探头,可满足使用要求,其额定电流为100mA。
1.3数据采集系统数据采集系统还需要对探头电压进行记录以及处理显示等一系列后续工作[5]。实验过程中实验对象需要监测的信号比较多,采用数据采集仪器对各个数据进行采集记录,节约人力成本而且可以减少由于人工录入所导致的错误。在该套数据采集系统中,采集的信号有54路,温度采集精度为1K,电压精度为10mV。吉时利公司生产的3706数字开关万用表作为数据采集仪器满足使用要求。数据采集仪器采集数据以后,把数据传输到主机中通过程序对其进行处理,然后显示在显示器上供人员监测电抗器的工作情况。在电抗器实际运行过程中,主机工作环境可能较为恶劣,对工控机的稳定性和数据的安全性有一定要求,需要对主机进行加固、防潮、防辐射、防尘等特殊设计。研祥工控机IPC-810E满足使用要求。
1.4硬件布局及搭建(1)温度探头布点方案35kV超导可控电抗器超导线圈分为内外两圈,各由32个双饼组成。工作在交流工况下,超导线圈存在交流损耗,根据仿真结果显示端部线圈交流损耗功率最大,需要对线圈端部重点监控。单个超导线圈上布点25个,总计50个铂电阻。铂电阻在安装时需要对其进行加固,防止被快速流动的液氮损坏。(2)磁场探头布点方案电抗器中,带材受垂直磁场影响较大,端部的带材最易受到磁场的干扰,磁场探头安装在电抗器的端部。由于磁场探头受到液氮的冲刷,磁场探头需要通过夹子进行固定。通过对端部磁场两个垂直方向数据的读取,得到磁场强度的实时数据,为监测电抗器运行状态提供数据支持。各个设备的集成布局以及安装需要以机柜的形式实现。机柜的设计原则是整套装置的实用性和外在的美观性。机柜上主要安装的设备和仪器有:吉时利3706数据采集仪、工控机(包括工控机主机、液晶显示屏、键盘和鼠标)、探头供电电源,同时在机柜下部预留一部分空间用于放置实验过程中常用的一些工具和仪表等,如纳伏表、波形记录仪、锁放和功率分析仪等,设计方案如图4所示。
2软件开发
软件开发即控制界面开发,通过界面控制各种数据采集仪器的工作,并将采集到的数据传输到电脑上进行处理、显示和保存等[6]。图5所示的为软件搭建流程示意图,首先调试设备,完成工控机与3706数据采集仪器之间的通信,使数据能够进入主机进行处理,然后对数据进行分类处理,实现多通道数据处理以及数据的分类显示。基于LabVIEW开发的程序主要包含后台程序以及操作界面。后台程序(1)数据采集系统主程序数据采集系统主程序实现对数据采集仪器中的电压数据读取的功能[7]。通过在主程序中对数据进行通道选择可以实现不同的处理功能,包括3706仪器的通讯设置和数据初始化。(2)数据传输程序数据传输是指将数据从数据采集仪器上传输到工控机上。LabVIEW中提供了多种通讯协议,如串口、并口和以太网传输协议,此处选择以太网作为传输方式,数据采集仪器发送数据,工控机接收发送过来的数据,进行处理。(3)数据记录程序LabVIEW中可以将数据保存为多种格式,其中就包括常见的Excel表格,“写入电子表格.vi”可以将数据保存为Excel格式,并且该VI不需要启动Excel,写入速度较快、使用较为简单,所以使用该VI进行数据保存。由于EXCEL是目前比较通用的数据处理软件,所以保存数据的格式选为EXCEL表格,方便处理数据。程序中可以设定将EXCEL文件保存在某个文件夹下,分别将磁体温度、磁场强度保存在两个文件夹下,并且为方便查找数据,每个文件的文件名以日期和时间命名,这样方便日后查找数据。对于不同类型数据也可以直接分开存储,方便以后查询使用。在以上程序的实现中,主要以子VI形式完成。子VI是指将特定的程序封装,完成特定的功能的模块。通过对程序的封装既可以实现原有功能,并且使得主程序更加简洁,便于查找错误,又增加了程序的可移植性,提高了程序的整体质量。操作界面该系统的操作界面首先确保了所有数据的显示以及后台记录,另外对电抗器内部环境参数(杜瓦内部压强)以及外部辅助设备的工作状态(液氮制冷机流量)也进行了监控。针对温度监控,单独设置了更加直观的波形显示,更利于观察超导体的温度变化,如图6所示。在35kV电抗器数据采集及监控系统的设计方案中,界面中没有需要用户设置的参数,在前面板中分列铂电阻显示控件来显示数据。开始运行后,3706开始采集数据,并且将这些数据储存到表格当中。在前面板中,同一个波形图中可以显示多个通道的数据,每个通道的数据有颜色不同,这样就可以比较实验磁体不同部分的温度或不同超导双饼的电压等。
3总结
信号调理电路根据功能分为输入保护电路、抗混叠低通滤波电路、衰减电路、增益电路和电压抬升电路。(1)输入电压幅值最高在24V,为防止输入电压超出可测范围,在输入端采用两个24V的稳压管支路进行电压钳位保护,并且分别在两个支路串联不同颜色的发光二极管以显示正反向超压。(2)为了消除高频噪声信号和被测信号中的高频成分对信号采集的混叠效应,设计了二阶低通抗混叠滤波电路。为保证较好的抗混叠效果和测量带宽,设定滤波器的截止频率为300kHz。滤波电路形式固定如图2所示,其频域传递函数为。由式可得滤波器的截止频率fp≈0.64f0,fp=300kHz,得RC=3.4×10-7s。通过multisim仿真比较确定参数值。抗混叠低通滤波电路如图2所示。(3)LM3S9B96的ADC的输入电压范围是0V~3V,要实现采集0V~±24V的输入信号需要对信号进行衰减处理,衰减网络采用兆欧级精密电阻组成,其中固定电阻设定为1MΩ。这里选择8,4,2,1四级衰减,后期处理的数据可以通过移位操作进行数据还原。电路实现选用OMRON公司G5V-1小信号继电器作为开关控制,根据上位机传输的命令来选择合适的电阻支路。具体的数值对应关系如表1所示。(4)为满足采集小信号的需求,采用TI公司的增益可编程仪表放大器PGA205。PGA205具有四级数控增益,数控端直接连接到微控制器的I/O引脚[5]。输入幅值、放大倍数和数控端的对应关系同上述衰减电路类似,这里不列表赘述。增益电路如图3所示,PC4、PC5为数控端。(5)信号经过衰减和放大电路的调理后电压范围为0V~±3V电压信号将信号调理至0V~6V范围,再经过比例运算电路做1/2分压处理。运放选择TL052,是由TI公司生产的低失调加强型的JFET运算放大器,相对于TL07和TL08系列具有更快的转换速度。
2电源供电系统
本文中需要三级电源供电:3.3V,5V,±10V。5V电压通过SPX1117-3.3V稳压芯片转变为3.3V为系统供电,±10V要是给可编程放大器PGA205和运放TL052供电,该电压需要5V电压经过Boost升压电路得到,设计选用TPS61040开关电源芯片,其为低功耗的DC/DCBoost转换芯片,内部集成开关管,开关频率可达1MHz,输出电压纹波低[6]。双电源供电电路如图4所示。
3系统软件设计
本文软件设计任务主要是LM3S9B96芯片的初始化和内部各模块之间的逻辑控制,包括根据上位机的指令来设定调理电路。数据采集系统总的软件任务框图如图5所示。信号调理任务负责根据上位机发出的指令完成调理电路的设定;采样任务实现对模拟信号的采集;数据转移存储任务负责将数据从ADC转移到内存,再转移到USB缓存。数据转移任务利用DMA来实现,DMA的工作模式分为基本模式、乒乓模式和外设散聚模式,为了ADC采集不丢失数据,本文采用了乒乓模式,在程序设计时创建主数据结构体和副数据结构体交替接收数据,高效的完成数据转移任务;数据传输任务负责将数据从微控制器通过USB总线传输到上位机。USB总线标准是在1994年由英特尔、康柏、IBM、Microsoft等多家公司联合提出,包含了四种基本数据传输类型:控制传输、批量传输、中断传输和等时传输,本文需要向上位机传输大量数据,选择批量传输模式(BULK)传输数据[7]。基于LM3S系列芯片,TI公司提供了多层次十分丰富灵活的USB驱动库,简化软件的实现。
4上位机软件设计
NIVISA(VirtualInstrumentSoftwareArchitecture)是NI公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口,VISA总线I/O软件是一个综合软件包,不受平台、总线和环境的限制。VISA是NI公司随LabVIEW配套提供的,从3.0版本开始支持USB通讯,根据是否符合USB测试和测量协议,VISA分为两种VISA类函数,可以控制两类USB设备:USBINSTR设备和USBRAW设备。这里使用USBRAW设备。利用VISA驱动程序开发向导产生INF文件用来通知Window系统将NI-VISA用作USB设备的默认驱动,完成之后才可以正常和下位机通讯。USBRAW类设备的读写时序为(1)ViOpen打开VISA设备;(2)ViProperty设定VISA设备的属性节点参数(指令端点和传输方式);(3)ViRead读写USBRAW(发送命令和设定字数);(4)ViClose关闭VISA(释放VISA设备所占资源)。上位机程序总体分为指令接受程序,数据接受程序、数据处理程序和波形显示程序。数据处理程序框图如图6所示。
5系统测试与结果
为了测试系统的可靠性,本文使用数字合成信号发生器DF1405模拟传感器输出信号作为数据采集系统的测试信号。经测试,设计系统完整实现了设计要求。5V10kHz正弦波测试结果如图7所示,通过点击Save控件可以完成数据的存储。
6结束语
云定制的使用方便大批量采集控制服务器的集中管理,尤其在批量采集策略变更时为集中更改提供便利。广播电视音视频采集广泛分布在各无线频段和有线网络之中,采集种类多,数据存在差异,采集地域分布广,通过专网将采集前端设备、集中控制服务器等连接起来,并反馈给数据处理服务器。云定制屏蔽了采集前端设备的差异性、分散性,将其集中在同一个云之中,实现定制服务的远程控制和自由变更。如图3所示。
通过架设云定制服务器Web服务端作为云端,依靠B/S系统结构,使用者仅需在专网之中使用任意一台计算机设备即可连接云端,进而连接所有采集前端,其优点主要体现在无需安装软件,便可通过浏览器登陆广播电视音视频采集云定制系统,对所有前端设备、控制服务器进行操作。云定制服务器基于C#语言,基于Socket通信协议编写通信模块,与前端采集控制软件通信,接收并汇总采集端控制软件返回的结果,下发采集服务定制的命令至采集端控制软件进行变更操作,并预留二期开发接口,方便其他系统对云定制切换服务的调用。采集集中控制服务器与采集前端系统通过采集端控制软件接收来自云端的命令,并反馈采集状态与命令执行状态,执行云端下发的采集策略,变更采集方案,实现所有广播电视音视频数据按需分类、分时采集。软件测试阶段,发现前期测试始终存在指令丢失的情况,后经反复测验,发现本策略对网络时间同步、数据可靠传递要求较高,需要引入GPS校时系统,以解决网络设备时间不统一的问题。在自动切换策略时间的过程中,专网网段采用统一的GPS校时服务器,并在采集端C/S软件嵌入校时功能,确保整个网络内设备时间一致。同时对Socket通信数据进行编码校验,采用8位2进制数顺序累加做校验,一旦校验失败便启用数据重传机制,确保数据传输稳定、可靠,无指令数据丢失或错乱。指令收到后,返回执行状态,以使云端准确收到各设备采集端切换策略的执行情况。
2自动切换策略的实现
在实际应用中,广播电视音视频采集策略会根据业务需求变化,业务需求又分为周期性变化与临时性非周期变化。云策略变更的命令下发后,采集集中控制服务器接收采集前端的命令,并将采集策略转化为采集指令,根据采集策略规定的时间启用或停止某一类广播电视音视频数据采集。同时使用C#Process类对采集服务进程进行实时监测,以掌握采集命令执行是否成功,采集端进程是否正常启用或者关闭,并将所有进程终止与启动情况记入前端log文件,并阶段性回收至云端数据库。前端采集服务存在一定的差异性,硬件不同,驱动不同,使用C#语言,依托不同硬件的DLL封装文件,将采集服务最小分割,并打包存储,由采集端控制软件集中调用。在采集集中控制服务器存储config配置文件,将周期性、预期性采集策略的变更存储其中,依靠定时器触发采集策略的变更,实现自动切换采集策略。采集策略一旦变更,需要对采集数据进行抽样测试,如发现数据开启采集仍未回传、数据关闭采集仍有回传等切换失败的情况,需要对采集进程进行2次校验操作,即回复之前策略,校验数据采集状态,再重新执行采集切换策略。
3采集状态实时监测、记录与预警
广播电视音视频采集对实时性与采集质量要求很高,一旦因前端软件或设备故障影响采集,势必影响下游业务,因此需在采集前端控制软件中增加监测、记录与预警的功能,对采集进程实时监控,一旦采集进程卡死或进程终止,需立即激活采集服务重启响应采集任务。同时将所有采集状态通过Socket通信反馈至云端服务器,云端服务器将所有采集设备的运行状态计入数据库中,形成采集状态记录并报警,便于对采集前端的设备软件故障进行及时处理,同时也有利于积累长期的采集数据,用于日后数据汇总分析。在测试中发现,采集策略切换失败主要由前端C/S软件通信数据堵塞、软件卡死、内存溢出、config配置文件读写错误等问题引起,一般重启前端软件后即可恢复正常。多次测试发现,广播电视音视频数据采集量大,采集时间长,设备一直满负荷运转,因此需要对前端软件定时重启。后期完善中,增加采集端软件进程监视模块,并在每天23:59:59对前端软件自重启,对16台前端设备分组测试,累计测试7天,A组使用定时重启功能,B组不使用该功能,测试结果表明,A组7天内未发生切换失败故障,B组7天内仍有2次切换故障,故引入定时重启可确保软件运行正常。
4总结
关键词:MCF5249uClinuxWeb数据采集
引言
现在嵌入式系统的应用越来越广泛。随着网络技术发展和市场需求的变化,工业设备实现网络化管理控制已经成为一种必然趋势。M2M(MachinetoMachine)的网络通信已成为国内外研究热点,而Web技术为工业设备实现网络化管理提供了一种解决方案。本文从硬件和软件设计两个方面讨论了摩托罗拉MCF5249处理器在数据采集方面的应用,并实现了采集数据的远程Web表征。
由于这一系统面向广义的过程,所以只要可获得过程参数,就能实现过程行业的远程在线表征。特别是基于Web完成实时数据库生成,真正实现远程集群系统的数据资源无人工干预自动获取。其应用将会不断地延伸。
本文描述的摩托罗拉MCF5249是以ColdFire32位微处理器为基础的高性能处理器,该处理器内部集成了一个片内12位ADC,可用于工业数据采集。且数据采集系统基于嵌入式操作系统uClinux。由于uClinux是为没有MMU的微处理器设计的。且源泉代码公开,为降低成本和获取软件的自有产权提供了方便。当然,uClinux不是一个强实时系统,为支持一般过程系统,可以通过一些补丁程序来提高其实时性,所以本文讨论的数据采集系统主要应用于一些实时性要求不高的场合。
1数据采集系统的硬件设计
摩托罗拉MCF5249处理器内部集成了一个片内12位∑—ΔADC,它有四路输入(ADIN0~ADIN3),任一时刻只允许一路输入,由多路选择器决定。ADC的数字部分在MCF5249的内部,而模拟电压比较器由电路提供。A/D转换的输出引脚以脉宽调制的格式提供参考电压,因此,该输出需要一个的阻容电路,将其转换成直流电压,以备外部的电压比较器电路使用。数据采集系统的硬件原理图如图1所示。
由于微处理器不可承受负电压,所以必须将输入电压限制在0~+3V之间。Motorola公司不建议使用外部箝位二极管直接在模拟输入端进行过压保护,而在输入端引入1~10kΩ的限流电阻和低通滤波器,在低通滤波器的输入端连接二极管对输入电压进行箝位。
2数据采集系统的软件设计
数据采集系统的软件设计主要分为两大模块,即数据采集模块与数据显示模块。
2.1数据采集模块的设计
数据采集模块是系统的核心模块,为了提高数据采集的实时性,应采用中断方式完成数据采集。其流程图如图2所示。
MCF5249微处理器为其内部ADC提供了一个控制寄存器ADCONFIG,其地址是MBAR2_ADDR+0x402,在初始化程序中需要指定MBAR2_ADDR地址。
通过ADCONFIG寄存器可以设置A/D转换器工作方式、采样频率、是否采用中断方式等。下面给出设置ADCONFIG寄存器实例。
#defineMBAR2_ADDR0x8000000
#defineAD_CONFIG0x402
#defineAD_VALUE0x406
…………
//设置ADC
*(volatileunsignedshortint*)(MBAR2_ADDR+AD_CONFIG)=0x442;
该设置确定ADIN0作为模拟信号输入通道,采样频率设置为1/4系统总线时钟频率。当时钟产生4095次翻转时,系统产生一个软件中断(中断号为63)。一次采样结束,并将采样结果存于ADVALUE寄存器(其地址为MBAR2_ADDR+0x406)。A/D转换值可以用如下公式计算:
Vi=(X/(2n-1))×Vfullscate
其中,Vi为ADC的输入电压;Vfullscate为满量程输入电压;
X为ADC输出的数字量;
n为ADC的位数。
A/D转换的结果在中断处理程序中读取。读取一次转换的程序代码如下:
Volatileunsignedshortintm;
m=*(volatileunsignedshortint*)(MBAR2_ADDR+AD_VALUE);
通常,A/D转换需要连续采样。采样结果应存放在一个多访问循环队列MACQ(MultipleAccessCircularQueue)中。
MACQ是一个定长有序的数据结构。源进程(生产者,ADC采样程序)将数据存入MACQ,一旦初始化,MACQ总是满的。当有新的数据被存入(PUT)MACQ,旧数据即被丢弃(如图3)。应用进程(消费者)可以从MACQ中读取任何数据。读功能是非破坏性的,即读操作不会改变MACQ。
在uClinux中,A/D转换中断程序的编写方法是将A/D转换器作为一个字符设备来处理。中断程序是在linux/drivers/char目录下编写,其结构如下:*file:m5249_adirq.c
#include<linux/interrupt.h>
#include<asm/irq.h>
#defineADC_IRQ(128+63)//定义中断号
#defineMBAR2_ADDR0x8000000
#defineAD_CONFIG0x402
#defineAD_VALUE0x406
/*定义中断处理函数*/
voidadirq_interrupt(intirq,void*d,structpt_regs*regs){
在此读取A/D转换的值并存入队列中。
}
/*设备初始化函数*/
intadirq_init(){
intresult;
unsignedshortadc_irq;
adc_irq=ADC_IRQ;
result=request_irq(adc_irq,&adirq_interrupt,SA_INTERRUPT,5249_adirqNULL);//注册中断
if(result==-1)
{printk(“Can''''tgetassigned%d”adc_irq);
returnresult;}
return0;
}
中断服务程序的添加方法如下:
①编辑uClinux/drivers/char目录下的mem.c,添加“adirq_init();”;
②编辑此目录下的Makefile加入“obj-y+=m5249_adirq.o”;
③编译(make)。
2.2数据显示模块的设计
为了实现采集到的数据以Web方式显示,需要选择一个Web服务器。本文采用的Web服务器是BOA。在CGI程序中编写一个函数读取MACQ队列中的数据并显示。
主要有以下显示模块。
(1)编写一个CGI程序
*编写一个读取MACQ队列中数值的函
readFromMacq()。
*编写一个生成动态HTML页面的函数show()。
Voidshow_t(){
……
printf("Content-type:text/html");
prinft{"
<html>
<head>
<metahttp-equiv=pragmacontent=no-cache><metahttpequiv=expirecontent=now>
<title></title>
</head>
<body>");
在此将MACQ中的数据读出,假设值赋给变量n
prinft("<center")Thevalueis%x!</center>
</body>
</html>",n);
}
*编写一个CGI的主程序main_cgi。
在主程序中需要读取HTML页面中的字符,并判断应执行那一个CGI程序。
(2)用HTML语言编写一个主页
在主面中应包含:
<ahref=/cgi-bin/main_cgi.cgi?flag=10target=main>键接字符</a>.
其中,flag的值是main_cgi用于判断应执行哪一个CGI程序的标志。
关键词:USBRS485数据采集
在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及422、485等总线板卡。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(UniversalAerialBus,简称USB)的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。
1USB简介
USB是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。
1.1USB系统的构成
USB系统主要由主控制器(HostController)、USBHub和USB外设(PeripheralsNode)组成系统拓扑结构,如图1所示。
1.2USB的主要优点
·速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。
·设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。
·易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。
·能够采用总线供电。USB总线提供最大达5V电压、500mA电流。
·使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。
2采用USB传输的数据采集设备
2.1硬件组成
一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。
系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。
在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。现在的专用芯片中较流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。笔者曾经采用Atmel公司的89c51单片机和USBN9602芯片构成系统,取得了良好的效果。这种方案的设计和调试比较麻烦,成本相对而言也比较高。
另一种方案是采用具备USB通信功能的单片机。随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的方案。不过,由于具备了USB接口,这些芯片与过去的开发系统通常是不兼容的,需要购买新的开发系统,投资较高。
USB的一大优点是可以提供电源。在数据采集设备中耗电量通常不大,因此可以设计成采用总线供电的设备。2.2软件构成
Windows98提供了多种USB设备的驱动程序,但好象还没有一种是专门针对数据采集系统的,所以必须针对特定的设备来编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事情,通常采用WindowsDDK来实现。目前有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它们能够很容易地在几分钟之内生成高质量的USB的驱动程序。
设备中单片机程序的编制也同样困难,而且没有任何一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序直接关系到设备性能,必须给予充分的重视。
以上两个程序是开发者所关心的,用户不大关心。用户关心的是如何高效地通过鼠标来操作设备,如何处理和分析采集进来的大量数据,因此还必须有高质量的用户软件。用户软件必须有友好的界面,强大的数据分析和处理能力以及为用户提供进行再开发的接口。
3实现USB远距离采集数据传输
传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然是太短了。
现在工业现场有大量采用RS-485传输数据的采集设备。RS-485有其固有的优点,即它的传输距离可以达到1200米以上,并且可以挂接多个设备。其不足之处在于传输速度慢,采用总线方式,设备之间相互影响,可靠性差,需要板卡的支持,成本高,安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制恰好又是RS-485的优势所在。如果能将两者结合起来,优势互补,就能够产生一种快速、可靠、低成本的远距离数据采集系统。
这种系统的基本思想是:在采集现场,将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。在PC端有一个双向RS-485~USB的转换接口,利用这个转接口接收485的数据并通过USB接口传输至PC机进行分析处理。而主机向设备发送数据的过程正好相反:主机向USB口发送数据,数据通过485~USB转换口转换为485协议向远端输送,如图3所示。
在图3的方案中,关键设备是485~USB转换器。这样的设备在国内外都已经面市。笔者也曾经用NationalSemiconductor公司的USBN9602+89c51+MAX485实现过这一功能,在实际应用中取得了良好的效果。
需要特别说明的是,在485~USB转换器中,485接口的功能和通常采用485卡的接口性能(速率、驱动能力等)完全一样,也就是说,一个485~USB转换器就能够完全取代一块485卡,成本要低许多,同时具有安装方便、不受插槽数限制、不用外接电源等优点,为工业和科研数据采集提供了一条方便、廉价、有效的途径。
4综合式采集数据传输系统的实现
现在的数据采集系统通常有分布式和总线两种。采用USB接口易于实现分布式,而485接口则易于实现总线式,如果将这两者结合起来,则能够实现一种综合式的数据采集系统。实现方法是:仍然利用上面提到过的USB~485转换器实现两种协议的转换。由于USB的数据传输速率大大高于485,因此在每条485总线上仍然可以挂接多个设备,形成了图4所示的结构,其中D代表一个设备。
这种传输系统适用于一些由多个空间上相对分散的工作点,而每个工作点又有多个数据需要进行采集和传输的场合,例如大型粮库,每个粮仓在空间上相对分散,而每个粮仓又需要采集温度、湿度、二氧化碳浓度等一系列数据。在这样的情况下,每一个粮仓可以分配一条485总线,将温度、湿度、二氧化碳浓度等量的采集设备都挂接到485总线上,然后每个粮仓再通过485总线传输到监控中心,并转换为USB协议传输到PC机,多个粮仓的传输数据在转换为USB协议后可以通过Hub连接到一台PC机上。由于粮仓的各种数据监测实时性要求不是很高,因此采用这种方法可以用一台PC机完成对一个大型粮库的所有监测工作。
5前景展望