CF卡在DM642基便攜式數字視頻系統中實現
出處:divydong 發(fā)布于:2011-07-07 12:06:13
引言
現代社會在各種領域里要求人們盡快和準確地把握大量的信息,人類的視覺堪堪擔此重任。數字化圖像技術的成熟雖然只有短短幾年的歷史,已經給我們的環(huán)境與思維帶來了重大的變化,我們正在逐步建設的信息高速公路已經把清晰的圖像和活動視頻作為主要的信息交換手段。源于計算機領域的數字化視頻傳輸技術,既是當代信息高速公路、高清晰度電視、可視電話、電視會議。DM642作為圖像處理芯片,其強大的計算能力、豐富的外圍接口和完全可編程性,而CF卡的使用則可以彌補板載的Flash容量通常太小,SDRAM掉電后數據會丟失的缺陷。同時CF卡采用的插針式連接方式,具有相對較高的抗震性和穩(wěn)定性,能夠較好地滿足便攜式設備的要求。
1 CF卡的簡介
CF卡(Compact Flash)初是一種用于便攜式電子設備的數據存儲設備。作為一種存儲設備,它革命性的使用了閃存,于1994年首次由SanDisk公司生產并制定了相關規(guī)范。當前,它的物理格式已經被多種設備所采用。目前CF的容量可高達100GB,主流容量已達到4GB,價格也已經降到幾十元左右,性價比很高。

2 DM642與CF卡的接口設計
2.1 硬件接口設計
CF卡支持三種基本的工作模式:PC Card Memory模式、PC Card I/0模式以及True IDE模式,不同的模式對應的管腳功能略有不同。在本文的設計中使用的是PCCard Memory模式,在插入CF卡之前,保證CF卡的插槽/REG管腳為高電平,即可讓CF卡自動進入PC Card Memory模式。DSPs是通過外部存儲器接口EMIF(External MemoryInterface)來訪問片外存儲器的。DM642的EMIF有CEO、CEl、CE2、CE3四個空間,各具有256MB的尋址空間。根據Memory模式的要求,CE2空間被配置為8位異步接口,硬件連接如圖2所示。

引腳連接說明如下:/REG信號用于選擇訪問普通寄存器還是屬性寄存器,他和地址線A[3:0]一起完成對讀寫寄存器的選取。/CDl和/CD2用于檢測插槽上是否有CF卡,當CF卡插入插槽后,這些管腳會被拉低。/CEl和/CE2則用來選擇CF卡的數據傳輸寬度,本文中設計為8位寬度。為了節(jié)約IO口的資源,/CDl、/CD2、/CEl、/CE2和I/REG均連接到配置的通用IO(GPIO)口上。
TEAl3控制REG,TEAl2控制CF卡的CEl,TEAl 1控制CF卡的CE2,DSP_CE2是CE2空間的使能信號,ARE和IAWE是異步接口的讀寫信號,均為低電平有效,他們通過與DSP_CE2邏輯取“或”后連接到CF卡的/0E和/WE。
CF卡具有16位的數據總線,但是可以根據主控制器的數據寬度靈活配置成8位或16位,本系統中將DM642的低16位數據總線D[15:0]與CF卡的數據總線D[15:0]相連。CF卡的11位地址總線取低四位A[3:0]連接到DM642的TEA[6:3],CF卡的TEA[9:4]接地,TEAl0連接到DM642的TEA7,CSEL接地,IOWR、IORD上拉至VCC。
CF卡還會繼續(xù)被很多設備支援,仍然成為數碼相機的主流標準。CF的主要特點仍是以少的價錢換取的MB數,比小型記憶卡有著容量,CF II能使用MicroDrive,以及透過轉接器使用多種較小記憶卡。同時, CF卡接口的記憶卡轉接器比其他類型的平, 全因它沒有芯片組。
2.2 CF卡的軟件接口
CF卡的讀寫是以扇區(qū)(sector)為基本單位的,每扇區(qū)為512字節(jié),每次讀寫一個或多個連續(xù)扇區(qū)。本文中CF卡被配置為PC Card Memory模式,該模式下的寄存器地址映射如表1所示。

