新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的IDE硬盤(pán)控制的研究與設(shè)計(jì)

基于單片機(jī)的IDE硬盤(pán)控制的研究與設(shè)計(jì)

作者: 時(shí)間:2012-03-29 來(lái)源:網(wǎng)絡(luò) 收藏


讀周期(ide_rd):
ide_rd:
push acc
mov dptr, #cfg8255
mov a, #rd_ide_8255
movx @dptr, a ;配置8255的 工作方式為讀模式
mov dptr, #ide_8255_ctl
pop acc
movx @dptr, a ;選中所需寄存器
orl a, #ide_rd_line
movx @dptr, a ;使能讀引腳
mov dptr, #ide_8255_msb
clr a
movc a, @a+dptr ;讀寄存器高字節(jié)
mov r3,a
mov dptr, #ide_8255_lsb
clr a
movc a,@a+dptr ;讀寄存器低字節(jié)
mov r2, a
mov dptr, #ide_8255_ctl
clr a
movx @dptr, a ;將端口復(fù)位
ret ;子程序返回
寫(xiě)周期(ide_wr):

寫(xiě)周期與讀周期類似,首先將8255配置為寫(xiě)模式,選中所所要操作寄存器,將寄存器高8位和低8位數(shù)據(jù)分別送到端口A、B,激活總線的寫(xiě)信號(hào);寫(xiě)完畢,通過(guò)復(fù)位端口的相應(yīng)位清除總線的寫(xiě)信號(hào)。

3.5錯(cuò)誤處理操作

在對(duì)讀寫(xiě)操作時(shí),需要查詢狀態(tài)寄存器的ERR位,判斷是否有錯(cuò)。若有錯(cuò),查詢的錯(cuò)誤寄存器,判斷錯(cuò)誤類型,進(jìn)行相應(yīng)的錯(cuò)誤處理:在寫(xiě)扇區(qū)操作中,當(dāng)檢測(cè)到壞扇區(qū)(BBK)錯(cuò)誤時(shí),跳過(guò)并標(biāo)記壞扇區(qū),重新分配扇區(qū);在讀寫(xiě)操作中,如果沒(méi)有發(fā)現(xiàn)0磁道,將調(diào)用驅(qū)動(dòng)器重校命令來(lái)使驅(qū)動(dòng)器從錯(cuò)誤中恢復(fù)出來(lái);在讀扇區(qū)過(guò)程中,若發(fā)生錯(cuò)誤,驅(qū)動(dòng)器將重讀出錯(cuò)扇區(qū),若仍有錯(cuò)誤,操作將被終止。

4. 結(jié)束語(yǔ)

本系統(tǒng)提出了一種的方法,能夠比較簡(jiǎn)潔方便對(duì)進(jìn)行讀寫(xiě)等操作,并成功的應(yīng)用實(shí)際產(chǎn)品中,具有良好的可靠性和穩(wěn)定性,可以應(yīng)用到許多要求大容量數(shù)據(jù)存儲(chǔ)的系統(tǒng)中,并可取得了良好的社會(huì)效益。

參考文獻(xiàn)
[1]. 李華 MCS—51系列實(shí)用接口技術(shù)[M] 北京 北京航空航天大學(xué)出版社 1993 P98-120
[2]. 陳利學(xué) 孫彪 趙玉連 微機(jī)總線與接口[M] 成都 電子科技大學(xué)出版社 1988 P45-90
[3].AT Attachment with Packet Interface Extension (ATA/ATAPI-5) ANSI NCITS 1998 P317
[4].Maury Wright. Disk Drivers at 40 Lean . Mean Storage Machines .1996 P41
[5]. 徐厚俊 IDE接口和IDE硬盤(pán)驅(qū)動(dòng)器 新浪潮 1996 P17


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