O 引言
硬度测量是工业生产,特别是材料加工工业中广泛应用的传统测试技术。便携式硬度计是一种较先进的硬度测试仪器,具有体积小、重量轻、易携带、操作方便等特点,尤其对一些大型、不可拆卸部件或精加工后要求复测硬度的零件的硬度测量特别有用。但由于一般便携式硬度计在硬件和功能等方面存在局限,所以不能满足生产过程中的复杂要求。
基于USB总线的数据通信具有安装方便、可靠性高、数据不易丢失、抗干扰能力强、便于数据传输和处理等优点,随着USB应用日益广泛,已经逐渐成为现代数据传输的主要趋势。
本文设计的便携式硬度计数据通信系统实现方案,将USB通信技术应用到硬度测量过程中,选用Philips公司的PDIUSBD12作为USB芯片,选用 Atmel公司的ATmega128作为MCU,利用可靠的USB数据传输,将便携式硬度计与PC机连接,由上位机完成所需功能的处理,满足了测试现场的要求。
1 系统分析与设计
1.1 硬度计的工作原理及实际工作要求
硬度是表征金属在表面局部体积内抵抗形变或破裂的能力。硬度表明材料的弹性变形和塑性变形,硬度计采用冲击方式进行检测后,通过传感器将所得到的冲击量转换成电信号交由电子设备进行处理,受检材料硬度值是通过硬度计配置的冲击装置得到的。目前国际通用的硬度计量标准有洛氏、里氏、维氏、布氏等,而便携式硬度计以里氏硬度计居多。
里氏硬度值的定义如下:
式中:HL为里氏硬度值;vA为冲击体距试样表面1 mm时的冲击速度;vB为冲击体距试样表面1 mm时的反弹速度。
在使用便携式硬度计进行测量工作时,常常会对硬度测量提出一些要求,如表1所示。
由于便携式硬度计数据存量相对有限、实现功能相对简单,在面对实际工作中遇到的表1所示的相对复杂需求时,存在一定局限性,很难提高测后数据处理工作效率。因此,本文提出USB数据通信方案来解决这些问题。
1.2 便携式硬度计USB数据通信系统硬件组成
USB(Universal Serial Bus)是一种快速、双向、同步传输、即插即用的通用串行数据传输总线,以其方便稳定、易于接入PC机、兼容性强、易于升级、成本低廉,得到了广泛应用。因此,为实现便携式硬度计与PC机的通信,选用了USB通信方式。
便携式硬度计USB数据通信系统结构如图1所示。
本方案选用微处理器ATmega128作为数据通信系统的控制器。
ATmega128为Atmel公司推出的8位AVR微处理器,具有很高的信价比,工作时最高速度可以达到16MIPS,128 KB的FLASH、4 KB的E2PROM,足够满足方案中数据暂存的需要,另外,ATmega128具有53个可编程输入/输出口,可扩展64 KB的外部存储器,便于实现多点硬度值数据采集的硬件扩展。
在该系统中,MCU ATmega128承担着数据采集和USB数据通信的双重任务,主要完成采集多路数字量输入、配合PC机控制USB通信电路完成硬件检测、枚举连接及数据的双向传输;控制存储电路完成数据的存取等控制功能。
本方案选用的USB芯片PDIUSBD12是Philips公司成熟且价格低廉的产品。片内集成了高性能USB接口器件、FIFO存储器、收发器以及电压调整器等,支持USB 2.O的全速模式。
为保证USB数据传输的效率,本方案采用离线测量,定量传送的实现方式。按工艺流程将一组产品硬度测量值临时存入MCU的存储器中,再将MCU存储器中的临时数据打包通过USB发给PC机并存入主机数据库,主机应用程序需要时对数据进行处理。
2 软件系统实现
本方案要解决以下三个方面的工作:一是在MCU上设计USB固件程序;二是编写上位机的USB驱动程序;三是实现上位机数据处理应用程序。
2.1 USB固件程序
固件设计主要完成设备枚举、主机与设备的数据交换、设备端的数据处理和控制等工作,固件程序设计成前后台模式,把设备端数据处理和控制作为MCU的前台任务,枚举及枚举成功之后的USB数据交换放在后台进行。实现设备与主机以最大的传输速率通信。
设计时将USB端口1和端口2定义为普通输入/输出类型,对应于PDIUSBD12的模式0。控制端口0完成响应USB标准请求的功能,输入端口用于把数据采集电路采集并打包的硬度值数据送给USB主机,输出端口接收USB主机发送的包。
PDIUSBD12从USB收到一个数据包,就对MCU产生一个中断请求,MCU立即响应中断,中断服务子程序用来处理由PDIUSBD12引发的中断,它将数据从PDIUSBD12的FIFO中取回到MCU存储器中。各端点中断处理程序如下:
在各端点的中断处理程序中,MCU主要是通过对PDIUSBD12端点缓冲区写入或读取数据包来完成处理过程的,其流程如图2和图3所示。
2.2 USB上位机驱动
采用DriverStudios开发USB的WDM(Windows Driver Model)驱动程序。WDM支持即插即用、电源管理和WMI技术。
Driver Studio嵌入在VC 6.0中,在Driver Studio中的Driver Works提供了USB驱动程序设计向导,只要按照向导完成相应的操作和设置就可以设计出一个简单的USB驱动程序,Driverwizard会根据设定给出一个WDM驱动程序的框架。
在使用驱动程序向导过程中,系统会提示用户输入USB设备的Vendor ID和Product ID,这时应该注意与具体使用的芯片对应,这里PDIUSBD12对应的Vendor ID为0471,Product ID为0888。向导完成后,在WDM驱动程序的框架中添加需要实现的USB端口1和端口2的读写功能代码。然后编译驱动程序工程文件,生成需要的USB 功能驱动程序。
2.3 上位机应用程序
本方案中,硬度测量系统的上位机应用程序集合了与设备进行数据传输、数据查询、参数设置、计量标准转换、测量误差修正、统计分析、及数据导出、数据打印等功能。该系统可以在单机工作模式或连接工作模式下使用,并设置了用户认证和密码保护功能。
实现和USB控制器进行数据的批量传输,主要在系统界面的“接收”页面的控键的程序段中编写功能代码,主要完成在设备驱动程序中查找设备,以进行USB通信传输,并将设备发送来的数据进行显示和保存。接收到的数据可以在页面上直接显示,并且可以在参数设置页面中预先设置硬度值上下限,对接收到的超出范围的数据自动进行识别和标识。上位机应用USB的数据接收界面如图4所示。
在系统“接收”页面下单击“保存”,即可将其他硬度测量相关信息录入硬度数据库系统,形成数据库信息后,在系统的“查询”页面下,可以按照零件名称、测量日期进行基本查询,也可以选择测试者、所属班组、产品编号、批次号、零件材料、炉批号、测量时使用的测试配件、冲击装置及测量点的曲率、冲击方向等其他信息项在数据库中进行多条件精确查询。
系统为满足各种测试条件和环境,可根据配置的各种测试配件,对使用的冲击装置类型进行校准;对常用冲击方向进行硬度值修正。根据《GB/17394— 1998》标准,可以将测定的里氏硬度平均值代入通用的按材料大致分类的换算表中,查出相应的硬度值。用代表现场特定材料做试样,对里氏硬度与其他硬度作对比试验,将试验结果经过数据处理,得出里氏硬度与其他硬度的对应关系,通过程序进行转换误差修正。
3 结语
随着材料加工工业的不断发展,传统材料硬度测量方式已经无法满足生产工序中的快节奏要求。本文将USB通信技术引入材料加工硬度测量环节,以提高硬度测量环节的效率。
本文所述的实现方案,以节约成本又兼顾方便操作为设计原则,在原有硬件设备基础上,利用PDIUSBD12和ATmega128实现可靠的USB数据传输,将便携式硬度计的现场硬度测量数据发送到PC机上,在PC机上建立应用软件,最终形成了功能全面、使用方便的便携式硬度计数据通信系统。