1、基于 DM642 的机器人双目视觉系统设计自动化技术与应用2006 年第 25 卷第 6 期计算机应用ComputerApplications基于 DM642 的机器人双目视觉系统设计王科俊,李艳波,李国琴(哈尔滨工程大学,黑龙江哈尔滨 150001)摘要:本文介绍了基于 TMS320DM642 和 FPGA 芯片 XC2S3OOE 的实时双路图像处理系统的硬件和软件设计流程,给出了这个实时图像处理系统核心部分的硬件原理图,介绍了 DM642 的软件开发工具,给出了系统的软件设计流程图.关键词:DM642;实时性;FPGA;DSP/BIOS中图分类号:TP242.62 文献标识码:B 文章编号
2、:10037241(2oo6)o60034-03TheDesignofRobotBinocularVisionSystemBased.642ystem15aseOnDIVl642WANGKe-jun,LIYan-bo,LIGuo-qin(HarbinEIlgiIlengUniversity,Harbin150001,China)Abstract:Thispaperpresentsthehardwareandsoftwaredesignprocedureofarealtimedoublechannelimageprocesssystems,whichisbasedonTMS320DM642and
3、FPGAchipXC2S300E.ThesoftwaredevelopmenttoolofDSPisdiscussed.Andthesoftwaredesignflowchartofthesystemisalsopresented.Keywords:DM642;realtime;FPGA;DSP/BIOS1 引言数字图像处理理论和技术的飞速发展使得大多数图像处理的问题都转变为用数字信号处理的形式来解决.数字图像处理有两大优势:第一,数字信号处理中存在大量成熟的快速算法 ,如:F,FHT 等,这些算法大量的应用到图像处理中 ;其次,随着超大规模集成电路的发展,DSP 的处理速度,内部存储器容量等
4、等大大提高,为实时图像处理提供了最优的解决方式,这就是DSP+FPGA 相结合的设计方式.这种方式下,用一片高速 DSP完成图像处理算法,然后利用 FPGA 的在控制和协作处理上的优势,将 DSP 从控制回路中解脱出来,全力投入到运算中,能够获得最高的工作速度和稳定性.2 系统简介我们所设计的系统的结构如图 l.该系统是自主移动机器人无线遥控遥测系统双目视觉部分.这个系统包括两个架设在云台上的摄像头,它拍摄被跟踪目标的图像,通过视频解码器收稿日期:2006101834IToaOmofAutomationAppl_瞄onsSAATII5H 处理后送入 DSP,DSP 通过这些图像信息,判断出被跟
5、踪物体的运动方向,相对速度,把每帧图像处理后,提取出来的特征值(位置,速度等运动状态信息)送到 FPGA,FPGA 通过无线模块 ptr8000 把这些信息发送到控制台,控制台通过被跟踪物体运动状态的改变,控制机器人调整自己的运动状态,进行跟踪.图 1 系统结构简图3 系统硬件设计3.1 方案论证DM642 是 rI1 公司推出的针对多媒体处理领域应用的 DSP(主频 600M),有 4800MIPS 的峰值计算速度.我们采取每秒钟处理 6 帧图像,那么处理每帧图像的时间就为 0.1667s,这段时计算机应用2.omputerApplications自动化技术与应用2006 年第 25 卷第
6、6 期间 DM642 能完成的最大指令个数是 800M 条,我们采集的每个图像是 320*240 像素的 16 位 RGB 图像,则每一幅图像的大小约是 300Kbit,每次同时处理两帧图像,两帧图像也就是 4 幅 1.2Mbit,我们对采集到的图像要进行图像预处理,图像去噪,边缘检测,最后完成匹配.图像预处理对图像的每一个像素点进行一次加乘运算,生成灰度图像,这个过程的运算量大约为图像像素值的 3 倍,大约 1M.图像去噪的算法我们采用移动平均法 ,计算量约为像素值的 10 倍,大约 4M.边缘检测算法采用 Roberrs 算子,这个过程运算量比较大,但是不超过 1(30 倍像素值,小于 4
7、0M,匹配时我们这是将边缘上的交叉点提取出来进行运算 ,运算量很小.加上特征提取,整个运算量不到 50M,而我们最高能够获得 800M 的处理能力,所以 DM642 的计算能力完全胜任这个项目中的算法,而且为系统提供了很大的裕量.3.2 硬件结构整个系统硬件有 DM642,XC2S300E(FPGA),视频解码器SAAT115H,32MSDRANI,4MFLASH,电源管理芯片 TPS543IOPWP,无线模块R8000.DM642 提供了 64 位宽的数据线,所以我们将两个内存模块 MT48LCM32B2 共用一组地址线,而数据线分别接到 DM642 的高 32 位和低 32 位数据线上,这
8、样就获得了 64位数据总线宽度.FLASH 存储器的低八位也接到这组数据线上,由于 FLASH 存储器在系统初始化完毕后和 DM642 之间没有数据交换,所以在实验过程中没有总线冲突的情况发生.系统需要两路视频输入,所以在设计中我们采用了两片视频采集卡分别连接到了 DM642 的视频端口 0 和 1.初始化配置两片采集卡采用 12C 总线(时钟线 SCL 和数据线 sDL).图像数据的传输使用 D70,由 SAAT115 提供同步时钟信号 SCLK 和XI-ISYNC.第一片采集卡和 DM642 视频端口 0 连接方式示意图如图 2,第二片采集卡和端口 1 的连接方式相同,只是共用配置线 sC
9、L 和 SDL.吕 AA111,D【1n】目 CLKXHBVHCBCL宣 DLDM6q 己10“pIl9】nCLKnnCTL 口音 CLE;DL图 2DSP 与视频解码芯片 SAAT115 连接图系统的控制完全由 FPGA 来完成,我们使用它来实现以下功能:执行中断逻辑控制,和 DSP 之间通信,传输 DSP 提取出的运动状态特征值;用于实现系统各部分的粘合逻辑;FPGA 的内部寄存器映像在 DSP 的地址空间上,可通过对寄存器的读写来配置系统参数;控制板子上的调试指示灯.设计中 FPGA 芯片我们选用 Xihnx 公司的 XC2S300E.我们为它扩展了一片专门的初始化芯片 XCF02S,存
10、放它的初始化配置程序和整个系统的逻辑控制程序 J.DM642 的内核电压是 1.4V,I/O 电压是 3.3V.而且上电,掉电次序有严格的要求,应当保证内核电源(CVDD)先上电 .原因在于:如果外部 I/O 引脚先上电,芯片缓冲,驱动部分的晶体管将在一个未知状态下工作,这是非常危险的.因此,我们选用了 11 公司专用的电源管理芯片 TPS543IOPWP,它可以同时产生上述两种电压.我们用下面的连接方法解决了上电次序的问题:把 1.4V 模块的电源输出有效引脚 PG(powergood)连接到 3.3V 模块的允许电压输入引脚 EN.这样,只有当 1.4V 电压有效之后,3.3V 电压才开始
11、上电,这就保证了 DM642 的内核电压先于 I/O 电压上电.另外,系统中的采集卡芯片 SAA7115 需要模拟和数字两种电源.我们使用了一个磁珠和另外一片电源管理芯片配合产生了模拟 3.3V 电压,为了避免两片电源管理芯片之间的电源噪声互相干扰,我们将两个电源芯片分开设计,模拟地和数字地也分开设计,在一点接地.3.3 设计原则DM642 的工作频率达到 600M,属于高频电路,对于高频电路设计中应该注意的是:(1)采用多层板既是布线所必须的,也是降低干扰的有效手段.(2)高速电路器件管脚问的引脚弯折越少越好.高频电路布线的引线最好采用全直线,需要转折,可用 135.折线或圆弧转折,这样可以
12、减少高频信号对外的发射和相互间的耦合.(3)高频电路器件管脚问的引线越短越好.(4)元件连接过程中所用的过孔(Via)越少越好.我们发现,一个过孔可带来约 0.5PF 的分布电容,减少过孔数能显着提高速度.(5)电源层,地线层间隔 .各类信号走线不能形成环路,地线也不能形成电流环路.(6)高速接口部分如 SDRAM 加去藕电容.图 3 系统软件流程图自动化技术与应用)2oo6 年第 25 卷第 6 期计算机应用.omputerApplications4 系统的软件设计.rI 提供的基础软件包括 CSL(ChipSupportLibrary)芯片支持库,DDK(DriverDevelopment
13、Kit)设备驱动程序开发包,DSPLIB/IMGLIB,DSP/BIOS 嵌入式实时,多任务操作系统,ReferenceFrameworks 程序参考架构,XDAIS(DSP 算法标准).DSP/BIOS 是最重要的开发工具.它的代码大约 1KWords,CPU 占用率 1MIPS,这对我们的系统和 DM642 的运算能力来说,是微不足道的开销,但对我们的软件系统来说,它为我们搭建了一个非常优秀的操作系统平台:它有一个基于优先级的 ,抢先型的实时调度程序;它能够提供内存管理,实现动态存储器分配 .系统流程图如图 3.在 DSP 系统上电复位以后,TMS320DM642 开始自举启动过程,将存放
14、在 Flash 中的程序代码和初始化数据加载到目标存储空问中.加载完成以后,自举程序跳转到正常程序入口处,并开始执行(Boofload).5 系统调试(1)JTAG 接口测试我们利用 CCS 工具将一部分程序写入 SDRAM,然后查看存储器中相应部分写入的数据.图 4 是原程序的数据代码,图 44 是写入 SDRAM 后,查看数据的结果.在图 4 中阴影部分的数据与在图 5 中黑粗线所包围的数据一样,如:图 4 中地址000147c2H 到 000147c5H 处四个字节的数据依次是:9l,B3,0F,00.而在图 5 中地址是 001145EOH 一 001145E3H 处的四个字节的数据是
15、 9l,B3,OF,00.(注意 :数据在存储器中的存放顺序有大端和小端两种模式,所谓小端模式指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处.我们选择了 DM642 的小端模式,所以两个图是做记号的部分完全对应的).下图的结果证明 JTAG 接口已经工作正常,以下的工作就是通过 JTAG 接口进行其它程序的调试了.17bOh:147c0h:147dOh:147eOh:147f0h:图 4 源程序数据代码图 5 存储器中的数据代码(2)RS232 接口测试串 El 的测试主要借助了串 El 精灵和计算机中超级终端的帮助
16、,通过系统主机发送一些数据,看串口精灵接受是否正确,反之亦然.调试串口的程序如下:/initINIINTClnit();/初始化中断控制器寄存器;UART-ConfigDatauartO;tlart0.baudRate=UART 一115200;Hart0.charLength=UARTCHARLEN 一8;HaltO.stopBits=UARTSTOPBIT1;HallO.panty=UARTNOPARITY;/设定基本的通讯参数sprinff(UARrr_叫 tB,“rnnDSPFPGA“);UARTsendString(UARTO,UARToutBuff);/发送字符串变量 DSPFPG
17、A 到串口 0yb=UIgetlnput();switch(yb)easel:DraftPreview(11JRE);break;case2S11LLMENUrun();default:break;l6 结论为了验证这个系统的满负荷工作能力,我们采用了 DSP 连续采集处理的方式,试验结果表明,在我们未做软件优化的条件下,每秒钟可以采集并处理完 l2 帧图像.而在 Pc+采集卡模式上运行程序时,Pc 机每秒钟只能处理并发送 2 帧双目图像的信息.综上所述,DM642+FPGA 的实时图像处理系统具有 Pc机无法比拟的高速性,必将在以后广泛流行起来.参考文献:1李方慧,王飞 ,何佩琨,TMS320Cfo0( 系列 DSPs 原理与应用(第二版)M,北京 :电子工业出版社,2003.2徐华根,唐慧明 ,杨黎波,新型多媒体处理器 DM642 及其应用J.电视技术,2005,(1):3黄智伟,FPGA 系统设计与实践M,北京:电子工业出版社,2005.4尹勇,欧光军 ,关荣峰.DSP 集成开发环境 CCS 开发指南M,北京:北京航空航天大学出版社,2003.5www.ti.c1)|T1作者简介:王科俊(1962 一),男,教授,博士生导师,主要从事模式识别理论与应用,智能理论与应用研究.