1756-L55M14相比握手信号控制的IDMA传输,在这种方式下,PowerPC内核除了需要初始化IDMA通道以外还要以命令的形式启动每一次的传输,所以要占用多一些的内核资源。
不过,在一次传输启动之后zui多可以传输4 GB的数据,所以只要每次传输的数据长度比较长,内核写一个寄存器的额外开销就*可以忽略不计。同时,由于内部命令触发方式不需要握手信号,不需要频繁地每几个字节就竞争一次总线控制权,所以这种方式的传输效率更高、传输速度更快。内部命令触发方式是以空间换时间——用前端大的缓冲区来换取传输速度的提升。 考虑到主控板上软硬件系统的瓶颈都在于总线带宽,而存储资源相对比较丰富,所以选择CP命令控制的IDMA传输作为数据流从FPGA到SDRAM的传输方式。
1756-L55M14传输方案设计
FPGA和MPC8260间的数据传输接口设计如图3所示。图中左侧FPGA,通过16位数据线、10位地址线、2根中断请求线和一些读写控制信号线连接到右侧的MPC8260。1756-L55M14通过64位数据线与本地内存SDRAM相连。 [align=center]
图31756-L55M14传输设计框图[/align] FPGA内部分配有两个大的存储空间,用于轮流缓冲从数据源接收到的数据。任何一个缓冲区收满后,继续接收的数据保存到下一个缓冲区,同时以中断的方式触发MPC8260启动相应的IDMA通道把数据传到SDRAM中。IDMA控制、数据同步和错误处理都由MPC8260完成,FPGA只负责收发数据和触发中断。下面分别介绍二者的程序设计。
1756-L55M14程序设计
MPC8260内部的程序处理流程如图4所示。1756-L55M14预先初始化两个IDMA通道:通道的源地址和传输数据长度等信息与FPGA中的缓冲区一一对应。当收到FPGA的中断信号之后,如果此时对应的IDMA通道空闲,则在中断处理程序中发出CP命令开始接收数据,同时将对应的IDMA通道置忙状态;否则,在FPGA中可能发生了未读取的数据被覆盖的情况,MPC8260进入错误处理程序。
FANUC A06B-6064-H312 USPP A06B6064H312
DYNAMATIC IS93AD0C015DI3 USPP IS93AD0C015DI3
HONEYWELL 51403476-150 NSFP 51403476150
GENERAL ELECTRIC 137D5195G1 USPP 137D5195G1
HONEYWELL TC-PRS021 NSPP TCPRS021
ALLEN BRADLEY 1326AB-B530E-21?-Z13 USPP 1326ABB530E21Z1?3
TEXAS INSTRUMENTS PLC PM550-110 USPP PM550110
ALLEN BRADLEY 1336E-B050-AE-E?N-HA2-L8E NSPP 1336EB050AEENHA?2
SIEMENS 6ES5-944-7UB11 NSFP 6ES59447UB11
ALLEN BRADLEY 2711P-B15C4D1 NSPP 2711PB15C4D1
FANUC A06B-0653-B011 USPP A06B0653B011
TOPEX 2200-HYC USPP 2200HYC
ALLEN BRADLEY 1785-L60B/E NSFP 1785L60BE
ALLEN BRADLEY 1395-B74-C2-P10 USPP 1395B74C2P10
ALLEN BRADLEY 2711-T10C3 USPP 2711T10C3
ALLEN BRADLEY 2711-K10C8 USPP 2711K10C8
ALLEN BRADLEY 1395-B65-C1-P12 USPP 1395B65C1P12