《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 基于单片机的MicroDrive接口设计

基于单片机的MicroDrive接口设计

2008-08-18
作者:王晋海, 刘光昌

  摘? 要: 介紹了IBM的MicroDrive的基本結構和工作原理,詳細說明了MicroDrive接口設計" title="接口設計">接口設計的關鍵技術;以AT89C52型單片機為基礎,設計完成了MicroDrive的接口電路,正確實現了對MicroDriver的讀寫及數據管理等功能。

  關鍵詞: MicroDrive? 單片機

?

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

  MicroDrive是由IBM日本分公司研發生產出來的產品,其接口符合CFA(CompactFlash Association)協會制定的CF+ Type II 規范,具有容量大(170MB~3GB)、體積小(42.8mm×36.4mm×5.0mm)、性價比高、耗電量小等特點,已在數碼相機、筆記本電腦、掌上電腦、便攜式音樂播放器等設備的存儲中獲得了較廣泛的應用。

目前市面上已有多家國內外公司生產出操作MicroDrive的接口(如IBM公司),但其價格較高。為降低成本,實現對MicroDrive的數據訪問和管理功能,本文給出了一種基于單片機的MicroDrive接口設計。

1 MicroDrive介紹

  MicroDrive各性能參數如下:

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

  ·緩沖區大小:128字節;

  ·扇區大小(字節):512;

????·盤片數量:1;

??? ·平均尋道時間:12ms;

????·平均等待時間:8.33ms;

??? ·最大內部數據傳輸速率" title="傳輸速率">傳輸速率:59.9MB/s;

????·最大外部數據傳輸速率:13.3MB/s;

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

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

  大小:5mm×43mm×35mm;

????重量:17克;

  磁盤旋轉速度:3600RPM。

  主要特點有:

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

  ·可靠性高,有效的數據保護及數據編碼技術,使得其出錯率極低;

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

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

2 MicroDrive硬件接口設計

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

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

?

  對MicroDrive,數據都是以512字節的扇區單元進行操作,能夠通過IDE、Memory等模式對其進行訪問。

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

本系統由單片機實現嵌入式設計。而Memory模式是MicroDrive的默認模式,可以避免繁瑣的寄存器設置,同時支持8位數據帶寬,控制操作相對簡單,可以極大地簡化設計,節省系統的資源。故本系統采用Memory模式。

2.2?硬件接口

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

  (1)AT89C52

  AT89C52擁有比8051多一倍的數據存儲器" title="數據存儲器">數據存儲器(256字節的RAM),擁有8K字節內部只讀存儲器(ROM),操作命令以及各引腳與8051基本一致。在本系統中,AT89C52的作用至關重要,它擔負著與外部的通信及實現對MicroDrive的各種操作。

  (2)外部數據存儲器

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

  (3)通信電平轉換芯片

  RS232C是目前異步串行通信中應用最廣泛的標準總線,適用于數據中斷設備(DTE)和數據通信設備(DCE)之間的接口;而單片機使用TTL電平,兩者互不兼容。因而使用了MAX232電平轉換芯片對它們的通信電平進行轉換,作為對外的通信接口。

  (4)CF+適配" title="適配">適配口

使用了標準50針CF+適配口。

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

?

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

3 軟件設計

3.1 主要寄存器簡介

  MicroDrive內幾個涉及到的操作寄存器,如表2所示。

?

3.2?軟件設計簡述

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

?

  (1)檢測MicroDrive

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

  其次,在確定MicroDrive已正確插入后,開始檢測其狀態。從Common Memory的偏移地址為007H的狀態寄存器" title="狀態寄存器">狀態寄存器中讀取MicroDrive的狀態信號,如果MicroDrive被正確Reset了,讀到的數據應該是50H,意味著MicroDrive已能使用并準備接收命令;否則證明有錯誤,應重新Reset。

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

  (2)數據的讀取

  為了達到此目的,首先,將要操作的扇區地址寫入偏移地址為003H~006H的邏輯塊尋址寄存器中,再將要操作的扇區數目寫入偏移地址為002H的扇區數目寄存器中,接著就發送讀命令字(20H)到命令寄存器中,當寫入命令后,MicroDrive會將BUSY狀態置1作為響應。

  然后,MicroDrive從存儲扇區中讀出數據放入其緩存單元中,并將DRQ狀態位置1,清BUSY以表示數據已準備好。因此只需檢查DRQ狀態即可。當DRQ為1時,便可從MicroDrive的緩存中讀出數據;當所有數據讀完后,DRQ將會清0,MicroDrive又轉回準備狀態,可進行下一步操作。

  (3)數據的寫入

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

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

在讀寫操作中,對進程起控制作用的是DRQ這一狀態位,其檢測程序如下:

  void wait_drq(void)

  {?? unsigned int a;

???   a=XBYTE[0xE007];

?????? ?    ?????? //讀取狀態寄存器的值

  ??? if((a&0x01)==1) error();

????        ??? //若出錯位為1,轉出錯處理

  ??? while((a&0xf8)!=0x58)

???   a=XBYTE[0xE007];

           ?? //查詢DRQ位,不為1則循環等待

  }?????

  (4)數據的擦除

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

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

?

參考文獻

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
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产综合在线观看视频| 国产精品免费观看久久| 亚洲综合精品一区二区| 亚洲综合av一区| 99视频国产精品免费观看| 国产精品福利网| 国产九九九九九| 99久久国产免费免费| 欧美日韩一区二区在线免费观看| 99亚洲国产精品| 国产欧洲精品视频| 日韩有码在线视频| 久久久久久久久91| 国产欧美久久久久| 日韩一二三区不卡在线视频| 国产精品日韩欧美| 日本高清视频一区| 91高清免费视频| 色婷婷综合成人av| 国产精品免费观看高清| 99高清视频有精品视频| 久久婷婷国产精品| 日本一区二区三区视频在线播放| 欧美成人在线影院| 欧美亚洲国产免费| 国产女精品视频网站免费| 蜜臀久久99精品久久久酒店新书| 久久久av电影| 日韩av大片在线| 国产欧美亚洲日本| 欧美乱妇高清无乱码| 一区二区三区在线观看www| 国产a∨精品一区二区三区不卡| 91久久精品www人人做人人爽| 俺去了亚洲欧美日韩| 久久99久久99精品免观看粉嫩| 国产精品亚洲自拍| 精品少妇人妻av一区二区 | 久久国产视频网站| 国产日韩av在线播放| 亚洲欧洲精品在线|