吳 杰
(中國電子科技集團公司第二十研究所,陜西 西安 710068)
DSP在航空、航天、雷達和通信領(lǐng)域有著廣泛的應用,是航空、航天計算機和各數(shù)據(jù)處理系統(tǒng)的重要組成部分之一。但DSP在空間環(huán)境中對單粒子翻轉(zhuǎn)、單粒子功能中斷較敏感?;贔PGA的DSP檢測系統(tǒng)可在輻射環(huán)境條件下對DSP器件各功能模塊和電參數(shù)進行檢測。
整套檢測系統(tǒng)硬件如圖1所示,包括DSP測試板、安捷倫電源、PC機以及連接器等。DSP測試板作為檢測系統(tǒng)的核心部分,主要完成以下功能:
(1)與PC機界面通信;
(2)與被測DSP器件通信;
(3)存儲、檢測、判決被測DSP的狀態(tài)。
DSP測試板分子母板結(jié)構(gòu)具體組成如圖2、圖3所示。
圖1 DSP測試系統(tǒng)組成
測試母板的核心是FPGA,選用XILINX公司生產(chǎn)的Virtex-5系列XC5VSX95芯片,主要任務是DSP接口電路設計、網(wǎng)絡芯片通信接口設計、邏輯判斷,以及大量數(shù)據(jù)存儲單元。搭建初步的設計模塊,考慮其邏輯資源占用量占器件總資源的70%以下為宜。V5X95所含的Block RAM為8 784 kb,且留有一定測試余量。用戶可定義的I/O達640個,可配置320對LVDS,邏輯資源包括14 720個Slices,能夠滿足系統(tǒng)設計的要求。同時XC5VSX95分為-12,-11,-10三個等級,內(nèi)部時鐘最高可達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) 體系結(jié)構(gòu),每個周期可執(zhí)行8條32位寬的指令。C6701片內(nèi)包含64 kB的數(shù)據(jù)存儲器和64 kB的程序存儲器,總計1 Mbit的片內(nèi)RAM。2個同步串口,32位的外部存儲器接口,外部存儲器接口可用于SDRAM,RAM,ROM引導等。每個 DSP器件的電源和外圍電路相互獨立,各DSP電源的接口電壓和內(nèi)核電壓以及模擬電源也單獨分開。電源由外部電源模塊提供。
DSP器件均支持FLASH加載,遠程JTAG加載以及HPI加載功能,且能夠支持DSP程序在片外SRAM運行。
DSP檢測板的核心部分為母板上的FPGA,主要完成與PC機界面通信,與被測DSP器件通信,存儲、檢測、判決被測DSP的狀態(tài)功能。子板主要為被測DSP器件提供基本的運行環(huán)境,主要完成DSP程序的HPI加載、寄存器檢測、I/O接口檢測、指令集檢測、外部中斷檢測、浮點運算檢測。本文著重介紹母板FPGA設計。FPGA處理流程如圖4所示。
圖4 FPGA處理流程圖
本設計采用的網(wǎng)絡通信芯片為W5100。W5100 是一款多功能的單片網(wǎng)絡接口芯片,內(nèi)部集成有10/100 Mbps以太網(wǎng)控制器,使用W5100 可以實現(xiàn)沒有操作系統(tǒng)的Internet 連接。W5100 內(nèi)部集成了全硬件的TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。W5100 內(nèi)部還集成有16 kB 存儲器用于數(shù)據(jù)傳輸。使用W5100 不需要考慮以太網(wǎng)的控制,只需進行簡單的端口(Socket)編程。W5100 提供3 種接口:直接并行總線、間接并行總線和SPI 總線。W5100 與MCU 接口非常簡單,就像訪問外部存儲器一樣。以太網(wǎng)傳輸框圖如圖5所示。
W5100芯片的特點:
(1)支持硬件化TCP/IP 協(xié)議;
(2)內(nèi)嵌10BaseT/100BaseTX 以太網(wǎng)物理層;
(3)支持自動通信握手(全雙工和半雙工);
(4)支持4 個獨立端口同時運行;
(5)內(nèi)部16 kB 存儲器用于數(shù)據(jù)發(fā)送/接收緩存;
(6)3.3 V 工作電壓,I/O 口可承受5 V 電壓;
(7)80 腳 LQFP 小型封裝。
圖5 以太網(wǎng)傳輸框圖
以太網(wǎng)數(shù)據(jù)傳輸
(1)PC機->W(wǎng)5100->FPGA過程
PC機->W(wǎng)5100
PC機用VC++開發(fā)的Sever軟件發(fā)送數(shù)據(jù)包至W5100,F(xiàn)PGA讀取W5100接收緩存區(qū)的數(shù)據(jù)(W5100去除包頭包尾等信息的數(shù)據(jù))。其中,PC機作為發(fā)送方,W5100作為接收方,收發(fā)雙方采用TCP/IP協(xié)議。W5100的RECV寄存器作為接收緩存區(qū)數(shù)據(jù)是否被讀取完成的標志,讀取完成,W5100可以接收PC機發(fā)送的新數(shù)據(jù),未讀取完成PC機處于等待狀態(tài)(此過程由TCP/IP協(xié)議控制)。
W5100->FPGA
W5100接收緩存區(qū)有數(shù)據(jù)時,產(chǎn)生INT#中斷,并將RECV寄存器置1。FPGA檢測到INT#中斷標志后,根據(jù)W5100接收緩存起始地址和數(shù)據(jù)長度信息寄存器的值,讀取W5100緩存區(qū)數(shù)據(jù),讀取完成后FPGA將RECV寄存器置0。RECV寄存器置為0時,W5100可以接收PC機發(fā)送的新數(shù)據(jù),覆蓋接收緩存區(qū)。
(2)FPGA->W(wǎng)5100->PC機
FPGA->W(wǎng)5100
FPAG向W5100起始地址寄存器寫入發(fā)送數(shù)據(jù)起始地址,向發(fā)送數(shù)據(jù)長度寄存器寫入要發(fā)送的數(shù)據(jù)長度。FPGA發(fā)送一批數(shù)據(jù)至W5100發(fā)送數(shù)據(jù)緩存區(qū),W5100完成發(fā)送后產(chǎn)生INT#中斷,并且SEND_OK寄存器置1,F(xiàn)PGA檢測到INT#中斷信號,讀取SEND_OK寄存器值,若為1,則繼續(xù)向W5100發(fā)送一批數(shù)據(jù);若為0,則FPGA處于等待狀態(tài)。
W5100->PC機
W5100根據(jù)發(fā)送起始地址寄存器和發(fā)送數(shù)據(jù)長度寄存器向PC機發(fā)送數(shù)據(jù)(采用TCP/IP協(xié)議),發(fā)送完成后產(chǎn)生中斷并且將SEND_OK寄存器置為1。
錯誤檢測模塊的目的是檢測DSP內(nèi)部存儲器和各功能模塊。其輸入信號有:PC機下行控制信號及數(shù)據(jù),存儲模塊數(shù)據(jù),通過HPI口輸入的DSP內(nèi)部存儲器上行數(shù)據(jù),功能測試模塊的上行數(shù)據(jù);輸出信號有:上傳給PC機的數(shù)據(jù),HPI口控制及輸出數(shù)據(jù),功能測試模塊的下行數(shù)據(jù),DSP復位控制信號。模塊如圖6所示。
圖6 錯誤檢測模塊
TMS320C6701的HPI接口是一個16 bit寬的并行端口。主機(host)對CPU地址空間的訪問通過DMA控制器實現(xiàn)。HPI接口的訪問主要通過三個專用寄存器來實現(xiàn),它們分別是HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)和HPI數(shù)據(jù)寄存器(HPID)。由于DSP本身為32位結(jié)構(gòu),因此HPI與CPU之間的數(shù)據(jù)交換是32 bit,但DSP只提供了16 bit的外部接口,因此主機訪問實際上是通過兩次連續(xù)的16 bit傳輸組合而成32 bit。
在FPGA中設計實現(xiàn)的HPI接口模塊如圖7所示,其讀寫時序如圖8、圖9所示。
圖7 HPI接口模塊
圖8 HPI接口讀時序
圖9 HPI接口寫時序
為了降低由測試系統(tǒng)其他不確定因素,在測試C6701芯片時,其擴展的外部存儲器均由FPGA來實現(xiàn),即EMIF接口電路均與FPGA相連,在FPGA內(nèi)部分別實現(xiàn)其接口邏輯。這樣不僅便于測試,還增強了測試系統(tǒng)的擴展性。
在FPGA內(nèi)部可以采用雙端口RAM或者FIFO配合一定的控制邏輯實現(xiàn),其功能框圖如圖10所示,其讀寫時序如圖11、圖12所示。
圖10 EMIF接口功能框圖
圖11 EMIF讀操作
圖12 EMIF寫操作
McBSP的結(jié)構(gòu)如圖13所示。McBSP可分為數(shù)據(jù)通道和控制通道兩部分。數(shù)據(jù)發(fā)送引腳(DX)和數(shù)據(jù)接收引腳(DR)分別負責數(shù)據(jù)的發(fā)送和接收,發(fā)送時鐘引腳(CLKX)、接收時鐘引腳(CLKR)、發(fā)送幀同步引腳(FSX)和接收幀同步引腳(FSR)提供串行時鐘和控制信號。CPU和DMA控制器通過外設總線與McBSP通訊。當發(fā)送數(shù)據(jù)時,CPU和DMA將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(DXR1,DXR2),接著復制到發(fā)送移位寄存器(XSR1,XSR2),通過發(fā)送移位寄存器輸出至DX引腳。當接收數(shù)據(jù)時,DR引腳接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR1,RSR2),接著復制到接收緩沖寄存器(RBR1,RBR2),RBR再將數(shù)據(jù)復制到數(shù)據(jù)接收寄存器(DRR1,DRR2)中,并通過串口事件通知CPU或DMA讀取數(shù)據(jù)。這種多極緩沖方式使得片內(nèi)數(shù)據(jù)通訊和串行數(shù)據(jù)通訊能夠同時進行。
圖13 McBSP結(jié)構(gòu)框圖
C6701內(nèi)部與McBSP配置相關(guān)的特殊功能寄存器主要有:串口控制寄存器(SPCR )、接收控制寄存器(RCR)、發(fā)送控制寄存器(XCR)、采樣率發(fā)生器寄存器(SRGR )、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、發(fā)送通道使能寄存器(XCER)、管腳控制寄存器(PCR),見表1所列。
表1 McBSP控制寄存器
FPGA里的McBSP模塊是與DSP的McBSP接口通信的模塊,McBSP模塊能夠通過設置參數(shù)改變波特率、可設置校驗類型(奇校驗、偶校驗和無校驗),還可設置endian(最高位在前還是最低位在前)。如圖14所示,rxclkidv是對clk的分頻系數(shù),對時鐘clk分頻后得到的時鐘頻率是波特率的16倍,這樣做的目的是對接收到的串口數(shù)據(jù)進行多次采樣,取中間的穩(wěn)定值。ver_mod選擇校驗類型,當輸入‘00’時,傳輸無校驗;當輸入‘01時’,傳輸選擇奇校驗;當輸入‘10’時,傳輸選擇偶校驗。rx為串行數(shù)據(jù)接收口。當rxready口輸出一個高脈沖時,表示rxdat[7:0]輸出一個有效的8位數(shù)據(jù)。命名以tx開頭的接口表示意義與rx開頭的接口類似,區(qū)別僅在于rx表示接收,tx表示發(fā)送。McBSP如圖14所示。
圖15是對串口接收數(shù)據(jù)進行的仿真,參數(shù)設置條件為:時鐘clk頻率為160 MHz,波特率為2 Mbps。rx為串口接收的串行數(shù)據(jù),在rxready出現(xiàn)高脈沖時,接收到并行數(shù)據(jù)rxdat為‘00101001’,串口接收的數(shù)據(jù)正確。
圖14 McBSP模塊
圖15 McBSP接收數(shù)據(jù)仿真
為保證檢測系統(tǒng)平臺的可靠性和可測性,需要設計平臺的自檢功能。包括FPGA和DSP的接口自檢。啟動串口接口自檢,F(xiàn)PGA和上位機之間有2個RS 422。自檢時,RS 422在邏輯內(nèi)部設置為外環(huán),直接環(huán)回驗證串口是否正常工作。
串口自檢完成后,設置網(wǎng)口自檢,在FPGA內(nèi)部將接收數(shù)據(jù)直接環(huán)回,測試網(wǎng)口是否工作正常。
完成與上位機的接口自檢后,開始進行DSP接口自檢。通過HPI接口設置接口自檢寄存器(DSP程序內(nèi)部需要支持自檢設置),分別完成EMIF,McBSP0和McBSP01的自檢。
為了提高檢測系統(tǒng)平臺的可靠性以及可測性,需要增加如下設計:
(1)復位系統(tǒng)設計
復位系統(tǒng)支持板上按鍵復位,遠程復位以及上位機下發(fā)指令復位。FPGA內(nèi)部進行復位時,要判斷DCM/PLL的locked鎖定狀態(tài),對失鎖計數(shù)。同時增加復位的過濾毛刺功能,防止異常復位。
(2)測試寄存器設計
FPGA內(nèi)部需要增加測試寄存器,監(jiān)測FPGA內(nèi)部可能出現(xiàn)的異常狀態(tài),并且能夠在上位機發(fā)送查詢指令后,將所有的狀態(tài)數(shù)據(jù)返還給上位機,見表2所列。
表2 測試寄存器定義
為保證檢測系統(tǒng)平臺對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內(nèi)部實現(xiàn),結(jié)構(gòu)如圖16所示。
圖16 MBIST模塊框圖
FPGA內(nèi)部設計MBIST控制模塊,實現(xiàn)地址,數(shù)據(jù),控制信號產(chǎn)生,參考數(shù)據(jù)存儲在BLOCK RAM中,通過狀態(tài)機控制對DSP內(nèi)部RAM的讀寫,將DSP返回數(shù)據(jù)和參考數(shù)據(jù)做比較,輸出比較結(jié)果,上報給上位機。
DSP檢測系統(tǒng)上位機界面如圖17、圖18所示。通過上位機界面加載測試數(shù)據(jù),網(wǎng)口下發(fā)測試數(shù)據(jù)和控制指令到母板,接收到指令后母板FPGA 通過與DSP的HPI接口完成自檢。通過母板的網(wǎng)口,上位機可以檢測到回傳的測試數(shù)據(jù),并進行比對。試驗表明系統(tǒng)測試功能正常。
圖17 DSP檢測系統(tǒng)上位機界面
圖18 測試數(shù)據(jù)
本文設計的DSP檢測系統(tǒng)利用FPGA接口設計靈活、邏輯判斷能力強,數(shù)據(jù)存儲單元容量大的特點,將各檢測功能集成到同一芯片上,降低了設計難度,縮短了開發(fā)周期,系統(tǒng)可擴展性強,集成度高,便于攜帶,具備遠距離操作能力。同時也為其他檢測系統(tǒng)的設計提供了參考。
[1] VERILOG.數(shù)字系統(tǒng)設計教程 [M].北京:北京航空航天大學出版社,2010:8.
[2] 高級FPGA設計結(jié)構(gòu)、實現(xiàn)和優(yōu)化 [M]. 北京:機械工業(yè)出版社,2012.
[3] XILINX.FPGA開發(fā)實用教程[M].北京:清華大學出版社,2010:3.
[4] XC5VSX95 date sheet[Z].美國:賽靈思,2012.
[5] W5100 date sheet[Z].韓國:WIZnet,2008.
[6]唐文龍,田茂,吳志強,等.基于SoC FPGA異步通信接口的實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2015,5(12):38-39.
[7]倪震明.基于FPGA的多路隔離信號存儲系統(tǒng)設計[J].物聯(lián)網(wǎng)技術(shù),2017,7(5):50-52.
[8]鄭超,王雪梅,倪文波.基于FPGA和DSP的超聲波檢測系統(tǒng)設計[J].中國測試,2010,36(6):53-56.