ARM硬盘接口应用知识

最新更新时间:2012-03-06来源: 互联网关键字:ARM  硬盘接口 手机看文章 扫描二维码
随时随地手机看文章
在“计算机接口技术”教学中, 有关硬磁盘接口适配器这一章比较难学, 主要涉及到I?O 控制层对扇区读写和使用逻辑映射层对数据进行管理问题,内容比较抽象, 教师和学生只能凭想象去教与学。本文介绍了一种新的实现方法。硬件上依据A TA 标准通过ARM 微处理器与大容量的IDE 硬盘相连, 软件采用FA T32 文件系统对数据进行存储管理。硬盘脱机接入PC 系统中, 通过W indow s 等支持FA T 文件格式的操作系统, 能够直接应用硬盘中的数据。

  1 ARM 系统及IDE 接口综述

  ARM (A dvanced RS IC M ach ines) 是一种低功耗、高性能的32 位处理器。本文介绍的系统是基于Sam sung 公司S3C44B0X 构建而成。该CPU 的内核是ARM 7TDM I, 采用了三级流水线和VON N eumann 结构, 并且具有UART、IIC、IIS、S IO 接口,ADC、PWM 通道, 实时时钟、LCD 控制器等。

  硬盘接口结构主要分I/O 控制层和逻辑映射层。其中I/O 控制层包括与ARM 的物理接口, 实现对硬盘状态的查询、设置和对扇区的读写。它是依据A TA 标准连接的IDE 接口。通过IDE 接口选择可编程的P IO 或使用DMA 方法传输数据。本文将介绍P IO 方式传送, 即对硬盘每一次访问都需要分别进行编程.

  逻辑映射层实现对目录、文件与扇区数据逻辑映射, 以及数据的存储和修改。该部分应用微软公司FA T 标准, 为每个文件的磁盘块构造链接表, 通过链接表和它的索引实现对整个磁盘文件进行管理。

  在微机应用中, 由于常涉及大批量数据的存储,在联网条件不备的情况下, 通过IDE 接口连接大容量硬盘是一个有效方法。若按照AN S I 的A TA 标准连接硬盘, 并通过Fat32 文件系统进行数据管理,嵌入式系统读写过的硬盘, 还可以脱机移到W in2dow s 操作系统支持下的PC 机中, 实现与常规操作系统共享硬盘数据资源。本文介绍的方法可以推广到其它微处理器应用系统中。

  2 硬件结构与I/O 控制层

  A TA 标准对IDE 硬盘接口作了详细描述。

  图1 是按照A TA 规范结合P IO 传输特点进行连接。由于没有使用DMA 传输方式, 故DMARQ 和DMACK 两根悬空; / IOCS16 用于选择使用DD0~DD15 进行16 位传输或使用DD0~DD7 进行8 位传输; /D IOR 和/D IOW 是对磁盘驱动寄存器进行读写操作的一对握手信号; /C S0 用来选定命令寄存器组, /C S1 选择控制寄存器组。这两根信号线结合DA 0~DA 2, 就可以对IDE 多个寄存器进行访问,如数据寄存器、状态寄存器、命令寄存器等。

  

ARM 系统与IDE 接口

 

  此外,A TA 标准对IDE 命令也有严格定义, 如用来确认驱动器的0xEC, 读缓冲区的0xE4。在P IO模式中, 系统将IDE 命令送到命令寄存器中, 读写相应的数据、状态寄存器, 实现对硬盘访问和控制。

  对硬盘内部数据的操作需要了解它的物理存储方式。磁头、柱面和扇区是硬盘的基本结构, 而扇区是对硬盘读写的最小单位。硬盘内部的寻址方式有两种, 一种是物理寻址的CHS 方式, 另一种是逻辑寻址的LBA 方式。物理寻址CHS 方式是通过柱面、磁头和扇区号来确定唯一的存储单位, 较为繁琐。而逻辑寻址方式是采用线性映射方法, 从物理结构到逻辑块编号的映射关系如下:

  LBA = (柱面编号×磁头数+ 磁头号) ×扇区数+ 扇区编号- 1

  采用这种方法, 主机不用知道硬盘的物理结构, 就能直接对目标扇区进行寻址。

  根据前面的阐述, 编制I/O 控制层的控制程序, 可对IDE 控制寄器进行查询、设置和逻辑寻址,实现对指定扇区的读写。图2 是读一个扇区数据的流程图, 写扇区的方法和它类似, 区别只是在于传送指令和数据流动方向不同。此外, 在检测状态寄存器的时候, 最好加上超时判断, 防止程序陷入死循环。

  

