當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]CF卡在手機(jī)測(cè)試系統(tǒng)中的應(yīng)用

摘要:介紹閃存的CF卡在手機(jī)測(cè)試系統(tǒng)中的應(yīng)用,提出具體的硬件開(kāi)發(fā)和軟件實(shí)現(xiàn)方案。包括CF卡的讀寫(xiě)操作、緩沖區(qū)操作的具體源程序。

    關(guān)鍵詞:閃存 CF卡 手機(jī)測(cè)試系統(tǒng)

引言

目前,手機(jī)作為日常生活中一種重要的通信工具,越來(lái)越受到人們的關(guān)注。它的最大特性就是方便易攜帶。那么,如何保證手機(jī)在不同地理位置的條件下仍然具有優(yōu)質(zhì)的網(wǎng)絡(luò)服務(wù),進(jìn)而保證其通話質(zhì)量,成為移動(dòng)通信部門(mén)的一種研究課題。為此,需要一種設(shè)備能夠測(cè)試出手機(jī)處于不同地理位置,不同時(shí)間的各種網(wǎng)絡(luò)參數(shù)來(lái)加以分析,即“便攜式手機(jī)測(cè)試記錄儀”。它能夠?qū)⑹謾C(jī)的各種網(wǎng)絡(luò)數(shù)據(jù)從手機(jī)串口傳送到存儲(chǔ)設(shè)備;存儲(chǔ)設(shè)備將數(shù)據(jù)存儲(chǔ)下來(lái),達(dá)到一定數(shù)目,再通過(guò)串行上載到PC機(jī);在PC機(jī)上利用分析軟件來(lái)進(jìn)行數(shù)據(jù)分析,從而達(dá)到測(cè)試的目的。在此測(cè)試過(guò)程中,由于系統(tǒng)要求處理大量的數(shù)據(jù),一般的存儲(chǔ)器如EEPROM等很難達(dá)到要求,同時(shí),系統(tǒng)要求數(shù)據(jù)在舊電時(shí)不丟失,即要求數(shù)據(jù)存儲(chǔ)的非易失性,因此不能使用易失性的存儲(chǔ)器如SRAM、SDRAM等。為此,在系統(tǒng)中采用了一種新型存儲(chǔ)裝置,即CF卡(Compact Flash Card)。

1 CF卡簡(jiǎn)介

Flash存儲(chǔ)器是近年來(lái)發(fā)展迅速的一種存儲(chǔ)器,屬于非揮發(fā)性內(nèi)存(Non-Volatile,即斷電數(shù)據(jù)也能保存)。它具有EEPROM電擦除的特點(diǎn),還具有低功耗、密度高、體積小、可靠性高、可擦除、可重寫(xiě)、可重復(fù)編程等優(yōu)點(diǎn)。單片機(jī)的Flash Memory芯片容量有限,同時(shí)接口邏輯比較特殊,在大數(shù)據(jù)量場(chǎng)合使用會(huì)使得控制邏輯較為繁瑣。集成了多片F(xiàn)lash存儲(chǔ)器和外部接口、控制機(jī)構(gòu)和協(xié)議的CF卡,可以提供相當(dāng)可觀的存儲(chǔ)容量和標(biāo)準(zhǔn)的電氣接口協(xié)議,可以滿足本系統(tǒng)對(duì)于數(shù)據(jù)處理的要求。其內(nèi)部結(jié)構(gòu)如圖1所示。

CF卡的在很小的體積內(nèi)集成了控制裝置、Flash Memory陣列和讀寫(xiě)緩沖區(qū)。實(shí)際上,控制裝置起到了種協(xié)議轉(zhuǎn)換的作用,將對(duì)Flash Memory的讀寫(xiě)轉(zhuǎn)化成對(duì)ATA協(xié)議控制器的訪問(wèn)。CF卡對(duì)于緩沖區(qū)的設(shè)計(jì)使用了一種比緩沖結(jié)構(gòu),使得外部設(shè)備和CF卡通信的同時(shí),CF卡的片內(nèi)MCU可以對(duì)Flash Memory陣列進(jìn)行讀寫(xiě)。這種設(shè)計(jì)可以增加CF卡數(shù)據(jù)讀寫(xiě)的可靠性,同時(shí)提高數(shù)據(jù)通訊的速率。在實(shí)際系統(tǒng)中,CF卡選用了SST公司的SST48CF096,容量達(dá)到了96MB,封裝為25×2的雙列插座,其工作電壓為+5V/+3.3V,傳輸速率最大可達(dá)20MB/s,低功耗30mA/50mA(3.3V/5V)。其典型 應(yīng)用電路如圖2所示。

CF卡的主要功能引腳為數(shù)據(jù)線D0~D15,地址線A0~A9,片選及數(shù)據(jù)選擇CS1、CS0,讀寫(xiě)控制端ATA SEL、WE,寄存器選擇REG,卡讀寫(xiě)忙判斷INTRQ、RESET等。數(shù)據(jù)線D0~D15用于數(shù)據(jù)的讀寫(xiě)。CF可以工作于16位數(shù)據(jù)總線方式也可以工作于8位總線方式。讀寫(xiě)速度上的要求不是很?chē)?yán)格的情況下,為了方便和8位MCU的接口,一般選擇為8位數(shù)據(jù)總線工作方式。若選擇8位工作方式,CS1應(yīng)接固定高電平,CS0低電平有效。CF卡在Memory工作方式下,僅地址線A0~A3起作用,用于選擇讀寫(xiě)端口,其余地址線可以接固定電平。REG用于選擇是對(duì)CF卡進(jìn)行命令、狀態(tài)讀寫(xiě)還是讀寫(xiě)CF卡的屬性寄存器。REG=1時(shí)讀寫(xiě)命令。在Memory方式下,對(duì)CF的控制和數(shù)據(jù)讀寫(xiě)均是通過(guò)對(duì)這幾個(gè)端口的讀寫(xiě)來(lái)實(shí)現(xiàn)的。INIRQ用于判斷CF卡是否處于讀寫(xiě)忙狀態(tài)。出于嚴(yán)謹(jǐn)性可以在對(duì)CF卡進(jìn)行讀寫(xiě)之前利用此引腳判斷CF卡是否空閑。在數(shù)據(jù)讀寫(xiě)量較小的情況下,使用一定的延時(shí)即可。

圖2中96MB的CF卡工作于Memory方式,8位數(shù)據(jù)總線,接口的主控MCU的89C52。單片機(jī)按標(biāo)準(zhǔn)的P2、P0口復(fù)用方式與CF卡接口。CS0~CS1、REG分別接單片機(jī)的P2.6、P2.5、P2.7,端口選擇A3~A0接收經(jīng)373鎖存的低4位地址,CF卡的讀寫(xiě)引腳分別與單片機(jī)的讀寫(xiě)信號(hào)相接。若把閑置地址引腳接固定電平,則系統(tǒng)分配給CF卡的端口地址為[B000]~[B007]。INTRQ(即BSY/RDY)腳接到單片機(jī)的P1.7。

2 系統(tǒng)方案

2.1 硬件實(shí)現(xiàn)

系統(tǒng)采用模塊化設(shè)計(jì),由電源控制單元(PU)、單片機(jī)控制單元、地址鎖存單元、數(shù)據(jù)緩沖單元以及存儲(chǔ)單元(CF卡)構(gòu)成,如圖3所示。測(cè)試過(guò)程中,首先由單片機(jī)發(fā)送相關(guān)命令參數(shù)給手機(jī),手機(jī)接收到命令后,經(jīng)由串口輸出網(wǎng)絡(luò)數(shù)據(jù)。單片機(jī)將收到的數(shù)據(jù)通過(guò)緩沖器再送至CF卡。數(shù)據(jù)采集完畢后,將CF卡中的數(shù)據(jù)上傳至PC機(jī),利用上位機(jī)分析軟件來(lái)進(jìn)行網(wǎng)絡(luò)分析。在實(shí)際系統(tǒng)中,MCU選用的是AT89C52、由于單片機(jī)的P0口和P2口采用了引腳復(fù)用,所以需要一片地址鎖存,地址鎖存器選用的是74HC373、CF卡的一次讀寫(xiě)操作必須是512字節(jié),而89C52只有256字節(jié)的內(nèi)部RAM,需要在外部擴(kuò)展一片緩沖器,緩沖器選用的是6116、由于系統(tǒng)是由手機(jī)電池統(tǒng)一供電,手機(jī)電池輸出電壓為+3.6V,而上述芯片的正常工作電壓為+5V,因此,需要升壓芯片作為電源模塊,選用的是MAX756。

2.2 軟件實(shí)現(xiàn)

2.2.1 CF卡的讀寫(xiě)操作

CF卡采取的是類(lèi)似硬盤(pán)的分塊存儲(chǔ)方式,分為柱面Cylinder、頭Head和扇區(qū)Sector管理。對(duì)96MB的CF卡而言,共有733個(gè)柱面,每個(gè)柱面8個(gè)頭,每個(gè)頭32個(gè)扇區(qū),每個(gè)扇區(qū)512字節(jié)(8位)。CF卡的讀寫(xiě)是以一個(gè)扇區(qū)為基本單位的,在讀寫(xiě)一個(gè)扇區(qū)之前先送出當(dāng)前需要讀寫(xiě)的柱面、頭和扇區(qū),然后發(fā)送讀寫(xiě)命令,一個(gè)扇區(qū)的512字節(jié)需要一次性連續(xù)寫(xiě)入或者讀出。下面給出對(duì)CF卡進(jìn)行讀和寫(xiě)C51程序段:

#define DataPort XBYTE[0xB800]

#define Feature XBYTE[0xB801]

#define SecCount XBYTE[0xB802]

#define SecNo XBYTE[0xB803]

#define CylLow XBYTE[0xB804]

#define CylHigh XBYTE[0xB805]

#define CardHead XBYTE[0xB806]

#define Command XBYTE[0xB807] //定義CF卡端口

void NextSector(){ //讀寫(xiě)下一個(gè)扇區(qū)

sector++;

if(sector= =32){//一個(gè)頭的扇區(qū)是否全部讀寫(xiě)完畢

sector=0;

head++;

if(head= =16){//一個(gè)柱面的所有頭是否全部讀寫(xiě)完畢

head=0;

cylinder++;

if(cylinder= =733){//所有柱面是否全部讀寫(xiě)完畢

cylinder--;

DiskFull=1;{//標(biāo)志位置1,表示CF卡容易已滿讀寫(xiě)過(guò)程結(jié)束

}

}

}

}

CardHead=0xA0+head; //置當(dāng)前頭

SecCount=0x01; /*一次讀寫(xiě)一個(gè)扇區(qū)

SecNo=sector; //置當(dāng)前扇區(qū)

CylLow=cylinder%255; //置柱面高位

CylHigh=cylinder/255; //置柱面低位

Command=????; //讀/寫(xiě)扇區(qū)命令,讀為0X20,寫(xiě)為0x30

Delay(1); //延時(shí)1ms

//寫(xiě)操作為:

for(i=1;i<=512;i++){

DataPort=mem[0xE800+i]; //寫(xiě)512字節(jié)

}

NextSector(); //為寫(xiě)下一個(gè)扇區(qū)作準(zhǔn)備讀操作為:

for(i=1;i<=512;i++){

mem[0xE800+i]=DataPort; //讀512字節(jié)

}

NextSector(); //為讀下一個(gè)扇區(qū)作準(zhǔn)備

2.2.2 緩沖區(qū)的操作

由于CF卡必須以扇區(qū)(512字節(jié))為基本單位來(lái)進(jìn)行讀寫(xiě)操作,因此,系統(tǒng)需要擴(kuò)展一片6116作為寫(xiě)緩沖區(qū)(地址口為0xE800開(kāi)始)。系統(tǒng)在平時(shí)將收到的測(cè)試數(shù)據(jù)暫存于寫(xiě)緩沖區(qū)中。當(dāng)接收到的數(shù)據(jù)累計(jì)超過(guò)一個(gè)扇區(qū)之后,再傳送至CE卡。在實(shí)際系統(tǒng)中,開(kāi)辟了1K的緩沖區(qū),通過(guò)一個(gè)標(biāo)志位low和緩沖區(qū)指針count來(lái)聯(lián)合確定傳送數(shù)據(jù)的范圍。

①low=0,count=0。

 

 

②low=0,count<=512、開(kāi)始寫(xiě)緩沖區(qū)的有512字節(jié),每寫(xiě)入一個(gè)字節(jié),緩沖區(qū)指針自動(dòng)加1。

③low=1,count>=512、當(dāng)緩沖區(qū)指針大于512,表示前512字節(jié)已被填滿,此時(shí)將low置為1,開(kāi)將緩沖區(qū)前512個(gè)字節(jié)的內(nèi)容送入CF卡,標(biāo)志位由0變?yōu)?。

④low=1,count<=512。當(dāng)緩沖區(qū)指針指到1024時(shí),緩沖區(qū)指針清0,重新開(kāi)始計(jì)數(shù)。此時(shí)將后512字節(jié)的內(nèi)容送入CF卡,標(biāo)志位由1變?yōu)?。

    ⑤low=0,count<=512。下一次循環(huán)過(guò)程開(kāi)始。

    由于向CF卡寫(xiě)入數(shù)據(jù)的同時(shí),手機(jī)端仍然有數(shù)據(jù)輸出。為了防止在寫(xiě)CF卡的過(guò)程中出現(xiàn)數(shù)據(jù)丟失現(xiàn)象,單片機(jī)手同端的通信采用串行口中斷方式。程序如下:

void single() interrupt 4 using 2//串行口中斷服務(wù)子程序,中斷號(hào)為4

{

if(RI= =1){ //判斷是否為單行口輸入引起的中斷

mem[0xe800+count]=SBUF; //將串行數(shù)據(jù)緩沖器中的數(shù)據(jù)送至數(shù)據(jù)緩沖區(qū)

count++; //緩沖區(qū)指針自動(dòng)加1

if(count= =1024){ //如果緩沖區(qū)指針指向1024,則清0,重新計(jì)數(shù)

count=0;

}

RI=0; //串行口接收中斷請(qǐng)求標(biāo)志位清0

}

else if(TI= =1){ //判斷是否為串行口輸出引起中斷

TI=0; //串行口發(fā)送中斷請(qǐng)求標(biāo)志位清0

}

}

本文以移動(dòng)通信的手機(jī)測(cè)試系統(tǒng)的背景,介紹了CF卡在手機(jī)測(cè)試系統(tǒng)中的具體應(yīng)用,包括其硬件開(kāi)發(fā)和軟件實(shí)現(xiàn)。由于CF卡具高傳輸速率,大容量非易失性固態(tài)盤(pán),掉電數(shù)據(jù)不丟失,良好的震性能,寬溫工作范圍與所有數(shù)碼相機(jī)、便攜式PC、數(shù)字式音頻播放器及其它具有Compact Flash插槽的設(shè)備兼容等特點(diǎn),它的應(yīng)用范圍也將越來(lái)越廣泛。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