APP下载

基于FPGA的双DM 642并行通信系统的研究

2013-10-15杨皓宇薛双苓郭宝强葛曼玲

制造业自动化 2013年4期
关键词:处理器逻辑驱动

杨皓宇,薛双苓,王 磊,郭宝强,葛曼玲

(1.河北工业大学 电气工程学院 天津 300130;2.廊坊职业技术学院 电气工程系,廊坊 065000)

0 引言

近年来随着人们对数据的信息量、处理效率和系统实时控制精确度的要求不断提高,对由数字信号处理器(Digital Signal Processor)简称DSP为中心处理单元的系统要求越来越高。它是一类为高速处理数字信号和算法而设计的处理器, 其系统架构和控制策略会影响整个系统的数据处理能力和运行速度。而现场可编程逻辑门阵列(FPGA)可以实时地对外部或内置的RAM、ROM编程,灵活改变逻辑器件的功能,从而实现不同的控制要求。采用基于FPGA的双DM 642并行处理器的结构,可以使系统开发周期缩短,容易维护和扩展,大大拓展了单片DSP芯片性能,从而提高了系统的整体性能。

1 系统的硬件设计方法

1.1 系统总体结构

基于FPGA的双DM 642通信系统由CMOS图像传感器、两个DM 642芯片、FPGA以及SDRAM和FLASH存储器组成。系统总体结构如图1所示。可编程逻辑门阵列(FPGA)作为连接两个DM 642之间的桥梁,在系统中担负管理、接口和通信的功能;其中DM 642的SPI是由M cbsp扩展而成,两个DM 642分为主从处理器,主DM 642的SPI配置成为主接收,用于接收来自从DM 642接收的数据信息,从DM 642的SPI用于向主处理器发送通信协议信息,同DM 642的GPIO中断一起完成两个DSP的两次握手,两个处理器间的图像数据和通信协议是通过其自带的VP口进行数据传输的。

图1 系统总体结构图

1.2 CMOS图像传感器

目前市场上主流的图像传感器主要分为CMOS(Complementary Metal-Oxide Sem iconductor)型,中文称“互补金属氧化物半导体”和CCD(Charge-Coupled Device)器件,中文称“电荷耦合器件”两种。

随着CMOS技术的发展,CMOS由于其成本低、功耗低、单一工作电压、集成AD转换器、数字形式数据输出、图像大小可编程控制等优点,在摄像头、微型数码相机、扫描仪、可视电话等领域中得到越来越多的应用;本系统的CMOS图像传感器采用的是M icron 公司的CMOS彩色图像传感器MT9T001,它采用Digital Clarity Image Sensor Technology技术,具有300万像素(2048 x 1536)、43dB信噪比、简单的接口和功能寄存器,可以将窗口在水平和垂直方向随意变动、图像坐标原点任意定义、帧速率可调、隔行或列输出等。

1.3 DSP芯片TMS320DM 642

DSP 芯片选用的是T I公司2003年推出的TMS320DM 642,它是一款32位定点DSP芯片,属于C6000系列处理器,它采用第2代高性能增强型超长指令字(VelociTI.2)结构的DSP核及增强的并行机制,保留了C64x原有的内核结构,工作频率由内部倍频器设置,当工作在720MHz的时钟频率下,其处理性能最高可达5760M I/s。它的EM IFA接口数据总线宽度为64位,最高数据存取频率达133 MHz,可直接与大容量、低成本的SDRAM 芯片无缝连接。DM 642片上带有3个双通道(VP0、VP1、VP2)数字视频口,可同时处理多路数字视频流,集成了诸如SPI,IIC,VP,EMAC等丰富的接口,为进行视频图像采集和数据交换提供了很好的解决方案。

1.4 FPGA芯片EP3C16F484C8

根据FPGA要实现的数字信号处理功能以及存储容量和时序控制逻辑的规模,评估了所需要要FPGA的逻辑资源、管脚数量、片内存储资源等因素,最终选取了A ltera公司Cyclone III系列的EP3C80F484C8。Cyclone 系列的FPGA 是A ltera 公司针对低成本高性能的应用而推出, 具有很高的性价比。EP3C16F484C8的最大可用IO数量347,片内504Kbit的RAM可以配为单双口RAM,ROM,FIFO等各式存储模块;四个高精度的锁相环,方便地为片内的各个模块提供所需要的时钟;15408个LE(逻辑单元)为接口电路的实现提供丰富的逻辑资源。FPGA系统时钟50MHz,采用主动串行(AS)配置方式,配置芯片选择EPCS16。A ltera公司的QuartusⅡ集成开发环境简便易用,内含大量IP核,其内嵌的Signal TapⅡ逻辑分析仪更是为用户的调试提供了很大方便。

