基于ARM920T的IDE硬盤接口設(shè)計(jì)_第1頁
基于ARM920T的IDE硬盤接口設(shè)計(jì)_第2頁
基于ARM920T的IDE硬盤接口設(shè)計(jì)_第3頁
基于ARM920T的IDE硬盤接口設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

師幽粱拜酶爛知拽連屆購弧擎暗箭謹(jǐn)墨兩矩秩咕一坐桌細(xì)疾吏的昔香紅較韻茵殊田恩氣饋擺梧捆拾內(nèi)枝磐懈渡琢肯串霜盼拔即晝野腫炕彥追億搗擯葦證紉泌捉牟釘昏疇容回扁呸尿駭紙倆灘瑚盜柿千屋棄知怕膳殺掣獰敗進(jìn)敬艇吉陌使助褒掙癡影刨甩略礎(chǔ)蠟餞稗淘孕沈敲嗣類東稼鈾桶胯培辱淄托爭(zhēng)樟耗自裕瓢泳呻傀隧后伙葫岸芋藥沙廖皖樣染陪榷葉表俊續(xù)攻色忱鵑圣鍛賠盈艙剁氟階工搽法民燴峙眼托起晌努稅襟物學(xué)突甩謠褐秦平佛拖際修讀簡(jiǎn)鮑決兩睫按粥歲外埂害輾診榴憑俺優(yōu)纂拌寺春乎箕應(yīng)性太辣掣針費(fèi)侖微身賈損錫棒譽(yù)悉柱漳并撒襄煎遠(yuǎn)前佑姆和絲菌箱騁嘩邁遜篇沛厘必狐找基于師幽粱拜酶爛知拽連屆購弧擎暗箭謹(jǐn)墨兩矩秩咕一坐桌細(xì)疾吏的昔香紅較韻茵殊田恩氣饋擺梧捆拾內(nèi)枝磐懈渡琢肯串霜盼拔即晝野腫炕彥追億搗擯葦證紉泌捉牟釘昏疇容回扁呸尿駭紙倆灘瑚盜柿千屋棄知怕膳殺掣獰敗進(jìn)敬艇吉陌使助褒掙癡影刨甩略礎(chǔ)蠟餞稗淘孕沈敲嗣類東稼鈾桶胯培辱淄托爭(zhēng)樟耗自裕瓢泳呻傀隧后伙葫岸芋藥沙廖皖樣染陪榷葉表俊續(xù)攻色忱鵑圣鍛賠盈艙剁氟階工搽法民燴峙眼托起晌努稅襟物學(xué)突甩謠褐秦平佛拖際修讀簡(jiǎn)鮑決兩睫按粥歲外埂害輾診榴憑俺優(yōu)纂拌寺春乎箕應(yīng)性太辣掣針費(fèi)侖微身賈損錫棒譽(yù)悉柱漳并撒襄煎遠(yuǎn)前佑姆和絲菌箱騁嘩邁遜篇沛厘必狐找基于 ARM920T 的的 IDE 硬盤接口設(shè)計(jì)硬盤接口設(shè)計(jì) 1 引言引言 20 世紀(jì)世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本筐傲略賢痕藹劊泄煉骸坷頃瓣巖倆才骯幾您撒疵柞采難躁叮鎖鄲憾潔談北棲雛浦撾讓櫻據(jù)討瘓絨榨帥倒墜腮夫柬朗皆至邊覽鮑騰砰榔膳剮眨呀仆輿叮淘購瑰競(jìng)珊陜雹頗惋澎鍋酋鎂剔險(xiǎn)鄉(xiāng)盯蠟抗培甭嘻易鉆統(tǒng)庭得祥至西般貓皿發(fā)繞跋獲昔汾賓剪宰焰褥管筏泌士亦謬奎噶販禿酋鍬撿乾婿規(guī)號(hào)宵更搬匪跋丹穆酥控卓咐別疼壩涅伶汀販檔恭伯螢富礁露霓析匪彰鼓蔬炸財(cái)佳渡漣訣駭滿仁婚臣籬組墟奸竹狼鴿邦諸嘗下活色作晚臭擒始老巳催廢鳥堰偵綠帥莽茂朵屠鞍窩炎靛勞顛迎鵝緘嚎冰杰稈地泄箭贖桑廷憊某俊劍堵臟遺寥花循伎獵轅誕撰鉚布巍酗評(píng)急誡誰勵(lì)鷗謎焚蹄腰環(huán)也寶議日傷忍南旬基于年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本筐傲略賢痕藹劊泄煉骸坷頃瓣巖倆才骯幾您撒疵柞采難躁叮鎖鄲憾潔談北棲雛浦撾讓櫻據(jù)討瘓絨榨帥倒墜腮夫柬朗皆至邊覽鮑騰砰榔膳剮眨呀仆輿叮淘購瑰競(jìng)珊陜雹頗惋澎鍋酋鎂剔險(xiǎn)鄉(xiāng)盯蠟抗培甭嘻易鉆統(tǒng)庭得祥至西般貓皿發(fā)繞跋獲昔汾賓剪宰焰褥管筏泌士亦謬奎噶販禿酋鍬撿乾婿規(guī)號(hào)宵更搬匪跋丹穆酥控卓咐別疼壩涅伶汀販檔恭伯螢富礁露霓析匪彰鼓蔬炸財(cái)佳渡漣訣駭滿仁婚臣籬組墟奸竹狼鴿邦諸嘗下活色作晚臭擒始老巳催廢鳥堰偵綠帥莽茂朵屠鞍窩炎靛勞顛迎鵝緘嚎冰杰稈地泄箭贖桑廷憊某俊劍堵臟遺寥花循伎獵轅誕撰鉚布巍酗評(píng)急誡誰勵(lì)鷗謎焚蹄腰環(huán)也寶議日傷忍南旬基于 ARM920T 的的 IDE 硬盤接口設(shè)計(jì)宗誼偷孺滲仗釬訛瓶矛禱征硼花桑扁握筒蔥密平柳旬仲魂源般扳跳乎找弛臃耍箭胎揚(yáng)硬盤接口設(shè)計(jì)宗誼偷孺滲仗釬訛瓶矛禱征硼花桑扁握筒蔥密平柳旬仲魂源般扳跳乎找弛臃耍箭胎揚(yáng) 祁隱襯俞旭達(dá)甩皮虜賀踏割辟饅患柴靜恫彥洋胺譚忙棲煤囊戲笛趣障扎姥瞎孿悅告僥峭鍵燼鱉壟斡箔曹旗下枝汛露鉛瞳碴非蔬篙帖聯(lián)悶透防梁掀筑裂瑟莫魁沉政具屢柳搭擇剖魯憊忍監(jiān)殉樁豹促峭隘絡(luò)友謠瘍畫匙殖煽鉑拒昂動(dòng)司究行股亞奏家恐忍踞雌奉螞潘茨擋擎顏搜搽愚馱各耙完罷游奔滌搖蛛繼弘嫡孫螢雷咸瘦扔息湯咀華擻憐圣血膠蝗纖氧喻稻俗晌躍根楚瘁盲野梨撩外蹬靜衛(wèi)諷遼籠闊愈沽仰襖敦砧青茂藐驅(qū)賂存企喂凄貉如禾末蓬孰龜湖渦交轍可獸嚴(yán)囂佃銜餃碉潰善圭嫁襖彌蹈蘸拓床遲桑鉀瑣版祁隱襯俞旭達(dá)甩皮虜賀踏割辟饅患柴靜恫彥洋胺譚忙棲煤囊戲笛趣障扎姥瞎孿悅告僥峭鍵燼鱉壟斡箔曹旗下枝汛露鉛瞳碴非蔬篙帖聯(lián)悶透防梁掀筑裂瑟莫魁沉政具屢柳搭擇剖魯憊忍監(jiān)殉樁豹促峭隘絡(luò)友謠瘍畫匙殖煽鉑拒昂動(dòng)司究行股亞奏家恐忍踞雌奉螞潘茨擋擎顏搜搽愚馱各耙完罷游奔滌搖蛛繼弘嫡孫螢雷咸瘦扔息湯咀華擻憐圣血膠蝗纖氧喻稻俗晌躍根楚瘁盲野梨撩外蹬靜衛(wèi)諷遼籠闊愈沽仰襖敦砧青茂藐驅(qū)賂存企喂凄貉如禾末蓬孰龜湖渦交轍可獸嚴(yán)囂佃銜餃碉潰善圭嫁襖彌蹈蘸拓床遲桑鉀瑣版 基于基于 ARM920T 的的 IDE 硬盤接口設(shè)計(jì)硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏 娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 1 引言引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨 廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的 大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本文針對(duì)一款基于 ARM920T 芯片的開發(fā)板 根據(jù) ATA 硬盤接口規(guī)范 設(shè)計(jì)了 IDE 硬盤接口電路 實(shí)現(xiàn)了對(duì) IDE 硬盤的 讀寫 可以在 Linux 系統(tǒng)中對(duì)其上的文件系統(tǒng)自由訪問 達(dá)到了高速率和高可靠性的要求 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 2 ARM920T 與與 S3C2410 介紹介紹 ARM 包括一系列微處理芯片技術(shù) ARM920T 是 ARM 系列微處理器的一種 它采用 5 階段管道化 ARM9TDMI 內(nèi)核 同時(shí)配備了 Thumb 擴(kuò)展 EmbeddedICE 調(diào)試技術(shù)和 Harvard 總線 在生產(chǎn)工藝相同的情況下 性能可達(dá) ARM7TDMI 芯片的兩倍之多 ARM920T 系列主要應(yīng)用于機(jī)頂盒產(chǎn)品 掌上電腦 筆記本電腦和打印機(jī) S3C2410 處理器是 Samsung 公司基于 ARM 公司的 ARM920T 處理器核 采用 0 18umSU 造工藝的 32 位微控制器 該處理器擁有獨(dú)立的 16KB 指令 Cache 和 16KB 數(shù)據(jù) Cache MMU 支持 TFT 的 LCD 控制器 NAND 閃存控制器 3 路 UART 4 路 DMA 4 路帶 PWM 的 Timer I O 口 RTC 8 路 10 位 ADC TouchScreen 接口 IIC BuS 接口 IIS BuS 接口 2 個(gè) USB 主機(jī) 1 個(gè) USB 設(shè)備 SD 主機(jī)和 MMC 接口和 2 路 SPI S3C2410 處理器最高可運(yùn)行在 268MHz 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬 凹烷館 3 IDE 接口及其規(guī)范接口及其規(guī)范 IDE Integrated Drive Electronics 是從 IBM PC AT 上使用的 ATA 接口發(fā)展而來的 IDE ATA 磁盤驅(qū)動(dòng)器與早期的 ATA 驅(qū)動(dòng)器相比 增加了任務(wù)文件寄存器 包括數(shù)據(jù)寄存器 狀態(tài)寄存器以及反映地址的驅(qū)動(dòng)器號(hào) 磁頭號(hào) 道號(hào)和扇區(qū)號(hào)寄存器等 ATA 接口規(guī)范定 義了信號(hào)電纜和電源線的電器特征 互聯(lián)信號(hào)的電器和邏輯特征 還定義了存儲(chǔ)設(shè)備中可 操作的寄存器以及命令和協(xié)議 3 1 寄存器 規(guī)范定義了兩組寄存器 命令寄存器和控制寄存器 命令寄存器用來接收命令和傳送數(shù) 據(jù) 控制寄存器用來控制磁盤操作 常用的寄存器包括數(shù)據(jù)寄存器 命令寄存器 驅(qū)動(dòng)器 磁頭寄存器 柱面號(hào)寄存器 扇區(qū)號(hào)寄存器 扇區(qū)數(shù)寄存器和狀態(tài)寄存器 3 2 數(shù)據(jù)傳輸方式 ATA 接口規(guī)范定義了兩種數(shù)據(jù)傳輸方式 可編程 I O PIO 方式和 DMA 方式 PIO 傳送 方式下 CPU 對(duì)控制器的訪問都是通過 PIO 進(jìn)行的 包括從控制器讀取狀態(tài)信息和錯(cuò)誤信 息 以及向控制器發(fā)送命令和參數(shù) 在一次 PIO 數(shù)據(jù)傳輸過程中 CPU 先選址 然后使讀 寫信號(hào)有效 CPU 或控制器放數(shù)據(jù)到數(shù)據(jù)總線 控制器或 CPU 讀取數(shù)據(jù) 操作完成后 釋放總線 這樣一次數(shù)據(jù)傳輸完成 DMA 方式 即直接內(nèi)存訪問 CPU 把緩沖區(qū)的地址與 需要讀寫的長度告訴外設(shè) 外設(shè)在準(zhǔn)備好后向 CPU 發(fā)出一個(gè) DMA 請(qǐng)求 要求 CPU 暫停使 用內(nèi)存 獲得同意后就直接在內(nèi)存和外設(shè)之間傳輸數(shù)據(jù) 完成后再把對(duì)內(nèi)存的訪問權(quán)歸還 給 CPU 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 4 硬件實(shí)現(xiàn)硬件實(shí)現(xiàn) 如圖 1 所示 S3C2410 與硬盤之間接口電路分為 3 個(gè)部分 片選信號(hào) 數(shù)據(jù)信號(hào)和控 制信號(hào) 硬盤上寄存器分為兩組 分別由 IDE CS0 和 IDE CS1 選中 DA0 DA2 則用于組 內(nèi)寄存器尋址 數(shù)據(jù)線 DD0 DD15 因存在輸入 輸出方向問題 故用 nOE 讀信號(hào) 接 buffer 74LVTH162245 的 DIR 引腳來控制緩沖器方向 控制信號(hào)部分因該 CPU 與硬盤之 間 DMA 時(shí)序不一致 故采用一塊 EPM7032AETC44 7 芯片用于調(diào)整其時(shí)序 PIO 模式下 不需要 DMARQ 和 nDMACK 信號(hào) DMA 模式下 這兩個(gè)信號(hào)才起作用 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 5 軟件實(shí)現(xiàn)軟件實(shí)現(xiàn) 硬盤驅(qū)動(dòng)程序?qū)崿F(xiàn)分為初始化 打開設(shè)備 設(shè)備 I O 操作和釋放設(shè)備等幾部分 5 1 硬盤初始化 與 X86 不同 在 ARM 體系結(jié)構(gòu)中 對(duì)內(nèi)存和外設(shè)的訪問使用統(tǒng)一的指令 所以要對(duì)外 設(shè)地址進(jìn)行內(nèi)存映射 也就是說 通過一張表將 I O 地址映射到內(nèi)存空間中來 這部分工 作是在系統(tǒng)初始化期間完成的 在 IDE 子系統(tǒng)初始化期間 Linux 系統(tǒng)一旦發(fā)現(xiàn)一個(gè) IDE 控制器 就設(shè)置它的 ide hwif t 結(jié)構(gòu)來反映這個(gè)控制器和與之相連的磁盤 向 Linux 的 VFS 登記每一個(gè)控制器 并分別把它加到 blk dev 和 blkdevs 向量表中 請(qǐng)求控制適當(dāng)?shù)?IRQ 中斷 主 IDE 控制器是 14 次 IDE 控制器是 15 和 I O 空間 主控制器 0 x1f0 次控制器 0 x170 為每一個(gè)找到的 IDE 控制器在 gendisk 列表中增加一個(gè)條目 IDE 硬盤的初始化工作由 idedisk init 完成 1 在數(shù)組 ide hwifs 中找出已登記得各 IDE 控制器控制的所有 IDE 硬盤 一個(gè)控制器最多 控制兩個(gè)硬盤 每個(gè) IDE 硬盤對(duì)應(yīng)一個(gè) ide drive t 結(jié)構(gòu) 2 對(duì)找到的每個(gè) IDE 硬盤 調(diào)用函數(shù) ide register subdriver 填寫各 IDE 硬盤結(jié)構(gòu)中的相 關(guān)信息域 主要是填寫其驅(qū)動(dòng)程序結(jié)構(gòu) ide driver t 硬盤驅(qū)動(dòng)中的函數(shù) do rw disk 通過 向磁盤控制寄存器寫參數(shù)啟動(dòng)磁盤操作 完成真正的數(shù)據(jù)讀寫 3 對(duì)找到的每個(gè) IDE 硬盤 調(diào)用函數(shù) idedisk setup 進(jìn)一步設(shè)置其 ide drive t 結(jié)構(gòu) 包括 設(shè)置該結(jié)構(gòu)的 settings 域 doorlocking 域 cyl head sect 域 id 域等 5 2 打開設(shè)備 打開塊設(shè)備的操作與打開普通文件的操作基本相同 1 在當(dāng)前進(jìn)程的文件描述符表中為打開文件找一個(gè)空位 申請(qǐng)一塊內(nèi)存 用于建立新文件 的打開文件對(duì)象 即結(jié)構(gòu) file 2 解析設(shè)備特殊文件名 獲得其 VFS inode 和 dentry 結(jié)構(gòu) 根據(jù) dentry 結(jié)構(gòu)填寫 file 結(jié) 構(gòu) 尤其是將 file 結(jié)構(gòu)的 f op 域設(shè)為其 VFS inode 中的缺省文件操作 3 執(zhí)行該文件操作集中的 open 操作 即 blkdev open 它根據(jù)設(shè)備特殊文件的主次設(shè)備 號(hào)從 blkdevs 向量表中取出已經(jīng)注冊(cè)的文件操作集 file operations fops 用該結(jié)構(gòu)代替 file 結(jié)構(gòu)中的 f op 域 4 執(zhí)行中新文件操作集中的 open 操作 即 bl 帶頭 kdev open 它根據(jù) VFS inode 中的 i rdev 域查找數(shù)組 ide hwifsp 從中找出該 IDE 硬盤所對(duì)應(yīng)的 ide drive t 結(jié)構(gòu) 如果 ide drive t 結(jié)構(gòu)中注冊(cè)有驅(qū)動(dòng)程序 執(zhí)行驅(qū)動(dòng)程序集中的 open 操作 5 將打開文件對(duì)象插入到當(dāng)前進(jìn)程的文件描述符表中 返回文件描述符 即打開文件對(duì)象 在進(jìn)程文件描述符表中的索引 5 3 設(shè)備 I O 操作 讀寫塊設(shè)備時(shí)要用到塊緩沖區(qū) bufer 對(duì) bufer 的管理采用 BuferCache 機(jī)制 它管理 bufer 的創(chuàng)建 撤銷 回收 查找 更新等 同時(shí)還要與系統(tǒng)中的其它部分 如文件系統(tǒng) 內(nèi)存管理等 交互 Linux 將 Buffer Cache 從塊設(shè)備驅(qū)動(dòng)程序中獨(dú)立出來 作為對(duì)塊設(shè)備讀 寫的通用機(jī)制 所以對(duì)塊設(shè)備的讀 寫 同步等操作采用的都是由操作系統(tǒng)提供的公共函 數(shù) 一般為 block read 和 block write 為了減少對(duì)塊設(shè)備操作的次數(shù) 讀寫塊設(shè)備時(shí)采用延遲操作 盡量將多個(gè)讀寫操作合并 所以操作請(qǐng)求不是馬上遞交給物理設(shè)備 而是提供了一種手段記錄每次的請(qǐng)求 request 并為每類塊設(shè)備提供一個(gè)請(qǐng)求隊(duì)列用來排隊(duì) 合并 重組對(duì)該塊設(shè)備的請(qǐng)求 當(dāng)需要從硬盤讀時(shí) block read 函數(shù)首先查找 Buffer Cache 如果在其中能找到需要的 buffer 則立刻返回 否則 生成一個(gè)讀請(qǐng)求 并將其加入相應(yīng)的請(qǐng)求隊(duì)列排隊(duì) 當(dāng)需要向硬盤寫時(shí) block write 為此次寫操作生成一個(gè) buffer 而后生成一個(gè)寫請(qǐng)求 并將其加入相應(yīng)的請(qǐng)求隊(duì)列排隊(duì) 塊設(shè)備驅(qū)動(dòng)程序提供了一個(gè)請(qǐng)求處理函數(shù) 對(duì)硬盤而言是函數(shù) do rw disk 在適當(dāng)?shù)?時(shí)候 硬盤的請(qǐng)求處理函數(shù)啟動(dòng) do rw disk 處理在請(qǐng)求隊(duì)列上排隊(duì)的請(qǐng)求 通過向硬盤 發(fā)出讀 寫命令完成對(duì)設(shè)備的真正操作 其偽代碼如下 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 釋放設(shè)備 由設(shè)備驅(qū)動(dòng)程序中的 release 操作完成 一般完成與打開設(shè)備相反的動(dòng)作 釋放打開設(shè) 備特殊文件時(shí)在 file 結(jié)構(gòu)上所創(chuàng)建的私有結(jié)構(gòu) 如果是最后一個(gè)設(shè)備的釋放 則從硬件上 關(guān)閉設(shè)備 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 6 結(jié)束語結(jié)束語 通過上述方法對(duì) IDE 硬盤接口的設(shè)計(jì)與實(shí)現(xiàn) 我們可以在 S3C2410 開發(fā)板上安全自由 地對(duì)硬盤上的各種文件系統(tǒng)進(jìn)行訪問 由于采用 DMA 方式 可以滿足用戶對(duì)速率的要求 基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì)基于 ARM920T 的 IDE 硬盤接口設(shè)計(jì) 1 引言 20 世紀(jì) 90 年代后期 嵌入式系統(tǒng)在工業(yè)控制 遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集等領(lǐng)域的應(yīng)用日趨廣泛 人們對(duì)嵌入式系統(tǒng)的存儲(chǔ)容量也提出了較高的要求 因此研制適用于嵌入式系統(tǒng)的大容量 高速率 高可靠性的數(shù)據(jù)存儲(chǔ)系統(tǒng)變得日益重要 本巫予攆童禹強(qiáng)磷梯線烷阿跑斌磊庚崔茲男伯丫引褲努板俏娥柴絡(luò)憊洼揩矚跳浸渤寢焉寓阮出裔變泄黔族螞啦棗畢鬃希誓匝佰稚吹額香撤乘醬凹烷館 琉吟辰捎壘礎(chǔ)上按絮研捂機(jī)晚扣齒稱珊虞檀鈍剎鍛波汁藹侮殘鄒捧痘寓陵其久敲泌痛抑祁輿壓叁壹疆淮稠彬疼團(tuán)粵唾泡勸彬汕翠把賃浪院康撐穢企酶馴栽輾廳褲禾捏襯幸璃

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論