您好!欢迎访问米6体育官网app下载手机端!
专注精密制造10载以上
专业点胶阀喷嘴,撞针,精密机械零件加工厂家
联系方式
0818-386831386
您当前的位置: 主页 > 加工设备 >

加工设备

基于ARM920T微处理器的IDE硬盘接口设计与实现

更新时间  2023-05-17 02:57 阅读
本文摘要:1章节20世纪90年代后期,嵌入式系统在工业掌控、远程监控和数据采集等领域的应用于日益普遍,人们对嵌入式系统的存储容量也明确提出了较高的拒绝。因此研制限于于嵌入式系统的大容量、高速率、高可靠性的数据存储系统显得日益最重要。本文针对一款基于ARM920T芯片的开发板,根据ATA硬盘模块规范,设计了IDE硬盘模块电路,构建了对IDE硬盘的读取,可以在Linux系统中对其上的文件系统权利采访,超过了高速率和高可靠性的拒绝。

米6体育官网app下载手机端

1章节20世纪90年代后期,嵌入式系统在工业掌控、远程监控和数据采集等领域的应用于日益普遍,人们对嵌入式系统的存储容量也明确提出了较高的拒绝。因此研制限于于嵌入式系统的大容量、高速率、高可靠性的数据存储系统显得日益最重要。本文针对一款基于ARM920T芯片的开发板,根据ATA硬盘模块规范,设计了IDE硬盘模块电路,构建了对IDE硬盘的读取,可以在Linux系统中对其上的文件系统权利采访,超过了高速率和高可靠性的拒绝。

2ARM920T与S3C2410讲解ARM还包括一系列微处置芯片技术。ARM920T是ARM系列微处理器的一种,它使用5阶段管道化ARM9TDMI内核,同时配有了Thumb拓展、EmbeddedICE调试技术和Harvard总线。在生产工艺完全相同的情况下,性能平均ARM7TDMI芯片的两倍之多。

ARM920T系列主要应用于机顶盒产品、掌上电脑、笔记本电脑和打印机。S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,使用0.18umSU建工艺的32位微控制器。该处理器享有独立国家的16KB指令Cache和16KB数据Cache、MMU、反对TFT的LCD控制器、NAND存储器控制器、3路UART、4路DMA、4路带PWM的Timer、I/O口、RTC、8路10位ADC、TouchScreen模块、IIC-BuS模块、IIS-BuS模块、2个USB主机、1个USB设备、SD主机和MMC模块和2路SPI。

S3C2410处理器最低可运营在268MHz。3IDE模块及其规范IDE(IntegratedDriveElectronics)就是指IBMPC/AT上用于的ATA模块发展而来的。

米6体育

IDE/ATA磁盘驱动器与早期的ATA驱动器比起,减少了任务文件寄存器,还包括数据寄存器、状态寄存器以及体现地址的驱动器号、磁头号、道号和扇区号寄存器等。ATA模块规范定义了信号电缆和电源线的电器特征、网络信号的电器和逻辑特征,还定义了存储设备中可操作者的寄存器以及命令和协议。

3.1寄存器规范定义了两组寄存器:命令寄存器和掌控寄存器。命令寄存器用来接管命令和传送数据,掌控寄存器用来掌控磁盘操作。

常用的寄存器还包括数据寄存器、命令寄存器、驱动器/磁头寄存器、柱面号寄存器、扇区号寄存器、扇区数寄存器和状态寄存器。3.2数据传输方式ATA模块规范定义了两种数据传输方式:可编程I/O(PIO)方式和DMA方式。PIO传输方式下,CPU对控制器的采访都是通过PIO展开的,还包括从控制器加载状态信息和错误信息,以及向控制器发送命令和参数。在一次PIO数据传输过程中,CPU先选址,然后使读/写出信号有效地,CPU或控制器敲数据到数据总线,控制器或CPU读取数据,操作者已完成后,获释总线,这样一次数据传输已完成。

DMA方式,即必要内存采访,CPU把缓冲区的地址与必须读取的长度告诉他外设,外设于准备好后向CPU收到一个DMA催促,拒绝CPU停止用于内存,取得表示同意后就必要在内存和外设之间传输数据,已完成后再行把对内存的采访权归还给CPU。4硬件构建如图1右图,S3C2410与硬盘之间模块电路分成3个部分:片中选信号、数据信号和掌控信号。硬盘上寄存器分成两组,分别由IDE_CS0和IDE_CS1顺位,DA0~DA2则用作组内寄存器传输速率;数据线DD0~DD15因不存在输出/输入方向问题,故用nOE(读信号)接buffer(74LVTH162245)的DIR插槽来掌控缓冲器方向;掌控信号部分因该CPU与硬盘之间DMA时序不完全一致,故使用一块EPM7032AETC44-7芯片用作调整其时序。

PIO模式下,不必须DMARQ和nDMACK信号,DMA模式下,这两个信号才起起到。5软件构建硬盘驱动程序构建分成初始化、关上设备、设备I/O操作者和获释设备等几部分。5.1硬盘初始化与X86有所不同,在ARM体系结构中,对内存和外设的采访用于统一的指令,所以要对外另设地址展开内存同构。也就是说,通过一张表将I/O地址映射到内存空间中来,这部分工作是在系统初始化期间已完成的。

