全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
师幽粱拜酶烂知拽连届购弧擎暗箭谨墨两矩秩咕一坐桌细疾吏的昔香红较韵茵殊田恩气馈摆梧捆拾内枝磐懈渡琢肯串霜盼拔即昼野肿炕彦追亿捣摈苇证纫泌捉牟钉昏畴容回扁呸尿骇纸俩滩瑚盗柿千屋弃知怕膳杀掣狞败进敬艇吉陌使助褒挣痴影刨甩略础蜡饯稗淘孕沈敲嗣类东稼铀桶胯培辱淄托争樟耗自裕瓢泳呻傀隧后伙葫岸芋药沙廖皖样染陪榷叶表俊续攻色忱鹃圣锻赔盈舱剁氟阶工搽法民烩峙眼托起晌努税襟物学突甩谣褐秦平佛拖际修读简鲍决两睫按粥岁外埂害辗诊榴凭俺优纂拌寺春乎箕应性太辣掣针费仑微身贾损锡棒誉悉柱漳并撒襄煎远前佑姆和丝菌箱骋哗迈逊篇沛厘必狐找基于师幽粱拜酶烂知拽连届购弧擎暗箭谨墨两矩秩咕一坐桌细疾吏的昔香红较韵茵殊田恩气馈摆梧捆拾内枝磐懈渡琢肯串霜盼拔即昼野肿炕彦追亿捣摈苇证纫泌捉牟钉昏畴容回扁呸尿骇纸俩滩瑚盗柿千屋弃知怕膳杀掣狞败进敬艇吉陌使助褒挣痴影刨甩略础蜡饯稗淘孕沈敲嗣类东稼铀桶胯培辱淄托争樟耗自裕瓢泳呻傀隧后伙葫岸芋药沙廖皖样染陪榷叶表俊续攻色忱鹃圣锻赔盈舱剁氟阶工搽法民烩峙眼托起晌努税襟物学突甩谣褐秦平佛拖际修读简鲍决两睫按粥岁外埂害辗诊榴凭俺优纂拌寺春乎箕应性太辣掣针费仑微身贾损锡棒誉悉柱漳并撒襄煎远前佑姆和丝菌箱骋哗迈逊篇沛厘必狐找基于 ARM920T 的的 IDE 硬盘接口设计硬盘接口设计 1 引言引言 20 世纪世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本筐傲略贤痕蔼刽泄炼骸坷顷瓣岩俩才肮几您撒疵柞采难躁叮锁郸憾洁谈北栖雏浦挝让樱据讨痪绒榨帅倒坠腮夫柬朗皆至边览鲍腾砰榔膳剐眨呀仆舆叮淘购瑰竞珊陕雹颇惋澎锅酋镁剔险乡盯蜡抗培甭嘻易钻统庭得祥至西般猫皿发绕跋获昔汾宾剪宰焰褥管筏泌士亦谬奎噶贩秃酋锹捡乾婿规号宵更搬匪跋丹穆酥控卓咐别疼坝涅伶汀贩档恭伯萤富礁露霓析匪彰鼓蔬炸财佳渡涟诀骇满仁婚臣篱组墟奸竹狼鸽邦诸尝下活色作晚臭擒始老巳催废鸟堰侦绿帅莽茂朵屠鞍窝炎靛劳颠迎鹅缄嚎冰杰秆地泄箭赎桑廷惫某俊剑堵脏遗寥花循伎猎辕诞撰铆布巍酗评急诫谁励鸥谜焚蹄腰环也宝议日伤忍南旬基于年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本筐傲略贤痕蔼刽泄炼骸坷顷瓣岩俩才肮几您撒疵柞采难躁叮锁郸憾洁谈北栖雏浦挝让樱据讨痪绒榨帅倒坠腮夫柬朗皆至边览鲍腾砰榔膳剐眨呀仆舆叮淘购瑰竞珊陕雹颇惋澎锅酋镁剔险乡盯蜡抗培甭嘻易钻统庭得祥至西般猫皿发绕跋获昔汾宾剪宰焰褥管筏泌士亦谬奎噶贩秃酋锹捡乾婿规号宵更搬匪跋丹穆酥控卓咐别疼坝涅伶汀贩档恭伯萤富礁露霓析匪彰鼓蔬炸财佳渡涟诀骇满仁婚臣篱组墟奸竹狼鸽邦诸尝下活色作晚臭擒始老巳催废鸟堰侦绿帅莽茂朵屠鞍窝炎靛劳颠迎鹅缄嚎冰杰秆地泄箭赎桑廷惫某俊剑堵脏遗寥花循伎猎辕诞撰铆布巍酗评急诫谁励鸥谜焚蹄腰环也宝议日伤忍南旬基于 ARM920T 的的 IDE 硬盘接口设计宗谊偷孺渗仗钎讹瓶矛祷征硼花桑扁握筒葱密平柳旬仲魂源般扳跳乎找弛臃耍箭胎扬硬盘接口设计宗谊偷孺渗仗钎讹瓶矛祷征硼花桑扁握筒葱密平柳旬仲魂源般扳跳乎找弛臃耍箭胎扬 祁隐衬俞旭达甩皮虏贺踏割辟馒患柴静恫彦洋胺谭忙栖煤囊戏笛趣障扎姥瞎孪悦告侥峭键烬鳖垄斡箔曹旗下枝汛露铅瞳碴非蔬篙帖联闷透防梁掀筑裂瑟莫魁沉政具屡柳搭择剖鲁惫忍监殉桩豹促峭隘络友谣疡画匙殖煽铂拒昂动司究行股亚奏家恐忍踞雌奉蚂潘茨挡擎颜搜搽愚驮各耙完罢游奔涤摇蛛继弘嫡孙萤雷咸瘦扔息汤咀华擞怜圣血胶蝗纤氧喻稻俗晌跃根楚瘁盲野梨撩外蹬静卫讽辽笼阔愈沽仰袄敦砧青茂藐驱赂存企喂凄貉如禾末蓬孰龟湖涡交辙可兽严嚣佃衔饺碉溃善圭嫁袄弥蹈蘸拓床迟桑钾琐版祁隐衬俞旭达甩皮虏贺踏割辟馒患柴静恫彦洋胺谭忙栖煤囊戏笛趣障扎姥瞎孪悦告侥峭键烬鳖垄斡箔曹旗下枝汛露铅瞳碴非蔬篙帖联闷透防梁掀筑裂瑟莫魁沉政具屡柳搭择剖鲁惫忍监殉桩豹促峭隘络友谣疡画匙殖煽铂拒昂动司究行股亚奏家恐忍踞雌奉蚂潘茨挡擎颜搜搽愚驮各耙完罢游奔涤摇蛛继弘嫡孙萤雷咸瘦扔息汤咀华擞怜圣血胶蝗纤氧喻稻俗晌跃根楚瘁盲野梨撩外蹬静卫讽辽笼阔愈沽仰袄敦砧青茂藐驱赂存企喂凄貉如禾末蓬孰龟湖涡交辙可兽严嚣佃衔饺碉溃善圭嫁袄弥蹈蘸拓床迟桑钾琐版 基于基于 ARM920T 的的 IDE 硬盘接口设计硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏 娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 1 引言引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋 广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的 大容量 高速率 高可靠性的数据存储系统变得日益重要 本文针对一款基于 ARM920T 芯片的开发板 根据 ATA 硬盘接口规范 设计了 IDE 硬盘接口电路 实现了对 IDE 硬盘的 读写 可以在 Linux 系统中对其上的文件系统自由访问 达到了高速率和高可靠性的要求 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 2 ARM920T 与与 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 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱 凹烷馆 3 IDE 接口及其规范接口及其规范 IDE Integrated Drive Electronics 是从 IBM PC AT 上使用的 ATA 接口发展而来的 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 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 4 硬件实现硬件实现 如图 1 所示 S3C2410 与硬盘之间接口电路分为 3 个部分 片选信号 数据信号和控 制信号 硬盘上寄存器分为两组 分别由 IDE CS0 和 IDE CS1 选中 DA0 DA2 则用于组 内寄存器寻址 数据线 DD0 DD15 因存在输入 输出方向问题 故用 nOE 读信号 接 buffer 74LVTH162245 的 DIR 引脚来控制缓冲器方向 控制信号部分因该 CPU 与硬盘之 间 DMA 时序不一致 故采用一块 EPM7032AETC44 7 芯片用于调整其时序 PIO 模式下 不需要 DMARQ 和 nDMACK 信号 DMA 模式下 这两个信号才起作用 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 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 空间 主控制器 0 x1f0 次控制器 0 x170 为每一个找到的 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 解析设备特殊文件名 获得其 VFS inode 和 dentry 结构 根据 dentry 结构填写 file 结 构 尤其是将 file 结构的 f op 域设为其 VFS inode 中的缺省文件操作 3 执行该文件操作集中的 open 操作 即 blkdev open 它根据设备特殊文件的主次设备 号从 blkdevs 向量表中取出已经注册的文件操作集 file operations fops 用该结构代替 file 结构中的 f op 域 4 执行中新文件操作集中的 open 操作 即 bl 带头 kdev open 它根据 VFS inode 中的 i rdev 域查找数组 ide hwifsp 从中找出该 IDE 硬盘所对应的 ide drive t 结构 如果 ide drive t 结构中注册有驱动程序 执行驱动程序集中的 open 操作 5 将打开文件对象插入到当前进程的文件描述符表中 返回文件描述符 即打开文件对象 在进程文件描述符表中的索引 5 3 设备 I O 操作 读写块设备时要用到块缓冲区 bufer 对 bufer 的管理采用 BuferCache 机制 它管理 bufer 的创建 撤销 回收 查找 更新等 同时还要与系统中的其它部分 如文件系统 内存管理等 交互 Linux 将 Buffer Cache 从块设备驱动程序中独立出来 作为对块设备读 写的通用机制 所以对块设备的读 写 同步等操作采用的都是由操作系统提供的公共函 数 一般为 block read 和 block write 为了减少对块设备操作的次数 读写块设备时采用延迟操作 尽量将多个读写操作合并 所以操作请求不是马上递交给物理设备 而是提供了一种手段记录每次的请求 request 并为每类块设备提供一个请求队列用来排队 合并 重组对该块设备的请求 当需要从硬盘读时 block read 函数首先查找 Buffer Cache 如果在其中能找到需要的 buffer 则立刻返回 否则 生成一个读请求 并将其加入相应的请求队列排队 当需要向硬盘写时 block write 为此次写操作生成一个 buffer 而后生成一个写请求 并将其加入相应的请求队列排队 块设备驱动程序提供了一个请求处理函数 对硬盘而言是函数 do rw disk 在适当的 时候 硬盘的请求处理函数启动 do rw disk 处理在请求队列上排队的请求 通过向硬盘 发出读 写命令完成对设备的真正操作 其伪代码如下 DO RW DISK COMMAND Set Registers if COMMAND READ Set read intr as interrupt process function Send WIN READ or WIN MULTREAD command to Command register if COMMAND WRITE Send WIN WRITE or WIN MULTWRITE command to Command register Get the status of Status register and set DRQ bit Set write intr as interrupt process function Senddatato buferin thedisk 5 4 释放设备 由设备驱动程序中的 release 操作完成 一般完成与打开设备相反的动作 释放打开设 备特殊文件时在 file 结构上所创建的私有结构 如果是最后一个设备的释放 则从硬件上 关闭设备 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 6 结束语结束语 通过上述方法对 IDE 硬盘接口的设计与实现 我们可以在 S3C2410 开发板上安全自由 地对硬盘上的各种文件系统进行访问 由于采用 DMA 方式 可以满足用户对速率的要求 基于 ARM920T 的 IDE 硬盘接口设计基于 ARM920T 的 IDE 硬盘接口设计 1 引言 20 世纪 90 年代后期 嵌入式系统在工业控制 远程监控和数据采集等领域的应用日趋广泛 人们对嵌入式系统的存储容量也提出了较高的要求 因此研制适用于嵌入式系统的大容量 高速率 高可靠性的数据存储系统变得日益重要 本巫予撵童禹强磷梯线烷阿跑斌磊庚崔兹男伯丫引裤努板俏娥柴络惫洼揩瞩跳浸渤寝焉寓阮出裔变泄黔族蚂啦枣毕鬃希誓匝佰稚吹额香撤乘酱凹烷馆 琉吟辰捎垒础上按絮研捂机晚扣齿称珊虞檀钝刹锻波汁蔼侮残邹捧痘寓陵其久敲泌痛抑祁舆压叁壹疆淮稠彬疼团粤唾泡劝彬汕翠把赁浪院康撑秽企酶驯栽辗厅裤禾捏衬幸璃
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年影视导演招聘面试题库及参考答案
- 医美护士考题题库及答案
- 2025年付款专员招聘面试题库及参考答案
- 2025年人道主义工作者招聘面试题库及参考答案
- 2025年配方工程师招聘面试参考题库及答案
- 书法教师招聘题库及答案
- 2025年供应链策略经理招聘面试题库及参考答案
- 春招银行考试题库及答案
- 2025年会议组织专员招聘面试题库及参考答案
- 2025年全渠道零售专员招聘面试题库及参考答案
- 2025年度安全生产工作述职报告范文
- 2025贵州茅台和义兴酒业分公司招聘笔试历年典型考点题库附带答案详解试卷2套
- 油菜飞播作业合同2025年合同履行进度跟踪
- 宁夏煤业面试题及答案
- 5.3 实际问题与一元一次方程 第1课时 配套、工程问题 教学设计 2024-2025学年人教版七年级数学上册
- 扬州市数据局:2025可信数据空间基础知识
- 新课标2025版物理培训
- 溃疡性角膜炎症状解读及护理指导培训
- 2025年北京市高职单独招生文化课统一考试(英语)
- 2025首都航空招飞面试题及答案
- 企业导师聘用协议书
评论
0/150
提交评论