国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>基于單片機(jī)的MicroDrive接口設(shè)計(jì)

基于單片機(jī)的MicroDrive接口設(shè)計(jì)

時(shí)間:2023-02-20 23:35:10 電子通信論文 我要投稿
  • 相關(guān)推薦

基于單片機(jī)的MicroDrive接口設(shè)計(jì)

摘要:介紹了IBM的MicroDrive的基本結(jié)構(gòu)和工作原理,詳細(xì)說明了MicroDrive接口設(shè)計(jì)的關(guān)鍵技術(shù);以AT89C52型單片機(jī)為基礎(chǔ),設(shè)計(jì)完成了MicroDrive的接口電路,正確實(shí)現(xiàn)了對(duì)MicroDriver的讀寫及數(shù)據(jù)管理等功能。

    關(guān)鍵詞:MicroDrive 單片機(jī)

近幾年,各種大容量的小型存儲(chǔ)器不斷涌現(xiàn),在便攜式設(shè)備中獲得了廣泛的應(yīng)用。目前常見的存儲(chǔ)卡類型有:?1?Smart Media Card??2?MemoryStick??3?MultiMedia Card??4?CompactFlash Type I Card??5?IBM的MicroDrive等。各存儲(chǔ)卡在容量、功耗、體積上各有特色,但IBM的MicroDrive尤為出色。

MicroDrive是由IBM日本分公司研發(fā)生產(chǎn)出來的產(chǎn)品,其接口符合CFA(CompactFlash Association)協(xié)會(huì)制定的CF+ Type II 規(guī)范,具有容量大(170MB~3GB)、體積。ǎ矗玻福恚怼粒常叮矗恚怼粒担埃恚恚、性價(jià)比高、耗電量小等特點(diǎn),已在數(shù)碼相機(jī)、筆記本電腦、掌上電腦、便攜式音樂播放器等設(shè)備的存儲(chǔ)中獲得了較廣泛的應(yīng)用。

目前市面上已有多家國內(nèi)外公司生產(chǎn)出操作MicroDrive的接口(如IBM公司),但其價(jià)格較高。為降低成本,實(shí)現(xiàn)對(duì)MicroDrive的數(shù)據(jù)訪問和管理功能,本文給出了一種基于單片機(jī)的MicroDrive接口設(shè)計(jì)。
(范文先生網(wǎng)www.qkfawen.com收集整理)
1 MicroDrive介紹

MicroDrive各性能參數(shù)如下:

·容量(MB):1000/512/340;

·緩沖區(qū)大。海保玻缸止(jié);

·扇區(qū)大小(字節(jié)):512;

·盤片數(shù)量:1;

·平均尋道時(shí)間:12ms;

·平均等待時(shí)間:8.33ms;

·最大內(nèi)部數(shù)據(jù)傳輸速率:59.9MB/s;

·最大外部數(shù)據(jù)傳輸速率:13.3MB/s;

接口:CF+?兼容ATA和PCMCIA?

數(shù)據(jù)密度?GB/平方英寸?:15.2;

大。海担恚怼粒矗常恚怼粒常担恚;

重量:17克;

磁盤旋轉(zhuǎn)速度:3600RPM。

主要特點(diǎn)有:

·體積小、重量輕、容量大;

·可靠性高,有效的數(shù)據(jù)保護(hù)及數(shù)據(jù)編碼技術(shù),使得其出錯(cuò)率極低;

·讀寫速度快,連續(xù)讀寫速率最高可達(dá)4.2MB/s,抗沖擊(1500G),耐震動(dòng)(5G);

·兼容性好,支持3.3V或5V工作電壓,具有廣闊的使用范圍。

2 MicroDrive硬件接口設(shè)計(jì)

2.1 MicroDrive接口簡介及訪問模式的選擇

MicroDrive的接口符合CF+ Type II標(biāo)準(zhǔn),支持3.3V或5V直流工作電壓,提供了完整的PCMCIA-ATA功能且通過ATA/ATAPI-4兼容TrueIDE。但與68針接口的PCMCIA卡不同的是,同樣遵從ATA協(xié)議的MicroDrive 接口只有50針,采用50腳雙列0.05英寸間距標(biāo)準(zhǔn)接口(管腳排列如表1所示)。

表1 MicroDrive管腳排列

