碧波液压网 欢迎你,游客。 登录 注册

嵌入式超声波探伤仪软件系统的关键技术

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  超声波探伤在无损检测中占有重要地位,它具有检测灵敏度高、穿透力强、声速指向性好、对裂纹等危害性缺陷检出率高和对人体无害等优点,已广泛应用于机械制造、石油化工和航空航天等领域。

  近年来,随着集成电路技术、数字信号处理技术和嵌入式软件设计技术的发展,超声波探伤系统向着数字化、自动化和智能化方向发展[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信号,从而执行用户空间已经设置好的信号处理程序。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论