《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的Microdrive接口設(shè)計(jì)
基于單片機(jī)的Microdrive接口設(shè)計(jì)
趙 巍
廣州暨南大學(xué)電子工程系(510632)
摘要: 介紹了IBM的Microdrive的基本結(jié)構(gòu)和工作原理,詳細(xì)說(shuō)明了Microdrive接口設(shè)計(jì)的軟硬件關(guān)鍵技術(shù)。同時(shí)以AT89C52型單片機(jī)為基礎(chǔ),設(shè)計(jì)完成了Microdrive的接口電路,實(shí)現(xiàn)了對(duì)Microdriver的數(shù)據(jù)訪問(wèn)及管理功能。
關(guān)鍵詞: PowerPC Microdrive AT89C52
Abstract:
Key words :

摘 要: 介紹了IBM的Microdrive的基本結(jié)構(gòu)和工作原理,詳細(xì)說(shuō)明了Microdrive接口設(shè)計(jì)的軟硬件關(guān)鍵技術(shù)。同時(shí)以AT89C52型單片機(jī)為基礎(chǔ),設(shè)計(jì)完成了Microdrive的接口電路,實(shí)現(xiàn)了對(duì)Microdriver的數(shù)據(jù)訪問(wèn)及管理功能。
關(guān)鍵詞: Microdrive  AT89C52

  隨著科學(xué)技術(shù)的不斷發(fā)展,存儲(chǔ)技術(shù)正向著大容量、低功耗、小型化的方向發(fā)展。尤其是近年來(lái),各種大容量的小型存儲(chǔ)器不斷涌現(xiàn),在便攜式設(shè)備中得到了廣泛的應(yīng)用。目前常見(jiàn)的存儲(chǔ)卡類(lèi)型有:Smart Media Card、MemoryStick、MultiMedia Card、CompactFlash Type I Card、IBM 的Microdrive等,各存儲(chǔ)卡在容量、功耗、體積上各有特色,但I(xiàn)BM的Microdrive尤為出色。
  Microdrive 是由IBM日本分公司研發(fā)生產(chǎn)的產(chǎn)品。它的接口符合CFA(CompactFlash Association)協(xié)會(huì)所制定的CF+TypeⅡ規(guī)范,具有容量大(170MB~3GB)、體積小(42.8 mm×36.4mm×5.0mm)、耗電量小等特點(diǎn),已在數(shù)碼相機(jī)、筆記本電腦、掌上電腦、便攜式音樂(lè)播放器等設(shè)備的存儲(chǔ)領(lǐng)域中得到了較廣泛的應(yīng)用。可以預(yù)見(jiàn),在各種智能設(shè)備小型化的趨勢(shì)中,在大容量便攜式數(shù)據(jù)存儲(chǔ)和傳輸?shù)倪^(guò)程中,Microdrive 有著非常廣泛的應(yīng)用前景,將會(huì)為各種便攜式產(chǎn)品帶來(lái)高容量、高品質(zhì)且價(jià)格合理的數(shù)據(jù)存儲(chǔ)能力。
  雖然目前市面上已有多家國(guó)內(nèi)外公司(其中有IBM公司)生產(chǎn)出操作Microdrive的接口,但其價(jià)格居高不下,這對(duì)于需要將此類(lèi)便攜式大容量存儲(chǔ)器直接嵌入到其便攜設(shè)備的廠商來(lái)說(shuō),將會(huì)大大提高產(chǎn)品的成本。為降低生產(chǎn)廠商的成本,實(shí)現(xiàn)對(duì)Microdrive的數(shù)據(jù)訪問(wèn)和管理功能。本文給出了一種基于單片機(jī)的Microdrive接口設(shè)計(jì)。
1  Microdrive簡(jiǎn)介
   Microdrive性能參數(shù)如下:
      容量:1 000MB/512MB/340MB;緩沖區(qū)大?。?28B;扇區(qū)大小:512B;盤(pán)片數(shù)量:1;平均尋道時(shí)間:12ms;平均等待時(shí)間:8.33ms;最大內(nèi)部數(shù)據(jù)傳輸速率:59.9MBps;最大外部數(shù)據(jù)傳輸速率:13.3MBps;接口:CF+(兼容ATA和PCMCIA);數(shù)據(jù)密度:15.2GB/英寸;大?。?mm×43mm×35mm;重量:17g;磁盤(pán)旋轉(zhuǎn)速度:3 600rpm。
  Microdrive的主要特點(diǎn):
  體積小,總量輕,容量大;可靠性高,有效的數(shù)據(jù)保護(hù)及數(shù)據(jù)編碼技術(shù),使得其出錯(cuò)率極低;讀寫(xiě)速度快,連續(xù)讀寫(xiě)速率最高可達(dá)到4.2MBps,抗沖擊(1 500g),耐振動(dòng)(5g);兼容性好,支持3.3V或5V工作電壓,具有廣闊的使用范圍。