寄存器0用于讀寫數據,寄存器1在讀操作時是錯誤寄存器,存放錯誤信息,寫的時候是特征寄存器。寄存器2用于存放讀寫扇區(qū)的數目。寄存器3~6用于存放讀寫扇區(qū)的地址。CF卡的扇區(qū)尋址有兩種方式:物理尋址方式(Cylinder/Head/Sector,CHS)和邏輯尋址方式(Logical Block Addressing,LBA)。CHS是扇區(qū)對應的具體的柱面、磁頭和扇區(qū)的地址,LBA的地址則在邏輯上是連續(xù)的,兩種尋址方式的轉換關系為:LBA地址=(柱面號×磁頭數+磁頭號)×扇區(qū)數+扇區(qū)號一1。本文選擇LBA的線性尋址方式。
寄存器7在讀和寫時具有不同的意義。讀操作時是狀態(tài)寄存器,存放CF卡的狀態(tài)信息,寫的時候是命令寄存器,用于設置命令。
CF卡讀寫程序之前要初始化DSP和CF卡,初始化GPIO,將DM642的CE2空間設置為8位異步接口,將/REG配置為高電平,同時設置CF卡為8位數據接口。
在讀寫扇區(qū)時,首先要設置好起始扇區(qū)的LBA地址和要讀寫的扇區(qū)數目,然后再設置命令寄存器,讀取數據設置為20H,寫入數據設置為30H,寫完后讀取狀態(tài)寄存器,只有當狀態(tài)寄存器為“58H”時才能開始讀寫操作,否則繼續(xù)查詢狀態(tài)。由于數據接口為8位,這樣對一個扇區(qū)就需要讀或寫512次數據寄存器即可。之后還要讀取狀態(tài)寄存器看是否為“50H”,判斷CF卡的操作是否完成,若完成,則退出本次操作,否則繼續(xù)查詢直至完成。
CF卡寫一個扇區(qū)函數部分源碼如下:

讀寫多個扇區(qū)的方法與此類似,設置好扇區(qū)的數目和相應的讀寫命令即可,一般說來直接設置循環(huán)讀寫比調用子程序的運行效率要高。
2.3 CF卡的內存空間管理
本系統中CF卡上存儲的是mpeg2格式的視頻數據,雖然視頻的長度不確定,但是扇區(qū)地址用LBA尋址的話都是4字節(jié)。在本設計中CF卡的存儲空間可如下進行分配:個扇區(qū)存放視頻的索引信息;從第二個扇區(qū)開始存放圖像數據。
其中個扇區(qū)512個字節(jié)存放的數據格式如下:

total section為存放的總視頻數據的個數,初始為0;current section則為當前要進行操作的視頻的編號,初始為1;addressl為段視頻的起始地址,初始值為0x00000002,而address2為第二段視頻數據的起始地址,初始值為0,其后的數據在初始化時均設為O。
在每次系統啟動時都需要首先讀取個扇區(qū)的信息,讀取的信息放在一個寬度為4字節(jié)的數組infolba里,則每段要讀寫的視頻地址計算方式如下:currentaddress=infolba[current section],相應地在完成讀寫操作后要重寫扇區(qū),對索引信息進行更新,具體為total section、current section和下一段視頻數據存放的地址。
從實用角度講扇區(qū)可以存放約125段視頻的首地址,可基本滿足使用的要求。根據設計addressl的值恒為Ox00000002,而total section和Icurrent section又有特定的大小關系,那么Infolba的前三個數據可作為校驗標志用于檢測當前的CF卡空間分配是否符合要求,若不符合要求就按照初始值進行初始化。若進行寫扇區(qū)的操作,則infolba[current section]以后的數據信息都會被覆蓋或丟失索引信息,這樣可以確保CF卡內存空間的重復使用。
3 結束語
本文給出了CF卡和DM642的軟、硬件接口,通過CCS2.2平臺和RF5框架整合了軟件工程,成功地將CF卡應用到基于DM642的便攜式數字視頻系統中。通過多次試驗和對程序的優(yōu)化,系統運行良好,這說明本方案成功地解決了便攜式設備要求的實時性、大容量和穩(wěn)定性,具有廣闊的應用前景。
下一篇:淺談無線高清傳輸視頻技術
版權與免責聲明
凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://hbjingang.com,違反者本網將追究相關法律責任。
本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。
- ARM技術架構與應用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(RTOS)選型與移植技術指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統:通信接口技術選型與抗干擾設計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎知識2025/7/14 16:59:04









