>
首页 » 业界动态 » 基于USB技术的工控检测数据存储设计

基于USB技术的工控检测数据存储设计

作者:肖立中,邵志清  时间:2006-10-25 00:05  来源:
摘要:详细介绍了把现场检测数据存储到移动存储器的设计方法,探讨了如何使用单片机实现USB移动存储的控制。设计了一个系统,能把现场检测的模拟信号转换成可以被移动存储器识别的数字信号,自动在存储器中建立文件并存储检测数据。给出了电路的整体框图和部分关键电路的连线图,简要说明了软件设计。最后,针对该系统进行实验,结果表明系统符合工况要求。

关键词:USB;移动存储;单片机;A/D转换;钢丝绳检测

引言

在工控领域中,经常要实现检测仪器到存储器的数据交换,随着USB技术的发展及广泛应用,如何实现使用单片机控制来完成移动存储这一过程成为工控领域研究的热点。USB移动存储具有携带方便、操作快捷、成本低廉等优点。本文以钢丝绳探伤检测为背景介绍这一实现过程。

USB技术简介

通用串行总线USB(Universal Serial Bus)是由Compaq、HP、Intel、Lucent、Microsoft、NEC和Philips公司联合推出的新一代标准接口总线。该总线是一种连接外围设备的机外总线,最多可同时连接127个设备。近年来USB技术已经成为计算机领域发展最快的技术之一,并为越来越多的计算机界人士所接受。

总线协议
USB是一种查询(Polling)总线,由主控制器启动所有的数据传输。USB上所挂连的外设通过由主机调度的Hostscheduled和基于令牌的Tokenbased协议来共享USB带宽。

主机与设备端点之间的USB数据传输模型被称作管道,管道有2种类型:流和消息。消息数据具有USB定义的结构,而流数据没有。管道与数据带宽、传输服务类型、端点特性(如方向性和缓冲区大小)有关。当USB设备被配置时,大多数管道就形成了。一旦设备加电,总是形成一个被称作缺省控制管道的消息管道,以便提供对设备配置、状态和控制信息的访问。

数据流类型
USB数据传输发生在主机软件和USB设备的某一特定端点之间,也就是说,主机软件发起的USB数据传输是面向端点的。主机软件与USB设备端点之间的这种联系被称作管道。USB支持USB主机和USB设备之间通过一组单向管道或一组双向管道来交换功能数据和控制信息。

目前,绝大多数Host功能角色被集成在各种类型的PC机(或以上层次机器)上。各种各样的基于USB的移动设备,包括USB移动存储器、带USB接口的数码相机等都集成USBSlave功能角色。这样,就导致这些作为USBSlave的USB接口的数字设备无法应用于嵌入式系统中。解决这一问题的根本办法就是在需要使用USB设备的嵌入式系统中集成USBHost功能模块,使之具有与USBSlave设备进行数据传输的能力。

MemMaster模块

系统概述
MemMaster作为USB系统中的Host设备,带有一个Root HUB,可供用户接入作为Slave的USB移动存储器。该MemMaster模块遵守USB1.1协议规范,支持所有基于USB的移动存储器,支持FAT12、FAT16文件系统。MemMaster模块可以模块的方式,通过总线集成到用户的数据采集等系统中,以提供用户将获得的数据通过该模块以文件的形式保存在移动存储器,需要时在PC机中进行处理。

MemMaster在集成到用户系统中后,表现为用户系统的一个外部双端口RAM。用户系统通过向该外部RAM的指定区域写入命令和相应的数据,来控制MemMaster模块的操作,并且从指定区域读出响应和相应的数据来获得MemMaster模块提供的服务。通过这样的方式,双方实现协议交互。

硬件配置
MemMaster支持USB1.1 标准,最大写入速率达100Kb/s(与测试环境有关),输入电压5V,工作电流100mA(不包括USB移动存储器)。管脚定义如表1所示。

表1 MemMaster管脚定义

接口使用
MemMaster通过双端口RAM,直接通过总线与用户的单片机系统相连。因此,就用户单片机系统而言,MemMaster表现为一个外置的RAM,而该RAM中的部分区域不能使用、部分区域被用作协议命令和数据的交互,剩余的部分可以由用户自行控制使用。在双端口RAM中,区域分配如下:

