微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于DSP的激光雷达数据智能接口卡设计

基于DSP的激光雷达数据智能接口卡设计

时间:08-16 来源:21IC 点击:

无人自动驾驶车辆是室外移动机器人的一种,车上控制系统对车辆进行自主控制,实现无人驾驶。为满足激光雷达和PC机的高速数据传输,现有的解决方案的实时性得不到保障,而且都不具备任何数据处理功能,而障碍物检测功能应集成到底层硬件平台上实现,万一PC发生死机,车辆仍能自动避撞,保证了车辆系统的安全性和可靠性。因此,需要开发一套新的接口卡来实现这些功能。

1 接口卡研制目标和总体方案

针对激光雷达在智能车辆上的应用要求,我们对接口卡的功能提出了如下目标:

(1)激光雷达数据采集功能。通过RS-422与LMS291激光雷达进行通信,通信速率为500k bps;可实时获取激光雷达数据;可配置激光雷达参数。

(2)数据传输功能。通过CAN总线将采集的激光雷达数据送往上位机PC。

(3)障碍物检测功能。通过系统对激光雷达数据的处理,获取障碍物检测参数,通过I/O,直接发送紧急停车命令给底层控制器,紧急刹车。

根据系统要求,板上的CPU决定选用TI公司的TMS320LF2407A DSP芯片,它速度快、功耗低、易于开发、资源丰富、有片上CAN控制器等。LF2407A采用哈佛总线结构,具有16位高性能的CPU,时钟频率为40MHZ并支持软件改变锁相环的频率,在智能控制和通信中得到广泛应用。500)this.style.width=500;" border=0>

2 系统硬件设计

2.1 RS-422通信接口设计

RS-422A通信接口标准是EIA公布的"非平衡电压数字接口电路的电气特性"标准,它采用非平衡发送器和差分接收器,电平变化范围为12V,通信速率最大10Mbit/s(120m通信距离内),通信速率最小90Kbit/s(1200m通信距离)。

由于本系统要适应高速大流量数据通信,且要实现数据处理功能。为了保证数据传输的实时性和可靠性,我们选用TI 公司的UART产品TL16C752B。它是一个超前的解决方案,提供了两路相互独立的异步收发器,具有64字节的发送和接收FIFO 存储器,这样服务间隔时间就增加了,使外部CPU 有多余时间处理其他的应用,减少了整个UART 的中断服务时间。

本系统将TL16C752B配置在LF2407A的I/O空间,TL16C752B还提供了2个中断请求信号分别用于通道A和B申请LF2407A中断,复用LF2407A的外部中断XINT1.

2.2 CAN通信接口设计

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

本系统使用的DSP芯片已集成了片内CAN控制器,收发器采用德州仪器公司生产的SN65HVD230 CAN总线收发器,主要是与带有CAN控制器的TMS320Lx240x系列DSP配套使用,该收发器具有差分收发能力,最高速率可达1Mb/s。SN65HVD230具有高速、斜率和等待3种不同的工作模式。其工作模式控制可通过Rs控制引脚来实现。

3 系统软件设计

软件设计的第一步是初始化,包括系统初始化、异步串口和CAN初始化等。然后是主体部分即UART和CAN的通信以及数据处理等。主体部分程序主要由三大块组成:激光雷达配置模块、UART和CAN通信模块、车体避撞模块。

3.1 激光雷达配置模块

PC与激光雷达之间通过固定的数据格式进行通信,配置激光雷达的流程如下:

(1) 首先打开串口,初始化, 等待激光雷达返回开机初始化的应答数据。

(2) 使用默认的密码"SICK_LMS",改变操作模式为"安装模式", 并等待雷达应答数据的返回。

(3) 配置激光雷达和UART串口的速率。先将激光雷达波特率改为500K,等到返回修改成功的应答数据后,再将UART串口的波特率也改为500K。

(4) 设置扫描宽度和角度分辨率,扫描宽度180度,角度分辨率为0.5度。

(5) 请求激光雷达的配置数据,目的是获得一些参数的值,放到数组中,然后修改部分参数的值,并用命令77h将参数写到激光雷达中。

(6) 切换到监控模式,获得激光雷达连续扫描数据。

此后雷达便开始以26.6毫秒的周期将测量数据以500Kbps的通信速率发送给接口卡。

3.2 UART和CAN通信模块

UART采用中断方式接收激光雷达发送过来的数据,因为数据传输速率为500Kbps,接收中断非常频繁,中断程序过于复杂会延误后续的数据处理,所以整个中断程序非常简短,不超过20条指令。当主程序检测到UART接收到一桢数据后,就将数据写入CAN邮箱4和5,通过CAN发送给PC机。同时,CAN通信采用中断接收PC机发送过来的数据,再通过UART

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

网站地图

Top