CF卡(CompactFlash:壓縮閃存)是目前世界上外形最小的大容量存儲設(shè)備,,1994年由SanDisk最先推出,。它與PCMCIA完全兼容,,是一種固態(tài)產(chǎn)品,,工作時沒有運動部件。它極少出現(xiàn)機械故障,,存儲的數(shù)據(jù)非常安全,,是應(yīng)用最為廣泛的存儲卡。而且耗電量小,,只有普通硬盤的5%,。與其它存儲卡相比,容量大是CF卡的一個比較明顯的上風,,目前主流產(chǎn)品已經(jīng)達到512Mb和1Gb標準,。另外它還具備速度快、價格便宜等優(yōu)點,。CF卡采用閃存(flash)技術(shù),,是一種穩(wěn)定的存儲解決方案,,不需要電池來維持其中存儲的數(shù)據(jù)。對所保存的數(shù)據(jù)來說,,CF卡比傳統(tǒng)的磁盤驅(qū)動器,,更具安全性和保護性。
CF卡的應(yīng)用特別廣泛,。CF卡協(xié)會(CompactFlash Association:CFA)成立的初衷是??碈F技術(shù)能廣泛用于便攜式計算機、臺式機,、數(shù)碼相機,、手持條碼掃描器、高級雙向?qū)ず魴C,、錄音機,、監(jiān)視器、機頂盒等產(chǎn)品中,。采用CF技術(shù)可以使得這些產(chǎn)品的功能得到擴展,、體積變小、質(zhì)量變輕,。固然以上目標還遠遠沒有完全實現(xiàn),,但它已經(jīng)廣泛地用于很多領(lǐng)域,其中CF IO卡已經(jīng)在調(diào)制解調(diào)器,、網(wǎng)卡,、數(shù)字電話卡、激光掃描儀及藍牙技術(shù)中得到了普遍的應(yīng)用,。隨著人們對設(shè)備的小型化和自動化的要求越來越高,,CF卡的應(yīng)用將會更加廣泛。
2 CF卡的應(yīng)用現(xiàn)狀
CF卡是由一個控制芯片和一個閃存組成,,接口有50個腳(兩排),,它能夠很輕易地插進68針I(yè)I型適配器卡(符合PCMCIA的技術(shù)要求)中使用。CF卡可以使用3.3V和5V兩種電壓工作,,但對一個確定的卡,,只能工作于一種電壓。
CF接口系統(tǒng)的總線設(shè)計與實現(xiàn)" src="http://files.chinaaet.com/images/20110630/c7d1c7e6-9af1-4191-a31a-edcc14028684.jpg" />
現(xiàn)在一般的PC機上并沒有直接提供CF接口,,對它的應(yīng)用都是通過專門的讀卡器或是轉(zhuǎn)接設(shè)備來完成的?,F(xiàn)在有很多從USB接口到CF接口的轉(zhuǎn)接設(shè)備,例如朗科公司剛推出基于閃存技術(shù)的第一款數(shù)碼移動存儲產(chǎn)品――優(yōu)卡,,就是其中的一個,。它采用內(nèi)置USB和CF雙接口,用戶將優(yōu)卡中的圖片,、音樂或其它數(shù)據(jù)上傳至電腦時,,簡化了對CF卡的操縱過程,,但它僅能支持一個CF卡,目前還沒有擴展出多個CF接口的設(shè)備,,而且,,它只是一種簡化的讀卡器,需要專門的設(shè)備,,沒有充分發(fā)揮出CF卡的上風,,限制了對CF卡的更加有效的利用。
3 總線操縱題目及解決思路
總線是構(gòu)成系統(tǒng)的互連機構(gòu),,是多個系統(tǒng)功能部件之間進行數(shù)據(jù)傳送的公共通路,。借助于總線連接,各系統(tǒng)功能部件之間實現(xiàn)地址,、數(shù)據(jù)和控制信息的交換,并在爭用資源的基礎(chǔ)上進行工作,。
3.1 系統(tǒng)中的總線題目
在這個系統(tǒng)中,,當多個CF卡同時工作時,需要進行很多操縱,,處理器間要進行數(shù)據(jù)和狀態(tài)字的相互交換,,要向共享存儲器存取數(shù)據(jù),還要對輸進輸出設(shè)備進行讀寫,,所有這些操縱都要用到總線,。特別是當對實時性要求較高時,總線的操縱會碰到很多的題目:
(1)多個CF卡同時占用總線時,,如何避免總線的沖突,。
(2)當一個操縱占用總線時間過長時,且其請求得不到滿足時,,如何避免“死鎖”題目,。
(3)在緊急情況下,有一個操縱要立即占用總線,,此時,,如何使它在最短的時間內(nèi)獲得總線的控制權(quán)。
以上題目在系統(tǒng)上表現(xiàn)為性能不穩(wěn)定,,經(jīng)常性死機,,要解決這些題目,必須選擇合適的總線仲裁機制,,使其靈活,、可靠地完成各種工作。
3.2 多CF卡總線仲裁機制
總線仲裁機制包括總線仲裁策略和總線仲裁方式兩方面,。我們要求仲裁機制公平,、有效,、全理,而且要結(jié)構(gòu)簡單,,輕易實現(xiàn),。這時我們主要討論仲裁方式,常見的仲裁方式有集中式和分布式兩種,。所謂集中式仲裁中每個功能模塊有兩條線連到中心仲裁器:一條是送往仲裁器的總線請求信號線,,一條是仲裁器送出的總線授權(quán)信號線。示意圖如下:
集中式仲裁方式的電路簡單,,速度快,;但它的容錯能力差,魯棒性不夠好,。
分布式仲裁不需要中心仲裁器,,每個潛伏的功能模塊都有自己的仲裁號和仲裁器。共享的仲裁總線上總是保存著當前占用總線模塊的仲裁號,,當其它模塊有總線請求時,,各仲裁器將從仲裁總線上得到的號與自己的號進行比較。假如仲裁總線上的號大,,則它的總線請求不予響應(yīng),,并撤消它的仲裁號。最后,,獲勝者的仲裁號保存在仲裁總線上,。
分布式仲裁方法固然電路復(fù)雜一點,但容錯能力強,,可擴展性好,,當其中一部分出現(xiàn)故障時,不會影響其它的部分的工作,。
3.3 本系統(tǒng)仲裁策略的解決方案
本系統(tǒng)采用計數(shù)器定時查詢的仲裁策略,,這是集中式仲裁方式的一種,其基本思想是,,總線上的任一設(shè)備要求使用總線時,,通過共同的請求線向中心仲裁器發(fā)出總線請求。仲裁器接到請求信號以后,,在總線不忙的情況下,,讓仲裁地址計數(shù)器開始計數(shù),計數(shù)值通過一組地址線發(fā)向各設(shè)備,。每個設(shè)備接口都有一個設(shè)備地址判別電路,,當?shù)刂肪€上的計數(shù)值與請求總線的設(shè)備地址相一致時,該設(shè)備把總線狀態(tài)設(shè)為占用,獲得了總線使用權(quán),,同時中止計數(shù)查詢,。該方式的特點是計數(shù)靈活,既保證了仲裁的公平,,也突出了重點,。
這種方式很好決了總線沖突和“死鎖”的題目。對于緊急占用的題目,,可以通過中斷廣播的方法來實現(xiàn),。即當有一個CF卡需要緊急服務(wù)時,它向所有的設(shè)備發(fā)出占用總線的中斷請求,,其它設(shè)備檢查自己是否占用總線,,假如占用,就馬上開釋,;沒有占用,,就繼續(xù)執(zhí)行自己的操縱。當緊急任務(wù)完成后,,該CF卡再把總線控制權(quán)交給原來控制總線的設(shè)備,。這樣就可以使各設(shè)備的優(yōu)先權(quán)得到保證。
4. 具體的設(shè)計實現(xiàn)
本系統(tǒng)中的多CF卡采用INTEL公司的PD6722作為主控,。它是一個專門的從ISA總線擴展出兩個符合PCMCIA標準的芯片,不需要其它任何控制電路,。它能直接治理地址在64K到16M之間,,通過一個地址偏移量寄存器(存有所治理的地址的起始位置)把它映射到一個64M的地址上。通過擴展,,可以方便地控制四個CF接口,。而且它自身包含了仲裁邏輯電路,所以基本不需要另外的仲裁電路,,這為設(shè)計帶來了很大的方便,。
設(shè)計本系統(tǒng)的主要工作是對如何更加有效地種用總線。要使多個CF接口能夠協(xié)同工作,,我們不但要做好硬件的設(shè)計,,還要選擇良好的總線仲裁策略。
這個系統(tǒng)直接連到系統(tǒng)的總線上,,在加電的同時,,總線首先由主控占用,并由主控對各個接口進行初始化的配置,,把相應(yīng)的工作模式配置到各個端口,,并為它們分發(fā)時間片和優(yōu)先級,然后用計數(shù)器定時查詢方式進行工作。
由于本系統(tǒng)用了集中仲裁方式來控制總線,,解決了總線沖突,、“死鎖”和緊急服務(wù)的題目,能夠保證系統(tǒng)的正常工作,,達到了設(shè)計的要求,。當然本系統(tǒng)也有脆弱的一面,主要體現(xiàn)在對主控的存賴度較高,,假如主控芯片出了題目,,對本系統(tǒng)的打擊是致命的,這一點我們會在以后的工作中加以改進,。