1.5 系统的接口设计

1.5.1 主DSP配置方法

1)主DSP利用M cbsp口配置成SPI,扩展引脚与FPGA相连,模式为从接收。

2)主DSP利用VP1作为视频显示,VP2作为视频采集,扩展引脚与FPGA相连。

3)主DSP的EM IF总线与FPGA相连完成对图像传感器参数的配置。

4)主DSP利用GPIO通知从DSP发送的协议还是图像。扩展引脚与FPGA。1.5.2 从DSP配置方法

1)从DSP利用M cbsp口,配置成SPI,扩展引脚与FPGA相连,模式为主发送。

2)从DSP利用VP0作为视频显示,VP2视频采集,扩展引脚与FPGA相连。

3)从DSP通过GPIO与主DSP通信,实现握手,扩展引脚与FPGA相连。

1.5.3 FPGA IO和中断管理配置方法

当有数据需要传输到DSP时,IO管理模块发出中断信号给DSP。DSP接收到中断信号后,查看FPGA内部状态寄存器中具体发生中断位。(状态寄存器位详见表1)DSP根据所判断的位寻找对应的数据,并从接口中将数据读走。DSP完成数据的读取后,将清除寄存器中对应位赋值为0,结束一次读取任务。

此协议为主DSP与FPGA之间的通讯协议。该协议的数据位宽为32位,对应所需要配置的数据,配置地址是基地址和偏移地址之和。

表1 主DSP与FPGA之间通信协议

2 系统的软件设计方法

本系统采用TI公司针对C6000系列芯片开发的DSP/BIOS操作系统进行软件设计,采用多线程技术进行多任务间同步通信;对硬件的访问是通过DSP/BIOS架构的M iniDriver方式进行的,这就保证了系统的稳定性和可靠性。

2.1 驱动程序设计

TI公司为设备驱动开发者提供了一种类/微型驱动模型(class/m inidriver model)。该模型在功能上将设备驱动程序分为依赖硬件层和不依赖硬件层两层, 两层之间使用通用接口。如图2所示, 类/微型驱动模型中的微型驱动直接控制外部设备。只要微型驱动创建了规定的函数,应用程序就可以方便地通过GIO类驱动进行调用。这些规定的函数包括:通道绑定函数(mdBindDev)、通道创建/删除函数(mdCreateChan/mdDeleteChan)、I/O请求发送函数(mdSubmitChan)、中断服务函数(ISRs)和设备控制函数(mdControlChan)。这些规定的函数将放入微型驱动的函数接口表(IOM_Fxns)中的相应位置,供应用程序通过适配模块或GIO类驱动调用。

图2 DSP/BIOS驱动分层模型

对硬件的访问都封装成对应的驱动模块,并且需要用到TI的DDK和NDK开放包,主要包括:1)对VP1和VP2的驱动设计,在DDK中TI为了降低设计难度,已经针对VP口提供了常用编码器和解码器的驱动模块,因此可以在其提供的库文件中进行修改,具体来说就是修改VPORT_CAP_Params和VPORTDIS_Params结构中位宽定义字段修改为需要的位宽格式,然后把相关函数中参数和实际用到的变量对应修改即可。修改后要重新编译工程,并将生成的库文件加入系统工程。2)对SPI的驱动设计,可以在DDK中的视频口驱动的基础上,根据GIO驱动模型,将M cbsp配置成SPI主发从接,SPI从发主接二种模式,并且配置相应参数重新编译工程,将库文件加入即可。3) 对以太网口驱动设计,TI已经在NDK中提供了TCP/IP协议栈的支持,但NDK要在自己的设计板子上运行,还需要在用户板级驱动包中添加对EMAC和MDIO初始化操作。这里在BIOS的全局初始化函数中首先对物理层芯片进行复位,然后实现两个回调函数_getConfig和_linkStatus,分别实现对MAC地址配置和以太网链路状态信息的读取。

2.2 主程序设计

主程序设计流程如图3所示。开始上电,完成主DSP和从DSP上电自启功能,实现两个DSP处理器的两次握手。从DSP初使化完成后通过SPI进行通知主DSP已经完成初始化。主DSP进行系统初始化参数配置后,进行通过SPI接收从DSP的协议;如果从DSP接收到主DSP触发GPIO到来的中断,开始启动图像采集线程,完成第一次握手。然后主DSP通过VP1发送一数据帧协议进行初始化从DSP视频口通道,从DSP通过VP2视频口接收数据帧进行采集一幅图像。通过协议解析,若判断其为一协议,则完成从DSP参数的配置,然后删除,创建视频口通道;最后通过SPI发送从DSP视频口创建完成协议,实现双DSP的第二次握手。主DSP发送开始采集信号,打开图像传感器,从而进行正常的工作,从DSP完成算法处理,然后通过VP1发送算法处理后的图像数据到主DSP的VP2口,最终通过以太网口传输到上位机进行图像显示。

