基于DSP的移动机器人的设计与实现
率电路上下桥臂开关元件的开通区间没有重叠,简化了硬件电路设计,提高了可靠性。
3.3 4转1串口通信模块
由于DGPS接收机、磁罗盘、里程计和MC35通信模块都采用RS-232异步串行通信,而F2407只有一个串行口,所以必须将4个串口数据通过转换处理来完成与F2407的串口通信。为此研制了基于分时复用方法的4转1串口通信模块。当F2407需要某个传感器(或无线通信模块)的数据时,就通过电路选通该传感器占用F2407串口进行通信;当需要另外传感器或无线通信模块数据时,则关断上次传感器的选通,同时选通该次传感器或无线通信模块。4转1串口通信模块由3-8译码器74LS138、三态输出的四总线缓冲门74LS125和电平转换器MAX232等组成,其电路原理图如图3所示。
3.4 定位传感器
3.4.1 DGPS接收机
GPS(全球定位系统)是基于卫星的无线电导航系统,它提供一种廉价实用的可在全球范围内确定位置、速度和时间的工具。GPS由24颗卫星(21颗工作星、3颗备份星)组成星座,星座分布在与地球赤道面倾角为55°的6个轨道面上,其运行周期为11小时58分,轨道半径为20200km,各轨道面夹角为60°。每颗卫星向地球发射L频段的特高连续波,调制两种伪随机码(军用高精度保密P码和民用C/A码)。这样的分布特点保证了用户在地球上任何地点、任何时间至少可以连续地收到4颗以上卫星的导航信号,从而联立解算出接收机的三维坐标以及接收机和GPS间的时间偏移。三维坐标采用ECEF笛卡儿坐标系或大地坐标系如WGS84。
虽然美国政府于2001年5月取消了民用C/A码的可选择性保护,但民用导航型GPS接收机的单点实时定位精度只能达到25m左右,不能满足系统的定位导航要求。而采用实时差分GPS(DGPS),其定位精度可以达到2~5m,该精度已能满足系统定位和导航的要求。
为此研发了单基站DGPS(SRDGPS)系统,其结构框图如图4所示。基准站由ALLSTAR BASE GPS接收机、天线和MDS无线电发射台、天线组成,流动站由SUPERSTAR GPS接收机、天线和MDX无线电接收台、天线组成。其中基准站安装在上海交大徐家汇校区教学一楼楼顶,该基准站能覆盖方圆30公里的范围,流动站安装在车载单元上。
3.4.2 数字罗盘和车速传感器
采用HoneyWell公司的HMR 3300数字罗盘作为移动机器人的方向检测传感器。其主要技术指标为:(1)1度航向精度,0.1度分辨率;(2)0.5度重复性;(3)±60度倾斜俯仰范围;(4)15Hz响应时间;(5)-40±85度工作温度;(6)6~15V直流电压。
同时采用用于大众汽车公司桑塔纳2000型轿车的霍尔车速传感器作为移动机器人的车速传感器。其工作原理是以霍尔传感器为变换元件,将机械旋转量转化为电脉冲信号输出。主要技术指标为:(1)输出波形为矩形脉冲,占空比为50%;(2)每旋转一周产生6个脉冲;(3)额定电压为12V。
4 电源模块
电源模块需分别给各传感器、DSP芯片、其它芯片和电机供电。其中,磁罗盘、码盘和DGPS接收机使用12V直流电压,DSP芯片使用3.3V直流电压,其它芯片使用5V直流电压,还有电机电源使用12V直流电压。所以,采用1节12V的直流蓄电池(4AH),直流5V通过ST半导体公司的L7805和扩流用的功率管实现,DSP芯片用3.3V电源采用ON半导体公司的1SMB5913BT3实现。F2407正常工作时,所有电源管脚都为3.3V;写入FLASH存储器时,VCCP引脚为5V供电;复位时,复位电路会产生一个10μs宽度的持续低电平使芯片复位。
5 控制器程序结构
DSP程序由五大功能模块组成,分别为系统初始化模块、串口通信模块、路径引导模块、驱动电机控制模块和转向电机控制模块。TI公司提供了用于C语言开发的CC和CCS平台。该平台包括了ANSI C优化编译器,从而可以在源程序级进行开发调试。这种方式大大提高了软件的开发速度和可读性,方便了软件的修改和移植。但在某些情况下,代码的效率还是无法与手工编写的汇编代码的效率相比。此外,用C语言实现芯片的某些硬件控制也不如汇编程序方便,有些甚至无法用语言实现。为了充分利用芯片的资源,更好地发挥C语言和汇编语言进行软件开发的各自优点,采用混合编程方法将两者有机结合起来,兼顾两者的优点,避免其弊端。系统的框架如图5所示。下面对关键的几大模块进行简要的阐述。
5.1 串口通信模块
该模块程序采用串口中断方式实现,主程序主要由系统初始化、串口初始化、串口中断设置和等待中断组成。而中断子程序分为发送子程序和接收子程序。本文给出发送子程序流程图。主程序及发送子程序流程图如图6所示。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)