摘 要:隨著衛星整機性能的提高,以往的小容量、單緩存的固態記錄器已嚴重制約了衛星系統的整機性能,研制高實時性、大存儲容量、高可靠性的記錄器已成為目前急需攻克的課題。根據航天電子系統不可修復,系統運行穩定性、可靠性要求非常高,可供選擇的器件不多的特點,選用FPGA和SDRAM器件,用乒乓緩存的硬件結構替代以往的單緩存結構,設計一套大容量、高實時性、高可靠性的固態記錄器,對研制過程中遇到的若干技術難點進行深入的研究,提出了相關解決方案。解決問題的方法完全可以應用到相關的民用系統中,提高了類似系統的穩定性和可靠性。
關鍵詞:固態記錄器;FPGA;SDRAM;乒乓緩存
中圖分類號:TP368.1 文獻標識碼:A 文章編號: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
隨著航天技術的飛速發展,為了準確保留相關重要信息,衛星載荷對數據傳輸系統的實時性和固態記錄器的存儲容量要求在不斷提高。以往數據傳輸系統的固態記錄器或者采用相對獨立的讀寫方式進行工作,實時性不強;或者存儲容量不夠大,保留的信息不夠多\\3\\〗,無法滿足系統應用要求。
對于普通的民用實時數據傳輸系統,以目前的電子器件發展水平,實現難度不高。不過,航天電子系統最大的特點是不可修復,一般的電子系統要求穩定可靠地在太空惡劣的環境中運行幾年,可靠性要求非常高是該類系統的基本要求,能滿足系統應用要求的電子器件也不是太多\\。在研究開發過程中發現,在可供選擇的器件中,設計一個低功耗、大容量、高速率的固態記錄器有很多問題需要解決。這里對設計中存在的若干問題進行了深入的研究,并提出了相關解決方案。
1 器件選型
根據系統應用要求,固態記錄器的數據傳輸速率至少要達到160 Mb/s以上,存儲容量至少要達到120 Gb以上。據調研,目前能提供的存儲器單片容量,SBRAM最大的存儲容量只能達到9 Mb,遠遠不能滿足應用要求;而SDRAM單片存儲芯片可達到容量4 Gb、工作頻率167 MHz以上。用多片這樣的SDRAM器件級聯完全可以滿足系統存儲容量和傳輸速度的應用要求。不過SDRAM器件需要定期刷新,應用難度比較大。
目前FPGA器件發展比較成熟,該器件為大多數復雜數字系統提供技術解決方案。在復雜數字系統中,以FPGA為核心器件,外加一些存儲器件和電氣接口器件的設計方案已成為主流解決方案。不過,以往市面上提供的FPGA芯片的硬件資源一般都比較少,本課題除了數據傳輸和存儲的應用要求外,還要對數據進行一些算法處理,需用多片資源少的FPGA器件配合一些外圍電路分任務處理才能滿足應用要求,與體積小、功耗低的設計任務相矛盾。隨著FPGA器件的發展,Xilinx公司的VirtexⅡ系列FPGA器件,其Slices可達幾百萬門,Block Memory資源豐富,器件內部提供了大量的數字時鐘管理器(DCM)分配時鐘域,其內部時鐘最快可以到420 MHz\\,該器件所提供的內部資源和引腳數目可以滿足產品設計要求。
2 固態記錄器的工作原理
圖1是固態記錄器系統硬件框圖,系統主要由以下幾個模塊組成:相關算法處理模塊,SDRAM存儲模塊,SDRAM讀寫控制模塊,串口收發控制模塊,讀寫緩存模塊(由FPGA內部的FIFO構成)等。

