CompactFlash+插槽的供電及熱插拔控制設(shè)計
在設(shè)計可支持CompactFlash+(或CF)插槽的接口時,有兩個主要因素需要考慮,即供電及熱插拔。為支持CF 或CF+規(guī)范,在上電復(fù)位(POR)及請求的過程中,必須具有100mA 的最大電流。這樣,宿主便可執(zhí)行專門的命令以檢驗該部件有足夠的功率。
該信息可通過一個卡信息結(jié)構(gòu)(CIS,Card Information Structure) 讀命令或識別設(shè)備(Identify Device)命令來獲得。然后,宿主可確定是否能驅(qū)動該部件。如果能,則一個CF+部件可承受的最大電流為500mA(稱為Power Level 1)。諸如閃存等許多CF 部件可工作于100mA 供電電流。新的CF+宿主設(shè)計應(yīng)該能支持500mA 電流。在下文,我們將初步探討如何降低便攜式設(shè)備的功耗以延長其電池壽命。
要完全控制CF+部件,其宿主應(yīng)能控制其插槽的電源供給。如果CF+部件不希望被拔掉且不是用電池供電,則不需要這種可變控制(如存儲器件嵌入到線路板上的情況)。CF+插槽的供電控制并不復(fù)雜,就跟FET 開關(guān)與供電器件(如MICREL MIC2026)或控制器芯片(如Maxim 1601 或4370)串聯(lián)一樣簡單。
在控制CF+部件的供電時,宿主必須確知該部件已為關(guān)閉電源做好準(zhǔn)備。某些部件,如日立Microdrive 等存儲驅(qū)動器具有寫入高速緩存。將Caching 使能并將讀寫頭置于媒體上方后,Microdrive 就會將“READY”狀態(tài)報告給一個寫命令(命令結(jié)束后解釋),即使仍有數(shù)據(jù)在寫入驅(qū)動器。在這種情況下,關(guān)閉驅(qū)動器電源之前,宿主必須執(zhí)行“STANDBY IMMEDIATE” 命令,并等待“READY”狀態(tài)的出現(xiàn)。驅(qū)動器將一直保持“READY”狀態(tài),直到高速緩存被騰空且讀寫頭已停好。然后,宿主便可關(guān)閉驅(qū)動器的電源。
除了上述的電源問題外,切忌故意將CF+部件插入帶電插槽中,即使該插槽的設(shè)計允許這種在發(fā)出信號前連接電源線的操作。但是意外情況的確會發(fā)生,因此驅(qū)動器最好具備熱插拔功能。
熱插拔的設(shè)計問題是,在CF+設(shè)備進行上電復(fù)位(POR)或?qū)π〉囊_電容充電時,應(yīng)避免地址或數(shù)據(jù)總線受到由其引起的瞬態(tài)沖擊。隔離這些總線的最好方法是使用驅(qū)動器/接收器(如圖1 所示)。單向地址總線只需使用驅(qū)動器。數(shù)據(jù)線及一些控制線則需要使用接收器將信號與宿主隔離開來。在對插槽供電之前,接收器應(yīng)在OUTPUT(至CF 部件)進行預(yù)設(shè)置。這可確保在“讀選通”期間CF+部件與宿主處理器隔離,并且只與數(shù)據(jù)總線相連。由于許多宿主總線采用時分多路復(fù)用總線設(shè)計,因此地址總線通常使用一個簡單的驅(qū)動器(如74244)進行隔離。另一方面,數(shù)據(jù)總線是雙向總線,可與低階地址總線進行時分多路復(fù)用。
因此,74373 或類似器件可提供適當(dāng)?shù)母綦x。當(dāng)CF+插槽為空、熱插拔并非真正的熱插拔時,宿主會定期輪詢CD 線,檢查CF 卡的存在,然后中斷處理器,從而調(diào)用CF 激活進程。該進程由通過上述的控制電路進行加電開始,然后必須等待至少300ms 使該部件準(zhǔn)備好執(zhí)行命令。等待過程分兩個階段:0-100ms 為第一個階段,只是等待;100-300ms 為第二階段,此時應(yīng)檢查“READY”狀態(tài)是否已出現(xiàn),如果沒有,則繼續(xù)等待。準(zhǔn)備好后即可繼續(xù)。如果超過300ms 還沒出現(xiàn)“READY”狀態(tài),則報告CF 卡出錯。如果在第二階段準(zhǔn)備好,宿主必須從CF 部件讀取狀態(tài)字節(jié)。該過程的大部分由驅(qū)動器軟件處理,不過這里是被用于沒有商用操作系統(tǒng)的嵌入式設(shè)計。因此,這種卡實際上并不真正具備熱插拔功能,盡管在用戶看來它具有。
若CD 信號消失,這表明CF 卡已被拔掉。宿主檢測到這一狀態(tài)后,會關(guān)閉電源并重新尋找等待CD 信號以便再次激活。
評論