CF卡在手機測試系統(tǒng)中的應(yīng)用_第1頁
CF卡在手機測試系統(tǒng)中的應(yīng)用_第2頁
CF卡在手機測試系統(tǒng)中的應(yīng)用_第3頁
CF卡在手機測試系統(tǒng)中的應(yīng)用_第4頁
CF卡在手機測試系統(tǒng)中的應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、CF卡在手機測試系統(tǒng)中的應(yīng)用文章作者:羅 超 盛翊智摘要:介紹閃存的CF卡在手機測試系統(tǒng)中的應(yīng)用,提出具體的硬件開發(fā)和軟件實現(xiàn)方案。包括CF卡的讀寫操作、緩沖區(qū)操作的具體源程序。關(guān)鍵詞:閃存 CF卡 手機測試系統(tǒng)引言目前,手機作為日常生活中一種重要的通信工具,越來越受到人們的關(guān)注。它的最大特性就是方便易攜帶。那么,如何保證手機在不同地理位置的條件下仍然具有優(yōu)質(zhì)的網(wǎng)絡(luò)服務(wù),進而保證其通話質(zhì)量,成為移動通信部門的一種研究課題。為此,需要一種設(shè)備能夠測試出手機處于不同地理位置,不同時間的各種網(wǎng)絡(luò)參數(shù)來加以分析,即“便攜式手機測試記錄儀”。它能夠?qū)⑹謾C的各種網(wǎng)絡(luò)數(shù)據(jù)從手機串口傳送到存儲設(shè)備;存儲設(shè)備將

2、數(shù)據(jù)存儲下來,達到一定數(shù)目,再通過串行上載到PC機;在PC機上利用分析軟件來進行數(shù)據(jù)分析,從而達到測試的目的。在此測試過程中,由于系統(tǒng)要求處理大量的數(shù)據(jù),一般的存儲器如EEPROM等很難達到要求,同時,系統(tǒng)要求數(shù)據(jù)在舊電時不丟失,即要求數(shù)據(jù)存儲的非易失性,因此不能使用易失性的存儲器如SRAM、SDRAM等。為此,在系統(tǒng)中采用了一種新型存儲裝置,即CF卡(Compact Flash Card)。1 CF卡簡介Flash存儲器是近年來發(fā)展迅速的一種存儲器,屬于非揮發(fā)性內(nèi)存(Non-Volatile,即斷電數(shù)據(jù)也能保存)。它具有EEPROM電擦除的特點,還具有低功耗、密度高、體積小、可靠性高、可擦除

3、、可重寫、可重復(fù)編程等優(yōu)點。單片機的Flash Memory芯片容量有限,同時接口邏輯比較特殊,在大數(shù)據(jù)量場合使用會使得控制邏輯較為繁瑣。集成了多片F(xiàn)lash存儲器和外部接口、控制機構(gòu)和協(xié)議的CF卡,可以提供相當可觀的存儲容量和標準的電氣接口協(xié)議,可以滿足本系統(tǒng)對于數(shù)據(jù)處理的要求。其內(nèi)部結(jié)構(gòu)如圖1所示。CF卡的在很小的體積內(nèi)集成了控制裝置、Flash Memory陣列和讀寫緩沖區(qū)。實際上,控制裝置起到了種協(xié)議轉(zhuǎn)換的作用,將對Flash Memory的讀寫轉(zhuǎn)化成對ATA協(xié)議控制器的訪問。CF卡對于緩沖區(qū)的設(shè)計使用了一種比緩沖結(jié)構(gòu),使得外部設(shè)備和CF卡通信的同時,CF卡的片內(nèi)MCU可以對Flash