圖1的工作原理如下:上位機以\"起始字符1+起始字符2+起始字符3+起始字符4+控制命令+校驗和+結束字符1+結束字符2+結束字符3+結束字符4\"的通訊協議向串口接收電路發送相關的控制命令。當串口接收電路接收到寫控制命令時,與此同時,串口發送電路向上位機以\"起始字符1+起始字符2+起始字符3+起始字符4+接收到相關控制命令+校驗和+結束字符1+結束字符2+結束字符3+結束字符4\"通知上位機固態記錄器已經接收到控制命令;以這種通訊協議進行8次握手,如果8次握手通訊都是正確的,數據算法處理組合模塊輸出讀狀態控制信號;當讀狀態信號有效時,輸出48位并行有效數據,相關的算法處理模塊接收輸入的數據并完成相關算法處理,然后將處理后的數據寫入寫緩存FIFO中;然后由SDRAM控制器的寫控制模塊將寫緩存FIFO中的數據存入SDRAM的一個存儲體中;當該SDRAM存儲體存滿時,SDRAM控制器停止對該存儲體的寫操作,與此同時,SDRAM讀控制器讀出SDRAM另一個存儲體中已經存滿的數據存入讀緩存FIFO中,并將讀FIFO中的48位并行數據讀出采用時分復用的方案,變換成8位并行數據,分6次輸入給數據算法解析比對模塊進行處理;當數據處理完后,輸出寫控制狀態命令,將處理數據輸出給下一級電路使用。當讀存儲器中的數據全部讀出時,SDRAM讀控制器停止對該存儲體進行讀操作。當完成一次讀寫操作后,下一次操作將SDRAM存儲體的讀寫互換,如此交錯進行讀寫控制即可實現實時數據處理和傳輸。當上位機以相同的通訊協議發送寫停止和復位命令時,固態記錄器停止寫操作或者進行系統復位操作。
3 設計中出現的問題和解決方案
3.1 電源和FPGA配置
這里使用Xilinx公司FPGA的主串配置方案。該配置方案的工作過程如下\\:系統上電時,當內核電源VCCINT和I/O電源VCCO都達到門檻電壓值后,FPGA對配置模式進行采樣;當FPGA采樣到是主串配置方案時,FPGA輸出配置時鐘CCLK和串行配置數據;系統上電時PROGB和INITB兩個信號分別有1個低電平周期,INITB信號低電平時對配置芯片進行復位,使配置芯片內部的指針指向配置芯片的地址0,PROGB信號從低電平變為高電平后,FPGA接受串行配置數據進行器件配置,在整個過程中,DONE信號始終為低電平,當配置成功后,DONE信號自動拉高(如果DONE信號一直為低電平,說明配置失效)。
實驗過程中發現Xilinx公司的FPGA,如果內核電源先于I/O電源上電或同時上電,FPGA的配置不會有問題;如果內核電源滯后于I/O電源上電,FPGA的配置往往會失效\\。關于Xilinx公司的電源供電問題,TI和National公司都提供了很好的電源管理解決方案,在做功能實驗過程中發現,使用該電源管理方案,FPGA的配置非常穩定可靠,沒有發生過配置失效的現象。不過,該電源管理方案中所使用的器件沒有宇航級的器件,無法滿足實際系統的應用要求。實際應用系統中用的是宇航級的電源器件,同時輸入1.5 V和3.3 V的電源給記錄器供電。在大部分情況下,該電源供電方案不會出現FPGA配置失效的問題,不過當系統進入高低溫實驗箱進行環境實驗時,經常發生配置失效的問題。
為了解決FPGA上電時序問題,這里利用增加I/O電源電容,增加I/O電源上電時間;或者增大內核電源輸出電流,減小內核電源電容,減小內核電源上電時間的方案進行解決。實驗中發現,FPGA配置穩定性有所提高,但在進行環境實驗時,偶然還是有配置失效的現象發生。后來,筆者在PROGB和INITB兩個信號上分別加2個100 μF以上的大電容,與2個信號上的上拉電阻分別組成RC電路,延長信號的低電平時間,實驗發現,該解決方案取得了明顯的效果,在進行高低溫實驗時,沒有發現配置失效的現象。后來,筆者對設計進行了改進,將PROGB,INITB,DONE和一個I/O都接到上位機的I/O上,將FPGA中不用的引腳設為低電平,輸出到上位機的I/O輸出一個固定的高電平,上位機定期查詢DONE信號和I/O信號,如果發現DONE信號和I/O信號中有一個不正確,上位機給PROGB和INITB信號發一個100 ms的低電平,將配置芯片中的固化程序重新加載到FPGA中去,具體實現方法如圖2所示。實驗中還發現DONE信號的驅動能力很弱,該信號最好能通過一個總線驅動器與上位機的I/O相連。通過以上處理后,該記錄器在高低溫實驗箱中進行一系列的實驗,包括在極短的時間內,將溫度從-40 ℃變化到125 ℃的溫度拉鋸實驗,反復開關電源,FPGA的配置都是成功的,系統能穩定地工作。

