第32卷第1期
2009年2月
电子器件
C½½½½½½
½01.32
N½.1
J½½½½½ O½
E½½½½½½½
D½½½½8
F½½.2009
D½½½½½ ½½
½
A½½½½½½½ S½½½½½½ H½½½ S½½½½ A½½½½½½½½½½ ½½½
½½
S½½½½½½
S½½½½½
B½½½½
FPGA ½½½ SD C½½½
ZHANG H½½½-½½½½,YUAN B½½½-½½½½½。,XU
Y½
(D½½½½½½½½½½½ W½½½½½½½
E½½½½½½½½½½,N½½½½ U½½½½½½½½½
½½E½½½½½½½½½½,W½½½½
430033,C½½½½)
A½½½½½½½:A½½½½½
½½
½½½
½½½½½½½½½½½½ ½½ ½½½ ½½½½½½½½
½½½½½½½,½½½½½½½½½
½½
½½½½½½½
½½½½-½½½½
½½ ½½½½½½½,½
½½-
½½½½ ½½ ½½½½-½½½½½ ½½½½½½½½ ½½½½½½½ ½½½½½½½½½½½,½½½½½ ½½½½½½½½ ½½½
½½½½—½½½½
½½½½½
½½½½½½ ½½ ½½½½½½½½,½½½½½
½½½½
½½½½½½ ½½½½
½½ ½
½½½½½½½½½½,SD
½½½½
½½
½½
½½½½½½,FPGA
½½
½½½½-½½½½½
½½½½½½½½½
½½½½½½½
½½½½½½½½½½½
½½½ SD
½½½½,FAT
½½½½ ½½½½½½
½½½½½½ ½½ ½½½½½½½.T½½½ ½½½½½½
½½½
½½½½½½
½½
½½½½½
½½½½,½½½½½½½½½½
½½
½½½½-½½½½½ ½½½ ½½½½—½½½½ ½½½½½½½,½½½½½
½½½½½½½½,½½½½ ½½½½½½½½½
½½½½½½½ ½½½ ½½½½½½½½½½½½½,½½½.I½ ½½½ ½½½½
½½½½½½½½½½½½
½½½½½½½ ½½ ½½½½½ ½½½½½½½½½½½ ½½
½
½½½½½½½½½½
½½½½½½½.
K½½ WO½ ½S:½½½½½½½½ ½½½½½½ ½½½½½½½½½½½;½½½½-½½½½½ ½½½
½½½½-½½½½
½½½½½½½;FPGA;SD ½½½½;FAT
½½½½
½½½½½½
EEACC:7810;7210G
基于FPGA和SD卡的水声信号高速采集与存储系统设计
张洪刚,苑秉成。,徐
瑜
(海军工程大学兵器工程系,武汉430033)
摘要:针对目前较高频率水声信号数据难于实时获取的局限,提出了一种基于½D卡和FPGA的高速大容量水声信号采集
与实时存储系统设计,设计中采用单片机½为主控单元,SD卡½为存储介质,FPGA½为数据采集和SD卡之间的高速接口,
FAT文件系统½为数据存储½式。该设计具有½积小,可高速实时存储,存储容量大,通用性强,易于扩展升级等特点,已在
某水下航行器辐射噪声信号获取中得到成功运用。
关键词:水声信号采集;大容量实时存储;FPGA½SD卡;FAT文件系统
中图分类号:TP274
文献标识码:A
文章编号:½005—9490(2009)01_0208-05
特点。目前该系统在某水下航行器的辐射噪声采集
与存储中已得到运用,其合理性和工½可靠性也得
到了很½的验证。
1
由于水下的特殊环境,水下目标的探测、定½、
识别等½是以声波为½½½的。在对水声信号的研
究,水声设备的研制、调试以及水声设备的陆上仿真
试验等过程中,½需要准确可靠的原始水声信号资
料。一直以来,由于工½环境恶劣、试验成本高、采
集数据难于高速实时存储等不利因素,水声信号的
实时采集较为困难。本文提出了一种基于FPGA
和SD卡的水声信号的高速大容量水声信号采集与
系统总½结构与硬件设计
本文设计的数据采集与存储系统的工½环境是
某装备的电子仓,需采集的信号为某水下航行器的
辐射噪声,根据装备信号处理系统和电子仓内安装
的需求,所设计数据采集和存储系统需满足:①单
通道,采集速率不½于1
MH½;②数据实时存储,存
实时存储系统的设计方案,并进行了工程实现。本
设计具有采集速率高(高于1
MH½),存储容量大(2
G,可方便扩展),实时存储,½积小,½用方便(存储
在SD卡的数据可用通用读卡器读出),工½可靠的
收稿日期:2008-08-06
储时间不小于20
½½½;③小½积,电路板尺寸小于
55
½½X
85
½½;④工½可靠,出现异常情况时½
½者简介:张洪刚(1980一),男,博士研究生,研究方向为水下目标探测与制导,½½½½½½½½½½½½½@126.½½½!
苑秉成,教授,研究方向为鱼雷自导与武器仿真技术
万
方数据
第1期
张洪刚,苑秉成等:基于FPGA和SD卡的水声信号高速采集与存储系统设计
209
保证采集的有效数据不丢失。
系统的总½结构如图1所示,主要由A/D采集
连接关系如图2中所示,SPI模式也是只用一条数
据线传送数据,由于兼容SPI总线,在系统硬件和½
模块、FPGA接口模块、单片机、门限比较电路以及
SD卡等组成。系统工½电源采用电子仓提供的直
流电源,经隔离、滤波后½换成系统所需的十5
V、
件设计方面会带来很大的方便。在考虑了数据传输
速率需求和系统复杂程度的基础上,SD卡的读写采
用SPI模式。
+3.3
V与+1.5 V电源。进入射随的输入信号已
经过了放大和滤波,范围在一5
V½+5
V;单片机
是系统的主控单元,初始化FPGA和SD卡,并在
SD卡中建立FAT文件系统;FPGA对采集数据进
行缓冲和格式½换,½得数据读写满足SD卡的协
议要求L11;由于系统是在水下独立工½,所以设计门
限比较电路,½信号幅度超过门限才启动信号采集
与存储过程。
图2单片机、FPGA、SD卡连接关系示意图
在实验中发现,利用C8051单片机SPI接口直
接对SD卡进行数据读写,速率最高300 ½½½½½/½左
右,远不½满足本系统中数据实时存储的要求。这
里采取了如下的措½:时序相对复杂而应用频率½
的SD卡初始化和½令的发送接收由单片机完成,
图1
系统总½结构框图
对速率要求高½逻辑相对简单的数据缓冲和格式½
A/D采集芯片采用TI公司的高速8½CMOS
工艺的模数½换器ADS831,采用单一+5 V供电,
内部带有取样保持电路。ADS831采用流水线结
构,因而采样速率可高达80 MH½。ADS831的可编
程模拟输入范围有1 V½—½和2 V½—½两种,因此
信号输入端经过了分压和运放OPA681构成的调
理电路。
单片机采用C½½½½½公司的小½积混合信号微
处理器C8051F310,具有兼容8051的高速CIP-51
内核,时钟频率为25 MH½时最高运行速度可达25
MIPS,内部集成有1
280
½½½½
RAM、16
换由高速FPGA芯片完成。单片机、FPGA和SD
卡的连接关系如图2所示。FPGA采用A½½½½½公
司C½½½½½½系列的EP½C3,时钟源产生的系统时钟
进入FPGA,经整½和分频后输出单片机和A/D芯
片的工½时钟。
2高速数据接口的FPGA实现
2.1
M4K
RAM
块(B½½½½)是SD卡读写操½的基本单元,块的
大小是可编程的,编程信息存储在卡控制器的CSD
½½½½½的
寄存器。这里块的单½设定为与磁盘存储器扇区
(½½½½½½)大小一样的512 ½½½½。如½将A/D½换后
连续的8½并行数据打包成512 ½½½½的数据块,并
½在SD卡准备½接收数据后将数据块串行发送出
去,需要在FPGA中实现数据的缓冲和格式变换。
C½½½½½½系列FPGA中有一种内嵌的RAM块
M4K,容量为4 ½½½½,是FPGA中专门为用户实现
不同类型的数据缓存而提供的[3½。M4K RAM按
不同用途可配½为单端口RAM、简单双端口
RAM、真正双端口RAM、多端口RAM、FIFO、
ROM等,这里将其配½为简单双端口RAM模式,
一个端口只写,另一个端口只读,两个端口有不同的
写时钟和读时钟。
FPGA中由M4K RAM构成的数据缓冲模块
如图3所示[4½,采用两个M4K配½成的简单双端
½½½½½存储器、SPI总线接口等。
SD卡是基于快速闪存的新一代存储器,具有½
积小、容量大、数据传输陕、移动灵活、安全性½½等
优点,目前市场上已有16
G½½½½容量,150倍速率
(1倍速率一150 ½½½½½/½)的SD卡,而½积只有24
½½×32 ½½×2.1
½½。这里采用的是S½½½½½½公
司的133倍速的2 G容量SD卡。
SD卡接口模式有两种[2½:一种是SD模式,在
这种模式下,SD卡9个引脚除了一个电源和两个地
引脚,还有一条½令线CMD和4条数据线DATA0
½3,CMD线传送½令和响应,DAT线传送数据,其
中如果只用4条DAT线中的一条来传输数据,称
为1 ½½½SD模式;若4条全用,称为4 ½½½SD模式,这
种模式数据传输速率最快;另½种是SPI模式,引脚
万
方数据
210
电
子
器件
第32卷
口RAM交替进行数据的读写操½,一个RAM在
的½½½½和½½½½。512 ½½½½的双端口RAM输入总
线配½为8½,采集来的数据½½½½[-7..½½可以直接
写入RAM,输出总线配½为1½,这样在RAM中
进行写操½时,另一个RAM进行读操½。计数器
½½½½½½½0产生数据写入RAM块的9½地址,½½½½
模块相½于将进½标志½½½½信号延时一个时钟周
期后接T触发器,这样计数器每计数完一个周期输
出端Q就会翻½一次,恰½交替½½两个RAM块
就同时完成了数据的并串½换。计数器½½½½½½½½
产生读数据的12½地址,写时钟½½½½½采用½
MH½,读时钟采用20
MH½。
图3
M4K
RAM构成的数据缓冲模块
需要注意的是,M4K RAM块是纯同步的
RAM,在RAM块的输入地址、输入数据和读写½
G(½)=½7+½3+1
G(½)=X16+½12+½5+½
(1)
(2)
½信号端均有一级输入寄存器,中间是一个纯异步
读写的RAM内核,数据输出端的一级寄存器是可
CRC7发生器硬件实现原理图如图4所示,图
中方块是移½寄存器,½½½½ ½½端每送入一½就进行
选的,这里将该寄存器选中。这样在输入端和输出
端的所有信号½会延时一个时钟周期。
2.2
一次异或操½和循环移½,最后一½数据移出½½½½
½½½端后7个寄存器的数据就是计算得到的CRC
校验码。FPGA中CRC7校验模块用VHDI,语言
CRC校验
CRC(C½½½½½
R½½½½½½½½½
C½½½½,循环冗½校
实现,模块内将校验½经并串½换后附在串行发送
的数据后面。例如½输入数据为“½½0100101”时,经
验)是SD卡应对½令、回复和数据传输过程中SD
总线出错的措½。CRC校验的基本思想是:利用线
计算生成的校验½是“1010101”,CRC7模块在Q½一
½½½½½I½½件中的波½仿真如图5所示。
性编码理论,串行传送的信息M(½)是一串惫½二
进制序列,在它被发送的同时,被一个先选择的“生
成多项式”相除,“生成多项式”长½+½½,相除后得
到,.½的½数就是校验½,它拼接到原½½有效信
息后面,即½成CRC码。CRC码到达接受方时,接
受方的设备一方面接受CRC码,一方面用同样的方
法与“生成多项式”相除,如果正½除½,表示无信息
差错,接受方去掉CRC码后面的½½校验,收下½
½有效信息;如果不½除½时,说明有信息的状态½
发生了½变,即传输过程中出错[5½。
—
一
一
驴
½
口
图4
■-●
CRC7发生器硬件实现原理图
½.1Ⅵ
10
I
½½½
H
M
H
H
KI
XI
甘½-½½½
口C一●½
½●½●½“
½½½½½½
SD卡所有的½令和大部分回复的CRC校验称
为CRC7,是采用一个7½的校验码,其生成多项式
如式(1)。SD卡数据线上的CRC校验称为
½½●●■^
CRC½6,是采用的16½校验码,生成多项式如式(2)
图5
FPGA中CRC7发生模块仿真波½图
万
方数据
第1期
张洪剐,苑秉成等:基于FPGA和SD卡的水声信号高速采集与存储系统设计
211
2.3时序控制模块
FPGA中的时序控制主要是数据线、时钟线的
控制权问题,即单片机启动数据发送过程后,FPGA
要输出同步的数据和时钟;½数据块发送完成后,由
于单片机要接收SD卡的回复信息,FPGA要立即
就以文件的½式存放在SD卡上,用通用的SD卡读
卡器将数据读出后就可以利用W½½½½½½操½系统
下的MATI。AB或其他高级½件对数据进行分析处
理[6.7½。
目前应用最多的FAT½6、FAT32、NTFS文件
是W½½½½½½系统操½系统为方便管理磁盘存储空
间而发展起来的,磁盘是采用物理扇区的CHS(柱
把控制权交给单片机,图2中就是单片机、FPGA、
SD卡的简化的连接关系图。
传送数据时,单片机½为SPI主器件,SD卡½
为从器件。FPGA获取时钟、数据线控制权的开始
信号是单片机启动信号延时两个时钟周期(M4K
RAM输入输出端两个寄存器的延时),结束信号是
图3中计数器½½½½½½½½溢出信号½½½½延时20个时
钟周期(16个CRC校验½加4个周期的延时)。需
要注意的是,传送数据时单片机SPI总线对串行时
钟有极性和相½的要求,串行时钟的极性和相½有
4种组合,如图6所示,通过单片机SPI控制寄存器
面数、磁头数、每磁道扇区数)寻址方式,而SD卡中
的存储空间连续的,不存在柱面、磁头、磁道、扇区的
概念,½是可以计算得到SD卡的CHS参数。根据
系统的实际需求,这里采用较简单的FAT½6文件
系统。
3.1
SD卡文件系统结构
SD卡中存储空间分保护区(P½½½½½½½½
A½½½)和
数据区(D½½½ A½½½),用户的数据读写只½在数据区
进行。SD卡数据区的存储空间分配结构如图7所
示[8½,整个数据区空间从第一个物理扇区开始依次
为主引导记½和分区表(M½½½½½
P½½½½½½½½
B½½½
R½½½½½
½½½
B½½½
(SPIOCKR)的时钟控制选择½进行设½。CKPHA
½(SPI½½FG.5)选择两种时钟相½(锁存数据所用
的边沿),CKPOL½(½P½0CFG.4)控制高电平有效
或½电平有效。这里将SPI寄存器配½为第三种方
式(CKPHA=1,CKPOI。=½),相应FPGA中时钟
T½½½½)、分区启动扇区(P½½½½½½½½
A½½½½½½½½½
S½½½½½)、文件分配表(F½½½
T½½½½)、根目
½(R½½½ D½½½½½½½½)和用户区(U½½½ D½½½)五个部
分。图中右侧是容量为2
G的一个SD卡的具½分
配方案,数字为存储区各部分所占用的物理扇区号。
文件系统存储K配甓
物弹扇I^号
扛・;½甘记求和1分随衷
M½½½½½
B½½½ R½½½½½
½½½
P½½½½½½½½
T曲½½
分½½启动确½
P½½½½½½½½ B½½½ S½½½½½
线就要配设½为在开始前结束后½是高电平,且保
证在时钟上跳沿½可靠锁存数据。
__一
_一
__—½
½O;POL吨‘½IA
1L
1,-
—L
。1,一
■L
1L ■Z一
1,-
■L
—1
0½½½20
■L
■L
—L
‘—L
■L
1
...J
½½¨1
121
½广
½½ —广 ½广’
J广 —½一。
½■
、IE½
F½½½ A½½½½½½½½½
Z½½分雕是1
1-曲I½
证½’½,,½太2
12210 364
I
365 10607
½‘
½I’
:½I 2:
F½½½ AII½½½½½½ T½½½½ 2
般½½采
R½½½
D½脚½½
608½0639
用P数据
图6主方式下时钟和数据线的时序关系
U½D½½½
639 I½ 3967239
2.4门限启动模块
图1中的门限比较电路由一个稳压源和比较器
组成,½输入端信号幅度超过设定门限时,门限比较
电路就输出一系列的正脉冲,这些脉冲½为信号采
图7
SD卡数据区存储空间分配
主引导记½和分区表占据数据区的第一个物理
扇区,共512 ½½½½,其中前446 ½½½½是主引导记½,
在本文件系统中不予考虑,446½510 ½½½½是分区
表,共四个分区表项,每个分区表项占用16 ½½½½,这
里只用第一个表项,其他表项内容全为0。½件中
分区表项内容用一个结构½MBR表示,包括有分
区的开始磁头、开始扇区、结束磁头、结束扇区以及
总扇区数等项内容。扇区最后两个字节是结束标志
55
集和存储的启动信号,为保证启动过程的可靠性且
不被瞬间的尖峰脉冲干扰,根据信号的实际物理特
征,FPGA中采取的措½是:只有接收到3个连续脉
冲才启动数据采集存储过程;一旦数据采集开始,则
至少采集十秒钟才复½脉冲捕获模块,既防止有效
数据的漏采,又减少了单片机查询门限状态的次数。
3
文件系统
在SD卡中建立FAT文件系统后,所采集数据
AA。主引导记½和分区表½然只有一个扇区的
数据,½按照SD卡文件系统协议要求,主引导记½
和分区表占用SD卡数据区的前121个物理扇区。
万
方数据
212
电子
器件
第32卷
分区启动扇区在分区的最开始½½,占用一个
扇区。分区启动扇区中默认包含一个扩展FDC
(F½½½½½½½ D½½½
A/D½换,并把采集数据写入新建立的文件中,采
C½½½½½½½½)描述符表项,包括有扇区
集过程中若信号幅度½于门限,则停止采集和存储
过程,更新FAT。若信号再次幅度过门限,则创建
新文件重复数据采集和存储过程。
大小定义、每簇扇区数、保留扇区数、根目½项数、每
FAT项占用扇区数、每磁道扇区数、磁盘面数等大
量分区操½基本信息。
文件分配表是记½存储区簇的分配½用情况,
FAT½6文件系统下2 G容量的SD卡每个FAT占用
243个扇区,两个FAT占用122½607的物理扇区。
根目½中记½了SD卡上的文件和子目½,
FAT½6中的根目½占用固定的32个扇区,扇区地址
紧跟在FAT2之后。根目½中的目½项可以是各种
文件按照建立时间顺序½名,在SD卡用户数
据区(U½½½ D½½½)也是按顺序存放,这样即½数据写
操½过程中出现异常中止导致的文件损坏,也可以
方便地修复FAT将采集的有效数据读出。
4结语
系统可方便进行升级,EP½C3½为ALTERA
公司C½½½½½½系列最½配½的FPGA产品,内部也
集成有13个M4K RAM,加上FPGA丰富的I/O
类型的文件和子目½,每个目½项中包含文件名、扩
展名、文件建立日期时间、文件开始簇、文件大小等信
息,共占用32
½½½½,所以根目½中可以有512个根目
½项。根目½后是用户数据区,存放文件数据。
3.2文件系统基本操½
资源,应用本设计可方便将A/D采集扩展到多通
道;其次,若只对½件进行升级,SD读写采用4
½½½SD模式,可将采集速率提升到4
MH½,而且随着
SD卡新产品读写速率的不断提高,A/D采集速率
提升到十几兆到几十兆也是可½的。
根据系统的实际需求,设计的文件系统只支持
一级目½结构,最多可保存512个文件。应用½件
对SD卡主要是初始化和写入操½,SD卡的读写支
持单块模式和多块模式,这里采用多块写模式,单片
机在发送的½令中指定相应地址后,采集数据就以
块的½式连续写入SD卡中。单片机应用½件流程
图如图8所示,½信号幅度超过设定门限,则启动
目前已利用该系统成功获取了某水下航行器的
噪声数据,实验结果表明,该设计应用方便、工½可
靠。同时该设计可½为一个通用的信号采集、记½
设备,具有非常广泛的应用前景。
参考文献:
D3马秀娟,牛进鹏等.高速数据采集系统中的FPGA的设计[J3.
电子器件,2007(8):1372-1379.
[2½S½½D½½½
S½½½½½ D½½½½½½ ½½½½ P½½½½½½
M½½½½½ V½½½½½½2.2I½½.
S½½D½½½ C½½½½½½½½½½
2004.
E32
A½½½½½ L½½.C½½½½½½ D½½½½½ H½½½½½½½ V½½½½½ 1
2005[½J.AI・
½½½½
C½½½½½½½½½½ 2005.
[4½王诚,吴继华等.A½½½½
FPGA/CPLD设计(基础篇、高级篇)
[M½.北京:人民邮电出版社,2005,7.
[53毕战坤,张弈猛等.基于逻辑设计的高速CRC并行算法研究及
其FPGA实现D½.仪器仪表学报,2007(12):2244—2249.
[63邓剑。杨晓非等.FAT文件系统原理及实现[J½.计算机与数字
工程,2005(9):105-108.
[7½陈惠滨。陈仅星.嵌入式文件系统在移动数据采集器中的实现
[J½.电子器件,2005(9):608-611.
[83
图8单片机应用½件流程图
SD
M½½½½½
½½½½ S½½½½½½½½½½½½½-FILE SYSTEM SPECIFICA—
T10N
V½½½½½½½.01[½3.S½½D½½½
C½½½½½½½½½½ 2001.
万
方数据
评论