ID:9233275
大?。?1.46 KB
頁數(shù):6頁
時(shí)間:2018-04-24
《ide接口硬盤讀寫技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第31卷第6期電子科技大學(xué)學(xué)報(bào)Vol.31No.62002年12月JournalofUESTofChinaDec.2002IDE接口硬盤讀寫技術(shù)*徐小玲(浙江教育學(xué)院計(jì)算機(jī)系杭州310012)【摘要】分析了IDE接口硬盤控制寄存器模型;論述了IDE接口硬盤的讀寫幾項(xiàng)技術(shù);給出了設(shè)計(jì)硬盤克隆軟件的思想和方法,方法針對(duì)硬盤物理扇區(qū)進(jìn)行讀寫,與硬盤上安裝的具體操作系統(tǒng)的類型無關(guān),并與硬盤驅(qū)動(dòng)器的物理結(jié)構(gòu)無關(guān)。結(jié)合C語言與匯編語言,經(jīng)實(shí)際應(yīng)用驗(yàn)證,方法簡(jiǎn)便,具有較強(qiáng)的實(shí)用性。關(guān)鍵詞IDE接口;硬盤控制寄存器;LBA尋址;ATA標(biāo)準(zhǔn)中圖分類號(hào)TP302Techn
2、ologyofRead-WriteIDEInterfaceHardDiskXuXiaoling(DepartmentofComputers,ZheJiangEducationCollegeHangZhou310012)AbstractThispaperanalysethemodelofcontrollerregistersforIDEinterfaceharddiskdrive,summarizedsomekeytechnicaboutread-writeharddiskdriveandadesignaboutcloneharddisk.Wecandi
3、rectlyread-writethesector,andithasnoconcernwithoperatingsystemandthestructureofharddiskdrive.CombinewithCandAssemblelanguage,Wegiveanrealyapplication.themethodiseasyanduseful.KeywordsIDEinterface;harddiskcontrolregister;LBAseek;ATAstandard硬盤讀寫是一個(gè)復(fù)雜的過程,它涉及到硬盤的接口方式、尋址方式、控制寄存器模型等。硬
4、盤的存儲(chǔ)介質(zhì)經(jīng)歷了從磁性材料、光磁介質(zhì)到Flash半導(dǎo)體存儲(chǔ)材料,對(duì)它們的讀寫方法和尋址方式都一樣,因?yàn)檫@些存儲(chǔ)介質(zhì)與計(jì)算機(jī)的接口共同遵循著ATA標(biāo)準(zhǔn)。主機(jī)與硬盤之間的數(shù)據(jù)傳輸按程序I/O或DMA方式進(jìn)行,硬盤的尋址方式可按CHS或LBA。在計(jì)算機(jī)應(yīng)用中,掌握硬盤讀寫技術(shù)很有必要,像UNIX系統(tǒng)的dd命令和目前流行的Ghost、DiskEdit等軟件,都可以把數(shù)十個(gè)GB容量硬盤上龐大的軟件系統(tǒng),在短時(shí)間內(nèi)復(fù)制完成。這些工具軟件的構(gòu)造正是基于該技術(shù)而設(shè)計(jì)的。本文從IDE控制器的寄存器模型入手,分析硬盤的讀寫方法和尋址方式,結(jié)合實(shí)例剖析了這類復(fù)雜硬盤工具軟
5、件的設(shè)計(jì)思路及制作方法。1IDE控制器的寄存器模型[1]計(jì)算機(jī)主機(jī)對(duì)IDE接口硬盤的控制是通過硬盤控制器上的二組寄存器實(shí)現(xiàn)。一組為命令寄存器組(TaskFileRegisters),I/O的端口地址為1F0H~1F7H,其作用是傳送命令與命令參數(shù),如表1所示。另一組為控制/診斷寄存器(Control/DiagnosticRegisters),I/O的端口地址為3F6H~3F7H,其作用是控制硬盤驅(qū)動(dòng)器,如表2所示。2002年4月23日收稿*女39歲大學(xué)講師第6期徐小玲:IDE接口硬盤讀寫技術(shù)637表1TaskFileRegisters命令寄存器組I/O
6、地址讀(主機(jī)從硬盤讀數(shù)據(jù))寫(主機(jī)數(shù)據(jù)寫入硬盤)1F0H數(shù)據(jù)寄存器數(shù)據(jù)寄存器1F1H錯(cuò)誤寄存器(只讀寄存器)特征寄存器1F2H扇區(qū)計(jì)數(shù)寄存器扇區(qū)計(jì)數(shù)寄存器1F3H扇區(qū)號(hào)寄存器或LBA塊地址0~7扇區(qū)號(hào)或LBA塊地址0~71F4H磁道數(shù)低8位或LBA塊地址8~15磁道數(shù)低8位或LBA塊地址8~151F5H磁道數(shù)高8位或LBA塊地址16~23磁道數(shù)高8位或LBA塊地址16~231F6H驅(qū)動(dòng)器/磁頭或LBA塊地址24~27驅(qū)動(dòng)器/磁頭或LBA塊地址24~271F7H狀態(tài)寄存器命令寄存器表2Control/DiagnosticRegisters控制/診斷寄存器
7、I/O地址讀寫3F6H交換狀態(tài)寄存器(只讀寄存器)設(shè)備控制寄存器(復(fù)位)3F7H驅(qū)動(dòng)器地址寄存器在硬盤執(zhí)行讀寫過程中,為了節(jié)省I/O地址空間,用相同的地址來標(biāo)識(shí)不同的寄存器。例如,如表1中端口地址1F7H,在向硬盤寫入數(shù)據(jù)時(shí)作為命令寄存器,而向硬盤讀取數(shù)據(jù)時(shí)作為狀態(tài)寄存器。表1中各寄存器功能如下:數(shù)據(jù)寄存器:是主機(jī)和硬盤控制器的緩沖區(qū)之間進(jìn)行8位或16位數(shù)據(jù)交換用的寄存器,使用該寄存器進(jìn)行數(shù)據(jù)傳輸?shù)姆绞椒Q程序輸入輸出方式,即PIO方式,數(shù)據(jù)交換的另一種方式是通過DMA通道,這種方式不使用數(shù)據(jù)寄存器進(jìn)行數(shù)據(jù)交換;錯(cuò)誤寄存器:該寄存器包含了上次命令執(zhí)行后硬
8、盤的診斷信息。每位意義見表3,在啟動(dòng)系統(tǒng)、硬盤復(fù)位或執(zhí)行硬盤的診斷程序后,也在該寄存器中保存著
此文檔下載收益歸作者所有