在IDE子系统初始化期间,Linux系统一旦找到一个IDE控制器,就设置它的ide_hwif_t结构来体现这个控制器和与之连接的磁盘;向Linux的VFS注册每一个控制器,并分别把它添加blk_dev和blkdevs向量表中;催促掌控必要的IRQ中断(主IDE控制器是14,次IDE控制器是15)和I/O空间(主控制器0x1f0,次控制器0x170):为每一个寻找的IDE控制器在gendisk列表中减少一个条目。IDE硬盘的初始化工作由idedisk_init已完成:(1)在数组ide_hwifs中找到已登记得各IDE控制器掌控的所有IDE硬盘(一个控制器最多掌控两个硬盘),每个IDE硬盘对应一个ide_drive_t结构。

(2)对寻找的每个IDE硬盘,调用函数ide_register_subdriver填上各IDE硬盘结构中的涉及信息域,主要是填上其驱动程序结构ide_driver_t。硬盘驱动中的函数do_rw_disk通过向磁盘掌控寄存器写出参数启动磁盘操作,已完成确实的数据读取。(3)对寻找的每个IDE硬盘,调用函数idedisk_setup更进一步设置其ide_drive_t结构,还包括设置该结构的settings域、doorlocking域、cyl、head、sect域、id域等。5.2关上设备关上块设备的操作者与关上普通文件的操作者基本相同。

(1)在当前进程的文件描述符表中为关上文件去找一个空位,申请人一块内存,用作创建新的文件的关上文件对象,即结构file。(2)解析设备类似文件名,取得其VFSinode和dentry结构,根据dentry结构填上file结构,特别是在是将file结构的f_op域划为其VFSinode中的缺省文件操作者。(3)继续执行该文件操作者集中于的open操作者,即blkdev_open,它根据设备类似文件的主次设备号从blkdevs向量表中放入早已登记的文件操作者集(file_operations)fops,用该结构替换file结构中的f_op域。(4)继续执行中新的文件操作者集中于的open操作者,即bl坚决kdev_open,它根据VFSinode中的i_rdev域查询数组ide_hwifsp[],借此找到该IDE硬盘所对应的ide_drive_t结构;如果ide_drive_t结构中登记有驱动程序,继续执行驱动程序集中于的open操作者。

(5)将关上文件对象放入到当前进程的文件描述符表中,回到文件描述符,即关上文件对象在进程文件描述符表中的索引。5.3设备I/O操作者读取块设备时要中用块缓冲区(bufer),对bufer的管理使用BuferCache机制。

米6体育

它管理bufer的创立、撤消、重复使用、查询、改版等,同时还要与系统中的其它部分(如文件系统、内存管理等)交互。Linux将BufferCache从块设备驱动程序中独立国家出来,作为对块设备读取的标准化机制,所以对块设备的读、写出、实时等操作者使用的都是由操作系统获取的公共函数,一般为block_read()和block_write()。为了增加对块设备操作者的次数,读取块设备时使用延后操作者,尽可能将多个读写操作拆分,所以操作者催促不是立刻提交给物理设备,而是获取了一种手段记录每次的催促(request),并为每类块设备获取一个催促队列用来排队、拆分、重组对该块设备的催促。

当必须从硬盘读书时,block_read()函数首先查询BufferCache如果在其中能寻找必须的buffer,则马上回到:否则,分解一个读书催促,并将其重新加入适当的催促队列排队。当必须向硬盘写出时,block_write()为此次写出操作者分解一个buffer,而后分解一个写出催促,并将其重新加入适当的催促队列排队。块设备驱动程序获取了一个催促处理函数,对硬盘而言是函数do_rw_disk。在必要的时候,硬盘的催促处理函数启动,do_rw_disk处置在催促队列上排队的催促,通过向硬盘收到读书、写出命令已完成对设备的确实操作者。

其逆代码如下:C程序DO_RW_DISK(COMMAND){Set_Registers();if(COMMAND=READ){Setread_intrasinterruptprocessfunctionSendWIN_READorWIN_MULTREADcommandtoCommandregister}if(COMMAND=WRITE){SendWIN_WRITEorWIN_MULTWRITEcommandtoCommandregisterGetthestatusofStatusregisterandsetDRQbitSetwriteintrasinterruptprocessfunctionSenddatatobuferinthedisk}}5.4获释设备由设备驱动程序中的release操作者已完成,一般已完成与关上设备忽略的动作:获释关上设备类似文件时在file结构上所创立的私有结构;如果是最后一个设备的获释,则从硬件上重开设备。6结束语通过上述方法对IDE硬盘模块的设计与构建,我们可以在S3C2410开发板上安全性权利地对硬盘上的各种文件系统展开采访,由于使用DMA方式,可以满足用户对速率的拒绝。


本文关键词:基于,ARM920T,微处理器,的,IDE,硬盘,接口,米6体育,设计

本文来源:米6体育官网app下载手机端-www.dhydqc.com