基于ARM-Linux的超声波测距系统设计与实现
在复杂环境中和一些特殊工作场合中常采用非接触测距的方法,激光、毫米波和超声波等是非接触测距中常用的测量介质。 超声波测距较前两种而言,具有能耗慢、指向性强、受环境因素影响小等特点,被广泛应用于倒车雷达、管道长度、机器人避障以及其他工业现场等方面。 本文提出了在Linux系统中用超声波测距的方法测量避障物体,并编写了HC-SR04和DS18B20传感器驱动程序, 在应用程序的配合下实现了精确的距离测量。
1 超声波测距系统原理
目前超声波测距常采用回波时间法,其方法通过换能器向介质中发射高于20kHz以上的声波,途中遇到被测物体后反射回来。 若已知声波在介质中传播速度为v, 回波到达时间与发射时间差为t,就可以计算出发射点与发射点间的距离s:s=vt/2,即可算得传感器与反射点的距离,若s>>h,则d=s。h、s、d 的关系如图1所示。 超声波在固态中传播速度最快,在气体中传播速度最慢,而且声速与温度有关[1],若温度变化显著,需考虑温度补偿,声速在空气中传播速度与温度的关系为
式中,T为当时工况的环境温度,单位为℃。
2 系统的硬件平台搭建
本系统采用Sangsung公司的S3C2440A微处理器,其支持16位Thumb指令集和32位ARM指令集的RISC体系架构, 主频400 MHz,最高可达到533MHz[2]。扩展有256MB的NAND FLASH,64MB的SDRAM,2MB的NOR FLASH,掉电非易失。如图2所示, 超声波传感器TRIG、ECHO分别接于GPG3和GPG5,GPG3通过一个脉冲直接驱动CD4049 芯片,再由其后的CD4049则对频率信号调理,使超声波传感器产生谐振,GPG5接收信号。温度传感器DS18B20D的DQ 端连接GPH10引脚,测量环境的温度。
3 系统软件设计
3.1 驱动程序设计
设备驱动程序是管理外围设备的一段代码,它负责传送数据、控制设备特定类型的物理设备的操作,包括开始和完成I/O操作,检测和处理出现的错误[3]。驱动针对的对象是存储器和外设,并将其分为字符设备、块设备、网络设备3个基础类。字符设备是指在I/O传输过程中以字符为单位以串行顺序进行传输的设备。本驱动通过GPIO以字节方式读写,属于字符设备驱动,该驱动的操作关系如图3所示。
1)完成驱动模块的加载和卸载,设备号的申请,资源的申请和释放;
2)完成内核与硬件设备之间的数据交互;
3)接收与返回应用层请求的数据;4)检测设备状态和处理设备故障等。
3.1.1 超声波设备驱动程序设计
超声波传感器通过操作TRIG引脚GPG3的一段高电平脉冲,并维持10μs以上,即可在发射端产生8个40kHz的脉冲,在ECHO引脚GPG5检测到一个上升沿和一个下降沿的跳变。其字符驱动程序中除了模块到的加载与卸载外,最重要的是填充文件操作file_operations结构体成员,其中实现文件打开、读写、控制、偏移、关闭等操作file_operations的结构体格式如下:
相关文章
- 2022-08-30利用F-P干涉仪测量固体材料线膨胀系数
- 2023-12-13太阳能半导体制冷装置设计与性能分析
- 2022-12-05新型128导大脑磁刺激仪的研制
- 2024-02-06高频电刀主变换器工作原理及故障分析
- 2022-01-09嵌入式实时操作系统设计及应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。