首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于USB移动存储的钢丝绳探伤报警系统设计
来源:本站整理  作者:佚名  2009-09-02 10:42:58




3  系统设计
3.1 系统工作原理
      现在,钢丝绳的应用越来越广泛,为了保护人身和财产安全,钢丝绳探伤检测仪器也随之发展起来。目前,钢丝绳探伤检测多以PC机作为检测数据的接收和存储器件,但是这样成本高、携带不方便。在此,运用MemMaster模块实现现场检测数据存储到移动存储器就克服了这些缺点,提高了系统的性价比。系统的工作原理描述如下:检测传感器开始工作时,输出脉冲信号作为控制电路的同步信号,同时检测钢丝绳的三路参数数据(模拟信号)。当控制电路获得同步信号后,启动A/D转换,取得转换结果,系统对数据进行处理后,判断是否有断丝发生,如果有则报警。同时把数据写入移动存储器中在控制电路上电时就建好的文件中,以便将来分析处理。
3.2 系统配置
     在此,A/D转化器件采用的是MAX186[3],MAXl86将8通道模拟开关、大带宽跟踪/保持电路、12位A/D转换器和移位寄存器集成到一片20脚双列直插芯片上,消除了传输误差,提高了采样精度和转换精度。它体积小、转换速度快、转换精度高、功耗低、用5V单电源或 V双电源供电,模拟输入可由软件设置为单或双极性和单端或差分两种输入转换方式。它的SCLK引脚作为时钟信号输入, 作为片选信号输入,DIN作为串行信号输入,DOUT作为串行信号输出。
      在系统上电时,需要创建接收文件,文件的创建时间由DS1302[4]提供。DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,具有主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。它的I/O引脚作为数据输入输出, 作为复位信号输入,SCLK作为时钟信号输入。
     单片机采用的是华邦公司的W78E58B[5],它是8位单片机,内含32KB Flash/EEPROM,其引脚功能与8051系列单片机完全兼容。系统连接图如图1所示。
4  软件设计
    为了使各部分硬件电路按一定顺序进行工作,在单片机的程序存储器中固化了用C51编写的应用程序,包括系统初始化程序、时间参数获取程序、文件创建程序、A/D转换程序、报警分析程序、数据写入程序。软件采用模块化设计方式,将各个功能分成独立的模块。其中,A/D转换程序放在中断程序中。程序流程图如图2所示。
4.1 报警算法分析
     钢丝绳断丝检测信号为叠加于噪声背景上的局部区域的异常信号。为了能够对断丝进行报警,首先应从检测信号中将它分离出来。根据报警的实时处理要求,提取断丝检测信号的方法应简洁,花费的运算时间短,占据的内存空间小。下面给出一种峰峰值超限法。
    峰峰值超限法利用局部异常信号波形的峰谷差值特征进行断丝检测信号的提取。从信号波形来看,检测信号是由大量的局部波峰和波谷构成的,在检测信号的每一微小的局部均将存在着一个完整的峰谷波形信号。峰峰值定义为某一局部峰谷波形信号的峰值与谷值之差的绝对值,当某一局部峰谷波形信号的峰峰值超过门限时,则认为是局部异常波形信号。在基于聚磁的钢丝绳断丝检测中,检测信号波形是一个完整的局部峰谷波形,这是由断丝断口漏磁场的分布决定的,且当选择好聚磁器的结构和检测元件的布置位置时,断丝检测信号将是单一的正峰信号,且信号的峰峰值比邻近的信号波形大得多,因此很容易用峰峰值超限法提取。
     设vn,n=0,1,2,3,4,为5个连续的局部极值点,在程序中我们判断:当( (v[1]-v[2])>3*(v[1]-v[0]))&&((v[3]-v[2])>3*(v[3]-v[4]) )&&(v[0]-v[2]>26)&&(v[4]-v[2]>26)时,报警。
4.2 USB数据存储程序设计
    在接口使用中已经介绍了用户系统与MemMaster系统的协议交互命令包括2种类型:Command和Response,下面就来具体说明一下Command/Response消息。
         Command/Response消息用于在用户系统或MemMaster系统将要发出的Command或Response及相应数据准备好后,通过对方(MemMaster或用户系统)Command或Response已经准备完毕,可以开始执行的消息。该消息通过向双口RAM的0xFFFE或0xFFFF地址写/读数据来完成。该消息通过中断方式来实现,即:对用户系统而言,当向0xFFFE写入数据时,即为通知MemMaster有命令待执行。当系统进入中断程序确定时,说明MemMaster端已经完成了命令,并将响应准备好,可以进入下一步操作。这时,从0xFFFF即清除了该中断。目前系统定义,向0xFFFE写入和从0xFFFF读出的值都是0x01。参考代码如下[6]:
#define DPRAMRInt ((char*)0xFFFF)
#define DPRAMLInt ((char*)0xFFFE)
#define SEND_SYSCMD *DPRAMLInt = 0x01
void service_int1() interrupt 0 /*外部中断0*/
{
 bRecvResp = *DPRAMRInt;
}
下面给出文件创建函数来说明用户系统与MemMaster系统是如何实现Command消息传送的(Response消息类似)。
void CreateFile(unsigned char nm)           /*nm用于判断文件是否存在*/
{
CreateFileCmdPkg* crCmdPkg;
/* CreateFileCmdPkg为创建命令包,包括创建命令的各个属性*/
    crCmdPkg=(CreateFileCmdPkg*)Command;
MemSet((char*)crCmdPkg,0,64);
MemSet(crCmdPkg->FileName,0x20,8);
crCmdPkg->CommandCode=SYS_CREATE_FILE;
/* SYS_CREATE_FILE为创建命令码*/
    crCmdPkg->FileName[0]=’T’;

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:14,066.41000 毫秒