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