吳 杰
(中國電子科技集團公司第二十研究所,陜西 西安 710068)
DSP在航空、航天、雷達和通信領域有著廣泛的應用,是航空、航天計算機和各數據處理系統的重要組成部分之一。但DSP在空間環境中對單粒子翻轉、單粒子功能中斷較敏感?;贔PGA的DSP檢測系統可在輻射環境條件下對DSP器件各功能模塊和電參數進行檢測。
整套檢測系統硬件如圖1所示,包括DSP測試板、安捷倫電源、PC機以及連接器等。DSP測試板作為檢測系統的核心部分,主要完成以下功能:
(1)與PC機界面通信;
(2)與被測DSP器件通信;
(3)存儲、檢測、判決被測DSP的狀態。
DSP測試板分子母板結構具體組成如圖2、圖3所示。

圖1 DSP測試系統組成
測試母板的核心是FPGA,選用XILINX公司生產的Virtex-5系列XC5VSX95芯片,主要任務是DSP接口電路設計、網絡芯片通信接口設計、邏輯判斷,以及大量數據存儲單元。搭建初步的設計模塊,考慮其邏輯資源占用量占器件總資源的70%以下為宜。V5X95所含的Block RAM為8 784 kb,且留有一定測試余量。用戶可定義的I/O達640個,可配置320對LVDS,邏輯資源包括14 720個Slices,能夠滿足系統設計的要求。同時XC5VSX95分為-12,-11,-10三個等級,內部時鐘最高可達500 MHz,450 MHz,400 MHz。等級越高性能越好,相應成本也越高。這里選用-11等級,外部包括A/D,D/A,RS 422,W5100,SRAM等資源,測試母板的供電電源與子板的相互獨立。母板和子板通過高密度高速連接器相連。

圖2 DSP測試板母板組成圖

圖3 測試平臺子板設計圖
子板主要由4片DSP器件和外圍電路組成,使用浮點DSP SMJ320C6701,最高時鐘頻率為167 MHz,它采用超長指令字(VLIW) 體系結構,每個周期可執行8條32位寬的指令。C6701片內包含64 kB的數據存儲器和64 kB的程序存儲器,總計1 Mbit的片內RAM。2個同步串口,32位的外部存儲器接口,外部存儲器接口可用于SDRAM,RAM,ROM引導等。每個 DSP器件的電源和外圍電路相互獨立,各DSP電源的接口電壓和內核電壓以及模擬電源也單獨分開。電源由外部電源模塊提供。
DSP器件均支持FLASH加載,遠程JTAG加載以及HPI加載功能,且能夠支持DSP程序在片外SRAM運行。
DSP檢測板的核心部分為母板上的FPGA,主要完成與PC機界面通信,與被測DSP器件通信,存儲、檢測、判決被測DSP的狀態功能。子板主要為被測DSP器件提供基本的運行環境,主要完成DSP程序的HPI加載、寄存器檢測、I/O接口檢測、指令集檢測、外部中斷檢測、浮點運算檢測。本文著重介紹母板FPGA設計。FPGA處理流程如圖4所示。

圖4 FPGA處理流程圖
本設計采用的網絡通信芯片為W5100。W5100 是一款多功能的單片網絡接口芯片,內部集成有10/100 Mbps以太網控制器,使用W5100 可以實現沒有操作系統的Internet 連接。W5100 內部集成了全硬件的TCP/IP 協議棧、以太網介質傳輸層(MAC)和物理層(PHY)。W5100 內部還集成有16 kB 存儲器用于數據傳輸。使用W5100 不需要考慮以太網的控制,只需進行簡單的端口(Socket)編程。W5100 提供3 種接口:直接并行總線、間接并行總線和SPI 總線。W5100 與MCU 接口非常簡單,就像訪問外部存儲器一樣。以太網傳輸框圖如圖5所示。
W5100芯片的特點:
(1)支持硬件化TCP/IP 協議;
(2)內嵌10BaseT/100BaseTX 以太網物理層;
(3)支持自動通信握手(全雙工和半雙工);
(4)支持4 個獨立端口同時運行;
(5)內部16 kB 存儲器用于數據發送/接收緩存;
(6)3.3 V 工作電壓,I/O 口可承受5 V 電壓;
(7)80 腳 LQFP 小型封裝。

