基于TMS320C6455的高速SRIO接口設(shè)計
請求包以物理層字段開始。S位指示這是一個包還是一個控制符號,AckID表明交換結(jié)構(gòu)器件將使用控制符號來確認(rèn)哪一個包,Prio字段指示用于流量控制的包優(yōu)先級,TT為目標(biāo)地址和源地址字段指示傳輸?shù)刂返臋C(jī)制類型、報應(yīng)被遞送到的器件的地址和產(chǎn)生包的器件的地址,F(xiàn)type表示正被請求的事務(wù),長度字段等于編碼后事務(wù)的長度,SRIO事務(wù)數(shù)據(jù)的有效載荷長度從1到256字節(jié)不等,源事務(wù)ID指示發(fā)送器件的事務(wù)ID,SRIO器件在兩個端點(diǎn)器件間最多允許256個未完成的事務(wù)。對于存儲器映射事務(wù),跟隨在源事務(wù)ID后面的是器件偏移地址字段,用于指示數(shù)據(jù)的存放地址,CRC為校驗(yàn)碼。
響應(yīng)包與請求包類似,狀態(tài)字段指示是否成功完成了事務(wù),目標(biāo)事務(wù)ID字段的值與請求包中斷事務(wù)ID字段的值相等。
2.3 SRIO基本讀寫和門鈴操作
根據(jù)包的格式的不同,將事務(wù)劃分成很多類型,其中最重要的類型有三種:NREAD(基本讀操作)、NWRITE(基本寫操作)、DOORBELL(門鈴操作)。 通過這三種類型的組合就可以完成所有的存儲器讀寫操作。在介紹讀寫操作之前,先介紹一下與SRIO有關(guān)的DMA操作。
在C6455上,SRIO數(shù)據(jù)傳輸和DMA傳輸是結(jié)合的。此DMA與EDMA方式是獨(dú)立的,當(dāng)進(jìn)行SRIO傳輸時,DMA以自動方式啟動。對與發(fā)送方來說,DMA將數(shù)據(jù)從L2 SRAM搬移到SRIO端口,對于接收方來說,DMA將數(shù)據(jù)從SRIO端口搬移到L2 SRAM內(nèi)存。因此,在進(jìn)行傳輸時,讀寫地址是直接顯示在包里的,而且此地址就是被讀寫的DSP的地址。換句話說,DSP可以對另一片DSP的L2 SRAM直接進(jìn)行讀寫操作。圖4就是自動DMA的傳輸操作。
讀寫操作和門鈴操作主要由圖5中的7個寄存器進(jìn)行控制,這些寄存器里的值會自動加入到包中。在SRIO總線上,每個SRIO設(shè)備都有一個相應(yīng)的設(shè)備地址,設(shè)備地址好比一個SRIO設(shè)備的ID,用于區(qū)別不同的SRIO設(shè)備。當(dāng)SRIO總線上的一個SRIO設(shè)備進(jìn)行讀寫訪問時,它發(fā)送的包就含有設(shè)備地址,只有自身設(shè)備地址與包的設(shè)備地址符合的SRIO設(shè)備才會對此次傳輸做出響應(yīng)。SRIO Address MSB和SRIO Address LSB共同構(gòu)成64-bit尋址,指示的是被訪問SRIO設(shè)備的地址。開發(fā)板上只用到32-bit尋址,因此,SRIO Address MSB為0,SRIO Address LSB指示的是被訪問的DSP的地址。DSP address指示的是本地DSP的地址。Byte_count這一項(xiàng)給出的是傳輸字節(jié)數(shù),一次讀寫操作(可以是很多包)最多可以傳送4Kbytes的數(shù)據(jù)。DestID是目標(biāo)設(shè)備的ID號,用來區(qū)分SRIO總線上的設(shè)備。Drbll Info用于門鈴事件,通過此位段的設(shè)置,從而向目標(biāo)DSP產(chǎn)生中斷。Packet Type用來指示此次傳輸?shù)念愋停鏝READ、NWRITE和DOORBELL等。
圖6是SRIO模塊的NREAD、NWRITE和DOORBELL程序編寫流程圖。首先初始化SRIO端口,此過程主要需要配置和使能PLL模塊,使能并配置接收模塊,使能并配置發(fā)送模塊,使能并配置中斷模塊。配置這些模塊特別要注意的是使主DSP和從DSP的時鐘模塊工作在相同的波特率。初始化完成后,查詢SRIO鏈路是否成功建立,如果SRIO鏈路沒有建立,則重新初始化SRIO端口,直到SRIO鏈路建立為止。鏈路建立后就可以進(jìn)行讀寫操作和門鈴操作,兩片DSP之間可以進(jìn)行高速的數(shù)據(jù)傳輸。實(shí)際測試表明,DSP間的數(shù)據(jù)傳輸可工作于1x和4x模式,每種模式可以正常工作于每通道3.125Gbps 的傳輸速率。
3 C6455間的SRIO加載
3.1 C6455引導(dǎo)模式
在C6455的地址空間0x00100000到0x00107FFF集成了32K的內(nèi)部ROM。此ROM中固化了一段 “boot loader”的引導(dǎo)代碼,它主要作用是在DSP上電時,對DSP進(jìn)行必要的配置,以便輔助HPI/PCI/SRIO等接口進(jìn)行加載;另外,它還可以將代碼從外部存儲器讀到內(nèi)部L2 SRAM,以完成代碼加載。
交換機(jī)相關(guān)文章:交換機(jī)工作原理
合成孔徑雷達(dá)相關(guān)文章:合成孔徑雷達(dá)原理
評論