摘要:嵌入式系統(tǒng)在網(wǎng)絡(luò)控制和通信領(lǐng)域有著越來越廣泛的應(yīng)用。本文通過分析PC卡時序,利用ARM處理器S3C4510B和外部電路設(shè)計PCMCIA接口,實現(xiàn)與無線網(wǎng)卡的軟、硬件接口,從而可以使用基于ARM的嵌入式系統(tǒng)來開發(fā)無線網(wǎng)絡(luò)產(chǎn)品。
關(guān)鍵詞:S3C4510B PCMCIA接口 PC卡
引言
ARM處理器具有小體積、低功耗、低成本、高性能的特點,基于ARM的嵌入式系統(tǒng)可廣泛的應(yīng)用于無線領(lǐng)域。本文采用北京微芯力公司的ARM Linux評估板做為嵌入式硬件平臺,處理器為三星公司的S3C4510B,操作系統(tǒng)為uCLinux,使用S3C4510B和外圍電路模擬PC卡時序,完成PCMCIA接口的設(shè)計,解決該硬件平臺與無線網(wǎng)卡的軟、硬件接口問題,使其成為開發(fā)無線網(wǎng)絡(luò)設(shè)備的理想平臺。
1. PCMCIA接口電路分析
PCMCIA是個人計算機(jī)存儲卡國際協(xié)會的簡稱,由于PC卡具有重量輕、方便靈活的性質(zhì),所以在生活中應(yīng)用廣泛,同時也是嵌入式平臺下開發(fā)無線網(wǎng)絡(luò)很好的產(chǎn)品。
PCMCIA接口信號定義有3種模式:存儲器模式(Memory Mode)、輸入/輸出模式(I/O Mode)、卡總線模式(CardBus Mode),每種模式下的接口信號定義都有所不同。PCMCIA無線網(wǎng)卡是Type II 類型的卡,接口信號定義屬于I/O模式,詳細(xì)的68針腳定義可參考PC卡規(guī)范。圖1給出了PCMCIA的體系結(jié)構(gòu):
PC卡接口主要實現(xiàn)兩種功能:一是與S3C4510B上的擴(kuò)展總線相連。二是對無線網(wǎng)卡內(nèi)部的操作,包括對緩沖RAM的讀寫、MAC芯片的控制、讀寫存儲空間及I/O空間等。根據(jù)PC卡規(guī)范的說明,除去68針腳中固定的連接方式針,表1列出了PCMCIA接口電路必須使用的總線信號(不考慮電源線和地線),并且對主要信號的工作方式做出說明。
(1) 從網(wǎng)卡上傳送的數(shù)據(jù)格式為大端格式,即字?jǐn)?shù)據(jù)的高字節(jié)存儲在低位地址,低字節(jié)存儲高地址,而S3C4510B通常工作在小端格式,所以D0~D7接S3C4510B的高八位數(shù)據(jù)線,D8~D15接低八位數(shù)據(jù)線。
(2) 網(wǎng)卡中包括I/O空間和存儲空間,其中存儲空間分為兩部分:屬性存儲空間(Attribute Memory)和公共存儲空間(Common Memory)。當(dāng)REG信號有效時,表示存取限于屬性和I/O空間;無效時,表示存取公共空間的數(shù)據(jù)。在設(shè)計中只需要PC卡提供的低22根地址線A0~A21,高四位接地即可。
(3) 卡使能信號CE1,CE2,低有效。CE1表示對PC卡偶數(shù)地址字節(jié)訪問,CE2表示對奇數(shù)地址字節(jié)的訪問。S3C4510B對網(wǎng)卡采用半字(16bit)訪問方式,故在對網(wǎng)卡讀寫時,CE1,2應(yīng)始終保持低電平。
(4) I/O端口讀寫控制信號應(yīng)由S3C4510B的輸入輸出使能信號與外電路組合邏輯產(chǎn)生。如果考慮DMA操作,則要將PC卡INPACK引腳作為DMA請求信號(DREQ),REG作為DMA應(yīng)答信號,具體DMA操作時序請參考PC卡規(guī)范。
通過對PC卡接口信號線的詳細(xì)分析,可以得出PCMCIA與S3C4510B相連所需要的信號線,從而可以確定S3C4510B提供的控制信號和外圍電路。
2. S3C4510B與PC卡接口硬件電路
S3C4510B是三星公司推出的針對嵌入式網(wǎng)絡(luò)控制和通信領(lǐng)域應(yīng)用的16/32位嵌入式處理器,CPU內(nèi)核為國際上廣泛使用的ARM7TDMI處理器。本文所設(shè)計的就是用該ARM處理器實現(xiàn)與PCMCIA無線網(wǎng)卡的軟、硬件接口,從而展開對基于ARM平臺的無線網(wǎng)絡(luò)的研究。根據(jù)上面對PC卡接口電路的分析,表2列出了S3C4510B所用的引腳信號:
表2 S3C4510B與PCMCIA接口所需引腳
從表1、表2看出,PCMCIA接口電路信號線與S3C4510B引腳之間不能直接相連,所以在設(shè)計中選用一片CPLD,用它來進(jìn)行時序轉(zhuǎn)換和產(chǎn)生控制信號的組合邏輯。ARM Linux開發(fā)板上將一片F(xiàn)LASH映射到ROM/SRAM/FLASH組0,用于存放用戶自己編寫的啟動代碼,所以在設(shè)計中將網(wǎng)卡映射到ROM組1和組2中,具體操作如下:
nRCS[1] nRCS[2]
0 0 軟復(fù)位
0 1 組1:映射屬性空間和I/O空間
1 0 組2:映射公共空間
1 1 不選用網(wǎng)卡
由此可以得出邏輯表達(dá)式:
,
。此外,PC卡的I/O讀寫信號能否通過簡單的組合邏輯與S3C4510B相連,還需要分析兩者的I/O讀寫時序。以讀時序為例,圖2給出了PC卡的I/O讀時序,圖3給出了S3C4510B的I/O讀時序。通過分析兩個時序圖的不同,在設(shè)計中使用CPLD產(chǎn)生I/O空間選擇信號/IS,S3C4510B可按下述應(yīng)用對網(wǎng)卡進(jìn)行操作。
(1) 數(shù)據(jù)線,地址線可以直接相連。網(wǎng)卡只使用S3C4510B的XDATA0~XDATA15數(shù)據(jù)線。
(2) /IORD、/IOWR信號線可通過/IS,/nOE,/nWBE,/nRCS[1]這四根信號線譯碼得到:
圖4給出了S3C4510B與PCMCIA接口連接的硬件框圖,CPLD完成譯碼邏輯和協(xié)調(diào)時序的工作:
圖4 S3C4510B與PCMCIA接口的硬件連接框圖
3.結(jié)束語
本文利用S3C4510B開發(fā)PCMCIA接口,通過在uCLinux下編譯接口的驅(qū)動程序,使無線網(wǎng)卡可以工作在基于ARM的嵌入式平臺上,為實現(xiàn)利用ARM Linux評估板來開發(fā)無線網(wǎng)絡(luò)設(shè)備完成了基礎(chǔ)工作。





