基于DSP EMIF口及FPGA设计并实现多DSP嵌入式系统
4 系统的DSP间数据通信
不同的算法代码在平台上对应不同的算法调度方法,但DSP之间数据通信分两个步骤,一是数据通信协议,另一个是数据通信。数据通信协议格式如表1(x表示0、1、…7)。
Send/Receive:MDSPx通过FPGA请求DSPx接收(D0=1)或发送。
MDSPx:向FPGA发出请求的DSP。
DSPx:MDSPx向FPGA提出要求响应的DSP。
Data_leng:MDSPx请求DSPx接收或发送的数据长度。
Data_Unit:1表示接收或发送为Data_leng K(1K= 1024bit),0表示接收或发送Data_leng。
Data_Block:表示MDSPx请求DSPx接收或发送Data_Block个Data_leng K或Data_leng。
Data _Character:MDSPx请求DSPx接收或发送的算法代码中间运行结果或最终结果。
Interr_Priority:中断优先权。
Odd_Check:奇偶校验位。
设SUM,若为奇数,则Odd_Check=1,否则为0。
Over_Lable:结束标志位,用户可自己定义。
数据通信的实现过程:若FPGA接收到MDSPx发来的请求信号,先根据D[0:37]计算出校验数据,然后与Odd_Check比较。若不等,FPGA向MDSPx发出重发请求信号的请求;若相等,且DSPx空闲时,FPGA再由Send/Receive通知DSPx接收或发送数据,并将接收到的数据传输给DSPx,同时使对应的FIFO数据通道使能。DSPx根据收到的数据信息,同样计算出校验数据,若与Odd_Check相等,则根据Send/Receive标志位,采用EDMA方式向EMIF口接收或发送Data_Block*Data_leng(或Data_Block*Data_leng K)数据。
如果FPGA同时接收到两个或两个以上的MDSPx发来的请求信号,还要由Interr_Priority判其执行的先后。
5 系统的性能分析
多DSP嵌入式处理系统中,DSP间的数据通信性能是影响系统性能的重要因素,而数据通信带宽和数据传输延迟是衡量数据通信性能的主要指标。
若系统中DSP读写FIFO的带宽为B(单位时间内DSP间的数据通信量),则:
其中,f是DSP读写FIFO的时钟,w是FIFO数据总线宽度。本设计配置Nsetup=Nstrobe=1,Nhold=0,w=32 bit,f=133MHz,因此B理论值266MB/s。
但DSP间数据通信的实际带宽Bf主要受握手时间τhandshake、写FIFO到半满时间τfifo_hf、响应GPIO口中断启动读操作时间τgpio_int err、接收数据时间τdata_receive四个延迟时间影响。其中τhandshake、τgpio_int err、τdata_receive是传输数据必需的固定时间,而τfifo_hf是由于使用FIFO缓存数据引入的额外时间。显然,FIFO的深度越长,τfifo_hf越大,额外时间就越长,则实际带宽Bf就越小,反之则越大。
为了保证DSP间正确的数据通信,要求DSPx开始从FIFO读取数据时,MDSPx还没有写满FIFO,即:
表2是DSP0分别与DSP1~DSP7传输不同大小数据时测得的平均延迟时间。图6是根据测试数据绘出的实际带宽Bf曲线。可以看出,随着传输的数据增大,Bf逐渐逼近B。因此,利用FPGA实现多DSP间的互相数据通信,既获得了较大的持续带宽,又降低了数据传输延迟。
本文设计的多DSP嵌入式系统可重构性灵活,实现容易,性能稳定,数据吞吐量大,处理数据能力强。该嵌入式系统已经成功应用到某公司的超声图像智能识别产品中。该产品利用系统中TMS320DM642对B超图像进行采集、保存、图像预处理、显示;利用7个TMS320C6416T对超声图像做相关算法处理。经测试,算法代码在单DSP(DM642 720MHz)平台处理时间小于0.4s,而在此平台处理时间小于40ms,满足实时要求。
另外,该系统还可以广泛适用于图像处理、电子对抗、雷达信号处理等各个领域。
- TMS320C672x系列浮点DSP的EMIF研究与应用(02-18)
- 异步FIFO在FPGA与DSP通信中的运用 (03-22)
- 高性能信号处理通用平台研究(01-21)
- FPGA与DSP协同处理系统设计之: FPGA与DSP的通信接口设计(06-05)
- 基于EMIF接口的数据采集系统的设计(03-17)
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)