吳春靜,周盛雨,魏本杰,許 睿
(1.中國科學院大學 北京100190;2.中國科學院空間科學與應用研究中心 北京 100190)
探空火箭數據存儲設備設計與實現
吳春靜1,2,周盛雨2,魏本杰2,許 睿1,2
(1.中國科學院大學 北京100190;2.中國科學院空間科學與應用研究中心 北京 100190)
針對目前航天探測中大量科學數據存儲的問題,設計了兼顧存儲容量大和緩存速度快兩大特點的探空火箭數據存儲系統。CPU采用TI最新推出的TMS570LS3137,數據存儲系統的設計主要是利用該芯片的EMIF模塊和SPI模塊。外部存儲器接口(EMIF)提供較大的尋址空間可以擴展多個外接板卡,選用SDRAM作為高速緩存的核心部件,SPI接口模塊直接與SD卡卡槽相連接,選用SD卡作為大容量存儲設備。給出了部分軟件設計流程圖以及系統測試結果圖,測試結果顯示該系統實現了設計目的,在航天工程領域具備一定的利用價值。
TMS570LS3137;數據存儲;SDRAM;SD卡
隨著近幾十年來航天技術的不斷發展,越來越多的不同型號探測器由探空火箭搭載進入臨近空間完成相應的科學探測任務。這些探測器采集到的科學數據需要及時存儲以便回到地面進行更深入的分析研究。為了對探空火箭采集到的數據進行有效地存儲與分析,數據存儲設備必須選取體積小、容量大、可擦寫以及非易失的存儲介質,同時,考慮到數據采集過程中對存儲速度要求較高的技術需求,空間存儲設備還需具有一定的高速緩存能力。
結合這些背景,設計了兼顧存儲容量大和緩存速度快兩大特點的探空火箭數據存儲系統,以滿足存儲多種大容量科學數據的航天任務需求。
探空火箭上的有效載荷包括箭載GPS、雙臂探針式電場儀、朗繆爾探針、大氣微量成分探空儀、箭上發射系統、箭載姿態測量儀等設備。這些模塊采集到的科學數據和工程參數需要組織成符合CCSDS遙測格式的數據源包存儲在箭上的存儲設備中。這些數據一部分存儲于高速緩存模塊中,通過箭上發射系統及時發送回地面接收站,如采集到的圖像信息,而另一部分被存儲于箭上的大容量存儲設備中,在返回地面后再進行進一步的分析和處理。考慮的設計成本與存儲數據的讀寫速度,高速緩存模塊選用了SDRAM作為核心部件,大容量的存儲設備選用了SD卡。
2.1 處理器主控模塊
本文選取TMS570LS3137作為箭上存儲設備的主控芯片。該芯片為TI公司開發的一款高性能高可靠性的微控制器。其集成了ARM Cortex-R4F浮點型CPU,此CPU最高運算速度可達1.66DMIPS/MHz,并具有高達180MHz運行的配置。其本身具有豐富的外部通信接口,如SPI接口、SCI接口、CAN總線接口、以太網接口等。除此以外,其特有的外部存儲器接口(EMIF)可極大地提升設備的擴展性和升級性。
TMS570LS3137是存儲系統的核心,負責完成對高速緩存模塊(SDRAM)的讀寫控制和以SPI模式將數據存儲入SD卡中的任務,而且處理器還需要為SD卡中數據的存儲實現相應的文件結構并進行文件系統的操作。系統整體架構如圖1所示。

圖1 箭上存儲系統總體結構框圖Fig.1 Structure diagram of storage system for sounding rockets
2.2 SDRAM接口設計
SDRAM的接口電路主要利用了微處理器的外部存儲器接口(EMIF)。EMIF接口包含22位地址總線,加上4塊BANK地址,若使用16位數據總線寬度,其外部尋址范圍可高達32 MB。處理器與SDRAM連接情況如圖2所示。

圖2 SDRAM緩存接口電路Fig.2 Interface circuit for SDRAM cache
高速緩存模塊的SDRAM選用ISSI公司存儲容量為32MB的IS42S16160芯片。其采用CMOS技術,具有16位數據寬度,工作電壓為3.3 V。微處理器為其分配的尋址空間為0x80000000~0x87FFFFFF。
2.3 SD卡接口電路
SD卡接口設計利用了片內的SPI接口模塊,所接入的SD卡將工作在SPI模式下。該模式可看作一種簡單的命令響應協議,主控制器發出命令后,SD卡對不同命令返回對應的響應。在SPI模式下,共有3種響應類型:R1、R2和R3,分別占1、2和3個字節。在硬件設計中一共使用了4根串行總線連接SD卡插槽,分別是主機輸入從機輸出數據線(MISO)、主機輸入從機輸出數據線(MOSI)、片選(CS)和串行時鐘(SCLK),卡槽的供電采用3.3 V電壓。具體連接如圖3所示。
3.1 SDRAM驅動軟件設計
通常來說,SDRAM的驅動控制程序需要完成對SDRAM的初始化、預充電、自刷新等操作,而且還要根據SDRAM的工作模式對相應的寄存器進行配置。本設計利用了TI公司的HALCoGen代碼生成工具,通過GUI界面完成各參數的配置,從而避免了傳統模式下通過編寫驅動程序代碼帶來的增加開發難度,提升開發成本等弊端。