4、 Memory陣列進行讀寫。這種設(shè)計可以增加CF卡數(shù)據(jù)讀寫的可靠性,同時提高數(shù)據(jù)通訊的速率。在實際系統(tǒng)中,CF卡選用了SST公司的SST48CF096,容量達到了96MB,封裝為25×2的雙列插座,其工作電壓為+5V/+3.3V,傳輸速率最大可達20MB/s,低功耗30mA/50mA(3.3V/5V)。其典型 應(yīng)用電路如圖2所示。CF卡的主要功能引腳為數(shù)據(jù)線D0D15,地址線A0A9,片選及數(shù)據(jù)選擇CS1、CS0,讀寫控制端ATA SEL、WE,寄存器選擇REG,卡讀寫忙判斷INTRQ、RESET等。數(shù)據(jù)線D0D15用于數(shù)據(jù)的讀寫。CF可以工作于16位數(shù)據(jù)總線方式也可以工作于8位總線

5、方式。讀寫速度上的要求不是很嚴格的情況下,為了方便和8位MCU的接口,一般選擇為8位數(shù)據(jù)總線工作方式。若選擇8位工作方式,CS1應(yīng)接固定高電平,CS0低電平有效。CF卡在Memory工作方式下,僅地址線A0A3起作用,用于選擇讀寫端口,其余地址線可以接固定電平。REG用于選擇是對CF卡進行命令、狀態(tài)讀寫還是讀寫CF卡的屬性寄存器。REG=1時讀寫命令。在Memory方式下,對CF的控制和數(shù)據(jù)讀寫均是通過對這幾個端口的讀寫來實現(xiàn)的。INIRQ用于判斷CF卡是否處于讀寫忙狀態(tài)。出于嚴謹性可以在對CF卡進行讀寫之前利用此引腳判斷CF卡是否空閑。在數(shù)據(jù)讀寫量較小的情況下,使用一定的延時即可。圖2中96

6、MB的CF卡工作于Memory方式,8位數(shù)據(jù)總線,接口的主控MCU的89C52。單片機按標準的P2、P0口復(fù)用方式與CF卡接口。CS0CS1、REG分別接單片機的P2.6、P2.5、P2.7,端口選擇A3A0接收經(jīng)373鎖存的低4位地址,CF卡的讀寫引腳分別與單片機的讀寫信號相接。若把閑置地址引腳接固定電平,則系統(tǒng)分配給CF卡的端口地址為B000B007。INTRQ(即BSY/RDY)腳接到單片機的P1.7。2 系統(tǒng)方案2.1 硬件實現(xiàn)系統(tǒng)采用模塊化設(shè)計,由電源控制單元(PU)、單片機控制單元、地址鎖存單元、數(shù)據(jù)緩沖單元以及存儲單元(CF卡)構(gòu)成,如圖3所示。測試過程中,首先由單片機發(fā)送相關(guān)命

7、令參數(shù)給手機,手機接收到命令后,經(jīng)由串口輸出網(wǎng)絡(luò)數(shù)據(jù)。單片機將收到的數(shù)據(jù)通過緩沖器再送至CF卡。數(shù)據(jù)采集完畢后,將CF卡中的數(shù)據(jù)上傳至PC機,利用上位機分析軟件來進行網(wǎng)絡(luò)分析。在實際系統(tǒng)中,MCU選用的是AT89C52、由于單片機的P0口和P2口采用了引腳復(fù)用,所以需要一片地址鎖存,地址鎖存器選用的是74HC373、CF卡的一次讀寫操作必須是512字節(jié),而89C52只有256字節(jié)的內(nèi)部RAM,需要在外部擴展一片緩沖器,緩沖器選用的是6116、由于系統(tǒng)是由手機電池統(tǒng)一供電,手機電池輸出電壓為+3.6V,而上述芯片的正常工作電壓為+5V,因此,需要升壓芯片作為電源模塊,選用的是MAX756。2.2

8、 軟件實現(xiàn)2.2.1 CF卡的讀寫操作CF卡采取的是類似硬盤的分塊存儲方式,分為柱面Cylinder、頭Head和扇區(qū)Sector管理。對96MB的CF卡而言,共有733個柱面,每個柱面8個頭,每個頭32個扇區(qū),每個扇區(qū)512字節(jié)(8位)。CF卡的讀寫是以一個扇區(qū)為基本單位的,在讀寫一個扇區(qū)之前先送出當前需要讀寫的柱面、頭和扇區(qū),然后發(fā)送讀寫命令,一個扇區(qū)的512字節(jié)需要一次性連續(xù)寫入或者讀出。下面給出對CF卡進行讀和寫C51程序段:#define DataPort XBYTE0xB800#define Feature XBYTE0xB801#define SecCount XBYTE0xB8

