下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 采用FPGA和DSP直接控制硬盘实现存储控制的方法采用FPGA和DSP直接控制硬盘实现存储控制的方法摘 要 介绍了采用FPGA和DSP直接控制硬盘进行数据存储的方法,并采用一片FIFO作为数据缓存,能够满足80Khz数据采样率系统的存盘要求。 关键词 FPGA;DSP;硬盘;数据存储1引言 数据存储是数据采集过程中的一个重要环节,目前大部分数据存储系统都是用内置工控机的方法完成数据保存任务,这种方法系统功耗大,硬件成本高,不适用于具有内记功能要求的系统。本系统采用FPGA和DSP直接控采用FPGA和DSP直接控制硬盘实现存储控制的方法
2、摘 要 介绍了采用FPGA和DSP直接控制硬盘进行数据存储的方法,并采用一片FIFO作为数据缓存,能够满足80Khz数据采样率系统的存盘要求。 关键词 FPGA;DSP;硬盘;数据存储 1引言 数据存储是数据采集过程中的一个重要环节,目前大部分数据存储系统都是用内置工控机的方法完成数据保存任务,这种方法系统功耗大,硬件成本高,不适用于具有内记功能要求的系统。本系统采用FPGA和DSP直接控制硬盘进行数据存储,并采用一片FIFO 作为数据缓存,设计思路比较新颖,硬件结构简单,成本
3、低,直接控制硬盘的方法可将系统功耗降至最低,具有自动内记功能,能及时存储采集到的数据。本系统已经应用于某信号采集设备中,实践证明可满足使用要求,能够满足80Khz数据采样率系统的存盘要求。2系统实现方案 本设计采用FPGA和DSP直接控制硬盘12,并采用一片FIFO作为数据缓存,系统采用DSP完成文件管理工作,利用FPGA实现DSP与硬盘的接口。具体框图如图1所示。图1 方案实现框图 首先由采集控制板FPGA将FIFO复位,需要储存数据时数据流直接将数据写入FIFO,当存储控制板FPGA查询到FIFO的状态为非
4、空时就输出BIO信号通知DSP启动存盘程序。DSP先访问硬盘确定所需参数,如下一个文件应使用的文件名,保存文件的逻辑扇区号等。然后DSP向硬盘发出存盘命令,当硬盘响应控制命令后,DSP通知FPGA可以向硬盘传输数据。存盘时FPGA从FIFO中读出数据并将数据打包,由8bit变为16bit,并写入硬盘数据寄存器。当存满40M时,DSP通知采集控制系统已写满一个文件,采集控制系统将FIFO复位完成一次存盘操作。3存储控制程序流程 程序启动后,首先将硬盘Device register中的SRST置1使硬盘复位,在硬盘复位后读取MBR0和BPB0,在FAT中找到Sp
5、ecial Sector并检查是否有标志位0x55FF,如果没有则说明硬盘是第1次被使用,如果有则从中读取参数准备传输数据。 (1) 为了在每次启动程序后能迅速查找到应使用的文件名、下一个空簇的位置、正在使用的磁盘等参数,将硬盘第3簇中第1扇区标志为Special Sector,用于储存这些参数。 (2)每个磁盘被划分出200M空间为保留区,当发现磁盘空间不足200M时即显示磁盘已满,不在用当前磁盘存储数据而是使用下一个磁盘。 (3)每个磁盘第2簇为目录区,因使用短文件名无子目录,所以当
6、每簇为16扇区时目录区共可储存256个文件名。 (4)数据文件大小固定为40M。 如果硬盘是第一次被使用,则主机顺次读取MBR0、BPB0、MBR1、BPB1直到查询到最后一个硬盘分区,并将相关参数如每个分区的大小、分区的逻辑地址、每个分区数据空间起始段的逻辑地址、FAT表逻辑地址等信息写入Special Sector,并做一个文件的目录(32字节)将第一个文件命名为“000.dat”。 当FAT中第三簇被标志为坏簇时,表明已经在硬盘上划分Special Sector并已存入硬盘参数。主
7、机从Special Sector中读取下一个可用空簇,并计算这一簇在FAT中的位置并将FAT读入C54的RAM中,读取Special Sector中的文件名及相关参数并将其写入目录区。然后查询BIO,当BIO为低电平时开始传输数据(参见储存板接口),传输数据时FPGA启动元件 trans_data,由主机发出XF作为启动信号。FPGA从FIFO中每读出2Bytes向硬盘写一次,连续写256次,即向硬盘传输512字节数据。主机每发出一个XF下降沿FPGA就从FIFO中读取512字节数据并存入硬盘。 传输40M数据结束后,主机将根据传输的扇区数填写FAT表,判断硬盘空间是否
8、小于200M、已储存的文件数是否大于256,如果为真则再次存储数据时将使用下一个磁盘分区。4硬盘操作控制流程 我们一般习惯称硬盘接口为IDE接口3,对硬盘的操作如读写扇区,发送命令等都是通过读写寄存器来完成的,每向硬盘发送一组命令后都要读取状态寄存器中的信息,通过状态寄存器的值来判断硬盘是否已经执行完所发送的命令。4.1 硬盘启动操作 硬盘加电后应先将硬盘复位,硬盘复位方式有三种,本设计采用的是将SRST置1,当SRST被置1后硬盘立即复位,这时应至少等待2ms才读取Status register。如果Stat
9、us register的值为80h,则表明硬盘已完成复位。硬盘启动流程见图2。图2硬盘启动程序流程图 图3 扇区读写操作程序流程图4.2 扇区读写操作 首先应向硬盘发送命令参数,将要读写的扇区数目写入Sector count register,将扇区的逻辑地址写入LBA High register、LBA Mid register和LBA Low register,将要接收命令的设备号写入Device register。流程见图3。 LBA(柱面编号×磁头
10、数磁头编号)×扇区数扇区编号1 将命令READ SECTOR或WRITE SECTOR写入Command register后,在400ns内Status register的值并不可靠,所以需等待400ns才能读取Status register,这段等待时间可以通过读取Alternate Status register和Error register度过,读取的数值应被丢弃。当状态寄存器的值为58h时,表示硬盘已经可以从Data register接收或传输数据。
11、0; 4.3 DMA操作流程 DMA操作与I/O操作相似,流程见图4,首先应向硬盘发送命令参数,将要读写的扇区数目写入 Sector count register,将扇区的逻辑地址写入LBA High register、LBA Mid register和LBA Low register,将要接收命令的设备号写入Device register。将命令READ DMA或 WRITE DMA写入Command r
12、egister后,在400ns内Status register的值并不可靠,所以需等待400ns才能读取Status register,这段等待时间可以通过读取Alternate Status register和Error register度过,读取的数值应被丢弃。当状态寄存器值为58h时主机应给出DMA初始化时序开始传输数据。
13、60; 图4 DMA操作流程图5设计中的重点5.1 采样率问题 数据采集及存储系统一般都有采样率要求,采样率一般要求大于50K,才能满足快速实时采集数据的要求。本系统中速度较慢的环节是硬盘存储环节,硬盘接口设计存盘速度为7.8Mbyte/S,显然采集速率与存盘速率并不匹配,解决的措施为采用一片 FIFO作为数据缓冲区。由于对硬盘操作过程中,需不断查询其状态,而硬盘状态改变时间又不确定,所以要选用存储深度较大的FIFO作为缓存,IDT公司的72V2101满足设计要求5。工作时数据直接将数据写
14、入FIFO,FPGA查询FIFO的状态,为非空时,协调DSP访问硬盘,进行存储操作,这样采用FIFO作为缓存的方案解决了速率匹配问题4,当采样率为80k时,数据流为5Mbyte/S,本系统设计存盘速度为7.8Mbyte/S,可以满足80K以内数据采样率系统的存盘要求。5.2 硬盘存储地址问题 硬盘中数据如何存储是本设计中另一个重点问题,主要考虑文件存储的地址及文件目录情况。本设计中硬盘文件的存储采用FAT32文件系统,引导扇区记录了文件分配表的地址、个数、大小、簇的大小等信息。文件逻辑地址数据段起始地址(簇号 RootClus)×SecPerClus;数据段起始地址BPB地址RsvdSecCnFATSz32×NumFATs。)文件目录设计采用短文件名,每个文件名和相关信息占用3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育机构校长劳动合同3篇
- 新版项目软件合同3篇
- 提前终止月嫂合同3篇
- 安装工程合同中的技术解析3篇
- 数码相机购买合同3篇
- 摩托车位转让合同模板3篇
- 教育培训机构店长劳动合同3篇
- 旅游产品销售员招聘合同3篇
- 新版银行抵押贷款合同3篇
- 新媒体合作协议书3篇
- 2024年度共享办公空间租赁合同2篇
- 《血气分析的临床应》课件
- 2024年四级品酒师资格认证考试题库(浓缩400题)
- 国家电投《新能源电站单位千瓦造价标准值(2024)》
- 电影摄影及特殊拍摄技术(上海电影艺术职业学院)知到智慧树答案
- 山东省临沂市2023-2024学年高二上学期期末考试政治试题 含答案
- 理论力学(浙江大学)知到智慧树章节答案
- 理想系列一体化速印机故障代码
- 检验科各专业组上岗轮岗培训考核制度全6页
- 部编版二年级下册语文拼音练习
- 建筑施工危大工程监理实施细则
评论
0/150
提交评论