基于SOPC的PCI總線(xiàn)高速數據傳輸系統設計
2.2 PCI總線(xiàn)異常的自動(dòng)處理
PCI總線(xiàn)DMA傳輸過(guò)程中,可能出現的異常包括:
(1)PCI總線(xiàn)上SERR信號為高,系統錯誤。
(2)PCI總線(xiàn)上PERR信號為高,數據奇偶校驗錯誤;
(3)主設備或從設備中止傳輸;
(4)主設備或從設備中止傳輸,或重試次數超過(guò)門(mén)限,導致PCI橋對總線(xiàn)讀/寫(xiě)失敗。
在偵察接收系統設計中,上述異常一旦發(fā)生,PCI接口便中斷NiosCPU,CPU接收到中斷后,通過(guò)查詢(xún)PCI橋的控制寄存器訪(fǎng)問(wèn)(Control RegisterAccess,CRA)空間,獲得異常信息。系統錯誤發(fā)生時(shí),PCI接口設備是沒(méi)有辦法恢復的,在這種情況下,NiosCPU可點(diǎn)亮指示燈,指示系統錯誤發(fā)生;其它異常情況發(fā)生后,Nios CPU可立即通過(guò)對DMA控制器的狀態(tài)空間的長(cháng)度寫(xiě)零來(lái)停止DMA傳輸,然后重新啟動(dòng)DMA傳輸,讓系統從異常中恢復過(guò)來(lái)。
2.3 提高PCI總線(xiàn)DMA速率的優(yōu)化措施
為了盡可能提高DMA傳輸速率,本方案中共采取了以下三個(gè)方面的措施。
(1)PCI總線(xiàn)的突發(fā)傳輸與Avalon總線(xiàn)的流水線(xiàn)操作
為了提高系統傳輸速率,應充分利用PCI總線(xiàn)的突發(fā)傳輸特性,使PCI總線(xiàn)處于突發(fā)傳輸狀態(tài)。為此,在系統設計中,一方面使Avalon總線(xiàn)工作于流水線(xiàn)模式下,降低Avalon總線(xiàn)的延遲時(shí)間;另一方面適當增大緩存存儲空間,避免因緩沖區滿(mǎn)造成的傳輸延遲等待。
(2)DMA控制的優(yōu)化
為了使DMA傳輸更為靈活,如程序運行過(guò)程中改變DMA長(cháng)度、讀寫(xiě)地址、數據的幀長(cháng)度,以及發(fā)生異常時(shí)程序自動(dòng)恢復等,本文中使用Nio sCPU控制DMA傳輸。CPU的主要任務(wù)是在PC使能DMA和數據準備好時(shí)啟動(dòng)DMA傳輸,應盡可能使程序緊湊,減少冗余操作,做到條件具備立即啟動(dòng)DMA傳輸。
(3)功能模塊的時(shí)鐘設置
如圖2所示,SOPC中包括7個(gè)功能組件,為了進(jìn)一步提高系統的速度,需要分別讓這7個(gè)組件的時(shí)鐘處于最佳狀態(tài)。PCI總線(xiàn)訪(fǎng)問(wèn)相關(guān)組件的時(shí)鐘為33MHz,Nios CPU相關(guān)的組件運行在150MHz時(shí)鐘上。使系統在正確穩定運行的基礎上,最大限度地提高運行速度。
3 結束語(yǔ)
本文給出了一種基于SOPC系統的PCI總線(xiàn)高速DMA傳輸方案。與傳統的使用PCI橋芯片實(shí)現PCI總線(xiàn)的方案相比,該方案將PCI橋和用戶(hù)邏輯在一片FPGA中實(shí)現,減少了硬件電路的復雜度、降低了系統成本;采用SOPC創(chuàng )建PCI橋,大大縮短了開(kāi)發(fā)周期,提高了系統的可靠性,且因使用了片上Nios CPU進(jìn)行DMA的在線(xiàn)配置和自動(dòng)異常處理,使DMA傳輸更加靈活。通過(guò)在EP3C120芯片上驗證,該設計能夠實(shí)現大于100Mbytes /s的PCI總線(xiàn)DMA傳輸速率。
評論