基于DSP和单片机的超声波测距系统
基于DSP和单片机的超声波测距系统
第10卷 第3期 2010年1月1671-1815(2010)320762204
科 学 技 术 与 工 程
Science Technol ogy and Engineering
Vol 110 No 13 Jan 12010
Ζ2010 Sci 1Tech 1Engng 1
一般工程技术
基于DSP 和单片机的超声波测距系统
陶建平 尹文庆 柳 军
(南京农业大学工程学院,南京210031;东南大学仪器科学与工程院,南京210096)
摘 要 设计了一种新型的超声波测距系统,系统以单片机和DSP 为双控制核心,提出以单片机控制,利用包络检波,微分过零点检测电路确定回波包络峰值点时间。粗测得到误差为一个波长以内的测距结果。之后采用DSP 控制进行FFT 精测相位差,将粗测和精测的结果进行数据整合,实践证明这种方法有效地提高了测距的精度。关键词 超声波测距 DSP 单片机 数据整合中图法分类号 T B551; 文献标志码 B
2009年10月16日收到
第一作者简介:陶建平(1983—),男,江苏南京人,南京农业大学工程学院,硕士研究生,研究方向:智能控制与检测。
超声波作为一种特殊的声波,由于其指向性强,在空气中传播速度相比光速要小很多,其传播时间容易检测,因此目前超声波测距广泛采用的是回波-渡越时间的方法
[1]
:检测从超声波发射器发出的超声波,经气体介质传播到接受器的时间即渡越时间。渡越时间与气体中的声速相乘,就是声波传输的距离。文献中广泛采用的是基于单片机的超声波回波-渡越时间测距方法,其精度很难做的很高,其原因在于系统时钟比较低,基准时间固定,而且回波峰值时刻检测倒推前沿时刻不准,或者是存在阈值门限等问题都使得这种方法很难将误差做到半个波长以内,这个问题的解决关键是建立一个误差修正的机制。本文在此提出了基于DSP 构建FFT 检相,对基于单片机回波-渡越时间法出来的距离进行数据整合修正误差,这种方法对于超声波级联大距离测距有着很高的实用意义。
1 基于单片机粗测模块的设计
粗测部分采用的是包络峰值点检测法。粗测部
分控制核心采用单片机,单片机在上电复位以后,首先初始化工作,启动测温电路,为后续计算声速提供实时温度数据以期获得一个比较准确的声速值,40kHz 超声波在空气中的传播公式
[2]
为C =33115+
01607T 。然后软件定时控制555发射10个脉冲驱
动超声波换器,启动发射模块驱动超声波序列的同时开始计时,回波信号通过调理判断之后停止计时得出往返时间,以此时间为基准减去包络峰值点与回波前沿的差值作为粗测的结构。
2 基于D SP 精测模块的设计
211 设计总体思路
精测部分采用FFT 数字检相法。具体的模块框图如图1,由于精测部分不需要去确定传输距离中的整波长个数,只需对不足波长进行测量,因此选用相位差测量的方式作为实现手段,为了保证精测部分能够以粗略测量时间为基准成功启动A /D 转换对发射信号和回波信号进行FFT 检相,粗略测量和精确测量驱动发射方式不同,前者发送一个有限长脉冲序列,而后者则保持连续发射,因此不能在一次测量过程中将两者同时完成。粗略测量后开始精确测量工作,控制持续驱动发射超声波并
基于DSP和单片机的超声波测距系统
3期陶建平,等:基于DSP 和单片机的超声波测距系统以粗略测量结果为基准进行定时工作,当定时工作完成时启动对发射信号和回波信号的A /D 采样,并利用数字信号处理单元对其进行FFT 检相,依此求出两者之间的相位差,此即为精确测量的结果
。
图1 测距硬件模块框图
212 数据整合方式
粗测的方法是为了得到一个整波长的数目,精测出来的相位差转化为一个波长的部分的精确数值,理论上讲两者相加应该得到一个比较精确的值。但实验中发现,这种整合有一定缺陷,例如假设实际距离为125018
λ,当粗测结果为125112λ,精测结果为017
λ时,简单取整反而会把误差扩大到019λ,存在着整波个数是否需要加一或减一的问题。由此可以看出,数据融合的方式与粗测误差大小有很大的关系,直接影响到数据整合的方式,考虑到实际粗测实验的结果,发现粗测部分已经可以把误差控制在014λ以内。本文提出分三种情况进行讨论数据整合方式:
粗测结果小数部分与精测结果差之绝对值在014
λ以内,直接取粗测结果整波长数目与精测结果相加。例如粗测为125015
λ,精测结果为017λ,粗测小数部分和精测部分之差在014
λ以内,直接将其整数部分与精测结果相加,则测量结果为125017λ,误差明显减小;
(1)粗测结果小数部分与精测结果差之绝对值
大于014
λ且为正向值(即粗测距离大于实际距离)时,将粗测整波长数目减1后再与精测结果相加。例如粗测结果为125111
λ,精测结果为019λ,如果直接取整相加结果为125119
λ,误差反而扩大,在此首先用1250来替代1251,则同样可以将误差明显
减小;
(2)粗测结果小数部分与精测结果差之绝对值
大于014
λ且为负向值(即粗测距离小于实际距离)时,将粗测整波长数目加1后再与精测结果相加。例如粗测结果为125019
λ,精测结果为011λ,在此用1251替换1250,最终测量结果为125111λ,相比原来简单相加则误差明显减小。
3 通讯机制
在粗略包络测量和精确相位测量工作完成之
后,需要单片机将粗测数据传递给DSP,DSP 对两次测量数据进行整合作为最终测量结果以供显示,相关课题选用的是单片机
P89V51和
T MS320LF2407[3]
中都集成了SP I 控制器,最高传输
速率可达到10MHz,采用SP I 作为两者数据交换的通道,速度快,且抗干扰强,可以通过设置相关控制寄存器,将SP I 模块设定为主机或从机。本系统中是将DSP 作为接收数据的设备,SP I 模块设置为从机模式。同时在DSP 一端可增加多通道进行选通,使得多级粗测加一级精测做成级联测距的系统,有效的降低成本,增加可测距离。
4 系统软件设计
411 整体设计流程
系统软件设计的对应的分为三个部分:粗略测量控制算法模块、FFT 检相模块和数据传输整合模块,流程如图2所示。整个测量过程由人工控制触发,首先进行粗略测量部分的控制和计算工作,得出粗略测量时间。在粗略测量工作完成之后,自动开始相位测量工作,以粗略测量结果作为定时启动对发射脉冲序列和接收回波信号的A /D 采样及FFT 检相工作,以得到信号间相位差数据。最后根
据前面提出的数据整合算法计算最终结果并给予显示以便观察。全过程只需要人工一次触发,其后过程全部自动完成,达到了实时性、自动化的要求。
3
67
基于DSP和单片机的超声波测距系统
科 学 技 术 与 工 程10
卷
图2 软件设计流程图
412 FFT检相
信号采样后,对数据进行FFT处理则得到信号的离散频谱,通过选定具体的采样频率和FFT计算点数可将基波信号确定在FFT序列的固定位置之上,虚部数值和实部数值的比值反正切即为基波相位。
为了追求运算速度,发挥DSP指令系统的优势,本设计采用了TI公司的FFT程序[4],采用时间进行抽取,基数为2,将检相的过程转化成对FFT库调用,本设计的相位检测流程如下:
(1)把输入的N个信号数据序列按位码倒置方式重新排列,该步骤使用void FFTC_brev1(int3 src,int3dst,int size)函数,src为对信号采样后的数据存储空间起始指针,dst为就地计算数据缓冲区起始指针,size则为FFT大小,一般情况下src …… 此处隐藏:5069字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