9、02#define SecNo XBYTE0xB803#define CylLow XBYTE0xB804#define CylHigh XBYTE0xB805#define CardHead XBYTE0xB806#define Command XBYTE0xB807 /定義CF卡端口void NextSector() /讀寫下一個扇區(qū)sector+;if(sector= =32)/一個頭的扇區(qū)是否全部讀寫完畢sector=0;head+;if(head= =16)/一個柱面的所有頭是否全部讀寫完畢head=0;cylinder+;if(cylinder= =733)/所有柱面是否全部讀寫完

10、畢cylinder-;DiskFull=1;/標志位置1,表示CF卡容易已滿讀寫過程結(jié)束CardHead=0xA0+head; /置當前頭SecCount=0x01; /*一次讀寫一個扇區(qū)SecNo=sector; /置當前扇區(qū)CylLow=cylinder%255; /置柱面高位CylHigh=cylinder/255; /置柱面低位Command=?; /讀/寫扇區(qū)命令,讀為0X20,寫為0x30Delay(1); /延時1ms/寫操作為:for(i=1;i<=512;i+)DataPort=mem0xE800+i; /寫512字節(jié)NextSector(); /為寫下一個扇區(qū)作準備讀

11、操作為:for(i=1;i<=512;i+)mem0xE800+i=DataPort; /讀512字節(jié)NextSector(); /為讀下一個扇區(qū)作準備2.2.2 緩沖區(qū)的操作由于CF卡必須以扇區(qū)(512字節(jié))為基本單位來進行讀寫操作,因此,系統(tǒng)需要擴展一片6116作為寫緩沖區(qū)(地址口為0xE800開始)。系統(tǒng)在平時將收到的測試數(shù)據(jù)暫存于寫緩沖區(qū)中。當接收到的數(shù)據(jù)累計超過一個扇區(qū)之后,再傳送至CE卡。在實際系統(tǒng)中,開辟了1K的緩沖區(qū),通過一個標志位low和緩沖區(qū)指針count來聯(lián)合確定傳送數(shù)據(jù)的范圍。low=0,count=0。low=0,count<=512、開始寫緩沖區(qū)的有51

12、2字節(jié),每寫入一個字節(jié),緩沖區(qū)指針自動加1。low=1,count>=512、當緩沖區(qū)指針大于512,表示前512字節(jié)已被填滿,此時將low置為1,開將緩沖區(qū)前512個字節(jié)的內(nèi)容送入CF卡,標志位由0變?yōu)?。low=1,count<=512。當緩沖區(qū)指針指到1024時,緩沖區(qū)指針清0,重新開始計數(shù)。此時將后512字節(jié)的內(nèi)容送入CF卡,標志位由1變?yōu)?。low=0,count<=512。下一次循環(huán)過程開始。由于向CF卡寫入數(shù)據(jù)的同時,手機端仍然有數(shù)據(jù)輸出。為了防止在寫CF卡的過程中出現(xiàn)數(shù)據(jù)丟失現(xiàn)象,單片機手同端的通信采用串行口中斷方式。程序如下:void single() interrupt 4 using 2/串行口中斷服務(wù)子程序,中斷號為4if(RI= =1) /判斷是否為單行口輸入引起的中斷mem0xe800+count=SBUF; /將串行數(shù)據(jù)緩沖器中的數(shù)據(jù)送至數(shù)據(jù)緩沖區(qū)count+; /緩沖區(qū)指針自動加1if(count= =1024) /如果緩沖區(qū)指針指向1024,則清0,重新計數(shù)count=0;RI=0; /串行口接收中斷請求標志位清0else if(TI= =1) /判斷是否為串行口輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論