圖5 以太網傳輸框圖
以太網數據傳輸
(1)PC機->W5100->FPGA過程
PC機->W5100
PC機用VC++開發的Sever軟件發送數據包至W5100,FPGA讀取W5100接收緩存區的數據(W5100去除包頭包尾等信息的數據)。其中,PC機作為發送方,W5100作為接收方,收發雙方采用TCP/IP協議。W5100的RECV寄存器作為接收緩存區數據是否被讀取完成的標志,讀取完成,W5100可以接收PC機發送的新數據,未讀取完成PC機處于等待狀態(此過程由TCP/IP協議控制)。
W5100->FPGA
W5100接收緩存區有數據時,產生INT#中斷,并將RECV寄存器置1。FPGA檢測到INT#中斷標志后,根據W5100接收緩存起始地址和數據長度信息寄存器的值,讀取W5100緩存區數據,讀取完成后FPGA將RECV寄存器置0。RECV寄存器置為0時,W5100可以接收PC機發送的新數據,覆蓋接收緩存區。
(2)FPGA->W5100->PC機
FPGA->W5100
FPAG向W5100起始地址寄存器寫入發送數據起始地址,向發送數據長度寄存器寫入要發送的數據長度。FPGA發送一批數據至W5100發送數據緩存區,W5100完成發送后產生INT#中斷,并且SEND_OK寄存器置1,FPGA檢測到INT#中斷信號,讀取SEND_OK寄存器值,若為1,則繼續向W5100發送一批數據;若為0,則FPGA處于等待狀態。
W5100->PC機
W5100根據發送起始地址寄存器和發送數據長度寄存器向PC機發送數據(采用TCP/IP協議),發送完成后產生中斷并且將SEND_OK寄存器置為1。
錯誤檢測模塊的目的是檢測DSP內部存儲器和各功能模塊。其輸入信號有:PC機下行控制信號及數據,存儲模塊數據,通過HPI口輸入的DSP內部存儲器上行數據,功能測試模塊的上行數據;輸出信號有:上傳給PC機的數據,HPI口控制及輸出數據,功能測試模塊的下行數據,DSP復位控制信號。模塊如圖6所示。

圖6 錯誤檢測模塊
TMS320C6701的HPI接口是一個16 bit寬的并行端口。主機(host)對CPU地址空間的訪問通過DMA控制器實現。HPI接口的訪問主要通過三個專用寄存器來實現,它們分別是HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)和HPI數據寄存器(HPID)。由于DSP本身為32位結構,因此HPI與CPU之間的數據交換是32 bit,但DSP只提供了16 bit的外部接口,因此主機訪問實際上是通過兩次連續的16 bit傳輸組合而成32 bit。
在FPGA中設計實現的HPI接口模塊如圖7所示,其讀寫時序如圖8、圖9所示。

圖7 HPI接口模塊

圖8 HPI接口讀時序

圖9 HPI接口寫時序
為了降低由測試系統其他不確定因素,在測試C6701芯片時,其擴展的外部存儲器均由FPGA來實現,即EMIF接口電路均與FPGA相連,在FPGA內部分別實現其接口邏輯。這樣不僅便于測試,還增強了測試系統的擴展性。
在FPGA內部可以采用雙端口RAM或者FIFO配合一定的控制邏輯實現,其功能框圖如圖10所示,其讀寫時序如圖11、圖12所示。

圖10 EMIF接口功能框圖

圖11 EMIF讀操作

圖12 EMIF寫操作
McBSP的結構如圖13所示。McBSP可分為數據通道和控制通道兩部分。數據發送引腳(DX)和數據接收引腳(DR)分別負責數據的發送和接收,發送時鐘引腳(CLKX)、接收時鐘引腳(CLKR)、發送幀同步引腳(FSX)和接收幀同步引腳(FSR)提供串行時鐘和控制信號。CPU和DMA控制器通過外設總線與McBSP通訊。當發送數據時,CPU和DMA將數據寫入數據發送寄存器(DXR1,DXR2),接著復制到發送移位寄存器(XSR1,XSR2),通過發送移位寄存器輸出至DX引腳。當接收數據時,DR引腳接收到的數據先移位到接收移位寄存器(RSR1,RSR2),接著復制到接收緩沖寄存器(RBR1,RBR2),RBR再將數據復制到數據接收寄存器(DRR1,DRR2)中,并通過串口事件通知CPU或DMA讀取數據。這種多極緩沖方式使得片內數據通訊和串行數據通訊能夠同時進行。

圖13 McBSP結構框圖
C6701內部與McBSP配置相關的特殊功能寄存器主要有:串口控制寄存器(SPCR )、接收控制寄存器(RCR)、發送控制寄存器(XCR)、采樣率發生器寄存器(SRGR )、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、發送通道使能寄存器(XCER)、管腳控制寄存器(PCR),見表1所列。

