嵌入式超声波探伤仪软件系统的关键技术
超声波探伤在无损检测中占有重要地位,它具有检测灵敏度高、穿透力强、声速指向性好、对裂纹等危害性缺陷检出率高和对人体无害等优点,已广泛应用于机械制造、石油化工和航空航天等领域。
近年来,随着集成电路技术、数字信号处理技术和嵌入式软件设计技术的发展,超声波探伤系统向着数字化、自动化和智能化方向发展[1]。随着超声波探伤系统功能越来越全面和完善,系统开发的工作将更多地集中在软件开发上,这对超声波探伤仪软件系统的设计带来了新的挑战。软件的开发与应用已成为影响探伤仪功能发挥的关键性因素,因此,对探伤系统软件的关键技术展开研究也是非常必要的。
1 软件系统结构与功能
笔者基于Linux操作系统和Qt/Embedded图形用户界面库进行软件开发。Linux为应用软件提供简洁、高效的运行平台以及丰富的外围设备驱动,如液晶显示驱动、串口驱动、通用串行总线驱动和以太网接口驱动等。Qt/Embedded有丰富的类库和控件资源,为高效开发图形界面提供支持[2]。软件系统的整体结构如图1所示。
软件从功能上可以分为三大模块:数据处理模块、用户界面模块和可视化模块。数据处理模块主要完成数据采集和传输、数据计算等功能。该模块将数模转换后的超声波回波数据存储到内存中,根据事先设定好的各种参数,如检
测范围、声波速度和零点偏移等参数变量,在存在缺陷并设定好闸门状态的情况下,计算出缺陷的确切位置。用户界面模块主要是为用户提供友好的探伤操作界面,如设置探伤参数、存取探伤波形数据和定量分析等。可视化模块包括波形显示、闸门显示、报警显示、DAC/AVG曲线显示、曲面修正显示以及焊缝显示等。
2 关键技术及解决方案
2.1 Linux异步通知机制
探伤系统软件需每隔20 ms从操作系统的内核空间读取探伤波形数据到用户空间,根据相关配置参数完成对探伤波形的实时计算,并将探伤波形实时显示到LCD屏上。这部分为整个应用软件的核心部分,对实时性要求较高。
应用程序对设备的访问一般有查询方式和异步方式两种[3]。由于设备驱动程序的底层是异步的中断机制,应用程序工作于查询方式时,要通过阻塞型的系统调用访问设备,使用睡眠/唤醒机制保持同步。显然,这种处理技术对于系统来说效率并不高。因此,笔者采用了Linux的异步通知机制,该机制结合了应用层的信号机制与驱动层的中断机制,从而实现了应用层对设备的异步操作。
首先定义一个sigaction结构变量,初始化该变量,设置SIGIO信号处理程序。然后打开目标设备,通过fcntl()系统调用设置本进程作为目标设备文件的“属主”,这样内核就会知道信号发生时应该通知哪个进程。最后,要通过fcntl()系统调用的SETFL命令将目标设备文件设置成异步操作模式,即在设备中设置FASYNC标志。当数据到达时,设备驱动程序会向注册为异步通知的进程发送SI-GIO信号,从而执行用户空间已经设置好的信号处理程序。
相关文章
- 2021-11-26无线数传电台在自来水行业的应用设计
- 2023-07-22L波段色散补偿光子晶体光纤的研究和设计
- 2023-10-14基于DSP的高精度激光干涉仪的研制
- 2023-09-18纳机电矢量水听器二元阵的实验研究
- 2022-07-07伪码测高计相关峰微分比较及边沿捕捉
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。