![嵌入式處理器MPC8250與CF卡的接口設計_第1頁](http://file4.renrendoc.com/view/2300f9305a42a77349330daee5b5ab32/2300f9305a42a77349330daee5b5ab321.gif)
![嵌入式處理器MPC8250與CF卡的接口設計_第2頁](http://file4.renrendoc.com/view/2300f9305a42a77349330daee5b5ab32/2300f9305a42a77349330daee5b5ab322.gif)
![嵌入式處理器MPC8250與CF卡的接口設計_第3頁](http://file4.renrendoc.com/view/2300f9305a42a77349330daee5b5ab32/2300f9305a42a77349330daee5b5ab323.gif)
![嵌入式處理器MPC8250與CF卡的接口設計_第4頁](http://file4.renrendoc.com/view/2300f9305a42a77349330daee5b5ab32/2300f9305a42a77349330daee5b5ab324.gif)
![嵌入式處理器MPC8250與CF卡的接口設計_第5頁](http://file4.renrendoc.com/view/2300f9305a42a77349330daee5b5ab32/2300f9305a42a77349330daee5b5ab325.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
嵌入式處理器MPC8250與CF卡的接口設計
摘要:從如何設計嵌入式處理器與CF卡之間的接口、如何高效率地編制讀寫程序出發(fā),介紹了嵌入式處理器與CF卡的接口設計和編程技巧。
關鍵詞:CF卡PCI局部總線扇區(qū)
最近幾年,嵌入式處理器蓬勃發(fā)展,在通信、航空航天、醫(yī)療設備、消費類電子產(chǎn)品等領域一展身手。嵌入式處理器的外圍設備也日新月異,例如記憶棒、USB口、CF卡等。本文從硬件和軟件角度出發(fā),介紹了CF卡在嵌入式系統(tǒng)中的設計和使用技巧。
由于CF卡具有攜帶方便、易于升級、存儲量大、抗震性好等優(yōu)點,應用范圍越來越廣。1995年10月,SanDisk、柯達、卡西歐、惠普、摩托羅拉、佳能等125家廠商發(fā)起成立了CompactFlash協(xié)會,致力于制定新一代的基于RAM和ROM技術的固態(tài)非易失的存儲介質標準——CF卡標準使不同廠家開發(fā)的CF卡及其接口器件可以互相兼容。目前,CF卡標準已有1.4版本,容量從最早的2M字節(jié)到現(xiàn)今的1G字節(jié)。
同時,CF卡遵從ATA-IDE工業(yè)設計標準,連接裝置與PCMCIA卡相似,只不過CF卡是50引腳,可以很容易插入無源68引腳TypeII適配卡并完全符合PCMCIA電力和機械接口規(guī)格。另外,CF卡的兼容性佳,不僅同時支持3.3V和5V的電壓,而且不同的CF卡都可以用單一的機構讀寫,特別是CF卡升級換代時也可以保證舊設備的兼容性。而純電子運動的CF卡耗電量很低,僅為IBM微型硬盤的5%。
1系統(tǒng)設計
圖1是筆者開發(fā)的嵌入式系統(tǒng)框圖。其中,嵌入式處理器是MPC8250,PCI1410A是連接PCI總線和CF卡的一種接口芯片。
MPC8250芯片是Motorola公司開發(fā)的一款PowerPC系列嵌入式處理器。芯片采用小巧而強大的32位超標量體系結構PowerPC603e處理器內(nèi)核,最高主頻為300MHz。它集成了PCI橋、PCI仲裁器、存儲器控制器、中斷控制器、DMA控制器、16K字節(jié)指令高速緩存和16K字節(jié)數(shù)據(jù)高速緩存等部件。MPC8250具有三個可配置為百兆或十兆以太網(wǎng)的FCC口,四個可配置為串口或網(wǎng)口的SCC口,一個多通道HDLC接口。該芯片適用于對成本、空間、功耗和性能都有很高要求的應用領域,例如路由器/接線器、多路MODEM、網(wǎng)絡存儲應用和圖像顯示等系統(tǒng)。
PCI1410A芯片是TI公司開發(fā)的一種高性能的PCI到CF卡的控制器,支持遵循CF卡標準的各類CF卡。它符合PCI總線標準,既可以工作于PCI主設備模式,也可以工作于PCI從設備模式。
MPC8250與PCI1410A之間通過32位PCI局部總線連接,工作頻率33MHz。MPC8250用作PCI主設備,PCI1410A用作PCI從設備,同時采用MPC8250內(nèi)部的PCI仲裁器。
本設計選用SanDisk公司的型號為SDCFB-64-101的CF卡,64M字節(jié)容量,幾何尺寸為36.4mm×42.8mm×3mm。PCI1410A與CF卡之間的連接遵循CF卡標準,由地址、數(shù)據(jù)、控制三組信號組成。PCI1410A提供了五個通用I/O引腳,設計中將其中一個引腳GPIO1用作LED指示。當CF卡工作時,LED會以64ms的周期閃爍。
SDRAM選用了三星公司的K4S561632A,每片容量256M比特,共四片。
2接口編程
在CF卡工作前,必須先進行初始化,在整個系統(tǒng)的地址空間中確定CF卡的位置,預設置CF卡的工作模式及相關寄存器。本設計中,CF卡位于系統(tǒng)的0x9A000000~0x9DFFFFFF地址空間。在每次讀寫CF卡時,必須根據(jù)讀寫數(shù)據(jù)的多少和操作特性來配置相應寄存器。
2.1CF卡初始化
本系統(tǒng)中,CF卡的初始化由MPC8250通過PCI總線配置PCI1410A的寄存器實現(xiàn),具體步驟
設置CF卡的基地址,即配置ExCA寄存器。該寄存器定義了CF卡在PCI存儲器空間的基地址,即0x9A000000。
配置PCI命令寄存器,允許CPU訪問PCI存儲空間。
配置系統(tǒng)控制寄存器。該寄存器定義了一些系統(tǒng)控制位,例如,是否采用PCI中斷方式,是否采用內(nèi)部振蕩器,是否采用DMA等。本設計采用PCI中斷方式,不采用內(nèi)部振蕩器和DMA。
配置多功能引腳寄存器。該寄存器配置通用引腳。本設計配置GPIO1引腳為LED指示,GPIO2引腳為PCI中斷輸出。
配置設備控制寄存器。該寄存器選擇中斷方式,是并行PCI中斷還是串行PCI中斷。本設計選擇了傳統(tǒng)的并行PCI中斷方式。
配置ExCA電壓控制寄存器,選擇Vcc為3.3V還是5V。本設計選擇Vcc為3.3V。
配置ExCA存儲窗口0起始地址低位寄存器,即起始地址的A19~A12位。PCI1410A具有五個存儲地址翻譯窗口和二個I/O地址翻譯窗口,用于配置CF卡內(nèi)寄存器的訪問地址,將CF卡的寄存器映射到系統(tǒng)的存儲空間或I/O空間,MPC8250訪問這些寄存器就相當于訪問一段存儲空間或I/O空間。本設計中只使用了存儲地址翻譯窗口0。
配置ExCA存儲窗口0起始地址高位寄存器,即起始地址的A23~A20位。
配置ExCA存儲窗口0結束地址低位寄存器,即結束地址的A19~A12位。
配置ExCA存儲窗口0結束地址高位寄存器,即結束地址的A23~A20
位。
配置ExCA存儲窗口0地址比較寄存器。在系統(tǒng)訪問CF卡時,如果地址的高8位與該寄存器數(shù)值相同,則允許訪問,系統(tǒng)將該地址翻譯到相應的CF卡空間;否則,拒之門外。
配置ExCA存儲窗口使能寄存器。該寄存器可以分別打開或關閉五個存儲地址翻譯窗口和二個I/O地址翻譯窗口,因為每個窗口對應了寄存器中的一個使能位。芯片的默認值都是關閉的。在本設計中,打開存儲地址翻譯窗口0。切記在初始化的收官階段打開翻譯窗口使能位,以免功虧一簣。
2.2讀寫CF卡技巧
由于CF卡本身的特點,CF卡由ATA控制器和Flash存儲器兩部分構成。系統(tǒng)訪問Flash存儲器的速度遠遠小于訪問內(nèi)存的速度。如果系統(tǒng)頻繁訪問CF卡,勢必影響系統(tǒng)的實時性和工作效率。所以必須考慮CF卡讀寫程序的設計技巧。
根據(jù)存儲器訪問的局部性原理,CPU存取數(shù)據(jù)所訪問的存儲單元都趨向于聚集在一個較小的連續(xù)區(qū)域。從時間上看,如果一個信息項正在被訪問,那么在近期它很可能還會被再次訪問。從空間上看,在最近將用到的信息很可能與目前正在使用的信息在空間地址上是臨近的。
本系統(tǒng)的程序設計中,開辟了一個扇區(qū)的內(nèi)存空間tempSect,用于存儲最近訪問過的扇區(qū)數(shù)據(jù);并設置了兩個全局變量:SaveSectorNum和SectorDirty。SaveSectorNum保存最近備份的扇區(qū)編號。SectorDirty說明備份數(shù)據(jù)是否與CF卡中的相應數(shù)據(jù)一致。如果一致,為“0”;否則為“1”。這樣不但可以減少讀寫CF卡的次數(shù),而且提高了訪問速度,滿足嵌入式操作系統(tǒng)的實時性要求。
同時,CF卡的物理結構也有利于以扇區(qū)為單元進行操作。因為CF卡內(nèi)部的Flash存儲器由若干個扇區(qū)組成,而且CF卡中設置了專門針對扇區(qū)操作的寄存器。
所以,本設計中,無論是讀一段數(shù)據(jù),還是寫一段數(shù)據(jù),都以扇區(qū)為基本單位。如果數(shù)據(jù)量在一個扇區(qū)內(nèi),并且地址范圍在同一扇區(qū),則先讀取所在扇區(qū)的數(shù)據(jù),然后按照在扇區(qū)中的偏移量獲得所需數(shù)據(jù);如果數(shù)據(jù)量大于一個扇區(qū),或者地址范圍橫跨兩個扇區(qū),則按次讀取扇區(qū),獲得所需數(shù)據(jù)。操作流程如圖2所示。
系統(tǒng)初始化時,設置SaveSectorNum為“0”,tempSect中備份了0號扇區(qū)的數(shù)據(jù);SectorDirty也為“0”,即備份數(shù)據(jù)未作更改。
當讀取一個扇區(qū)的數(shù)據(jù)時,首先比較所讀取的扇區(qū)號,是否與備份數(shù)據(jù)的扇區(qū)號一致,如果一致,則從備份數(shù)據(jù)中讀取,加快了訪問速度;否則,判斷備份數(shù)據(jù)是否更改,即SectorDirty是否為“1”;如果不是,則從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中;否則,先把tempSect的數(shù)據(jù)寫回CF卡,然后從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中。最后,設置備份數(shù)據(jù)扇區(qū)號SaveSectorNum為當前數(shù)據(jù)的扇區(qū)號CurrSectorNum,設置SectorDirty為“0”,并從備份數(shù)據(jù)中讀取所需數(shù)據(jù)。
當寫入一個扇區(qū)的數(shù)據(jù)時,首先比較所寫入的扇區(qū)號,是否與備份數(shù)據(jù)的扇區(qū)號一致,如果一致,則把數(shù)據(jù)寫入備份數(shù)據(jù)中,并且設置SectorDirty為“1”;否則,判斷備份數(shù)據(jù)是否更改,即SectorDirty是否為“1”;如果不是,則從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中;否則,先把tempSect的數(shù)據(jù)寫回CF卡,然后從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中。最后,設置備份數(shù)據(jù)扇區(qū)號SaveSectorNum為當前數(shù)據(jù)的扇區(qū)號CurrSectorNum,將指定數(shù)據(jù)寫到備份數(shù)據(jù)中,并且設置SectorDirty為“1”。
2.3讀寫數(shù)據(jù)的相關寄存器
根據(jù)CF卡標準,不能直接訪問CF卡的數(shù)據(jù)區(qū)域,而需要通過訪問CF卡內(nèi)的相關寄存器間接讀取或者寫入數(shù)據(jù)。在訪問CF卡時必須對它們進行正確配置
扇區(qū)數(shù)目寄存器
讀寫操作時,保存需要傳送的扇區(qū)數(shù)目。如果為0,則選擇256個扇區(qū);如果操作成功,操作結束時此寄存器為0;如果操作不成功,此寄存器包含了有待完成的扇區(qū)數(shù)目。
磁頭寄存器
其中包含了LBA位,用于設置地址訪問方式。“1”LBA_Mode為邏輯地址訪問方式,“0”為柱面/磁頭/扇區(qū)訪問方式。本系統(tǒng)選擇邏輯地址訪問方式,則該寄存器還包含了邏輯地址的24~27位。
扇區(qū)編號寄存器
在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的0~7位。
柱面低位寄存器
在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的8~15位。
柱面高位寄存器
在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的16~23位。
狀態(tài)寄存器
反映了CF卡的狀態(tài),其中包含了CF卡忙位、出錯位、是否準備就緒位等。
數(shù)據(jù)寄存器
存放讀寫數(shù)據(jù),是一個16位寄存器。
2.4讀數(shù)據(jù)
從CF卡讀取一個扇區(qū)的數(shù)據(jù),如圖3所示。因為系統(tǒng)采用的CF卡的扇區(qū)大小為:SectorSize=512字節(jié),假設讀寫數(shù)據(jù)的地址為Addr,則該地址所在的扇區(qū)號為
Sector=Addr%SectorSize。
首先配置寄存器,設置讀取的扇區(qū)數(shù)目、相應地址和訪問模式;然后發(fā)送讀命令,等待CF卡空閑且準備就緒,再從數(shù)據(jù)寄存器中連續(xù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)生頂崗實習總結報告怎樣寫
- 數(shù)學教師工作方面考核總結教師工作總結
- 六年級第一學期班級工作計劃
- 星球版地理七年級下冊《第二節(jié) 俄羅斯》聽課評課記錄1
- 果園承包合作合同范本
- 經(jīng)濟特區(qū)房屋租賃合同范本
- 政府投資項目代建合同范本
- 單次銷售供貨合同范本
- 衡水學院《微觀經(jīng)濟學》2023-2024學年第二學期期末試卷
- 廣西職業(yè)師范學院《高電壓技術》2023-2024學年第二學期期末試卷
- 《環(huán)境管理學》教案
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- (一模)寧波市2024學年第一學期高考模擬考試 數(shù)學試卷(含答案)
- 攝影入門課程-攝影基礎與技巧全面解析
- 冀少版小學二年級下冊音樂教案
- 【龍集鎮(zhèn)稻蝦綜合種養(yǎng)面臨的問題及優(yōu)化建議探析(論文)13000字】
- 父母贈與子女農(nóng)村土地協(xié)議書范本
- 《師范硬筆書法教程(第2版)》全套教學課件
- 中國聯(lián)通H248技術規(guī)范
- 集團母子公司協(xié)議書
- 孫權勸學省公共課一等獎全國賽課獲獎課件
評論
0/150
提交評論