I/O 控制层程序流程
3 逻辑映射层控制标准及实现

  3.1 关于FAT 标准

  由于希望ARM 系统对硬盘的读写操作能与主流操作系统共享, 该部分软件是根据与W indow s 相兼容的FA T 标准进行编制。用户也可以根据实际情况, 把该设计思路推广到如L inux 下的EX2 等其它工作平台。

  FA T 标准对硬盘逻辑结构作了划分, 主要有分区表、BPB 表、FA T 表、数据区等几部分。在硬盘格式化和分区后, 会在0 柱面0 磁头1 扇区建立分区表, 此表记载了硬盘在各分区起始和结束所使用的磁头、柱面、扇区号。对于每个分区, 逻辑0 扇区存放了一个BPB 表, 该表储存了整个文件系统关键的数据, 包括文件系统的类型, 每个扇区的字节数(Byte2PerSec ) , 每簇的扇区数(SecPerClu s) , 保留扇区数(R svdSecCn t) , FA T 表数目(N umFA T s) , 根目录起始簇(Roo tClu s) , 以及盘符和卷标等。其中簇(Clu STer) 是文件系统在效率原则下管理的最小单位, FA T 32 标准意味着每簇有8 扇区, 簇内存贮单元采用32 位二进制数。文件系统类型还可以使用FA T 12 和FA T 16 标准, 表示簇内存贮单元分别采用12 位和16 位二进制数。在格式化硬盘时, 依据硬盘簇的数目判断选用哪种文件系统标准, 若簇数小于4085 则是FA T 12, 若在4085 和65525 之间则是FA T 16, 大于65525 则是FA T 32。由于本文所述的系统使用大容量硬盘, 因而采用FA T 32 文件系统。

  在原理上, FA T 32 和其它两种方式是相同的, 完全可以移植过去。保留扇区是为BPB 表以后扩展保留一段区间, 暂且未被使用。

  3.2 关于FAT 表

  FA T 表实质上是一系列存放着数据的链接表。

  对于FA T 32 来说, 每四个字节(32b it) 对应硬盘数据区上的一个簇, 它们的数值是当前文件下一个簇的指针。如果这四个字节大于0x0FFFFFF8, 则表示当前文件在该簇内结束。若是0x00 则表示该簇是空的, 没有存放数据, 而0xFFFFFF7 表示这个簇已经损坏。采用这种方法, 在存取数据时只需沿着链接表寻址就行了, 不需按顺序存取, 也不会因删除文件造成磁盘碎片。FA T 表的大小是根据磁盘容量也就是簇的数量来决定, 不同磁盘FA T 表的大小不同。

  出于可靠性考虑, FA T 表一般都要冗余它的备份,冗余数量由BPB 表的N umFA T s 来定, 通常为2。

  这样在突然断电等意外情况下, 可以根据备份的FA T 表进行修复。

  3.3 硬盘数据区

  FA T 表之后是硬盘的数据区, 其开始是根目录(ROO T D irecto ry) , 此处存放了FA T 表根目录下的文件与子目录。存放格式有两种, 一种是长文件名, 一种是短文件名(标准的813 格式) , 通过数据中的特征位能分辨出来。长文件名和短文件名格式见参考文献, 它包含了文件的名字、属性、大小、起始簇数、建立及写操作的时间。实际上子目录的信息也被当作一个文件存储在根目录区, 只是它的属性为目录, 大小为0。同样, 子目录起始簇内存放了该目录下文件和子目录的信息表。依据这些信息, 可以在FA T 表找到该文件的链接表, 执行对整个文件相应操作。

  3.4 资源共享的实现

  对于不同的文字平台, 为能够实现资源共享, 采用UN ICODE 来存储文件名。在长文件名中, 每个字符都是用16b it s 的UN ICODE 来表示的, 而在短文件名中, 采用用户自定义的类型, 例如在简体中文W indow s 下, 采用A SC? 码和GB2312 码。通过U 2N ICODE 与其它码表对比查找程序, 用户可以在自己期望的文字平台上进行操作。

  图3 是读取一个文件的流程, 写文件的方法和读文件相类似, 只要注意在目录里建立文件时, 先把数据写入空白簇后再把FA T 表更新, 其中包括更新备份部分。

  

逻辑映射层程序流程

 

  4 结束语

  系统目前正被使用到远程电力网数据检测系统之中, 为嵌入式系统海量数据存储提供一种新的设计思路。

关键字:ARM  硬盘接口 编辑:神话 引用地址:ARM硬盘接口应用知识

上一篇:基于ZigBee的煤矿监控系统设计
下一篇:UHF电子标签的关键技术及频段划分

推荐阅读最新更新时间:2023-10-12 20:36

