电控喷油雾化检测DSP和FPGA通信模块

2013-10-25 16:33 来源:电子信息网 作者:洛小辰

随着现代测试技术的发展,要求能够对各类微弱信号、高频信号以及复杂信号进行快速、精确的记录和测量,对数据采集系统的采样速率、精度、存储量等提出了越来越高的要求。为了对电控喷油器的喷雾粒度进行精确测试,我们通过充分利用数字信号处理器(Digital Sign al Processing,DSP)强大的控制及数字信号处理能力,配合现场可编程门阵列(Field-Programmable Gate Array,FPGA)高速灵活的数字逻辑电路实现能力,提出一种基于DSP+FPC认结构的31路微电流信号的采集与实时处理系统来对喷雾粒度进行精确测试。

FPGA和DSP处理器具有截然不同的架构。在一种器件上非常有效的算法,在另一种器件上却可能效率非常低。如果目标应用要求大量的并行处理或最大的多通道流量,那么单纯基于DSP处理器的硬件系统就可能需要更大的面积、成本或功耗。一个FPGA协处理器仅在一个器件上就能提供多达550个并行乘法和累加运算,从而以较少的器件和较低的功耗为许多应用提供同样的性能。尽管FPGA在处理大量并行数据方面出类拔萃,但对于定期系数更新、决策控制任务或高速串行数学运算这类任务来说,它们的优化程度比不上DSP处理器。因此,FPGA和DSP处理器的结合为广泛的应用提供了制胜的解决方案。

FPGA和DSP各有特点,在实际系统中经常分工不同的角色。随着大规模可编程器件的发展,采用DSP+FPGA结构的信号处理系统显示出了其优越性,正逐步得到重视。FPGA是在专用ASIC的基础上发展起来的,它克服了专用ASIC不够灵活的缺点,与其他中小规模集成电路相比。其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便,而且在大批量应用时,可降低成本。DSP+FPGA结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统易于维护和扩展,适合于实时信号处理。

现在,数字信号处理器(DSP)正越来越多地应用到各种场合,大多数情况下,模拟信号通过A/D转换后,转成高速的数字信号发送给FPGA,经过缓冲FPGA向DSP传送数据,在DSP中进行核心算法的处理后,再把信号发回给FPGA,通过FPGA把发回的信号进行逻辑组合后通过D/A转换成模拟信号输出。可见,FPGA和DSP的通信是数据传输的关键。

1 DSP与FPGA相关原理和外设

本实验所用的是TMS320C6713系列DSP芯片和ALTERA Cyclone II系列FPGA芯片。FPGA通过DSP的EMIF接口,在DSP的EDMA控制下与DSP进行数据传输。因此,DSP与FPGA的相关原理和DSP的EMIF接口的结构和各端口的功能需要简单的了解。

EMIF是外部存储器和TMS320C6713片内单元间的接口。CPU访问片外存储器时必须通过EMIF,EMIF接口由一组存储器映射的寄存器进行控制与维护,包括配置各个空间的存储器类型和设置读写时序等。

扩展的直接存储器访问控制器(EDMA)主要负责片内的存储器与其他外设之间的数据传输。EDMA进行数据传输时,有2种启动方式:一种是由CPU启动,另一种是由同步事件触发。每一个EDMA通道的启动是相互独立的。

FPGA分为两种:基于查找表的FPGA和基于乘积项的FPGA。查找表(Look Up Table,LUT)本质上就是一个RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。基于乘积项的FPGA可分为3块:宏单元(Macrocell)、可编程连线(PIA)和I/O控制块。宏单元是器件的基本结构,由它来实现基本的逻辑功能;可编程连线负责信号传递,连接所有的宏单元;I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。

2 DSP与FPGA的通信模块设计流程

DSP的软件开发大体有3种方式:第一种是直接编写汇编语言程序进行编译连接;第2种是编写C语言程序,用C语言优化软件进行编译连接;第3种是混合编程模式,程序中既有汇编代码,又含有C语言代码。使用汇编语言开发程序的设计人员必须熟悉DSP芯片的内部结构。相比C语言,汇编语言开发程序要繁琐的多,但是汇编程序执行起来更加高效。所以对于耗时较大的算法或在实时性要求较高的场合最好用汇编语言开发程序,而在DSP应用较为复杂而实时性要求较低的场合可以用C语言进行开发。这样,既满足了系统的实时性要求,又加快了程序开发的进度。最灵活的方法还是采用混合编程模式开发DSP的用户程序。

1


FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模FPGA设计一般选择“自顶向下”的设计方法。所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可返回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。

基于DSP的FPGA通信模块设计流程如图1所示。首先在FPGA中创建双口RAMl和RAM2,A/D采样的数据传送到RAMl中,然后RAM1中的数据经过EMIF被读入到DSP中进行实时处理运算,处理后的结果数据在经过EMIF写入到RAM2中,RAM2可以外接LED显示屏显示处理运算结果。在此过程中,RAM1和RAM2共用地址总线和数据总线,在RAM1读和RAM2写数据总线之间插入高阻模块,以防止数据总线冲突。

1 2 3 > 
数字信号处理 通信模块

相关阅读

暂无数据

一周热门