摘 要:隨著衛(wèi)星整機(jī)性能的提高,以往的小容量、單緩存的固態(tài)記錄器已嚴(yán)重制約了衛(wèi)星系統(tǒng)的整機(jī)性能,研制高實(shí)時(shí)性、大存儲(chǔ)容量、高可靠性的記錄器已成為目前急需攻克的課題。根據(jù)航天電子系統(tǒng)不可修復(fù),系統(tǒng)運(yùn)行穩(wěn)定性、可靠性要求非常高,可供選擇的器件不多的特點(diǎn),選用FPGA和SDRAM器件,用乒乓緩存的硬件結(jié)構(gòu)替代以往的單緩存結(jié)構(gòu),設(shè)計(jì)一套大容量、高實(shí)時(shí)性、高可靠性的固態(tài)記錄器,對(duì)研制過程中遇到的若干技術(shù)難點(diǎn)進(jìn)行深入的研究,提出了相關(guān)解決方案。解決問題的方法完全可以應(yīng)用到相關(guān)的民用系統(tǒng)中,提高了類似系統(tǒng)的穩(wěn)定性和可靠性。
關(guān)鍵詞:固態(tài)記錄器;FPGA;SDRAM;乒乓緩存
中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004373X(2008)1801703
Applications Research of Realtime Solidstate Recorder Technic
ZHOU Xiujuan1,2,CHEN Wen1
(1.School of Electronic Information and Electrical Engineering,Shanghai Jiaotong University,Shanghai,200030,China;
2.Shanghai Aerospace Electronic and Technology Institution,Shanghai,201109,China)
Abstract:With improvement of the performance in satellite,the performance in satellite is restricted with the solidstate recorder which has small capacity and single memory cache.It is the exact problem to develop the solidstate recorder which has high realtime,big capacity and high stabilization.Because aerospace electronic system can′t be repaired,the stabilization and dependability requirements are very high in system.However,the devices can be selected are not so many.FPGA and SDRAM devices are used to make a pingpong memory cache hardware configuration to take the place of single memory cache structure in the past project in the paper.The realtime of solidstate recorder is very high and the memory capacity is very big.There are plenty of problems in the research process and correlative resolvents are put forward about the problems.And the resolvents are the innovation too.The solution can be applied to all relevant civilian system,the stability and reliability of a similar system are enhanced.
Keywords:solidstate recorder;FPGA;SDRAM;pingpong cache
隨著航天技術(shù)的飛速發(fā)展,為了準(zhǔn)確保留相關(guān)重要信息,衛(wèi)星載荷對(duì)數(shù)據(jù)傳輸系統(tǒng)的實(shí)時(shí)性和固態(tài)記錄器的存儲(chǔ)容量要求在不斷提高。以往數(shù)據(jù)傳輸系統(tǒng)的固態(tài)記錄器或者采用相對(duì)獨(dú)立的讀寫方式進(jìn)行工作,實(shí)時(shí)性不強(qiáng);或者存儲(chǔ)容量不夠大,保留的信息不夠多\\3\\〗,無法滿足系統(tǒng)應(yīng)用要求。
對(duì)于普通的民用實(shí)時(shí)數(shù)據(jù)傳輸系統(tǒng),以目前的電子器件發(fā)展水平,實(shí)現(xiàn)難度不高。不過,航天電子系統(tǒng)最大的特點(diǎn)是不可修復(fù),一般的電子系統(tǒng)要求穩(wěn)定可靠地在太空惡劣的環(huán)境中運(yùn)行幾年,可靠性要求非常高是該類系統(tǒng)的基本要求,能滿足系統(tǒng)應(yīng)用要求的電子器件也不是太多\\。在研究開發(fā)過程中發(fā)現(xiàn),在可供選擇的器件中,設(shè)計(jì)一個(gè)低功耗、大容量、高速率的固態(tài)記錄器有很多問題需要解決。這里對(duì)設(shè)計(jì)中存在的若干問題進(jìn)行了深入的研究,并提出了相關(guān)解決方案。
1 器件選型
根據(jù)系統(tǒng)應(yīng)用要求,固態(tài)記錄器的數(shù)據(jù)傳輸速率至少要達(dá)到160 Mb/s以上,存儲(chǔ)容量至少要達(dá)到120 Gb以上。據(jù)調(diào)研,目前能提供的存儲(chǔ)器單片容量,SBRAM最大的存儲(chǔ)容量只能達(dá)到9 Mb,遠(yuǎn)遠(yuǎn)不能滿足應(yīng)用要求;而SDRAM單片存儲(chǔ)芯片可達(dá)到容量4 Gb、工作頻率167 MHz以上。用多片這樣的SDRAM器件級(jí)聯(lián)完全可以滿足系統(tǒng)存儲(chǔ)容量和傳輸速度的應(yīng)用要求。不過SDRAM器件需要定期刷新,應(yīng)用難度比較大。
目前FPGA器件發(fā)展比較成熟,該器件為大多數(shù)復(fù)雜數(shù)字系統(tǒng)提供技術(shù)解決方案。在復(fù)雜數(shù)字系統(tǒng)中,以FPGA為核心器件,外加一些存儲(chǔ)器件和電氣接口器件的設(shè)計(jì)方案已成為主流解決方案。不過,以往市面上提供的FPGA芯片的硬件資源一般都比較少,本課題除了數(shù)據(jù)傳輸和存儲(chǔ)的應(yīng)用要求外,還要對(duì)數(shù)據(jù)進(jìn)行一些算法處理,需用多片資源少的FPGA器件配合一些外圍電路分任務(wù)處理才能滿足應(yīng)用要求,與體積小、功耗低的設(shè)計(jì)任務(wù)相矛盾。隨著FPGA器件的發(fā)展,Xilinx公司的VirtexⅡ系列FPGA器件,其Slices可達(dá)幾百萬門,Block Memory資源豐富,器件內(nèi)部提供了大量的數(shù)字時(shí)鐘管理器(DCM)分配時(shí)鐘域,其內(nèi)部時(shí)鐘最快可以到420 MHz\\,該器件所提供的內(nèi)部資源和引腳數(shù)目可以滿足產(chǎn)品設(shè)計(jì)要求。
2 固態(tài)記錄器的工作原理
圖1是固態(tài)記錄器系統(tǒng)硬件框圖,系統(tǒng)主要由以下幾個(gè)模塊組成:相關(guān)算法處理模塊,SDRAM存儲(chǔ)模塊,SDRAM讀寫控制模塊,串口收發(fā)控制模塊,讀寫緩存模塊(由FPGA內(nèi)部的FIFO構(gòu)成)等。
圖1的工作原理如下:上位機(jī)以\"起始字符1+起始字符2+起始字符3+起始字符4+控制命令+校驗(yàn)和+結(jié)束字符1+結(jié)束字符2+結(jié)束字符3+結(jié)束字符4\"的通訊協(xié)議向串口接收電路發(fā)送相關(guān)的控制命令。當(dāng)串口接收電路接收到寫控制命令時(shí),與此同時(shí),串口發(fā)送電路向上位機(jī)以\"起始字符1+起始字符2+起始字符3+起始字符4+接收到相關(guān)控制命令+校驗(yàn)和+結(jié)束字符1+結(jié)束字符2+結(jié)束字符3+結(jié)束字符4\"通知上位機(jī)固態(tài)記錄器已經(jīng)接收到控制命令;以這種通訊協(xié)議進(jìn)行8次握手,如果8次握手通訊都是正確的,數(shù)據(jù)算法處理組合模塊輸出讀狀態(tài)控制信號(hào);當(dāng)讀狀態(tài)信號(hào)有效時(shí),輸出48位并行有效數(shù)據(jù),相關(guān)的算法處理模塊接收輸入的數(shù)據(jù)并完成相關(guān)算法處理,然后將處理后的數(shù)據(jù)寫入寫緩存FIFO中;然后由SDRAM控制器的寫控制模塊將寫緩存FIFO中的數(shù)據(jù)存入SDRAM的一個(gè)存儲(chǔ)體中;當(dāng)該SDRAM存儲(chǔ)體存滿時(shí),SDRAM控制器停止對(duì)該存儲(chǔ)體的寫操作,與此同時(shí),SDRAM讀控制器讀出SDRAM另一個(gè)存儲(chǔ)體中已經(jīng)存滿的數(shù)據(jù)存入讀緩存FIFO中,并將讀FIFO中的48位并行數(shù)據(jù)讀出采用時(shí)分復(fù)用的方案,變換成8位并行數(shù)據(jù),分6次輸入給數(shù)據(jù)算法解析比對(duì)模塊進(jìn)行處理;當(dāng)數(shù)據(jù)處理完后,輸出寫控制狀態(tài)命令,將處理數(shù)據(jù)輸出給下一級(jí)電路使用。當(dāng)讀存儲(chǔ)器中的數(shù)據(jù)全部讀出時(shí),SDRAM讀控制器停止對(duì)該存儲(chǔ)體進(jìn)行讀操作。當(dāng)完成一次讀寫操作后,下一次操作將SDRAM存儲(chǔ)體的讀寫互換,如此交錯(cuò)進(jìn)行讀寫控制即可實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理和傳輸。當(dāng)上位機(jī)以相同的通訊協(xié)議發(fā)送寫停止和復(fù)位命令時(shí),固態(tài)記錄器停止寫操作或者進(jìn)行系統(tǒng)復(fù)位操作。
3 設(shè)計(jì)中出現(xiàn)的問題和解決方案
3.1 電源和FPGA配置
這里使用Xilinx公司FPGA的主串配置方案。該配置方案的工作過程如下\\:系統(tǒng)上電時(shí),當(dāng)內(nèi)核電源VCCINT和I/O電源VCCO都達(dá)到門檻電壓值后,F(xiàn)PGA對(duì)配置模式進(jìn)行采樣;當(dāng)FPGA采樣到是主串配置方案時(shí),F(xiàn)PGA輸出配置時(shí)鐘CCLK和串行配置數(shù)據(jù);系統(tǒng)上電時(shí)PROGB和INITB兩個(gè)信號(hào)分別有1個(gè)低電平周期,INITB信號(hào)低電平時(shí)對(duì)配置芯片進(jìn)行復(fù)位,使配置芯片內(nèi)部的指針指向配置芯片的地址0,PROGB信號(hào)從低電平變?yōu)楦唠娖胶?,F(xiàn)PGA接受串行配置數(shù)據(jù)進(jìn)行器件配置,在整個(gè)過程中,DONE信號(hào)始終為低電平,當(dāng)配置成功后,DONE信號(hào)自動(dòng)拉高(如果DONE信號(hào)一直為低電平,說明配置失效)。
實(shí)驗(yàn)過程中發(fā)現(xiàn)Xilinx公司的FPGA,如果內(nèi)核電源先于I/O電源上電或同時(shí)上電,F(xiàn)PGA的配置不會(huì)有問題;如果內(nèi)核電源滯后于I/O電源上電,F(xiàn)PGA的配置往往會(huì)失效\\。關(guān)于Xilinx公司的電源供電問題,TI和National公司都提供了很好的電源管理解決方案,在做功能實(shí)驗(yàn)過程中發(fā)現(xiàn),使用該電源管理方案,F(xiàn)PGA的配置非常穩(wěn)定可靠,沒有發(fā)生過配置失效的現(xiàn)象。不過,該電源管理方案中所使用的器件沒有宇航級(jí)的器件,無法滿足實(shí)際系統(tǒng)的應(yīng)用要求。實(shí)際應(yīng)用系統(tǒng)中用的是宇航級(jí)的電源器件,同時(shí)輸入1.5 V和3.3 V的電源給記錄器供電。在大部分情況下,該電源供電方案不會(huì)出現(xiàn)FPGA配置失效的問題,不過當(dāng)系統(tǒng)進(jìn)入高低溫實(shí)驗(yàn)箱進(jìn)行環(huán)境實(shí)驗(yàn)時(shí),經(jīng)常發(fā)生配置失效的問題。
為了解決FPGA上電時(shí)序問題,這里利用增加I/O電源電容,增加I/O電源上電時(shí)間;或者增大內(nèi)核電源輸出電流,減小內(nèi)核電源電容,減小內(nèi)核電源上電時(shí)間的方案進(jìn)行解決。實(shí)驗(yàn)中發(fā)現(xiàn),F(xiàn)PGA配置穩(wěn)定性有所提高,但在進(jìn)行環(huán)境實(shí)驗(yàn)時(shí),偶然還是有配置失效的現(xiàn)象發(fā)生。后來,筆者在PROGB和INITB兩個(gè)信號(hào)上分別加2個(gè)100 μF以上的大電容,與2個(gè)信號(hào)上的上拉電阻分別組成RC電路,延長(zhǎng)信號(hào)的低電平時(shí)間,實(shí)驗(yàn)發(fā)現(xiàn),該解決方案取得了明顯的效果,在進(jìn)行高低溫實(shí)驗(yàn)時(shí),沒有發(fā)現(xiàn)配置失效的現(xiàn)象。后來,筆者對(duì)設(shè)計(jì)進(jìn)行了改進(jìn),將PROGB,INITB,DONE和一個(gè)I/O都接到上位機(jī)的I/O上,將FPGA中不用的引腳設(shè)為低電平,輸出到上位機(jī)的I/O輸出一個(gè)固定的高電平,上位機(jī)定期查詢DONE信號(hào)和I/O信號(hào),如果發(fā)現(xiàn)DONE信號(hào)和I/O信號(hào)中有一個(gè)不正確,上位機(jī)給PROGB和INITB信號(hào)發(fā)一個(gè)100 ms的低電平,將配置芯片中的固化程序重新加載到FPGA中去,具體實(shí)現(xiàn)方法如圖2所示。實(shí)驗(yàn)中還發(fā)現(xiàn)DONE信號(hào)的驅(qū)動(dòng)能力很弱,該信號(hào)最好能通過一個(gè)總線驅(qū)動(dòng)器與上位機(jī)的I/O相連。通過以上處理后,該記錄器在高低溫實(shí)驗(yàn)箱中進(jìn)行一系列的實(shí)驗(yàn),包括在極短的時(shí)間內(nèi),將溫度從-40 ℃變化到125 ℃的溫度拉鋸實(shí)驗(yàn),反復(fù)開關(guān)電源,F(xiàn)PGA的配置都是成功的,系統(tǒng)能穩(wěn)定地工作。
3.2 FPGA可靠性設(shè)計(jì)
提高FPGA運(yùn)行的可靠性,最有效的途徑是規(guī)范的時(shí)鐘設(shè)計(jì)和合理的EDA軟件約束設(shè)計(jì)\\。在FPGA設(shè)計(jì)中,有全局時(shí)鐘、門控時(shí)鐘、行波時(shí)鐘和多時(shí)鐘系統(tǒng)4種時(shí)鐘。多時(shí)鐘系統(tǒng)是前面3種時(shí)鐘類型的任意組合。全局時(shí)鐘是最簡(jiǎn)單、最可靠的時(shí)鐘,全局時(shí)鐘的延時(shí)是可預(yù)測(cè)的,在FPGA設(shè)計(jì)中,最好的時(shí)鐘方案是:由專用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)單個(gè)主時(shí)鐘去控制設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。由組合邏輯和時(shí)鐘信號(hào)經(jīng)單個(gè)\"與門\"或單個(gè)\"或門\"后產(chǎn)生的時(shí)鐘信號(hào)為門控時(shí)鐘。顯然門控時(shí)鐘可以轉(zhuǎn)換成全局時(shí)鐘,轉(zhuǎn)換方法是,將組合邏輯轉(zhuǎn)化為時(shí)序邏輯控制模塊的一個(gè)使能輸入信號(hào),該模塊的輸入時(shí)鐘仍然用全局時(shí)鐘。轉(zhuǎn)換時(shí),可以利用D觸發(fā)器對(duì)毛刺不敏感的特性,用插入D觸發(fā)器和流水線的思路進(jìn)一步提高電路運(yùn)行的穩(wěn)定性。行波時(shí)鐘是指一個(gè)觸發(fā)器的輸出作為另一個(gè)觸發(fā)器的輸入時(shí)鐘。用門控時(shí)鐘轉(zhuǎn)全局時(shí)鐘的解決方案,行波時(shí)鐘是可以轉(zhuǎn)化成全局時(shí)鐘的。
這里的存儲(chǔ)器除了完成數(shù)據(jù)的傳輸和存儲(chǔ)外,還有很多復(fù)雜的硬件處理算法和相關(guān)的控制邏輯。隨著算法復(fù)雜程度的提高。設(shè)計(jì)中發(fā)現(xiàn),每增加1個(gè)設(shè)計(jì)模塊后,F(xiàn)PGA的速度性能可能會(huì)明顯降低。通過增加全局約束的方式重新綜合布線,經(jīng)常發(fā)現(xiàn)性能改善不明顯。打開底層編輯器發(fā)現(xiàn),增加新設(shè)計(jì)模塊后,F(xiàn)PGA內(nèi)部的布局布線發(fā)生很大的變化。對(duì)于這種問題,Xilinx公司的EDA集成開發(fā)軟件ISE提供了一個(gè)非常理想的解決方案。該集成開發(fā)環(huán)境中提供了一個(gè)小插件Floorplan,該插件能將設(shè)計(jì)工程中的模塊分別進(jìn)行邏輯鎖定和布局布線鎖定,每一個(gè)模塊即相當(dāng)于一片ASIC芯片,然后使用增量設(shè)計(jì)在頂層工程中使用全局約束將鎖定的模塊進(jìn)行整體布局布線。利用該解決方案可以保證最后的設(shè)計(jì)性能。從而提高系統(tǒng)的速度性能和穩(wěn)定性。
3.3 其他問題
實(shí)驗(yàn)中發(fā)現(xiàn),F(xiàn)PGA器件和SDRAM器件都是高速器件,相關(guān)的信號(hào)線必須進(jìn)行阻抗\\,否則,信號(hào)線上會(huì)產(chǎn)生很大的過沖和欠沖。信號(hào)線上的過沖和欠沖,一方面降低了電路運(yùn)行的可靠性,另一方面對(duì)器件也有很大的傷害,更重要的是,在系統(tǒng)聯(lián)調(diào)過程中,欠沖信號(hào)對(duì)前級(jí)模擬電路的干擾非常嚴(yán)重,產(chǎn)生了很大的地彈噪聲,使前級(jí)模擬電路無法正常工作。
關(guān)于SDRAM控制器的設(shè)計(jì),國內(nèi)外已有不少公開發(fā)表的論文\\11\\〗。根據(jù)器件資料和相關(guān)論文,筆者發(fā)現(xiàn),在SDRAM控制器設(shè)計(jì)中,將刷新計(jì)數(shù)器的邏輯優(yōu)先級(jí)設(shè)為最高,當(dāng)處在刷新周期時(shí),其他的控制邏輯都保持不變,其他控制邏輯從屬于刷新邏輯是設(shè)計(jì)的基本思路,以這條思路為出發(fā)點(diǎn),可能會(huì)起到事半功倍的效果。設(shè)計(jì)中還發(fā)現(xiàn),SDRAM控制器中的雙向口要消耗大量的布線資源,而且在數(shù)據(jù)切換時(shí)延時(shí)很大,SDRAM的讀寫時(shí)鐘最好是經(jīng)FPGA內(nèi)部的鎖相環(huán)鎖相處理后提供的,不要簡(jiǎn)單地使用時(shí)鐘反相等粗糙的處理方式進(jìn)行,這樣有利于提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性。
4 結(jié) 語
針對(duì)航天電子系統(tǒng)應(yīng)用的特殊要求,采用工程應(yīng)用中發(fā)現(xiàn)問題、解決問題的方法,對(duì)固態(tài)記錄器的可靠性和穩(wěn)定性設(shè)計(jì)進(jìn)行了深入的研究和探討。文中解決問題的方法完全可以應(yīng)用到相關(guān)的民用系統(tǒng)中,提高類似系統(tǒng)的穩(wěn)定性和可靠性,具有很大的工程應(yīng)用價(jià)值。
參 考 文 獻(xiàn)
[1]戰(zhàn)輝.基于FLASH 的固態(tài)存儲(chǔ)器\\.上海航天,2004,21(6):3641.
[2]李早社,禹衛(wèi)東.星載SAR成像處理器中轉(zhuǎn)置存儲(chǔ)器的FPGA實(shí)現(xiàn)\\.數(shù)據(jù)采集與處理,2005,20(2):231235.
[3]王芳,李恪,蘇林,等.空間太陽望遠(yuǎn)鏡的星載固態(tài)存儲(chǔ)器研制\\.電子學(xué)報(bào),2004,23(3):472475.
[4]Xilinx Corp.VirtexII Platform FPGA Datasheet.http://www.Xilinx.com/bvdocs/userguides/ug002.pdf.2004.
[5]Xilinx Company.Synthesizable High Performance SDRAM Controller.XAPP134(v3.1).2000.
[6]劉正,黃戰(zhàn)華,劉書桂.基于SDRAM 的高分辨力高速圖像緩存\\.光學(xué)儀器,2006,28(6):4953.
[7]吳冰,黃智剛.基于SDRAM 的高速大容量紅外信號(hào)模擬器的實(shí)現(xiàn)\\.計(jì)算機(jī)測(cè)量與控制,2007,15(8):1 0541 056.
[8]特木勒,黃智剛.基于PCI總線和SDRAM的高速數(shù)據(jù)采集卡研制\\.遙測(cè)遙控,2007,28(2):4245.
[9]郭芳,熊余.DDR SDRAM在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用\\.現(xiàn)代電子技術(shù),2007,30(24):4749.
[10]夏玉立,雷宏,黃瑤.用Xilinx FPGA實(shí)現(xiàn)DDR SDRAM控制器\\.微計(jì)算機(jī)信息,2007,23(9):209211.
[11]劉宇,陳文藝,李新慧.一種SDRAM 控制器軟核的Verilog設(shè)計(jì)\\.西安郵電學(xué)院學(xué)報(bào),2003,8(4):8993.
作者簡(jiǎn)介 周秀娟 女,1980年出生,工程師,在讀碩士研究生。主要研究方向?yàn)樾l(wèi)星數(shù)傳系統(tǒng)中的數(shù)據(jù)處理、編碼和存儲(chǔ)。
陳 文 上海交通大學(xué)電子工程系教授,博導(dǎo)。主要從事數(shù)字信號(hào)處理,通訊信號(hào)處理等方面的研究。