3.2 FPGA可靠性設計
提高FPGA運行的可靠性,最有效的途徑是規范的時鐘設計和合理的EDA軟件約束設計\\。在FPGA設計中,有全局時鐘、門控時鐘、行波時鐘和多時鐘系統4種時鐘。多時鐘系統是前面3種時鐘類型的任意組合。全局時鐘是最簡單、最可靠的時鐘,全局時鐘的延時是可預測的,在FPGA設計中,最好的時鐘方案是:由專用的全局時鐘輸入引腳驅動單個主時鐘去控制設計項目中的每一個觸發器。由組合邏輯和時鐘信號經單個\"與門\"或單個\"或門\"后產生的時鐘信號為門控時鐘。顯然門控時鐘可以轉換成全局時鐘,轉換方法是,將組合邏輯轉化為時序邏輯控制模塊的一個使能輸入信號,該模塊的輸入時鐘仍然用全局時鐘。轉換時,可以利用D觸發器對毛刺不敏感的特性,用插入D觸發器和流水線的思路進一步提高電路運行的穩定性。行波時鐘是指一個觸發器的輸出作為另一個觸發器的輸入時鐘。用門控時鐘轉全局時鐘的解決方案,行波時鐘是可以轉化成全局時鐘的。
這里的存儲器除了完成數據的傳輸和存儲外,還有很多復雜的硬件處理算法和相關的控制邏輯。隨著算法復雜程度的提高。設計中發現,每增加1個設計模塊后,FPGA的速度性能可能會明顯降低。通過增加全局約束的方式重新綜合布線,經常發現性能改善不明顯。打開底層編輯器發現,增加新設計模塊后,FPGA內部的布局布線發生很大的變化。對于這種問題,Xilinx公司的EDA集成開發軟件ISE提供了一個非常理想的解決方案。該集成開發環境中提供了一個小插件Floorplan,該插件能將設計工程中的模塊分別進行邏輯鎖定和布局布線鎖定,每一個模塊即相當于一片ASIC芯片,然后使用增量設計在頂層工程中使用全局約束將鎖定的模塊進行整體布局布線。利用該解決方案可以保證最后的設計性能。從而提高系統的速度性能和穩定性。
3.3 其他問題
實驗中發現,FPGA器件和SDRAM器件都是高速器件,相關的信號線必須進行阻抗\\,否則,信號線上會產生很大的過沖和欠沖。信號線上的過沖和欠沖,一方面降低了電路運行的可靠性,另一方面對器件也有很大的傷害,更重要的是,在系統聯調過程中,欠沖信號對前級模擬電路的干擾非常嚴重,產生了很大的地彈噪聲,使前級模擬電路無法正常工作。
關于SDRAM控制器的設計,國內外已有不少公開發表的論文\\11\\〗。根據器件資料和相關論文,筆者發現,在SDRAM控制器設計中,將刷新計數器的邏輯優先級設為最高,當處在刷新周期時,其他的控制邏輯都保持不變,其他控制邏輯從屬于刷新邏輯是設計的基本思路,以這條思路為出發點,可能會起到事半功倍的效果。設計中還發現,SDRAM控制器中的雙向口要消耗大量的布線資源,而且在數據切換時延時很大,SDRAM的讀寫時鐘最好是經FPGA內部的鎖相環鎖相處理后提供的,不要簡單地使用時鐘反相等粗糙的處理方式進行,這樣有利于提高數據傳輸的穩定性。
4 結 語
針對航天電子系統應用的特殊要求,采用工程應用中發現問題、解決問題的方法,對固態記錄器的可靠性和穩定性設計進行了深入的研究和探討。文中解決問題的方法完全可以應用到相關的民用系統中,提高類似系統的穩定性和可靠性,具有很大的工程應用價值。
參 考 文 獻
[1]戰輝.基于FLASH 的固態存儲器\\.上海航天,2004,21(6):3641.
[2]李早社,禹衛東.星載SAR成像處理器中轉置存儲器的FPGA實現\\.數據采集與處理,2005,20(2):231235.
[3]王芳,李恪,蘇林,等.空間太陽望遠鏡的星載固態存儲器研制\\.電子學報,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]劉正,黃戰華,劉書桂.基于SDRAM 的高分辨力高速圖像緩存\\.光學儀器,2006,28(6):4953.
[7]吳冰,黃智剛.基于SDRAM 的高速大容量紅外信號模擬器的實現\\.計算機測量與控制,2007,15(8):1 0541 056.
[8]特木勒,黃智剛.基于PCI總線和SDRAM的高速數據采集卡研制\\.遙測遙控,2007,28(2):4245.
[9]郭芳,熊余.DDR SDRAM在高速數據采集系統中的應用\\.現代電子技術,2007,30(24):4749.
[10]夏玉立,雷宏,黃瑤.用Xilinx FPGA實現DDR SDRAM控制器\\.微計算機信息,2007,23(9):209211.
[11]劉宇,陳文藝,李新慧.一種SDRAM 控制器軟核的Verilog設計\\.西安郵電學院學報,2003,8(4):8993.
作者簡介 周秀娟 女,1980年出生,工程師,在讀碩士研究生。主要研究方向為衛星數傳系統中的數據處理、編碼和存儲。
陳 文 上海交通大學電子工程系教授,博導。主要從事數字信號處理,通訊信號處理等方面的研究。