2  Microdrive硬件接口設(shè)計(jì)
2.1 Microdrive接口簡(jiǎn)介及訪問(wèn)模式的選擇
  Microdrive接口符合CF+TypeⅡ標(biāo)準(zhǔn),支持3.3V或5V直流工作電壓,提供了完整的PCMCIA-ATA功能且通過(guò)ATA/ATAPI-4兼容TrueIDE。但與68針接口的PCMCIA卡不同的是,Microdrive接口只有50針,采用50腳雙列0.05英寸間距標(biāo)準(zhǔn)接口。其管腳排列如表1所示。

  Microdrive的數(shù)據(jù)都是以512B的扇區(qū)單元進(jìn)行操作,能夠通過(guò)IDE和Memory等模式對(duì)其進(jìn)行訪問(wèn)。
雖然IDE模式被廣泛地應(yīng)用在計(jì)算機(jī)硬盤(pán)接口,但也經(jīng)常被應(yīng)用于內(nèi)嵌式的系統(tǒng)中,得到絕大多數(shù)的BIOS和工業(yè)單板機(jī)的支持。然而,IDE模式需要涉及到復(fù)雜的文件管理,使得控制操作相對(duì)復(fù)雜,不符合簡(jiǎn)單可行的設(shè)計(jì)要求。
  由于本系統(tǒng)由單片機(jī)實(shí)現(xiàn)嵌入式設(shè)計(jì),且Memory模式是Microdrive的默認(rèn)模式,該模式可以避免繁瑣的寄存器設(shè)置,同時(shí)支持8位的數(shù)據(jù)帶寬,控制操作也相對(duì)簡(jiǎn)單,可以極大地簡(jiǎn)化設(shè)計(jì)和節(jié)省系統(tǒng)的資源,故本系統(tǒng)采用Memory模式。
2.2 硬件接口
  系統(tǒng)的電路連接框圖如圖1所示,主要包含以下5個(gè)部分。

  (1)AT89C52。AT89C52擁有比8051多1倍的數(shù)據(jù)存儲(chǔ)器(256 B的RAM),有8KB的內(nèi)部ROM,操作命令以及各引腳都與8051基本一致。在本系統(tǒng)中,AT89C52的作用是至關(guān)重要的,它擔(dān)負(fù)著與外部的通信及實(shí)現(xiàn)對(duì)Microdrive的各種操作。
  (2)外部數(shù)據(jù)存儲(chǔ)器。該存儲(chǔ)器主要用作硬盤(pán)數(shù)據(jù)讀寫(xiě)的緩存,因而必須具有非易失性、簡(jiǎn)便的操作及合適的容量。62HC64容量為8K×8位,具有非易失性及功耗低等特點(diǎn)。
  (3)通信電平轉(zhuǎn)換芯片。RS-232C是目前異步串行通信中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線,適用于數(shù)據(jù)中斷設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間的接口,而單片機(jī)使用TTL電平,二者互不兼容,因而使用了MAX-232電平轉(zhuǎn)換芯片對(duì)它們之間的通信電平進(jìn)行轉(zhuǎn)換,作為對(duì)外的通信接口。
  (4)CF+適配口。使用了標(biāo)準(zhǔn)的50針CF+適配口。
  (5)地址鎖存器74LS373和地址譯碼器74LS138。
  系統(tǒng)的主要連線(見(jiàn)圖1和表1)敘述如下。
  其中:Address/Data(0~7)為復(fù)用的8位數(shù)據(jù)或低8位地址總線。Address(8~12)為用于尋址62HC64的高5位地址線,Address(13~15)接至74LS138,用作外部數(shù)據(jù)存儲(chǔ)器62HC64及Microdrive的片選信號(hào); RESET信號(hào)則和AT89C52的RESET腳連接,以達(dá)到同步復(fù)位的目的。上電復(fù)位后,Microdrive自動(dòng)進(jìn)入默認(rèn)的Memory模式;-REG (Register)信號(hào)用于選擇訪問(wèn),判斷是Microdrive的Attiribute Memory(低電平)還是Common Memory(高電平);對(duì)于-CE1和-CE2(Card Enable),因?yàn)橹挥?塊Microdrive,故將-CE2接高電平,-CE1接74LS138的Y7腳;-OE、-WE為讀寫(xiě)有效信號(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相連,可通過(guò)軟件檢測(cè)此位,判定Microdrive的閑忙狀態(tài);WAIT信號(hào)的有效意味著一個(gè)操作進(jìn)程正在完成過(guò)程中,把它與P1.7相連,以便檢測(cè);CD1、CD2(Card Detect)用于Microdrive的存在檢測(cè),與AT89C52的P3.2、P3.3相連;AT89C52的P3.0(RXD)用作串行通信輸入,若接MAX232的12腳(R1OUT),則用于接收通過(guò)MAX232送來(lái)的數(shù)據(jù);AT89C52的P3.1(TXD)用作串行通信輸出,接MAX232的11腳(T1IN),通過(guò)MAX232送出數(shù)據(jù)。
3  軟件設(shè)計(jì)
3.1 主要寄存器簡(jiǎn)介
  Microdrive內(nèi)的幾個(gè)涉及到操作的寄存器如表2所示。

  以下介紹如表3所示的狀態(tài)寄存器其中幾個(gè)狀態(tài)標(biāo)志位,這些標(biāo)志位在讀寫(xiě)等操作中極為重要。

  bit 7(BUSY):當(dāng)Microdrive處于忙狀態(tài)時(shí)(如正在讀寫(xiě)寄存器或存儲(chǔ)扇區(qū)),則置該位為1。
  bit 6(RDY):當(dāng)Microdrive準(zhǔn)備好,可以執(zhí)行各種操作時(shí),置該位為1。
  bit 3(DRQ):當(dāng)Microdrive需要將數(shù)據(jù)讀出或?qū)懭霐?shù)據(jù)存儲(chǔ)器時(shí),置該位為1。
  bit 0(ERR):當(dāng)在執(zhí)行各種操作過(guò)程中出現(xiàn)錯(cuò)誤時(shí),置該位為1。
