Compact。疲欤幔螅璐鎯ǖ模福埃担毕到y(tǒng)接口方案_8051輸入輸出接口有哪些
發(fā)布時(shí)間:2020-02-16 來源: 美文摘抄 點(diǎn)擊:
收稿日期:2006-09-27? 作者簡介:劉佑祥(1946-),男,湖北武漢人,武漢科技大學(xué)中南分校信息工程學(xué)院副教授。? (武漢科技大學(xué)中南分校 信息工程學(xué)院,湖北 武漢 430223)?
摘要:本文介紹了SST公司Compact Flash存儲卡(CF卡)的電氣特性與接口指令集,提出了一個(gè)基于8051單片機(jī)系統(tǒng)的完整CF卡接口解決方案,并給出了詳細(xì)硬件電路設(shè)計(jì)和軟件設(shè)計(jì)要點(diǎn)。?
關(guān)鍵詞:8051單片機(jī)系統(tǒng);CF卡;計(jì)算機(jī)接口設(shè)計(jì)?
中圖分類號:TP305 文獻(xiàn)標(biāo)識碼:A??
前 言?
隨著電子技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)的功能變得越來越強(qiáng)大,設(shè)計(jì)中對其存儲容量的要求也隨之提高,所以原有的EEPROM等存儲容量為KB級的存儲器件已經(jīng)無法滿足設(shè)計(jì)要求。在這一背景下,Compact Flash Card(CF卡,見圖1)作為一類存儲速度快,存儲容量大(容量可達(dá)數(shù)百M(fèi)B至數(shù)GB)的新型存儲器件就應(yīng)運(yùn)而生。但是由于CF卡的接口方式是為PC機(jī)接口設(shè)計(jì)的IDE方式,如果要在單片機(jī)系統(tǒng)中使用CF卡,需要在單片機(jī)系統(tǒng)中模擬IDE控制器的功能。因此,本文將討論在8051系統(tǒng)中實(shí)現(xiàn)CF卡接口的解決方案。?
圖1 Compact Flash Card外觀示意圖?
一、CF卡接口的電氣特性?
SST公司的CF的封裝為25×2的雙列插座,行列之間的間距均為25mil。由于封裝的特殊性,在應(yīng)用時(shí)需要自行設(shè)計(jì)SCH和PCB封裝。設(shè)計(jì)PCB封裝時(shí)需注意選擇合適孔徑和焊盤大小,因?yàn)榕裴樀尼樐_為正方形不是圓形,所以焊盤的直徑應(yīng)選擇為針腳截面正方形的對角線長。如果直接使用標(biāo)準(zhǔn)CF卡接插件,則PCB上應(yīng)相應(yīng)設(shè)計(jì)成適合的貼片封裝。?
二、主要功能引腳及說明?
CF卡的主要功能引腳為數(shù)據(jù)線D0~D15,地址線A0~A9,片選及數(shù)據(jù)選擇CE1,CE2,讀寫控制端OE、WR,寄存器選擇REG,卡讀寫忙判斷RDY/BSY,RESET等。?
數(shù)據(jù)線D0~D15用于數(shù)據(jù)的讀寫。CF可以工作于16位數(shù)據(jù)總線方式也可以工作于8位總線方式。在讀寫速度上的要求不是很嚴(yán)格的情況下,為了方便和8位MCU的接口,一般選擇為8位數(shù)據(jù)總線工作方式。?
CE1和CE2的功能如表1所示:?
若選擇8位工作方式,CE2應(yīng)接固定電平1,CE1低有效。在不同工作方式的說明中,可能把CE1和CE2分別改稱CS0,CS1。?
地址線A0~A9。CF卡在Memory工作方式下,僅地址線A0~A3起作用,用于選擇讀寫端口,其余地址線可以接固定電平。?
REG用于選擇是對CF卡進(jìn)行命令、狀態(tài)讀寫還是讀寫CF卡的屬性寄存器。REG=1時(shí)讀寫命令。如表2所示:?
在Memory方式下,對CF的控制和數(shù)據(jù)讀寫均是通過對這幾個(gè)端口的讀寫來實(shí)現(xiàn)的。?
RDY/BSY用于判斷CF卡是否處于讀寫忙狀態(tài)。出于嚴(yán)謹(jǐn)性可以在對CF卡進(jìn)行讀寫之前利用此引腳判斷CF卡是否空閑。在數(shù)據(jù)讀寫量比較小的情況下,使用一定的延時(shí)即可。?
三、實(shí)際應(yīng)用電路設(shè)計(jì)?
圖2給出了CF卡的實(shí)際應(yīng)用電路。圖中96MB的CF卡工作于Memory方式,8位數(shù)據(jù)總線,接口的主控MCU是89C52。?
圖2 CF實(shí)際應(yīng)用電路?
單片機(jī)按標(biāo)準(zhǔn)的P2、P0口復(fù)用方式與CF卡接口。CS0,CS1,REG分別接單片機(jī)的P2?6,P2?5,P2?7,端口選擇A3~A0接到經(jīng)74LS373鎖存的低4位地址,CF卡的讀寫引腳分別與單片機(jī)的讀寫信號相接。若把閑置地址引腳接固定電平,則系統(tǒng)分配給CF卡的端口地址為【B000】~【B007】。?
INTRQ(即BSY/RDY)腳接到單片機(jī)的P1.7。?
四、CF卡的存儲特性?
CF卡采取的是類似硬盤的分塊存儲方式,分為柱面Cylinder、頭Head和扇區(qū)Sector管理。對96MB的CF卡而言,共有733個(gè)柱面,每個(gè)柱面8個(gè)頭,每個(gè)頭32個(gè)扇區(qū),每個(gè)扇區(qū)512字節(jié)(8位)。CF卡的讀寫是以一個(gè)扇區(qū)為基本單位的,在讀寫一個(gè)扇區(qū)之前先送出當(dāng)前需要讀寫的柱面、頭和扇區(qū),然后發(fā)送讀寫命令,一個(gè)扇區(qū)的512個(gè)字節(jié)需要一次性連續(xù)寫入或者讀出。?
下面給出一段對CF卡讀寫的C51程序段:?
#define DataPort XBYTE\[0xB800\]?
#define Feature XBYTE\[0xB801\]?
#define SecCount XBYTE\[0xB802\]?
#define SecNo XBYTE\[0xB803\]?
#define CylLow XBYTE\[0xB804\]?
#define CylHigh XBYTE\[0xB805\]?
#define CardHead XBYTE\[0xB806\]?
#define Command XBYTE\[0xB807\]定義CF卡端口?
CardHead=0xA0+head;置當(dāng)前頭?
SecCount=0x01;一次讀寫一個(gè)扇區(qū)?
SecNo=sector;置當(dāng)前扇區(qū)?
CylLow=cylinder%255;置柱面高位?
CylHigh=cylinder/255;置柱面低位?
Command=0x30;寫扇區(qū)命令?
delay(1);延時(shí)1ms?
for(i=1;i
相關(guān)熱詞搜索:存儲卡 接口 方案 Compact Flash存儲卡的8051系統(tǒng)接口方案 compactflash存儲卡 compactflash讀卡器
熱點(diǎn)文章閱讀