关于ADS容易出错的地方
建立工程,编辑源文件,把文件加入工程,设置工程属性、编译与链接选项,make! Error : A1163E: Unknown opcode vector.s line 14 14 00000020 Reset_Addr DCD Reset_Handler 。。。 全国人民再次震惊了,世界人民傻眼了。。。 我这次的的确确是在ADS的CodeWarrior中编辑的代码~!为什么!?为什么armassembler又不认识DCD了呢? 我一个字母一个字母的检查,没有发现错误。我狠狠地在出错的代码前后各敲了一次回车,确保正确换行,还是报错。。。我去掉了Reset_Addr DCD Reset_Handler这条伪操作语句前面的Tab
[单片机]
关于ADS容易出错的地方
基于ARM的汽车电子控制系统单元设计
  随着电子控制系统单元(ecu)在汽车上广泛应用,汽车电子化程度越来越高。电控系统的增加虽然提高了汽车的动力性、经济性和舒适性,但随之增加的复杂电路,必然导致车身布线庞大而且复杂,安装空间短缺。同时,为了提高电控单元信息利用率,要求大批的数据信息能在不同的电子单元间共享,汽车综合控制系统中大量的控制信号也需要实时交换,不同功能电子控制系统单元间的数据通信变得越来越重要。因此对电子控制系统单元的设计提出了越来越高的要求,不仅要求通信网络应具有通信速率高、准确、可靠性高的特点,同时要求控制模块上应具有控制实效性高、空间小等优点。   本文采用了基于can总线技术,设计开发了应用于汽车网络系统中的电子控制系统单元。   1
[单片机]
基于<font color='red'>ARM</font>的汽车电子控制系统单元设计
新一代RISC微处理器ARM11的特点技术
ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。   该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。   本文将对全新的ARMv6架构进行介绍,并深入分析ARM11处理器的先进特点和关键技术。 ARMv6结构体系   实现新一代微处理器的第一步就是订立一个新的结构体系。这里所说的结构体系只是对处理器行为进行描述,并不包括具体地指定处理器是如何被建造的。结构体系的定义提供了处理器和外界(操作系统,应用程序和调试支持)的接口,从细节上说,处理器结构体系定义了指令集、编程模式和最近
[新品]
NVIDIA Grace掀起新型节能Arm超级计算机的新浪潮
英国科研联盟GW4打造能效提升6倍的超级计算机,用于气候科学、医学研究等领域 德国汉堡 - 国际超算大会(ISC) - 2023年5月21日 - NVIDIA今天公布了一个基于NVIDIA Grace™ CPU超级芯片的超级计算机,为基于Arm® Neoverse™平台的新型节能超级计算机掀起了一轮新的浪潮。 Isambard 3超级计算机位于英国布里斯托和巴斯科学园,将配备384颗基于Arm架构的NVIDIA Grace CPU超级芯片,用于推动医学和科学研究,其性能和能效预计将达到Isambard 2的6倍,使其成为欧洲最节能的系统之一。它的FP64峰值性能将达到约2.7 petaflops,功耗低于270千瓦
[网络通信]
NVIDIA Grace掀起新型节能<font color='red'>Arm</font>超级计算机的新浪潮
ARM裸机篇---启动代码分析
先搞清楚启动代码和Bootloader的区别,启动代码是指CPU复位后到进入C语言的main函数之前需要执行的那段汇编代码。 下面的代码先暂且这样吧,没啥注释的,时间关系,我还是先搞些应用再说^_^ ;========================================= ; NAME: 2410INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; HISTORY: ; 2002.02.25:kwtark: ver 0.0 ; 2002.03.20:purnnamu: Add
[单片机]
X86渐显瓶颈 ARM迅速崛起 MID衍变历程回顾
英特尔X86架构MID的优势   作为MID概念提出者,英特尔公司截至目前共为其开发了两代应用平台,分别是2008年亮相的“Menlow”和2009年出现的“Moorestown”。   Menlow采用45纳米技术,处理器为Silverthorne Atom Z500系列,主频800MHz~1.86GHz,芯片组代号Poulsbo,整合南北桥与显示晶片,功耗0.65W~2.4W;Moorestown同样为45纳米技术,包括一个代号为Lincroft的Atom处理器核心、图形与视频引擎以及内存和显示控制器的片上系统(SoC);相比Menlow平台,Moorestown在功耗方面更低,同时封装体积也减
[模拟电子]
X86渐显瓶颈 <font color='red'>ARM</font>迅速崛起 MID衍变历程回顾
集AVR与ARM于一身 鱼与熊掌之兼得
半导体产业在全球经济危机的推波助澜下已坠入低谷,全球的MCU市场也呈现萎缩的态势。作为引领全球MCU市场发展的中国MCU市场,也进入了缓慢增长的“一位数”阶段。但另一方面,随着市场对绿色、智能消费产品的呼声愈发强烈,以及国家对基建的大力投资,低端MCU已经很难满足需求,向16位/32位升级是这一领域的重要趋势,而32位MCU产品在过去的一年中仍然表现出了的良好增长态势,并有望引领产业反弹。 在中国这个最大的MCU市场中,8位MCU产品充斥市场是不争的事实,那么32位MCU在中国的生存状况又是怎样的? 针对这个话题,EEWORLD采访了爱特梅尔(Atmel)公司企业市场推广副总裁Alf Bogen,让我
[EEWORLD独家]
集AVR与<font color='red'>ARM</font>于一身 鱼与熊掌之兼得
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved