基于GPIF的USB-ATA解決方案
目前,通過(guò)單片機去控制硬盤(pán)的ATA接口,大多采用PIO模式實(shí)現,速度和性能上都不夠理想,硬盤(pán)與PC機的連接也相當繁瑣。要頻繁地與PC機交換大量資料,采用USB硬盤(pán)是一個(gè)相當好的解決方案。本文給出一個(gè)如何利用單片機完成對硬盤(pán)的讀寫(xiě),同時(shí)具有USB-ATA功能的可行方案。
本文引用地址:http://dyxdggzs.com/article/173793.htm1.1 USB總線(xiàn)
USB(Universal Serial Bus)[4]是一種串行接口的新標準,其主要優(yōu)點(diǎn)是速度快、功耗低、支持即插即用(Plug Play)、使用安裝方便。USB支持最多5個(gè)Hub層以及127個(gè)外設,所有外設通過(guò)協(xié)議共享USB的帶寬。目前使用中的USB協(xié)議有1.0、1.1和2.0三個(gè)版本,通訊速率分別為1.5Mbps、12Mbps、480Mbps,USB協(xié)議向下兼容。
從邏輯結構上講,USB數據的傳輸是通過(guò)管道進(jìn)行的,管道的兩端連接host和device的端點(diǎn)BUFFER,BUFFER的大小直接影響通訊的速率。USB系統軟件通過(guò)缺省管道(與端點(diǎn)0相對應)管理設備,設備驅動(dòng)程序通過(guò)其它管道來(lái)管理設備的功能接口。每一個(gè)USB設備在主機看來(lái)就是一個(gè)端點(diǎn)的集合,主機只能通過(guò)端點(diǎn)與設備進(jìn)行通訊。在USB系統中,每一個(gè)端點(diǎn)都有唯一的地址,這是由設備地址和端點(diǎn)號給出的。每個(gè)端點(diǎn)都有一定的特性,其中包括:傳輸方式、總線(xiàn)訪(fǎng)問(wèn)頻率、帶寬、端點(diǎn)號、數據包的最大容量等。根據應用場(chǎng)合的不同選擇相應的端點(diǎn)類(lèi)型。USB數據流模型見(jiàn)圖1。
1.2 GPIF
GPIF(general programmable interface)[1、2]即通用可編程接口,是CYPRESS公司在其EZ-USB FX以及FX2系列單片機里設計的一個(gè)可由用戶(hù)編程的接口,具有快速、靈活等特點(diǎn),可使用多種協(xié)議完成與外圍器件的無(wú)縫連接,如EIDE/ATAPI、IEEE1284、Utopia等。對其可以根據需要進(jìn)行編程,且運行中不需要CPU的干預,僅通過(guò)一些CPU標志和中斷與增強型8051內核通訊。GPIF與8051內核的關(guān)系見(jiàn)圖2。
GPIF主要組成部分:
(1)ADR[5..0]:地址線(xiàn),可作為擴展存儲器的低位地址,在連續執行GPIF動(dòng)作時(shí)具有自動(dòng)增一功能??蓪ζ鋵募拇嫫鬟M(jìn)行讀寫(xiě)(FX2系列中擴充為9根地址線(xiàn))。
(2)RDY[5..0]:輸入Ready信號,可對指定的信號進(jìn)行連續采樣,以確定GPIF動(dòng)作繼續、等待或是反復不斷采樣,直到信號的指定狀態(tài)出現。通常用來(lái)等待指定信號的某個(gè)狀態(tài)出現,然后繼續剩余動(dòng)作。
(3)CTL[5..0]:輸出Control信號,根據編程指令輸出高低電平或集電極開(kāi)路。通常用作選通信號、非總線(xiàn)輸出信號,以及產(chǎn)生簡(jiǎn)單的脈沖信號。
(4)FD[15..0]:雙向FIFO數據線(xiàn),一般又稱(chēng)AFI、BFI。
(5)IFCLK:時(shí)鐘接口,決定使用外接時(shí)鐘還是使用內部48MHz或30MHz時(shí)鐘周期。
(6)GSTATE[2..0]:當前GPIF狀態(tài)數,可用來(lái)判斷當前GPIF工作狀態(tài),一般調試用。
(7)GPIF PROGRAM:GPIF程序存儲區間0x7900~0x797F,存儲GPIF指令,可存儲4組波形的程序代碼(FX2系列存儲區間為0xE400~0xE47F)。
每個(gè)GPIF動(dòng)作都由七段組成:Interval0~Interval6,簡(jiǎn)稱(chēng)I0~I6。執行完I0~I6的動(dòng)作后,最后都進(jìn)入IDLE(I7),即空閑狀態(tài),以準備啟動(dòng)下一次GPIF動(dòng)作。每個(gè)Interval可以定義為Non-Decision Interval,簡(jiǎn)稱(chēng)NDP;或是Decision Point Interval,簡(jiǎn)稱(chēng)DP。
評論