表1 McBSP控制寄存器
FPGA里的McBSP模塊是與DSP的McBSP接口通信的模塊,McBSP模塊能夠通過設置參數改變波特率、可設置校驗類型(奇校驗、偶校驗和無校驗),還可設置endian(最高位在前還是最低位在前)。如圖14所示,rxclkidv是對clk的分頻系數,對時鐘clk分頻后得到的時鐘頻率是波特率的16倍,這樣做的目的是對接收到的串口數據進行多次采樣,取中間的穩定值。ver_mod選擇校驗類型,當輸入‘00’時,傳輸無校驗;當輸入‘01時’,傳輸選擇奇校驗;當輸入‘10’時,傳輸選擇偶校驗。rx為串行數據接收口。當rxready口輸出一個高脈沖時,表示rxdat[7:0]輸出一個有效的8位數據。命名以tx開頭的接口表示意義與rx開頭的接口類似,區別僅在于rx表示接收,tx表示發送。McBSP如圖14所示。
圖15是對串口接收數據進行的仿真,參數設置條件為:時鐘clk頻率為160 MHz,波特率為2 Mbps。rx為串口接收的串行數據,在rxready出現高脈沖時,接收到并行數據rxdat為‘00101001’,串口接收的數據正確。

圖14 McBSP模塊

圖15 McBSP接收數據仿真
為保證檢測系統平臺的可靠性和可測性,需要設計平臺的自檢功能。包括FPGA和DSP的接口自檢。啟動串口接口自檢,FPGA和上位機之間有2個RS 422。自檢時,RS 422在邏輯內部設置為外環,直接環回驗證串口是否正常工作。
串口自檢完成后,設置網口自檢,在FPGA內部將接收數據直接環回,測試網口是否工作正常。
完成與上位機的接口自檢后,開始進行DSP接口自檢。通過HPI接口設置接口自檢寄存器(DSP程序內部需要支持自檢設置),分別完成EMIF,McBSP0和McBSP01的自檢。
為了提高檢測系統平臺的可靠性以及可測性,需要增加如下設計:
(1)復位系統設計
復位系統支持板上按鍵復位,遠程復位以及上位機下發指令復位。FPGA內部進行復位時,要判斷DCM/PLL的locked鎖定狀態,對失鎖計數。同時增加復位的過濾毛刺功能,防止異常復位。
(2)測試寄存器設計
FPGA內部需要增加測試寄存器,監測FPGA內部可能出現的異常狀態,并且能夠在上位機發送查詢指令后,將所有的狀態數據返還給上位機,見表2所列。

表2 測試寄存器定義
為保證檢測系統平臺對RAM測試的可靠性和覆蓋率,采用通用的MBIST設計與MarchC算法,測試步驟如下:
地址0→地址N:Write 0x55
地址0→地址N:Read 0x55 – Write 0xAA
地址0→地址N:Read 0xAA – Write 0x55
地址N→地址0:Read 0x55 – Write 0xAA
地址N→地址0:Read 0xAA – Write 0x55
地址N→地址0:Read 0xAA – Write 0x55
地址N→地址0:Read 0x55
0x55和0xAA的二進制碼互補,且0,1交互,有利于全部覆蓋。
MBIST功能在FPGA內部實現,結構如圖16所示。

圖16 MBIST模塊框圖
FPGA內部設計MBIST控制模塊,實現地址,數據,控制信號產生,參考數據存儲在BLOCK RAM中,通過狀態機控制對DSP內部RAM的讀寫,將DSP返回數據和參考數據做比較,輸出比較結果,上報給上位機。
DSP檢測系統上位機界面如圖17、圖18所示。通過上位機界面加載測試數據,網口下發測試數據和控制指令到母板,接收到指令后母板FPGA 通過與DSP的HPI接口完成自檢。通過母板的網口,上位機可以檢測到回傳的測試數據,并進行比對。試驗表明系統測試功能正常。

圖17 DSP檢測系統上位機界面

圖18 測試數據
本文設計的DSP檢測系統利用FPGA接口設計靈活、邏輯判斷能力強,數據存儲單元容量大的特點,將各檢測功能集成到同一芯片上,降低了設計難度,縮短了開發周期,系統可擴展性強,集成度高,便于攜帶,具備遠距離操作能力。同時也為其他檢測系統的設計提供了參考。
[1] VERILOG.數字系統設計教程 [M].北京:北京航空航天大學出版社,2010:8.
[2] 高級FPGA設計結構、實現和優化 [M]. 北京:機械工業出版社,2012.
[3] XILINX.FPGA開發實用教程[M].北京:清華大學出版社,2010:3.
[4] XC5VSX95 date sheet[Z].美國:賽靈思,2012.
[5] W5100 date sheet[Z].韓國:WIZnet,2008.
[6]唐文龍,田茂,吳志強,等.基于SoC FPGA異步通信接口的實現[J].物聯網技術,2015,5(12):38-39.
[7]倪震明.基于FPGA的多路隔離信號存儲系統設計[J].物聯網技術,2017,7(5):50-52.
[8]鄭超,王雪梅,倪文波.基于FPGA和DSP的超聲波檢測系統設計[J].中國測試,2010,36(6):53-56.