吴春静,周盛雨,魏本杰,许 睿
(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—),女,山东菏泽人,硕士研究生。研究方向:嵌入式软件设计。