管腳號(hào) 名  稱 管腳號(hào) 名  稱 管腳號(hào) 名  稱 Pin1 GND Pin18 A02 Pin35 IOWR Pin2 D03 Pin19 A01 Pin36 WE Pin3 D04 Pin20 A00 Pin37 RDY/BSY Pin4 D05 Pin21 D00 Pin38 VCC Pin5 D06 Pin22 D01 Pin39 CSEL Pin6 D07 Pin23 D02 Pin40 VS2 Pin7 CE1 Pin24 WP Pin41 RESET Pin8 A10 Pin25 CD2 Pin42 WAIT Pin9 OE Pin26 CD1 Pin43 INPACK Pin10 A09 Pin27 D11 Pin44 REG Pin11 A08 Pin28 D12 Pin45 BVD2 Pin12 A07 Pin29 D13 Pin46 BVD1 Pin13 VCC Pin30 D14 Pin47 D08 Pin14 A06 Pin31 D15 Pin48 D09 Pin15 A05 Pin32 CE2 Pin49 D10 Pin16 A03 Pin33 VS1 Pin50 GND Pin17 A04 Pin34 IORD    

對(duì)MicroDrive,數(shù)據(jù)都是以512字節(jié)的扇區(qū)單元進(jìn)行操作,能夠通過IDE、Memory等模式對(duì)其進(jìn)行訪問。

雖然IDE模式被廣泛應(yīng)用于計(jì)算機(jī)硬盤的接口中,同時(shí)也被經(jīng)常應(yīng)用于嵌入式系統(tǒng)中,得到絕大多數(shù)的BIOS和工業(yè)單板機(jī)的支持;但是IDE模式涉及復(fù)雜的文件管理,使得控制操作相對(duì)復(fù)雜,不符合簡單可行的設(shè)計(jì)要求。

本系統(tǒng)由單片機(jī)實(shí)現(xiàn)嵌入式設(shè)計(jì)。而Memory模式是MicroDrive的默認(rèn)模式,可以避免繁瑣的寄存器設(shè)置,同時(shí)支持8位數(shù)據(jù)帶寬,控制操作相對(duì)簡單,可以極大地簡化設(shè)計(jì),節(jié)省系統(tǒng)的資源。故本系統(tǒng)采用Memory模式。

2.2 硬件接口

本系統(tǒng)電路連接框圖如圖1所示,主要包含以下五部分:

(1)AT89C52

AT89C52擁有比8051多一倍的數(shù)據(jù)存儲(chǔ)器(256字節(jié)的RAM),擁有8K字節(jié)內(nèi)部只讀存儲(chǔ)器(ROM),操作命令以及各引腳與8051基本一致。在本系統(tǒng)中,AT89C52的作用至關(guān)重要,它擔(dān)負(fù)著與外部的通信及實(shí)現(xiàn)對(duì)MicroDrive的各種操作。

(2)外部數(shù)據(jù)存儲(chǔ)器

外部數(shù)據(jù)存儲(chǔ)器主要用作硬盤數(shù)據(jù)讀寫的緩存,因而必須具有非易失性、簡便的操作及合適的容量。62HC64容量為8KB?具有非易失性、功耗低等特點(diǎn)。

(3)通信電平轉(zhuǎn)換芯片

RS232C是目前異步串行通信中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線,適用于數(shù)據(jù)中斷設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間的接口;而單片機(jī)使用TTL電平,兩者互不兼容。因而使用了MAX232電平轉(zhuǎn)換芯片對(duì)它們的通信電平進(jìn)行轉(zhuǎn)換,作為對(duì)外的通信接口。

(4)CF+適配口

使用了標(biāo)準(zhǔn)50針CF+適配口。

(5)地址鎖存器74LS373和地址譯碼器74LS138

