首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA和DSP的微振动传感器信号采集系统设计(2)

基于FPGA和DSP的微振动传感器信号采集系统设计(2)

2.3 FPGA和DSP接口
系统设计采用FPGA和DSP双核心,FPGA在并行运算方面有很高的效率,可负责控制信号的采集和预处理,而DSP擅长信号处理,负责信号的算法,保证系统的高效运行。FPGA和DSP的接口设计是保证两者进行有效通信的关键。

本系统设计中DSP通过EMIFA和FPGA相连的物理接口如图2所示。接口的信号线可分3部分:DSP对FPGA的控制线,FPGA通知DSP的中断信号线和数据线。


(1)控制线:在FPGA内部和DSP相连的是一个输出FIFO,它的片选信号、时钟信号和写使能信号对应于TMS320C6747的信号EMA_CS3,EMA_ CLK,EMA_WE信号;而读使能信号由EMA_OE,EMA_CS3和EMA_CLK共同产生,因为EMIFA的每一个读时序包含多个EMA_CLK时钟周期,在EMA_OE有效电平期间,FIFO的读使能信号只能持续一个时钟周期,否则多个数据将被读出。
(2)中断信号线:FIFO的信号线half_full和C6747的其中一个通用管脚GP4[2]相连,通过配置GPIO的配置寄存器SET_RIS_TRIG45,CLR_ FAL_TRIG45和BINTEN,GPIO4[2]电平由低到高的变化将会产生中断。
(3)数据线:EMIFA的数据线是16位,12位的FIFO的输出数据线直接和EMIFA的EMA_D低12位相连,在FPGA中配置与EMA_D高4位相连的管脚一直为0。
3 软件设计
系统软件设计包括FPGA模块和DSP模块的软件流程控制,FPGA模块内部主要是FIFO设计,控制数据的采集以及配合DSP进行通信,而在DSP模块中主要包含EDMA数据传输控制和算法处理。

3.1 FPGA的FIFO
FPGA模块采用Xilinx公司的XC4VSX35型号,其内部设计有DCM模块和FIFO模块。DCM模块和外部的晶振相连,引入时钟信号,通过DCM输出时钟信号给AD9235作时钟信号以及FPGA内部FIFO的写时钟信号。FIFO模块设有相互独立的读写时钟,是异步读写方式,能够协调模/数转换模块和DSP模块之间的工作,把数据从模/数转换模块的输出转移到DSP模块。

FIFO模块采用XC4VSX35内部的Block RAM,通过IP核配置的方式,生成所需的FIFO缓冲存储器,FIFO的写入时钟由FPGA内部的DCM提供。在写入时钟的控制下AD9235的输出数据写入FIFO缓冲器,当FIFO内数据数量达到设定值时,FIFO的half_full信号线电平由低转高,以GPIO中断的方式触发DSP的EDMA事务进行数据转移。图3是ISE7.1中FIFO的仿真时序图。
为了避免系统重置之前half_full信号上升沿导致错误的触发DSP的EDMA事件,在rst置位之前half_full置1。模/数转换模块的AD9235输出位数是12位,FIFO的输入和输出均设为12位。
3.2 DSP的软件流程
DSP模块的软件流程设计采用TI的DSP集成开发环境CCS3.3。DSP中的软件配合FPGA上的FIFO一起控制信号的采集和数据的实时处理。软件实现的功能分3个部分:系统初始化,EDMA传输控制和中断服务程序,算法处理。软件流程图如图4所示。


C6747上电后,首先进行系统初始化,设置各配置寄存器使DSP各功能模块按设计要求运行,主要配置管脚复用、PLL、PSC和EMIF。FPGA同时启动并开始控制AD9235开始采集数据,传感器的信号经过模/数转换进入FPGA的FIFO缓冲器,当FIFO内的数据量达到设定长度时,half_ full信号线电平由低转高,输出中断信号。然后,因为此信号线和DSP的通用管脚GP4[2]相连,DSP内部的EDMA3控制器会检测到此GPIO中断事务,并产生一个传输请求,按照设定的参数把数据从FPGA内的输出FIFO转移到DSP模块的SDRAM存储器。在完成此EDMA传输请求之后触发一个EDMA中断,在中断服务程序中检测SDRAM内数据长度。最后,当SDRAM内存储的数据长度达到设定的长度时,触发信号处理函数进行信号处理,譬如对信号进行滤波、小波变换、功率谱分析等。
继承事业,薪火相传
返回列表