为了在嵌入式系统中实现对IDE 硬盘的读写, 介绍了基于ARM920T 处理器的嵌入式系统结构,设计了系统与IDE硬盘的接口电路,分析并改造了Linux 操作系统下的硬盘驱动,最终在S3C2410 开发板上实现了对硬盘的稳定快速的读写。
20 世纪90 年代后期,嵌入式系统在工业控制、远程监控和数据采集等领域的应用日趋广泛,人们对嵌入式系统的存储容量也提出了较高的要求。因此研制适用于嵌入式系统的大容量、高速率、高可靠性的数据存储系统变得日益重要。本文针对一款基于ARM920T 芯片的开发板,根据ATA 硬盘接口规范,设计了IDE 硬盘接口电路,实现了对IDE 硬盘的读写,可以在Linux 系统中对其上的文件系统自由访问,达到了高速率和高可靠性的要求。
ARM920T 与S3C2410 介绍
ARM包括一系列微处理芯片技术。ARM920T 是ARM系列微处理器的一种,它采用5 阶段管道化ARM9TDMI 内核,同时配备了Thumb 扩展、EmbeddedICE 调试技术和Harvard 总线。在生产工艺相同的情况下,性能可达ARM7TDMI 芯片的两倍之多。ARM920T 系列主要应用于机顶盒产品、掌上电脑、笔记本电脑和打印机。
S3C2410 处理器是Samsung 公司基于ARM 公司的ARM920T处理器核,采用0.18um制造工艺的32 位微控制器。该处理器拥有独立的16KB 指令Cache 和16KB 数据Cache、MMU、支持TFT 的LCD 控制器、NAND 闪存控制器、3 路UART、4 路DMA、4 路带PWM的Timer、I/O口、RTC、8 路10 位ADC、Touch Screen 接口、IIC-BUS 接口、IIS-BUS 接口、2 个USB主机、1 个USB设备、SD主机和MMC接口和2 路SPI。S3C2410处理器最高可运行在268MHz。
IDE 接口及其规范
IDE(Integrated Drive Electronics)是从IBMPC/AT 上使用的ATA 接口发展而来的。IDE/ATA 磁盘驱动器与早期的ATA 驱动器相比,增加了任务文件寄存器,包括数据寄存器、状态寄存器以及反映地址的驱动器号、磁头号、道号和扇区号寄存器等。ATA 接口规范定义了信号电缆和电源线的电器特征、互联信号的电器和逻辑特征,还定义了存储设备中可操作的寄存器以及命令和协议。
寄存器
规范定义了两组寄存器:命令寄存器和控制寄存器。命令寄存器用来接收命令和传送数据,控制寄存器用来控制磁盘操作。常用的寄存器包括数据寄存器、命令寄存器、驱动器/磁头寄存器、柱面号寄存器、扇区号寄存器、扇区数寄存器和状态寄存器。
数据传输方式
ATA接口规范定义了两种数据传输方式:可编程I/O(PIO)方式和DMA 方式。PIO 传送方式下,CPU 对控制器的访问都是通过PIO进行的,包括从控制器读取状态信息和错误信息,以及向控制器发送命令和参数。在一次PIO数据传输过程中,CPU 先选址,然后使读/写信号有效,CPU 或控制器放数据到数据总线,控制器或CPU 读取数据,操作完成后,释放总线,这样一次数据传输完成。DMA 方式,即直接内存访问,CPU把缓冲区的地址与需要读写的长度告诉外设,外设在准备好后向CPU 发出一个DMA请求,要求CPU暂停使用内存,获得同意后就直接在内存和外设之间传输数据,完成后再把对内存的访问权归还给CPU。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !