《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > CF卡在DM642基便攜式數(shù)字視頻系統(tǒng)中的應(yīng)用
CF卡在DM642基便攜式數(shù)字視頻系統(tǒng)中的應(yīng)用
摘要: 目前,數(shù)字視頻系統(tǒng)在日常工作和生活中己得到廣泛應(yīng)用,如監(jiān)控系統(tǒng)、視頻電話、數(shù)字電視等,而隨著技術(shù)的進(jìn)步和工作生活對(duì)視頻圖像質(zhì)量的要求越來(lái)越高,處理的數(shù)據(jù)量也越來(lái)越大,這就提出了兩個(gè)新的問(wèn)題:一方面要求硬件的處理能力要更快,如監(jiān)控系統(tǒng)和視頻電話系統(tǒng)都要求具備實(shí)時(shí)性;另一方面要求數(shù)據(jù)的存儲(chǔ)介質(zhì)容量更大而且方便攜帶。為了實(shí)現(xiàn)DSP(DigitalSignal Processing)系統(tǒng)的獨(dú)立運(yùn)行,需要有大容量的存儲(chǔ)介質(zhì)用于保存視頻數(shù)據(jù)。
關(guān)鍵詞: CF卡 DM642 CCS2.2平臺(tái)
Abstract:
Key words :

0 引言

目前,數(shù)字視頻系統(tǒng)在日常工作和生活中己得到廣泛應(yīng)用,如監(jiān)控系統(tǒng)、視頻電話、數(shù)字電視等,而隨著技術(shù)的進(jìn)步和工作生活對(duì)視頻圖像質(zhì)量的要求越來(lái)越高,處理的數(shù)據(jù)量也越來(lái)越大,這就提出了兩個(gè)新的問(wèn)題:一方面要求硬件的處理能力要更快,如監(jiān)控系統(tǒng)和視頻電話系統(tǒng)都要求具備實(shí)時(shí)性;另一方面要求數(shù)據(jù)的存儲(chǔ)介質(zhì)容量更大而且方便攜帶。為了實(shí)現(xiàn)DSP(DigitalSignal Processing)系統(tǒng)的獨(dú)立運(yùn)行,需要有大容量的存儲(chǔ)介質(zhì)用于保存視頻數(shù)據(jù)。本文中使用TI公司的高端多媒體處理芯片DM642作為圖像處理芯片,其強(qiáng)大的計(jì)算能力、豐富的外圍接口和完全可編程性,可以方便地用來(lái)開(kāi)發(fā)各種圖像系統(tǒng)。而CF卡的使用則可以彌補(bǔ)板載的Flash容量通常太小,SDRAM掉電后數(shù)據(jù)會(huì)丟失的缺陷。同時(shí)CF卡采用的插針式連接方式,具有相對(duì)較高的抗震性和穩(wěn)定性,能夠較好地滿足便攜式設(shè)備的要求。在視頻編解碼方面采用TI公司提供的MPEG一2算法,可以基本滿足壓縮效率和質(zhì)量的要求。

1 CF卡的簡(jiǎn)介

CF卡的全稱為Compact F1ash。它最先是由Sandisk公司在1994年推出的,現(xiàn)在已經(jīng)成為一種行業(yè)標(biāo)準(zhǔn),其內(nèi)部示意圖如圖1所示。CF卡由兩個(gè)基本部分組成:控制芯片和閃存模塊??刂菩酒脕?lái)實(shí)現(xiàn)與主機(jī)的連接及控制數(shù)據(jù)在閃存模塊中的傳輸,而閃存模塊用于存儲(chǔ)信息。CF卡兼容3.3V和5V的工作電壓,并支持多種接口訪問(wèn)模式。目前CF的容量可高達(dá)100GB,主流容量已達(dá)到4GB,價(jià)格也已經(jīng)降到幾十元左右,性價(jià)比很高。
 


2 DM642與CF卡的接口設(shè)計(jì)

2.1 硬件接口設(shè)計(jì)

CF卡支持三種基本的工作模式:PC Card Memory模式、PC Card I/0模式以及True IDE模式,不同的模式對(duì)應(yīng)的管腳功能略有不同。在本文的設(shè)計(jì)中使用的是PCCard Memory模式,在插入CF卡之前,保證CF卡的插槽/REG管腳為高電平,即可讓CF卡自動(dòng)進(jìn)入PC Card Memory模式。DSPs是通過(guò)外部存儲(chǔ)器接口EMIF(External MemoryInterface)來(lái)訪問(wèn)片外存儲(chǔ)器的。DM642的EMIF有CEO、CEl、CE2、CE3四個(gè)空間,各具有256MB的尋址空間。本文所述的系統(tǒng)設(shè)計(jì)中將CE2空間配置為CF卡的地址空間供CF卡使用,根據(jù)Memory模式的要求,CE2空間被配置為8位異步接口,此外還專門(mén)配備了一片CPLD來(lái)對(duì)CF卡進(jìn)行讀寫(xiě)控制,硬件連接如圖2所示。
 


引腳連接說(shuō)明如下:/REG信號(hào)用于選擇訪問(wèn)普通寄存器還是屬性寄存器,他和地址線A[3:0]一起完成對(duì)讀寫(xiě)寄存器的選取。/CDl和/CD2用于檢測(cè)插槽上是否有CF卡,當(dāng)CF卡插入插槽后,這些管腳會(huì)被拉低。/CEl和/CE2則用來(lái)選擇CF卡的數(shù)據(jù)傳輸寬度,本文中設(shè)計(jì)為8位寬度。為了節(jié)約IO口的資源,/CDl、/CD2、/CEl、/CE2和I/REG均連接到配置的通用IO(GPIO)口上。

TEAl3控制REG,TEAl2控制CF卡的CEl,TEAl 1控制CF卡的CE2,DSP_CE2是CE2空間的使能信號(hào),ARE和IAWE是異步接口的讀寫(xiě)信號(hào),均為低電平有效,他們通過(guò)與DSP_CE2邏輯取“或”后連接到CF卡的/0E和/WE,這樣在/CE2使能后就可以相應(yīng)地控制CF卡的讀寫(xiě)操作。

CF卡具有16位的數(shù)據(jù)總線,但是可以根據(jù)主控制器的數(shù)據(jù)寬度靈活配置成8位或16位,本系統(tǒng)中將DM642的低16位數(shù)據(jù)總線D[15:0]與CF卡的數(shù)據(jù)總線D[15:0]相連。CF卡的11位地址總線取低四位A[3:0]連接到DM642的TEA[6:3],CF卡的TEA[9:4]接地,TEAl0連接到DM642的TEA7,CSEL接地,IOWR、IORD上拉至VCC,其他未說(shuō)明使用的引腳均為接地操作。

2.2 CF卡的軟件接口
    CF卡的讀寫(xiě)是以扇區(qū)(sector)為基本單位的,每扇區(qū)為512字節(jié),每次讀寫(xiě)一個(gè)或多個(gè)連續(xù)扇區(qū)。本文中CF卡被配置為PC Card Memory模式,該模式下的寄存器地址映射如表1所示。

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


    讀寫(xiě)多個(gè)扇區(qū)的方法與此類似,設(shè)置好扇區(qū)的數(shù)目和相應(yīng)的讀寫(xiě)命令即可,一般說(shuō)來(lái)直接設(shè)置循環(huán)讀寫(xiě)比調(diào)用子程序的運(yùn)行效率要高,因?yàn)樗恍枰x寫(xiě)一次扇區(qū)的起始地址即可。
2.3 CF卡的內(nèi)存空間管理
   本系統(tǒng)中CF卡上存儲(chǔ)的是mpeg2格式的視頻數(shù)據(jù),雖然視頻的長(zhǎng)度不確定,但是扇區(qū)地址用LBA尋址的話都是4字節(jié)。在本設(shè)計(jì)中CF卡的存儲(chǔ)空間可如下進(jìn)行分配:第一個(gè)扇區(qū)存放視頻的索引信息;從第二個(gè)扇區(qū)開(kāi)始存放圖像數(shù)據(jù)。
    其中第一個(gè)扇區(qū)512個(gè)字節(jié)存放的數(shù)據(jù)格式如下:

   total section為存放的總視頻數(shù)據(jù)的個(gè)數(shù),初始為0;current section則為當(dāng)前要進(jìn)行操作的視頻的編號(hào),初始為1;addressl為第一段視頻的起始地址,初始值為0x00000002,而address2為第二段視頻數(shù)據(jù)的起始地址,初始值為0,其后的數(shù)據(jù)在初始化時(shí)均設(shè)為O。
    在每次系統(tǒng)啟動(dòng)時(shí)都需要首先讀取第一個(gè)扇區(qū)的信息,讀取的信息放在一個(gè)寬度為4字節(jié)的數(shù)組infolba里,則每段要讀寫(xiě)的視頻地址計(jì)算方式如下:currentaddress=infolba[current section],相應(yīng)地在完成讀寫(xiě)操作后要重寫(xiě)第一扇區(qū),對(duì)索引信息進(jìn)行更新,具體為total section、current section和下一段視頻數(shù)據(jù)存放的地址。
    從實(shí)用角度講第一扇區(qū)可以存放約125段視頻的首地址,可基本滿足使用的要求。根據(jù)設(shè)計(jì)addressl的值恒為Ox00000002,而total section和Icurrent section又有特定的大小關(guān)系,那么Infolba的前三個(gè)數(shù)據(jù)可作為校驗(yàn)標(biāo)志用于檢測(cè)當(dāng)前的CF卡空間分配是否符合要求,若不符合要求就按照初始值進(jìn)行初始化。一般情況下current section=totalsection+1, 當(dāng)current section小于或等于total sectiOn的時(shí)候,若進(jìn)行寫(xiě)扇區(qū)的操作,則infolba[current section]以后的數(shù)據(jù)信息都會(huì)被覆蓋或丟失索引信息,這樣可以確保CF卡內(nèi)存空間的重復(fù)使用。在本系統(tǒng)中通過(guò)外部硬件控制電路輸入控制信號(hào),可以方便地實(shí)現(xiàn)錄像、播放、快進(jìn)、快退、暫停等功能,很明顯可以通過(guò)快進(jìn)、快退改變current section的值來(lái)對(duì)CF卡上的視頻數(shù)據(jù)進(jìn)行播放或者是覆蓋操作。

3 結(jié)束語(yǔ)
    本文給出了CF卡和DM642的軟、硬件接口,通過(guò)CCS2.2平臺(tái)和RF5框架整合了軟件工程,成功地將CF卡應(yīng)用到基于DM642的便攜式數(shù)字視頻系統(tǒng)中。將程序燒寫(xiě)到板載flash后,可以實(shí)現(xiàn)上電自啟動(dòng)。通過(guò)多次試驗(yàn)和對(duì)程序的優(yōu)化,系統(tǒng)運(yùn)行良好,這說(shuō)明本方案成功地解決了便攜式設(shè)備要求的實(shí)時(shí)性、大容量和穩(wěn)定性,具有廣闊的應(yīng)用前景。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。