微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于DSP的多超声测距数据采集处理系统

基于DSP的多超声测距数据采集处理系统

时间:12-06 来源:互联网 点击:
3 软件设计

系统软件主要由两部分构成,即超声数据采集与处理模块、CAN总线通讯模块。

3.1 多路超声传感器数据采集模块

超声传感器被分为两组,两组循环交替工作。软件设计上采用两个定时器依次工作,分别对两组传感器进行计时。选择定时器的周期比超声传感器探测最大距离所需的渡越时间稍长。在每个定时器周期开始时,触发一组超声传感器同时开始工作。在定时器周期内,每个回波返回,都会触发一次外部中断(XINTl或XINT2中断),在外部中断处理程序内,将超声波返回时间进行纪录,并将相应的超声传感器关闭。外部中断处理程序非常简短,本系统只用了不到20条指令,并且TMS320LF2407A指令执行速度很快,因而即使因进入外部中断处理程序而延误了对后来回波的处理,但这种延误的时间根据计算不大于0.5μs,由此引入的距离误差根据(1)式计算小于83.5×10-6m。可见误差非常小,可以忽略不计。当定时器中断时,对于距离大于最大超声探测范围的,没有相应的时间记录,给它们加上超出测距范围的标志。其它的时间数据都有记录,根据(1)式计算距离,然后启动下一个定时器工作,并触发下一组超声传感器。本文的超声传感器的最大探测距离为3.5m,因而超声波探测的最长时间为20.58ms。所以每个定时器的周期选为20.6ms。图2只画出了一组超声传感器的处理框图,另一组与此相同,不再赘述。



由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些误差,表1列出了本超声测距系统测量值与对应的实际值。采用最小二乘法对表1的数据进行拟合,结果为:

y=O.9986x+0.2111

式中,x为测量值,y为实际值。



3.2 基于CAN总线的数据通信

超声数据采集板发送测距数据以中断的方式完成。TMS320LF2407A有专门的mailbox

中断,用于响应发送/接收中断。每个超声传感器的测距值在DSP内用两个字节存储,而CAN总线传输标准要求每个数据帧最多只能传输8个字节的数据。本系统共有16个超声传感器,共有32个字节存储所有测距值。CAN总线传输所有测距值需要4个数据帧才能传送完。本系统的通讯过程为:中央控制器发送远程请求,超声数据采集板进入接收中断,在中断服务程序内,采用查询方式发送4帧数据,每帧数据包含4个超声传感器的测距值。本系统采用的波特率是500kbps。TMS320LF2407A用mailbox0接收中央控制器的远程请求帧,用mailbox2发送测距数据值。图3是超声数据采集板的发送数据中断服务程序框图。其中,TA2是对应mailbox2发送数据帧完成的标志位,RMP0是对应mailbox0接收数据帧的标志位。关于TMS320LF2407A的CAN模块的具体说明,参见文献,在此不作具体介绍。



中央控制器接收子程序由VC++编写。当机器人需要新的测距值时,即调用此子程序。程序框图见图4。接收程序收到一帧数据后,判断数据是否有错,若有错,则向采集板发送命令,要求重发此帧数据;若正确,发送确认命令,要求采集板发送下一组数据,直到所有的超声测距数据都接收完。



本文介绍的超声数据采集系统采用TMS320LF2407A为核心处理器,可以达到很高的采集速率和精度。通过CAN总线通讯,可以将测距值以很高的波特率可靠地发送给机器人中央控制器。此系统已经在自行设计的智能移动机器人CASIA-I上得到了实际应用。实验验证了硬

件系统的可靠性和算法的有效性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top