0x000020xF8F 区域已经被系统占用;
0x5F8020x5FBF 共64字节用于存放系统命令;
0x5FC020x5FFF 共64字节用于存放系统响应;
0x600020xDFFF 共32768字节用于存放数据部分;
0xE00020xFFFD 为用户系统可使用区域;
0xFFFE20xFFFF 两个字节被用作系统协议交互指示,用户不可用于数据存放。

用户系统与MemMaster系统的协议交互命令包括2种类型:Command 和Response。Command由用户系统发往MemMaster系统,而Response 为相反方向,由MemMaster发往用户系统。

系统设计

系统工作原理
现在,钢丝绳的应用越来越广泛,为了保护人身和财产安全,钢丝绳探伤检测仪器也随之发展起来。目前,钢丝绳探伤检测多以电脑作为检测数据的接收和存储器件,但是这样成本高、携带不方便。运用MemMaster模块实现现场检测数据存储到移动存储器就克服了这些缺点,提高了系统的性价比。

钢丝绳探伤检测及数据存储的实现如图1所示。工作原理: 传感器用于检测钢丝绳信号,在传感器开始工作时输出脉冲信号作为控制电路的同步信号,同时检测钢丝绳的3路参数数据,此数据为模拟信号。当控制电路获得同步信号后,启动A/D转换,并取得转换结果。控制电路对数据进行处理之后,通过MemMaster模块把数据写入移动存储器中在控制电路上电时就建好的文件中,以便将来分析处理。

图1 钢丝绳探伤检测及数据存储过程图

系统配置
A/D转化器件采用MAX186,MAX186将8通道模拟开关、大带宽跟踪/保持电路、12位A/D转换器和移位寄存器集成到一片20脚双列直插芯片上,消除了传输误差,提高了采样精度和转换精度。MAX186体积小、转换速度快、转换精度高、功耗低、用5V单电源或±5V双电源供电,模拟输入可由软件设置为单或双极性和单端或差分两种输入转换方式。管脚定义如表2所示。单片机采用的是华邦公司的W78E58B,它是8位单片机,内含32KB Flash/EEPROM,其引脚功能与8051系列单片机完全兼容,管脚定义在此不再详述。系统连接如图2所示。

MAX186工作原理
片选端CS为低电平后,在DIN端的第一个逻辑1被解释为起始位,在8位控制字的第5位移入后的时钟下降沿开始跟踪模拟信号,在控制字的第8位移入后的时钟下降沿保持采样信号值,在SCLK的下降沿启动一次转换,一旦转换开始,CS不再需要保持低电平,将CS拉至高电平可防止数据和时钟同步地送入MAX186,并使DOUT为三态,从而避免对转换产生干扰和不利的影响。转换完毕后,微处理器可以从DOUT端读取串行12位A/D转换值。控制字说明如表3所示。

表2 MAX186主要管脚定义


图2 系统连接图

软件设计

为了使各部分硬件电路按一定顺序进行工作,在单片机的程序存储器中固化了用C51编写的应用程序,有系统初始化程序、文件创建程序、A/D转换程序、数据写入程序等。软件采用模块化设计方式,将各个功能分成独立的模块。其中,A/D转换程序放在中断程序中。程序流程图如图3 所示。

在本文的接口使用中已经介绍了用户系统与MemMaster 系统的协议交互命令包括Command和Response 2种类型。Command/Response消息用于在用户系统或MemMaster系统将要发出的

表3 MAX186控制字说明


图3 程序流程图

Command或Response及相应数据准备好后,通过对方(MemMaster或用户系统)Command或Response已经准备完毕,可以开始执行的消息。该消息通过向双口RAM的0xFFFE或0xFFFF地址写/读数据来完成。该消息通过中断方式来实现,即:对用户系统而言,当向0xFFFE 写入数据时,即为通知MemMaster有命令待执行。当系统进入中断程序确定时,说明MemMaster端已经完成了命令,并将响应准备好,可以进入下一步操作。这时,从0xFFFF即清除了该中断。目前系统定义,向0xFFFE写入和从0xFFFF读出的值都是0x01。参考代码如下:

#define DPRAMR Int ((char*) 0xFFFF)
#define DPRAML Int ((char*) 0xFFFE)
#define SEND-SYSCMD * DPRAML Int=0x01
Void service1-int1()interrupt0/* 外部中断0*/
{
bRecvResp=3DPRAMR Int;
}

下面给出文件创建函数来说明用户系统与MemMaster系统是如何实现Command消息传送的(Response消息类似)。