3.2 軟件設(shè)計(jì)
  硬件設(shè)計(jì)好后,就可以通過(guò)軟件來(lái)驅(qū)動(dòng)接口電路,去讀寫(xiě)Microdrive。首先進(jìn)行測(cè)試以確定所有的端口及信號(hào)極性的正確性。由于Memory模式是缺省的模式,故使用前的檢測(cè)很簡(jiǎn)單,主要把軟件分成以下部分進(jìn)行檢測(cè)。
  (1)檢測(cè)Microdrive。首先,確定Microdrive是否已正確插入插槽。這需要檢測(cè)Card Detect引腳,即將P3.2、P3.3的狀態(tài)讀入,如果2個(gè)都為0,就表示Microdrive已正確插入適配口;否則表明未正確插入,需要重新插入。其次,在確定Microdrive已正確插入后,開(kāi)始檢測(cè)其狀態(tài)。從Common Memory的偏移地址為007H的狀態(tài)寄存器中讀取Microdrive的狀態(tài)信號(hào),如果Microdrive被正確地復(fù)位,則讀得的數(shù)據(jù)應(yīng)該是50H,這意味著Microdrive已能使用并準(zhǔn)備接收命令;否則有錯(cuò)誤,應(yīng)重新復(fù)位。最后,當(dāng)Microdrive的狀態(tài)證實(shí)無(wú)誤并處于Memory模式時(shí),就可以發(fā)送診斷命令字(Execute Diagnostics:90H)到命令寄存器(偏移地址為007H)中,這一命令將會(huì)根據(jù)Microdrive的當(dāng)前情況重置狀態(tài)寄存器007H(與命令寄存器的地址相同)。當(dāng)出錯(cuò)時(shí),出錯(cuò)位將會(huì)被置1,此時(shí)會(huì)檢查錯(cuò)誤狀態(tài)寄存器(偏移地址為001H)而且將會(huì)得到詳盡的出錯(cuò)信息;若無(wú)錯(cuò)誤,則對(duì)Microdrive進(jìn)行操作。
  (2)數(shù)據(jù)的讀取。首先將要操作的扇區(qū)地址寫(xiě)入偏移地址為003H~006H的邏輯塊尋址寄存器;然后再將要操作的扇區(qū)數(shù)目寫(xiě)入偏移地址為002H的扇區(qū)數(shù)目寄存器;接著發(fā)送讀命令字(20H)到命令寄存器。當(dāng)寫(xiě)入命令后,Microdrive會(huì)將BUSY狀態(tài)置1作為響應(yīng)。然后Microdrive從存儲(chǔ)扇區(qū)中讀出數(shù)據(jù)放入數(shù)據(jù)寄存器,并將DRQ狀態(tài)位置1,清BUSY以表示數(shù)據(jù)已準(zhǔn)備好。這樣只需要檢查DRQ狀態(tài)就可以了。當(dāng)DRQ為1時(shí),便可從Microdrive的數(shù)據(jù)寄存器中讀出數(shù)據(jù),所有數(shù)據(jù)讀完后,DRQ將會(huì)被清0,Microdrive重新回到準(zhǔn)備狀態(tài)執(zhí)行下一次操作。
  (3)數(shù)據(jù)的寫(xiě)入。與讀數(shù)據(jù)的操作類(lèi)似,首先將數(shù)據(jù)準(zhǔn)備在數(shù)據(jù)緩存區(qū)(外部RAM62HC64);然后將要操作的扇區(qū)地址寫(xiě)入偏移地址為003H~006H的邏輯塊尋址寄存器,并將要操作的扇區(qū)數(shù)目寫(xiě)入偏移地址為002H的扇區(qū)數(shù)目寄存器;接著發(fā)送寫(xiě)命令字(30H)到命令寄存器;最后,檢測(cè)DRQ的狀態(tài)(此時(shí)Microdrive置BUSY狀態(tài)為1,接著置DRQ為1,清BUSY)。當(dāng)檢測(cè)到DRQ為1時(shí),便可將數(shù)據(jù)緩存區(qū)(外部RAM62HC64)中的數(shù)據(jù)寫(xiě)入Microdrive的數(shù)據(jù)寄存器(偏移地址為000H)。當(dāng)Microdrive檢測(cè)到數(shù)據(jù)寫(xiě)入其數(shù)據(jù)寄存器后,就會(huì)置BUSY為1,清DRQ并根據(jù)地址將數(shù)據(jù)寄存器中的數(shù)據(jù)寫(xiě)入存儲(chǔ)扇區(qū)。一旦數(shù)據(jù)全部寫(xiě)完,再清BUSY狀態(tài)位,重新回到準(zhǔn)備狀態(tài)準(zhǔn)備執(zhí)行下一次操作。
  可見(jiàn),在讀寫(xiě)操作中,對(duì)進(jìn)程起控制作用的關(guān)鍵就是DRQ這一狀態(tài)位,其檢測(cè)程序如下:
  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];    //查詢(xún)DRQ位,不為1則循環(huán)等待
  }
  (4)數(shù)據(jù)的擦除。首先將要操作的扇區(qū)地址寫(xiě)入偏移地址為003H~006H的邏輯塊尋址寄存器;然后再將要操作的扇區(qū)數(shù)目寫(xiě)入偏移地址為002H的扇區(qū)數(shù)目寄存器;接著發(fā)送擦除命令字(0C0H)到命令寄存器。執(zhí)行完擦除命令后,讀出的值全為0。
