首页>技术中心>技术资讯>基于USB接口的多通道金属磁记忆检测仪
基于USB接口的多通道金属磁记忆检测仪
发布时间:2017-09-01
金属磁记忆检测(MMT)是利用金属磁记忆效应来检测部件应力集中部位的一种快速无损检测方法。该方法可对铁磁性部件因疲劳蠕变损伤产生的微裂纹进行早期诊断[1]。现有的金属磁记忆检测仪器均采用嵌入式设计,与PC机的通讯采用串行接口或并行接口。串行通信虽然数据传递距离远但传递速度慢,并行通信虽数据传递速度快但传递距离近,二者都需采用外界电源单独供电。USB(Univer-sal Serial Bus)是一种支持即插即用的新型接口,主系统和USB外围设备之间的数据通过一个4针的接头连接起来传输,具有自带电源、传输速度快,支持热插拔、易于扩展、使用方便等优点。USB接口的传输速度要比串行口快得多,USBv1.1规范的数据传输速率可达1.5~2 Mb/s,USBv2.0所规定的传输速率达到了(360~480)Mb/s[2]。
1硬件设计
1.1仪器结构
图1为基于USB接口的多通道金属磁记忆检测仪器原理框。它包括磁敏传感器、温度传感器及测速装置组成的探头,由滤波器、放大器及A/D转换器、微处理器、USB接口等。其中,传感器是关键,微处理器是核心。本文主要介绍USB接口部分,其余部分可参考文献1。

1.2USB接口设计
目前各个厂商推出的USB芯片类型众多,不同类型的芯片,在功能上有着很大的差异。有些USB控制器包含有内置的CPU,如Intel公司的8x93CA和Cypress公司的FZ-USB等;有些则是依靠外部的CPU,较流行的专用芯片有National Semicon-ductor公司的USBN96C2和Philips公司的PDIUSBD12等。为了充分利用原有的研究成果,选用后一种方式,即单片机+USB接口芯片。综合比较此类芯片,我们选用Philips公司的PDIUSBD12。PDIUSBD12是仪器USB技术得以实现的关键。它是Philips公司的一个带并行总线的USB接口器件,支持本地的DMA传输。它完全符合USB1.1规范,同时集成了SIE(串行接口引擎)、FI-FO存储器、收发器以及电压调整器。其主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输,功能框图如图2所示。

USB接口的重要特征之一是USB设备能从总线获得电源,一般总线供电设备可以获得不超过100 mA的电流;对于大功率总线供电设备,主机配置设备完成后,可以从总线获得不超过500 mA的电源,而当USB外设处于挂起状态时,它从总线上吸收的电流小于500μA。本仪器采用低功耗器件设计,整个仪器直接利用总线电源进行供电,一般不需外加其它电源。
2软件设计
软件设计主要包括:磁记忆数据采集和USB固件(firmware)、主机USB设备驱动程序、主机数据分析与处理软件。磁记忆数据采集和USB通信软件的功能主要是控制数据采集以及通过USB接口与主机进行数据通信。主机数据分析与处理软件是将磁记忆数据进行分析处理,显示出被测试件的磁记忆图形。主机USB设备驱动程序是实现主机与多通道金属磁记忆仪器连接和数据通信功能。下面分析主机的USB设备驱动程序设计和多通道金属磁记忆仪器的USB固件设计。2.1USB固件设计设备固件是被固化到EPROM中的程序。其主要功能是控制A/D模块的数据采集;控制PDIUSB12按USB驱动程序的请求;控制PDIUS-BD12接受USB应用程序指令;通过PDIUSBD12存储数据并实时上传PC机。
本仪器PDIUSBD12的固件设计成完全的中断驱动,当CPU处理前台任务时USB的传输可在后台进行,确保传输速率,同时有利于编程和调试。后台ISR中断服务程序的后台A/D中断服务程序与前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现。当PDIUSBD12接收到主机发来的令牌后就给单片机发中断,单片机进入中断服务程序ISR。它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并根据中断寄存器判断USB令牌包类型从而建立正确的事件以通知主循环程序进行处理,主循环检查事件标志并进入对应的子程序。
2.2USB设备驱动程序设计
Windows98以后的操作系统提出的多种USB设备的驱动程序,如鼠标、键盘、游戏操纵杆、监视器、硬盘、MODEM等USB设备,此类设备接入系统后可以被系统自动识别并且支持,但对于数据采集却没有专门的驱动程序,必须由设计者自己编写驱动程序。
Windows的USB设备驱动程序必须遵循微软公司所定义的Win32驱动程序模型。开发USB驱动程序可利用WINDOWS DDK、Windrivder[4]和DriverStudio等。WINDOWS DDK可免费使用,但开发效率低。而windrivder、DriverStudio对Win-dows DDK的很多函数进行封装,大大简化了开发USB设备驱动程序,提高开发效率。在该系统的开发中我们选用Windirver进行开发。
Windriver包括一个功能强大的硬件探测器和调试器,在写入代码前,可通过调试器对硬件进行全面的测试。这种方式能够在写驱动程序前,校验硬件是否按照期望的那样工作。Windirver可根据检测到的USB设备自动生成设备驱动程序代码以及INF文件,用户几乎可以不加修改就可直接编译生成USB设备驱动程序。Windriver还能根据用户对USB设备的具体操作生成程序代码,用户可以将此程序代码直接加入到用户应用程序中,另外,用户还可直接利用WindriverAPI函数开发应用程序。
2.3应用软件设计
固件和USB设备驱动程序设计是USB设备开发者的工作,对于用户而言,与仪器的交互是通过应用软件实现的,主要的数据处理、显示也是在此完成。因此,运行效率高、界面友好、具有强大数据分析和处理功能的应用软件的设计是很重要的。应用软件的功能包括启动/关闭USB设备,检测USB设备,设置USB数据传输管道/端口,设置A/D,采集数据,显示分析数据。我们采用界面设计方面的Borland C Builder为软件开发环境,并运用多线程技术,使界面显示、数据接收、数据处理显示同时进行。
3结束语
基于USB总线的多通道金属磁记忆检测仪器在设计上严格遵循USB,其性能特点如下:
(1)安装方便,支持即插即用。安装时可在不关机不打开机箱的情况下将设备插入USB端口,运行驱动程序即可,以后可直接对设备热插拔。
(2)易扩展。最长传输距离5 m,采用Hub或中继器可达30 m。
(3)供电方便。整个仪器直接利用总线电源进行供电,一般不需外加其它电源。
(4)电磁干扰小。由于本仪器放置在计算机机箱外,避免了受箱内板间的电磁干扰。
(5)实时显示。
摘自:中国计量测控网