其中Address/Data(0~7)為復(fù)用的8位數(shù)據(jù)或低8位地址總線,Address(8~12)為用于尋址62HC64的高5位地址線,Address(13~15)接至74HC138,用作外部數(shù)據(jù)存儲(chǔ)器62HC64及MicroDrive 的片選信號(hào);Reset(RESET)信號(hào)與AT89C52的RESET腳連接,以達(dá)到同步復(fù)位的目的,上電復(fù)位后,MicroDrive自動(dòng)進(jìn)入默認(rèn)的Memory 模式;REG ?Register?信號(hào)用于選擇訪問MicroDrive的Attiribute Memory(低電平)或Common Memory(高電平);對(duì)于CE1與CE2(Card Enable),因?yàn)橹挥幸粔KMicroDrive,故將CE2接高電平,CE1接74LS138的Y7腳;OE、為讀寫有效信號(hào),與AT89C52的P3.7(RD)、P3.6(WR)相連;RDY/BSY(Ready/Busy)MicroDrive 的閑忙狀態(tài)信號(hào),當(dāng)MicroDrive忙時(shí),該腳為低電平,不能對(duì)MicroDrive做任何操作,與AT89C52的P3.2相連,以便可通過軟件檢測此位,判定MicroDrive的閑忙狀態(tài);WAIT(Wait)信號(hào)的有效意味著一個(gè)操作進(jìn)程正在完成過程中,把它與P1.7相連,以便檢測;CD1、CD2(Card Detect)用于MicroDrive的存在檢測,與AT89C52的P3.2、P3.3相連;AT89C52的P3.0(RXD)用作串行通信輸入,接MAX232的12腳(R1OUT),用于接收通過MAX232送來的數(shù)據(jù),P3.1(TXD)用作串行通信輸出,接MAX232的11腳(T1IN),通過MAX232送出數(shù)據(jù)。

3 軟件設(shè)計(jì)

3.1 主要寄存器簡介

MicroDrive內(nèi)幾個(gè)涉及到的操作寄存器,如表2所示。

表2 MicroDrive主要寄存器

偏移地址 名  稱 說  明 000H DATA REG 數(shù)據(jù)寄存器 001H ERROR REG 出錯(cuò)狀態(tài)寄存器 002H SECTOR COUNT REG 扇區(qū)數(shù)目寄存器 003H LBA 0~7 邏輯塊尋址地址0~7位 004H LBA 8~15 邏輯塊尋址地址8~15位 005H LBA 16~23 邏輯塊尋址地址16~23位 006H LBA 24~27 邏輯塊尋址地址24~27位 007H STATUS REG 讀取時(shí)為狀態(tài)寄存器 007H COMMAND REG 寫入時(shí)為命令寄存器

3.2 軟件設(shè)計(jì)簡述

硬件設(shè)計(jì)好后,可以通過軟件驅(qū)動(dòng)接口電路讀寫MicroDrive。軟件流程如圖2所示。首先進(jìn)行測試以確定所有端口及信號(hào)的極性正確。由于Memory模式是缺省模式,其使用前的檢測就變得相當(dāng)簡單。主要把軟件分成以下幾部分:

(1)檢測MicroDrive

首先,確定MicroDrive是否已正確插入插槽。這需要檢測Card Detect引腳,即將P3.2、P3.3的狀態(tài)讀入。如果兩個(gè)都為0,就表示MicroDrive已正確插入適配口;否則表明未正確插入,需要重新插入。

其次,在確定MicroDrive已正確插入后,開始檢測其狀態(tài)。從Common Memory的偏移地址為007H的狀態(tài)寄存器中讀。停椋悖颍铮模颍椋觯宓臓顟B(tài)信號(hào),如果MicroDrive被正確Reset了,讀到的數(shù)據(jù)應(yīng)該是50H,意味著MicroDrive已能使用并準(zhǔn)備接收命令;否則證明有錯(cuò)誤,應(yīng)重新Reset。

最后,當(dāng)MicroDrive的狀態(tài)證實(shí)無誤并處于Memory模式時(shí),就可以發(fā)送診斷命令字(Execute Diagnostics:90H)到命令寄存器(偏移地址為007H)中。這一命令將會(huì)根據(jù)MicroDrive的當(dāng)前情況重置狀態(tài)寄存器007H(與命令寄存器的地址相同),當(dāng)出錯(cuò)時(shí),出錯(cuò)位將會(huì)被置1,此時(shí)檢查錯(cuò)誤狀態(tài)寄存器(偏移地址為001H)將會(huì)得到詳盡的出錯(cuò)信息;而一旦無錯(cuò)誤,便可對(duì)MicroDrive進(jìn)行操作了。

(2)數(shù)據(jù)的讀取

為了達(dá)到此目的,首先,將要操作的扇區(qū)地址寫入偏移地址為003H~006H的邏輯塊尋址寄存器中,再將要操作的扇區(qū)數(shù)目寫入偏移地址為002H的扇區(qū)數(shù)目寄存器中,接著就發(fā)送讀命令字(20H)到命令寄存器中,當(dāng)寫入命令后,MicroDrive會(huì)將BUSY狀態(tài)置1作為響應(yīng)。

