嵌入式處理器MPC8250與CF卡的接口設(shè)計(jì)
最近幾年,嵌入式處理器蓬勃發(fā)展,在通信、航空航天、醫(yī)療設(shè)備、消費(fèi)類電子產(chǎn)品等領(lǐng)域一展身手。嵌入式處理器的外圍設(shè)備也日新月異,例如記憶棒、USB口、CF卡等。本文從硬件和軟件角度出發(fā),介紹了CF卡在嵌入式系統(tǒng)中的設(shè)計(jì)和使用技巧。
由于CF卡具有攜帶方便、易于升級(jí)、存儲(chǔ)量大、抗震性好等優(yōu)點(diǎn),應(yīng)用范圍越來(lái)越廣。1995年10月,SanDisk、柯達(dá)、卡西歐、惠普、摩托羅拉、佳能等125家廠商發(fā)起成立了CompactFlash協(xié)會(huì),致力于制定新一代的基于RAM和ROM技術(shù)的固態(tài)非易失的存儲(chǔ)介質(zhì)標(biāo)準(zhǔn)——CF卡標(biāo)準(zhǔn)使不同廠家開(kāi)發(fā)的CF卡及其接口器件可以互相兼容。目前,CF卡標(biāo)準(zhǔn)已有1.4版本,容量從最早的2M字節(jié)到現(xiàn)今的1G字節(jié)。
同時(shí),CF卡遵從ATA-IDE工業(yè)設(shè)計(jì)標(biāo)準(zhǔn),連接裝置與 PCMCIA卡相似,只不過(guò)CF卡是50引腳(PCMCIA卡68引腳),可以很容易插入無(wú)源68引腳 TypeII適配卡并完全符合PCMCIA電力和機(jī)械接口規(guī)格。另外,CF卡的兼容性佳,不僅同時(shí)支持3.3V和5V的電壓,而且不同的CF卡都可以用單一的機(jī)構(gòu)讀寫,特別是CF卡升級(jí)換代時(shí)也可以保證舊設(shè)備的兼容性。而純電子運(yùn)動(dòng)的CF卡耗電量很低,僅為IBM微型硬盤的5%。
1 系統(tǒng)設(shè)計(jì)
圖1是筆者開(kāi)發(fā)的嵌入式系統(tǒng)框圖。其中,嵌入式處理器是MPC8250,PCI1410A是連接PCI總線和CF卡的一種接口芯片。
MPC8250芯片是Motorola公司開(kāi)發(fā)的一款PowerPC系列嵌入式處理器。芯片采用小巧而強(qiáng)大的32位超標(biāo)量體系結(jié)構(gòu)PowerPC 603e處理器內(nèi)核,最高主頻為300MHz。它集成了PCI橋、PCI仲裁器、存儲(chǔ)器控制器、中斷控制器、DMA控制器、16K字節(jié)指令高速緩存和16K字節(jié)數(shù)據(jù)高速緩存等部件。MPC8250具有三個(gè)可配置為百兆或十兆以太網(wǎng)的FCC口,四個(gè)可配置為串口或網(wǎng)口的SCC口,一個(gè)多通道HDLC接口。該芯片適用于對(duì)成本、空間、功耗和性能都有很高要求的應(yīng)用領(lǐng)域,例如路由器/接線器、多路MODEM、網(wǎng)絡(luò)存儲(chǔ)應(yīng)用和圖像顯示等系統(tǒng)。
PCI1410A芯片是TI公司開(kāi)發(fā)的一種高性能的PCI到CF卡的控制器,支持遵循CF卡標(biāo)準(zhǔn)的各類CF卡。它符合PCI總線標(biāo)準(zhǔn),既可以工作于PCI主設(shè)備模式,也可以工作于PCI從設(shè)備模式。
MPC8250與PCI1410A之間通過(guò)32位PCI局部總線連接,工作頻率33MHz。MPC8250用作PCI主設(shè)備,PCI1410A用作PCI從設(shè)備,同時(shí)采用MPC8250內(nèi)部的PCI仲裁器。
本設(shè)計(jì)選用SanDisk公司的型號(hào)為SDCFB-64-101的CF卡,64M字節(jié)容量,幾何尺寸為36.4mm×42.8mm×3mm。PCI1410A與CF卡之間的連接遵循CF卡標(biāo)準(zhǔn),由地址、數(shù)據(jù)、控制三組信號(hào)組成。PCI1410A提供了五個(gè)通用I/O引腳,設(shè)計(jì)中將其中一個(gè)引腳GPIO1用作LED指示。當(dāng)CF卡工作時(shí),LED會(huì)以64ms的周期閃爍。
SDRAM選用了三星公司的K4S561632A,每片容量256M比特,共四片。
圖2 讀寫CF卡技巧示意圖
2 接口編程
在CF卡工作前,必須先進(jìn)行初始化,在整個(gè)系統(tǒng)的地址空間中確定CF卡的位置,預(yù)設(shè)置CF卡的工作模式及相關(guān)寄存器。本設(shè)計(jì)中,CF卡位于系統(tǒng)的0x9A000000~0x9DFFFFFF地址空間。在每次讀寫CF卡時(shí),必須根據(jù)讀寫數(shù)據(jù)的多少和操作特性來(lái)配置相應(yīng)寄存器。
2.1 CF卡初始化
本系統(tǒng)中,CF卡的初始化由MPC8250通過(guò)PCI總線配置PCI1410A的寄存器實(shí)現(xiàn),具體步驟如下:
(1)設(shè)置CF卡的基地址,即配置ExCA寄存器(偏移量:0x10)。該寄存器定義了CF卡在PCI存儲(chǔ)器空間的基地址,即0x9A000000。
(2)配置PCI命令寄存器(偏移量:0x04),允許CPU訪問(wèn)PCI存儲(chǔ)空間。
(3)配置系統(tǒng)控制寄存器(偏移量:0x80)。該寄存器定義了一些系統(tǒng)控制位,例如,是否采用PCI中斷方式,是否采用內(nèi)部振蕩器,是否采用DMA等。本設(shè)計(jì)采用PCI中斷方式,不采用內(nèi)部振蕩器和DMA。
評(píng)論