图3 主程序流程图

3 仿真及实验验证

实验使用A lte ra公司提供的Quartus下的signalTap为调试工具,主DSP发送给从DSP握手协议格式包括前导码、数据长度,命令字和数据,其中前导码是进行两个DSP发送数据之间的同步;数据长度为命令字和数据长度的总和,如表2所示。FPGA配置主从DSP的VP口,SPI、GPIO如图4、图5所示。通过Signal Tap II下观测所传输的数据,启动从DSP的SPI在帧下降沿发送数据,主DSP的VP1口时钟上升沿使能。主从DSP接收的数据分别如图4、图5所示,分别对应表2的三个协议数据。实验中我们处理了300帧大小为320x240的视频图像数据,通过统计得出,每帧图像的平均算法处理时间约为15ms,视频图像传输流畅,并且通过时序仿真波形图也可以看出:基于FPGA架构的双DM 642通信系统能够进行实时、准确的数据通信。

图4 VP口数据交换接口设置

图5 SPI和GPIO接口设置

表2 协议数据格式

图6 主DSP接收到的从DSP的SPI通信协议

图7 从DSP接收到主DSP的GPIO中断

图8 从DSP接收的主DSP发送的图像数据

4 结束语

采用FPGA实现双DM 642耦合互联进行数据交换,适合于数据吞吐量大,实时性、稳定性要求高的系统,以此架构的双DM 642处理器系统已经应用在工业瓷砖生产质量检测中,系统的运行速度与先前单个DSP处理器有了很大的提高,系统的稳定高速运行使生产的效率大大提高。与传统的单DSP系统相比,该系统还能够实现系统在线模拟,即可以保持现场环境不变的情况下,重新将采集出来的图像数据下载到双DSP系统中进行分析,为系统级测试提供了很好的解决方案。该系统可进行升级和扩展,性价比较高,具有广泛的应用前景。

[1] TMS320DM 642 Video/Imaging Fixed-Point Digital Signal Processor(Literature Number:SPRS200J)[Z].Texas Instruments,2005.

[2] TM S320DM 642 DSP Genera l-Pu rpose Inpu t/Ou tp u t(GPIO) Re f e r en c e Gu id e(L ite ra tu r e Number:SPRS584A)[Z].Texas Instruments,2004.

[3] TM S320DM 642 DSP M u ltichanne l Bu f f ered Serial Port(M c BSP) Reference Guide(L iterature Number:SPRS580D)[Z].Texas Instruments, 2004.

[4] ZHOU Y ,W EI P.A real-tim e im age correlating speedometer based on FPGA parallel processing[J].Optical Technique.2006,32(1):108-110.

[5] 张雄伟,陈亮,徐光辉.DSP芯片的原理与开发应用[M].北京:电子工业出版社.2004.

[6] 徐欣,于红旗,卢启中,易凡.基于FPGA的嵌入式系统设计[M].北京:电子工业出版社,2004.

[7] 郑燕,郝建国,党剑华.基于VHDL语言与QuartusII软件的可编程逻辑器件应用与开发[M].北京:国防工业出版社,2007.

[8] 王诚,蔡海宁,吴继华.A ltera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2011.

[9] 吴继华,蔡海宁,王诚. A ltera FPGA/CPLD设计(高级篇)[M].北京:人民邮电出版社,2011.

[10] M T 9T 001 3-M EGAPIXEL D IG ITA L IM AGE SENSOR[Z].M ickon. 2009.

[11] 杨莉珺,刘铁根.基于CMOS图像传感器的嵌入式图像采集与格式转化[J].电子产品世界,2008(6):96-98.

[12] 郑燕,郝建国,党剑华.基于VHDL语言与QuartusII软件的可编程逻辑器件应用与开发[M].北京:国防工业出版社,2007.

猜你喜欢

处理器逻辑驱动
刑事印证证明准确达成的逻辑反思
基于模糊PI控制的驱动防滑仿真系统分析
逻辑
创新的逻辑
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
在808DA上使用WIFI进行驱动数据同步
女人买买买的神逻辑
ADI推出新一代SigmaDSP处理器
火线热讯