3.3 單片機(jī)軟件設(shè)計(jì)流程
  單片機(jī)軟件設(shè)計(jì)的主要流程如圖2所示。

  本文所介紹的基于單片機(jī)的Microdrive接口設(shè)計(jì),成功實(shí)現(xiàn)了操作Microdrive的常用命令,正確實(shí)現(xiàn)了對(duì)Microdrive的8位格式的操作。經(jīng)測(cè)試,此接口也可以對(duì)CF Type I卡(如SanDisk公司的CompactFlash卡)進(jìn)行正確的操作,從而提高了應(yīng)用系統(tǒng)的兼容性。該接口電路具有較廣泛的應(yīng)用價(jià)值,可應(yīng)用于各種需要使用Microdrive或CompactFlash卡作為存儲(chǔ)器的便攜式電子設(shè)備中,目前正準(zhǔn)備將其應(yīng)用于便攜式的動(dòng)態(tài)腦電及動(dòng)態(tài)心電儀器中。
參考文獻(xiàn)
1   CompactFlash Association.CF+ and CompactFlash Specification Revision 1.4.1999
2   International Business Machines Corporation.Using the IBM Microdrive For the First Time.2001
3   International Business Machines Corporation.Need More Storage Embed an IBM 170MB or 340MB Microdrive.2001
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。