圖3 SD卡接口電路Fig.3 Interface circuit for SD card
3.2 SD卡底層軟件設計
在SPI模式下,SD卡的操作是基于命令的,采用一種問答的方式,主機端向SD卡發送相應的命令Command,SD卡收到命令后向主機返回應答Response。SD卡有基本命令和特定命令,特定命令必須跟在基本命令CMD55后面。每條命令由6Byte組成,如表1所示。2-5字節為參數,有的命令沒有參數,就填0。SPI模式不需要CRC校驗碼,因此最后一個字節可以任意填寫。

表1 SD卡命令組成Tab.1 Comm and for SD card
底層軟件設計主要包括SD卡初始化、讀扇區數據、寫扇區數據。
1)SD卡初始化
初始化是SD卡在SPI模式下成功讀寫的前提,在初始化過程中要完成SPI模式的設置以及卡類型識別。首先利用TI的HALCoGen軟件對TMS570LS3137的SPI模塊做如下設置:使能SPI2,選擇主模式Master Mode,波特率設置為1000kHz,SCS[0]置0,SCS[1]置1。SD卡上電復位以后,默認的是SD通信協議,必須通過SPI總線發送命令進行協議切換。初始化的流程圖如圖4所示。

圖4 SD卡初始化流程圖Fig.4 Flow chart of SD Initialization
2)讀扇區數據
對SD卡初始化后,可以進行數據的讀寫操作了。在讀扇區操作中,使用單塊讀命令CMD17,多塊讀命令CMD18。數據塊的長度默認為512Byte,可以用CMD16命令設置塊長度。圖5是讀SD卡扇區數據軟件流程圖。

圖5 讀SD扇區流程圖Fig.5 Flow chart of reading SD sector
3)寫扇區數據
單塊寫命令CMD24,多塊寫命令CMD25,向扇區寫數據時,發送數據開始令牌、正式數據以及CRC校驗之后要設置一個超時時間,如果該時間內數據發送未完成則判定為寫扇區失敗。寫扇區流程圖如圖6所示。

圖6 寫SD扇區流程圖Fig.6 Flow chart of writing SD sector
3.3 SD卡文件系統構建
計算機支持的主要文件系統包括NTFS、FAT12、FAT16以及FAT32等。SD 1.1規范中規定的SD卡使用的是FAT12和FAT16文件系統,FAT12的最大磁盤管理能力為8M,最終版的FAT16分區格式最大磁盤管理能力為2G。SD 2.0規范規定SDHC卡采用的是FAT32文件系統。
本設計所用的SD卡,由WinHex軟件讀取到的卡信息如表2所示。

表2 K inSton 8G SD卡的信息Tab.2 Information of K in Ston 8G
因為讀取到的數據布局是高地址放高字節,低地址放低字節。從上表數據可看出,每扇區有0x200個字節,每簇有0x08個扇區,保留扇區個數為0x0BB2,因此可計算出FAT1區開始的地址:0x0BB2*200(每個扇區的字節數)=0x176400。每個 FAT表占的字節數:0x3A27*200=0x744E00,因兩個FAT表緊挨,可以計算FAT2開始地址:0x176400+0x744E00= 0x8BB200。
構建文件系統過程中,需要建立結構體類型FAT32_BPB和FAT32_init_Arg。其包含扇區字節數、根目錄扇區屬性等信息。此外,文件還需定義文件目錄項結構體directory和文件信息結構體FileInfoStruct,用于表述該文件屬性。
文件系統的主要操作主要包括文件系統初始化、文件創建、文件打開、寫入文件和刪除文件。
關于存儲系統的調試需要分別測試高速緩存模塊和外接SD卡存儲模塊。下面分別對調試過程進行介紹。
SDRAM數據讀寫的測試可通過開發工具CCS v5的”Memory Browser”選項查看外部存儲器的內容。測試時選取首地址為0x80004000,利用循環操作依次寫入500個數據。在”Memory Browser”窗口中觀察數據的讀寫情況,如圖7所示。從圖中可以清楚觀察到數據從十六進制0000開始按每個循環逐步加一的形式依次寫入500個地址內。由此可以驗證外部存儲器SDRAM在讀寫數據上工作正常。

圖7 SDRAM數據讀寫測試Fig.7 Reading and writing tests for SDRAM data
向SD卡連續寫入0x41,可用讀卡器在PC端查看新建的txt文件,文件名稱為0001.TXT,內容為多個 A。另外,可通過WinHex軟件直接查看SD卡扇區上數據讀寫的結果,如圖8所示。由圖中可看出,TXT文件創建成功,從偏移地址001001200開始,數據0x41被連續寫入到SD卡扇區上。
Design of data storage system for sounding rockets
WU Chun-jing1,2,ZHOU Sheng-yu2,WEI Ben-jie2,XU Rui1,2
(1.University of Chinese Academy of Sciences,Beijing 100190,China; 2.Center for Space Science and Applied Research,Chinese Academy of Sciences,Beijing 100190,China)
Aiming at the problem that large number scientific data storage,this paper proposes a data storage system for sounding rockets,taking into account the features of the large storage capacity and high speed caching.This system uses TMS570LS3137 produced by TI as CPU.EMIF and SPI modules are mainly used in the design of the data storage system.EMIF interface provides external modules with addressing space.SDRAM is selected as a core member in cache.As SPI interface module directly connect with SD card slot,SD card is used for mass storage device.It lists some software flow charts and the result figure of system tests.This system can achieve the purpose of the design and has some value in aerospace applications.
TMS57LS3137;data storage;SDRAM;SD card
TN-9
A
1674-6236(2015)10-0051-03
2014-09-02 稿件編號:201409009
吳春靜(1989—),女,山東菏澤人,碩士研究生。研究方向:嵌入式軟件設計。