然后,MicroDrive從存儲(chǔ)扇區(qū)中讀出數(shù)據(jù)放入其緩存單元中,并將DRQ狀態(tài)位置1,清BUSY以表示數(shù)據(jù)已準(zhǔn)備好。因此只需檢查DRQ狀態(tài)即可。當(dāng)DRQ為1時(shí),便可從MicroDrive的緩存中讀出數(shù)據(jù);當(dāng)所有數(shù)據(jù)讀完后,DRQ將會(huì)清0,MicroDrive又轉(zhuǎn)回準(zhǔn)備狀態(tài),可進(jìn)行下一步操作。

(3)數(shù)據(jù)的寫入

與讀數(shù)據(jù)的操作類似,首先,將數(shù)據(jù)準(zhǔn)備在數(shù)據(jù)緩存區(qū)(外部RAM62HC64)中,將要操作的扇區(qū)地址寫入偏移地址為003H~006H的邏輯塊尋址寄存器中,將要操作的扇區(qū)數(shù)目寫入偏移地址為002H的扇區(qū)數(shù)目寄存器中,接著發(fā)送寫命令字(30H)到命令寄存器中。

圖2 單片機(jī)軟件流程圖

    然后,檢測DRQ的狀態(tài)(此時(shí)MicroDrive置BUSY狀態(tài)為1,接著置DRQ為1,清BUSY)。當(dāng)檢測到DRQ為1時(shí),便可將數(shù)據(jù)緩存區(qū)(外部RAM62HC64)中的數(shù)據(jù)寫入MicroDrive的緩存單元。當(dāng)MicroDrive檢測到數(shù)據(jù)寫入其緩存中,置BUSY為1,清DRQ并根據(jù)地址將數(shù)據(jù)寫入;當(dāng)數(shù)據(jù)寫完后,清BUSY狀態(tài)位,重新回到準(zhǔn)備狀態(tài),準(zhǔn)備執(zhí)行下一次操作。

在讀寫操作中,對(duì)進(jìn)程起控制作用的是DRQ這一狀態(tài)位,其檢測程序如下:

void wait_drq?void?

? unsigned int a?

a=XBYTE?0xE007??

//讀取狀態(tài)寄存器的值

if??a&0x01?==1? error???

//若出錯(cuò)位為1?轉(zhuǎn)出錯(cuò)處理

while??a&0xf8??=0x58?

a=XBYTE?0xE007??

//查詢DRQ位?不為1則循環(huán)等待

?

(4)數(shù)據(jù)的擦除

為達(dá)到此目的,首先將要操作的扇區(qū)地址寫入偏移地址為003H~006H的邏輯塊尋址寄存器中,再將要操作的扇區(qū)數(shù)目寫入偏移地址為002H的扇區(qū)數(shù)目寄存器中,接著發(fā)送擦除命令字(0C0H)到命令寄存器當(dāng)中,執(zhí)行完擦除命令后,讀出的值全為0。

本文介紹的基于單片機(jī)的MicroDrive接口設(shè)計(jì),成功地實(shí)現(xiàn)了操作MicroDrive的常用命令和對(duì)MicroDrive的8位格式的操作。經(jīng)過測試,此接口也可以對(duì)CF Type I卡(如SanDisk公司的CompactFlash卡)進(jìn)行正確操作,從而提高了應(yīng)用系統(tǒng)的兼容性,具有較廣泛的應(yīng)用價(jià)值,目前已準(zhǔn)備在便攜式的動(dòng)態(tài)腦電、動(dòng)態(tài)心電上使用,同時(shí)可用于MicroDrive或CompactFlash卡作為存儲(chǔ)器使用的便攜式電子設(shè)備中。


【基于單片機(jī)的MicroDrive接口設(shè)計(jì)】相關(guān)文章:

基于DSP平臺(tái)的USB接口設(shè)計(jì)08-06

基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)08-06

基于CH371的實(shí)用USB接口設(shè)計(jì)08-06

基于單片機(jī)的等效采樣示波器設(shè)計(jì)08-06

基于CH371的USB接口虛擬示波器設(shè)計(jì)08-06

基于PCI接口的高速數(shù)字信號(hào)處理板卡的設(shè)計(jì)08-06

基于串行外設(shè)接口(SPI)的CAN總線隔離擴(kuò)展設(shè)計(jì)08-06

MultiMediacard及其與單片機(jī)接口08-06

基于RTX51的單片機(jī)軟件設(shè)計(jì)08-06