利用PCI2040将TMS320VC5420桥接到PCI总线上
在HPIRS脚从低电平过渡到高电平时,同时保持A_RS和B_RS脚处于高电平也可以在两个核处于复位状态的同时将应用程序代码下载到DSP中。下载完之后,可以通过对地址2FH的写操作将子系统拖出复位状态。另外,可以根据SELA/B的值选择指定的子系统。
>
第二种,使用Power-on复位逻辑复位每个子系统(A_RS和B_RS),这时需要将HPIRS脚连接到PIC2040的HRST脚。注意,当应用程序下载完成之后,必须有一个向地址2FH的写操作,以将子系统拖出复位状态。
2.4 对同一个DSP产生的两个HINT中断的处理
根据连接到PCI2040的TMS320VC5420数量可决定多个中断的处理方式。
如果有两个或更少的TMS320VC5420,可以将第一个TMS320VC5420的A_HINT连到HINT0,将B)HINT连到HINT1。将PCI2040的HINT2和HINT3连接到第二个TMS320VC5420的A_HINT和B_HINT(如图4),这种情况下存储器的设置利用映射方式1。
如果板子上含有多个两个的TMS320VC5420,此时需要将每个DSP上的两个中断相与(如图5)。每个DSP上的中断共享PCI2040的同一根中断线,这样就无法知道某个DSP上到底到个子系统申请的中断。此时必须向每个子系统中HPLC寄存器的HINT位写1,这种情况下存储器的设置利用映射方式2。
3 软件方面的考虑
C6X有一个16位的HPI接口,使用32位的字长,所以所有的HPI操作需要两个HPI周期。既然PCI2040的16位接口用来与C6X接口,所以PCI2040也需要两个HPI周期。与C6X不同,TMS320VC5420使用16位的字长,这样只需要一个HPI周期就可以完成一次操作。所以程序员通过PCI2040访问TMS320VC5420时,必须知道对DSP的读和写需要遵循特殊的原则。
3.1 向HPIA、HPIC和HPIC寄存器写数据
当向HPIA(HPI地址寄存器)、HPIC(HPI控制寄存器)和HPID(HPI数据寄存器)写数据时,由于PCI2040对HPI口两个周期的操作是针对同一个寄存器,所以第一个周期写的数据会在第二个周期被覆盖。故应将数据多次写到寄存器中,对保证写入数据的正确(如图6)。
3.2 从HPIA、HPIC、HPID寄存器读数据
当从HPIA、HPIC、HPID寄存器读数据时,PCI读这些寄存器两遍,返回PCI双字节的上下两部分(如图7)。
3.3 利用自动增特性
为了最大提高HPI的性能,在读和写HPID寄存器时,利用DSP寄存器在第一个和第二个HPI周期中HPIA的自动增特性。自动增特性使得经PCI总线可以对两个字连续的进行读和写,最终使得一次性可以读写32位的字长,这样就有效地加速了数据传输速率。
《利用PCI2040将TMS320VC5420桥接到PCI总线上(第2页)》