typedefstruct- CreateFileCmdPkg /*创建命令包*/
{
unsigned char CommandCode;
unsigned char FileName[8];
unsigned char ExtensionName[3];
unsigned char FileAttr;
unsigned char Reserved[10];
unsigned char CreateTime[2];
unsigned char CreateDate[2];
unsigned char FirstBlock[2];
unsigned char FileSize[4];
unsigned char Option;
unsigned char MaximLen;
unsigned char reserved[29];
} CreateFileCmdPkg;

void CreateFile (unsigned char nm )
/* nm用于判断文件是否存在*/
{
CreateFileCmdPkg* crCmdPkg;
crCmdPkg=(CreateFileCmdPkg* )Comm and;
Mem Set ((char* )crCmdPkg,0,64) ;
Mem Set (crCmdPkg->FileName,0x20,8) ;
crCmdPkg->CommandCode
=SYS-CREATE-FILE;
crCmdPkg->FileName[0]=’T ’;
crCmdPkg->FileName[1]=’A ’+ nm;
crCmdPkg->ExtensionName[0]=’S’;
crCmdPkg->ExtensionName[1]=’H’;
crCmdPkg->ExtensionName[2]=’J ’;
crCmdPkg->FileAttr=0x20;
crCmdPkg->CreateTime[0]=0x00;
crCmdPkg->CreateTime[1]=0x00;
crCmdPkg->CreateDate[0]=0x21;
crCmdPkg->CreateDate[1]=0x30;
crCmdPkg->Option=0x00;
bRecvResp=0;
SEND-SYSCMD;/*发送Command消息*/
cs-ram=1;/*取消双口RAM片选*/
Delayms(10) ;
while(!bRecvResp);/*判断双口RAM是否收到消息*/
cs-ram=0;/*片选*/
}

实验结果分析

钢丝绳检测系统是通过对被测钢丝绳进行磁化,用敏感元件检测钢丝绳断丝处的泄漏磁场,以此判断有无断丝,再通过计算机以及相应的软件,对此漏磁场的波形进行分析,进一步判断断丝的数量,通过光电编码器确定相应断丝的位置。实验中选取1根24(6×7) 结构的钢丝绳样绳,并在指定位置做出断丝,用该系统进行测定,钢丝绳信号输出波形图和实验分析结果分别如图4 和表4 所示。

图4 钢丝绳信号输出波形图
  
图4中曲线偏离虚线表明有断丝发生,因为钢丝绳在检测过程中会有抖动,因此曲线也有抖动。设定一个阈值,当偏离程度超过阈值则表明有断丝发生,然后根据定位可以找出断丝发生的位置。因为钢丝绳加工过程的原因使得钢丝绳表面有突起,因而会产生少量漏磁,同时测量过程中钢丝绳的抖动会

表4 实验分析结果

使得检测产生误判。实验分成两组,每组各50次对钢丝绳进行测量。表4(负数表示漏判,正数表示误判)的分析计算表明: 当要求无错判时(Falselymeasured number=0),断丝定量准判率为95%;当允许错判1 根时(Falsely measured number -1,0,1),断丝定量准判率为100%,因此符合工况要求。

结 论

钢丝绳检测系统要求的检测速度为每秒0~2000个数据,本套装置完全可以胜任,同时保证了测量的精度。该装置可以按指定的格式存入数据,并且动态地检测移动存储器中是否有同名的文件,并自动添加文件,可以在无人工干预的情况下实现多次检测,使用起来极为方便。

该装置把USB标准应用到钢丝绳检测体系中,适应了计算机的发展潮流,具有携带方便、操作快捷、成本低廉、存储容量大等优点,效果良好,应用前景广阔。

相关推荐

Teledyne LeCroy升级了超高速USB3.0协议分析仪平台

Teledyne  分析仪  USB  2013-09-17

连接器的大量生产充分满足着各行业所需

连接器  USB  2013-08-01

精密化精细化是连接器的发展趋势分析

连接器  USB  2013-06-28

飞思卡尔CEO:新战略初现成效 未来更关注中国市场

飞思卡尔  单片机  2013-04-28

飞思卡尔携手周立功单片机 共同拓展中国MCU市场

飞思卡尔  MCU  单片机  2012-12-19

USB小电器办公室受宠 插电不宜过久注意安全

USB  电器  2012-09-04
在线研讨会
焦点