保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

CF卡在手机测试系统中的应用


机,利用上位机分析软件来进行网络分析。在实际系统中,MCU选用的是AT89C52、由于单片机的P0口和P2口采用了引脚复用,所以需要一片地址锁存,地址锁存器选用的是74HC373、CF卡的一次读写操作必须是512字节,而89C52只有256字节的内部RAM,需要在外部扩展一片缓冲器,缓冲器选用的是6116、由于系统是由手机电池统一供电,手机电池输出电压为+3.6V,而上述芯片的正常工作电压为+5V,因此,需要升压芯片作为电源模块,选用的是MAX756。

2.2 软件实现

2.2.1 CF卡的读写操作

CF卡采取的是类似硬盘的分块存储方式,分为柱面Cylinder、头Head和扇区Sector管理。对96MB的CF卡而言,共有733个柱面,每个柱面8个头,每个头32个扇区,每个扇区512字节(8位)。CF卡的读写是以一个扇区为基本单位的,在读写一个扇区之前先送出当前需要读写的柱面、头和扇区,然后发送读写命令,一个扇区的512字节需要一次性连续写入或者读出。下面给出对CF卡进行读和写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(){ //读写下一个扇区

sector++;

if(sector= =32){//一个头的扇区是否全部读写完毕

sector=0;

head++;

if(head= =16){//一个柱面的所有头是否全部读写完毕

head=0;

cylinder++;

if(cylinder= =733){//所有柱面是否全部读写完毕

cylinder--;

DiskFull=1;{//标志位置1,表示CF卡容易已满读写过程结束

}

}

}

}

CardHead=0xA0+head; //置当前头

SecCount=0x01; /*一次读写一个扇区

SecNo=sector; //置当前扇区

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

CylHigh=cylinder/255; //置柱面低位 《CF卡在手机测试系统中的应用(第2页)》

本文链接地址:http://www.oyaya.net/fanwen/view/162536.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。