广告

原创 基于SATA固态硬盘的高速大容量嵌入式存储模块(80M/s数据连续写入)

2013-6-9 22:52 1353 1 6 分类: FPGA/CPLD

        前段时间做高速大容量存储,在网上看不少牛人使用V5的FPGA直接实现SATA协议,性能也可以做的很高(200MB/s左右)。但是V5的价格太贵,更正重要的书,使用verilog实现SATA协议对俺来说有点难,即使实现了功能,其可靠性也很难保证,没有半年时间估计搞不定。只好采用简单的实现途径。

        JM20330是一款PATA转SATA芯片,有工业级芯片,最大可支持2T硬盘,支持uDMA5,uDMA6,uDMA6,分别对应的传输速度为100MB/s,133MB/s,150MB/s。而我们的要求80MB/s的存储速度就够了。所以采用uDMA5控制方式,uDMA5是在写时钟的上升沿和下降沿分别传输一次数据,提高了数据带宽。实现起来并不困难,对着ATA协议一步一步来就行了。容易让人混淆的一点是,协议中时序图为1的地方不代表高电平,而是表示“有效”,这一点一定注意,我就吃了好几天的亏,硬盘怎么都没反应。

         主 控制芯片采用spartan6 LX45 FPGA,采用ddr3做数据缓冲,千兆以太网作为数据下载和数据采集控制接口,(也可采用422接口为采集控制接口)。为简化工作量,没有建立文件系统,数据按照页顺序写入在SATA固态硬盘中,系统在页地址0x00100中建立了存储管理表,记录存储次数、每次存储的起始页、每次存储的页长度等信息。使用配套的上位机处理软件,千兆以太网的最高下载速度为40MB/s(巨帧模式),可以方便快捷的管理数据。

        系统可支持422、LVDS、并口等数据输入方式(我们的设备采集和存储分离,AD采集的数据通过高速串口发送到存储器),由接收解码单元将收到的数据存入PATA控制器的缓冲FIFO中(32k),每满16k的数据,启动一次uDMA写操作(写16k数据)。经测试,系统可支持80M/s数据的连续写入。

        存储模块的体积为60mmX80mmX40mm,两块PCB板+一块SATA硬盘,体积很小,功耗大概3.5W(有点大硬盘占了1/3,)。由于采用了固态硬盘,系统抗震动、抗冲击,适合工业、军用等领域。

        我这种可能不是性能最好的方案,但是是最方便、最快实现的方案,共花了3个月时间吧,但存储性能已经快到极限了(uDMA6 100MB左右,我没试那么快的,并口速度太快还是让人不放心啊)。V5的高性能很诱人,但是开发难度???网上看TI的DSP DM8168集成SATA口,但不知性能如何,以及开发的难易度。Power PC也有 SATA接口的,也没见到太多资料。有什么更好的方案,希望网友讨论一下。

广告

文章评论 5条评论)

登录后参与讨论

billzhu_345737527 2014-9-13 22:39

不错,我们正在研究着方面的内容,希望可以向你请教,我qq是18422226,如果方便请加我聊聊。

haibo2806_108981347 2013-6-13 20:12

欢迎交流

haibo2806_108981347 2013-6-13 20:11

7V,存储时400mA,如果算上网络,连上网络之后会增加300mA

billzhu_345737527 2013-6-13 14:49

你好,你做的这个模块功耗如何?

billzhu_345737527 2013-6-10 09:18

不错,我们最近也要做这个,希望能得到些帮助。
相关推荐阅读
haibo2806_108981347 2015-01-26 22:03
Xilinx FPGA的JTAG可以识别,但是不能下载bit文件,INIT_B引脚上拉电阻改为100欧姆后,正常了
        单位做了一批板子,主芯片是spartan6 LX45T,8块板子中有一块下载不了bit文件,但是可以用JTAG识别。检查了一下电源供电,配置方面的一些上拉下拉电阻均没有问题。通过示...
haibo2806_108981347 2014-02-16 22:12
Cy7c68013 的win7 驱动和SlaveFifo例程
之前用的是xp环境,用的红色飓风开发板,现在自己做的板子,改成了win7系统,可是原来的eZ-USB控制面板不能用了,搜了一下cypress的官方驱动,Cypress Suite USB 3.4....
haibo2806_108981347 2013-10-02 08:43
安装完PADS,发现orcad不能用了,提示“无法启动此程序,因为计算机中丢失 MSVCR90.dll”
  安装完PADS 9.3,发现orcad不能用了,打开orcad,提示一下错误:   --------------------------- Capture.exe - 系统错误...
haibo2806_108981347 2012-12-07 23:25
24bitAD采集芯片AD7760的使用
        AD7760是一款高速24bitAD采集芯片,采样率为78.125k-2MHz,在78.125k采样率下的动态范围120dB。我用cyclone3 FPGA控制,由于AD7760采...
haibo2806_108981347 2012-12-05 16:35
microblaze 使用lwip协议栈的一点体会
有个项目要用以太网传大量数据,spartan6+ddr3+千兆以太网,内核采用microblaze软核,逻辑搭mac,phy芯片用的88E1111。 最开始采用xilinx官方的例子XAPP1...
我要评论
5
1
广告