基于S3C2410的氢气浓度监测系统设计
Linux内核中,每个设备驱动程序都对应一个file_operations数据结构。在file_operations数据结构中,定义了一些与此设备相关的打开、关闭、读/写、控制等功能函数,当用户进行系统调用时,将自动使用驱动程序中特定的函数来实现具体的操作。实际上,编写设备驱动程序的过程也就是实现struct file_operations结构中的部分所需函数的过程。
3.2 应用程序设计
有了设备驱动程序提供底层硬件与应用程序的接口,Linux系统访问底层设备就像访问普通文件一样。例如,打开设备使用系统调用open(),关闭设备使用系统调用close(),读/写设备使用系统调用read()和write()等。应用程序流程如图4所示。首先系统上电复位,程序初始化,然后扫描键盘值,看是否有键值按下。若有,则进行按键处理并按输入步骤设置程序;若无,则开中断并启动A/D转换,等待转换完成产生中断,进入中断服务程序。中断服务程序流程如图5所示。首先关闭中断,读取A/D采集数据,调用适用于缓变信号的中值滤波算法处理转换结果,将连续采样的5次采样值按大小排序,取中间值为本次有效值。然后,存储处理后的数据并送显示器显示。最后,从中断返回到主程序中,再判断当前数据是否超过设定的临界值。若大于临界值,作报警处理;否则就开中断,等待下一次转换结束。依此循环处理。本文引用地址:https://www.eepw.com.cn/article/195385.htm
4 实验
在容积约70 m3的密闭实验室中,利用化学制氢法制取约40 ml氢气,再用该系统来检测环境中氢气浓度值,实验界面如图6所示。在界面中,显示了当前时间、当前环境浓度值、超限与否提示、当前通道以及1 h内的浓度变化曲线。监测系统的准确度、灵敏度、实时性等各项指标基本达到设计要求。
结语
本文介绍了信号的前端调理电路,为微处理器S3C2410移植了嵌入式Linux操作系统,并在该系统下完成了设备驱动程序和应用程序的设计;利用软件算法对A/D转换后的信号进行了数值处理,最后介绍了图形用户界面,可动态显示当前氢气浓度值。该系统较好地满足了对现场环境中氢气浓度的实时动态监测要求,系统体积小,功耗低,成本低;还可根据需求灵活配置,适合便携式移动应用的场合,且具有良好的准确性、实时性和稳定性。
评论