藿香是什么| 阴道瘙痒是什么原因造成的| 牛肉馅配什么菜包饺子好吃| 中耳炎用什么药| 静谧时光什么意思| 为什么会起荨麻疹| 嗓子疼挂什么科| 什么动物不长胡须| 继发性不孕是什么意思| 月亮星座代表什么意思| 接盘侠什么意思| 宫颈糜烂有什么症状| 吃止痛药有什么副作用| 翕什么意思| 儿童语言迟缓挂什么科| 5月9号是什么星座| 为什么微信附近的人看不到我| 压寨夫人是什么意思| 小揪揪什么意思| 吃三七粉不能吃什么| 喝水多尿多是什么原因| 亚子什么意思| 吃什么可以养肝| 低脂是什么意思| 什么病属于重大疾病| 李子有什么功效与作用| 腹腔气体多是什么原因| 干燥剂是什么成分| 黄发指什么| 射手座的幸运色是什么| 产值是什么| 什么鱼| 端游什么意思| tc版是什么意思| 起伏跌宕什么意思| 隔离霜和bb霜有什么区别| ca125是什么检查项目| 灌肠用什么水| 每天起床口苦口臭是什么原因| 日常是什么意思| 甲亢吃什么盐好| 脾肾阳虚吃什么中成药| 肺结核什么症状| 干咳吃什么药最有效| 血压低有什么危险| 灵芝有什么好处| 龋坏是什么意思| 4月8日什么星座| 脚心出汗是什么原因| 甜瓜不能和什么一起吃| 肝胆湿热吃什么中成药最好| 气管憩室什么意思| 排骨炖什么比较好吃| 火焰山为什么这么热| hpv感染用什么药| 美尼尔综合症是一种什么病| 五行什么生水| 西洋参什么季节吃最好| hrd是什么意思| 翡翠戴久了会有什么变化| 女同什么意思| 咖啡什么时候喝最好| 为什么老是说梦话| kick是什么意思| 汤姆福特属于什么档次| 什么时候拔罐最好| 拉屎不成形是什么原因| 有什么菜| 吃毛蛋有什么好处| 艾灸能治什么| 琥珀五行属什么| 梦见猫死了是什么意思| au585是什么金| 打玻尿酸有什么副作用吗| 上焦有火吃什么中成药| 家去掉一点念什么| 3.22什么星座| 胃溃疡适合吃什么水果| 女人胃寒吃什么好得快| 薛之谦的真名叫什么| 锁骨疼挂什么科| 梦见上香是什么意思| 60大寿送什么礼物| 甘油三酯高是什么意思| 稀松平常是什么意思| 11月24是什么星座| 你算个什么东西| 出什么入什么| 孕期什么时候补铁| 尿酸高吃什么降的快| 牛柳是什么肉| 护理部是干什么的| 五音不全是什么意思| 吃什么容易胖起来| 肾结石有什么表现症状| 慢性咽喉炎吃什么药| 什么是生源地| 翻来覆去是什么意思| super是什么意思| 紫癜是一种什么病严重吗| 撑台脚是什么意思| 军长是什么级别| 脚有酸味是什么原因| 胃酸胃烧心吃什么药| 病灶是什么意思| 食道好像有东西堵着是什么原因| 戴笠什么军衔| boss是什么意思| 心电图窦性心动过缓是什么意思| 己巳五行属什么| 癌胚抗原偏高说明什么| dell是什么牌子的电脑| 磷高吃什么药| 肚子疼喝什么药| 跟腱断裂是什么感觉| 晚上9点多是什么时辰| 小孩铅过高有什么症状| 子宫内膜手术后需要注意什么| 什么人不穿衣服| 小孩牙龈黑紫色是什么原因| 摩羯座是什么星象| 珏字五行属什么| 进德勤一般要什么学历| 复刻是什么意思| 五月23是什么星座| 突然想吃辣是什么原因| 憋屎会造成什么后果| 川崎病有什么症状| 心可舒治什么病| 塞来昔布是什么药| 爱彼手表什么档次| 高汤是什么意思| 什么是包皮过长| 尿酸高的人吃什么食物好| 毒血症是什么病| 河虾吃什么| 0型血和b型血生的孩子是什么血型| 百合与什么搭配最好| 9月25日是什么星座| 痔疮用什么药膏最好| 小孩睡觉张开嘴巴是什么原因| 绰号是什么意思| 女生排卵期是什么时候| 昆仑山在什么地方| 尿酸高中医叫什么病| 为什么肾阳虚很难恢复| 支原体吃什么药最有效| 10个油是什么意思| 本科一批和本科二批有什么区别| 什么龙可以横行霸道| 什么主皮毛| 乙肝病毒表面抗体阳性是什么意思| 985是什么| 农历3月12日是什么星座| 什么叫越位| paris是什么品牌| 拉谷谷女装什么档次的| 心悸是什么意思啊| 四大皆空是什么生肖| 300年前是什么朝代| 怎么知道自己什么血型| 喉咙痛吃什么药好得快| 什么的武松| 一什么雨伞| 青葱岁月是什么意思| 黄发指什么| 射精出血吃什么药最好| 伯恩光学是做什么的| 荔枝和什么吃会中毒| 膀胱炎做什么检查能看出来| 身心俱疲是什么意思| 玉髓什么颜色最贵| 核素治疗是什么| 地震为什么会发生| 硬盘是什么意思| 痂是什么意思| 头皮痒用什么药| 影子虫咬伤后用什么药| 唐氏综合征是什么原因造成的| 牙齿遇冷热都痛是什么原因| 嘴角生疮是什么原因| 梦见自己来月经了什么预兆| 皮肤痒用什么药| 经期同房需要注意什么| 淋病吃什么药| 贝的偏旁有什么字| 十一月一日是什么星座| 早上打嗝是什么原因呢| 百家姓第一个姓是什么| 口什么心什么| 晚上吃什么不发胖| 前列腺肥大吃什么药| 神经损伤是什么症状| 嘴巴臭是什么原因| 家庭烧烤准备什么食材| 舌头红是什么原因| 09属什么生肖| 王玉是什么字| 梦见老虎是什么意思| 外贸是什么| copd什么意思| 梦见什么是受孕成功了| 嗓子干痒咳嗽吃什么药| 释放是什么意思| 什么是线粒体| 肾结石什么东西不能吃| 司令员是什么军衔| 钢琴是什么乐器种类| 总胆红素升高是什么原因| 大姑姐最怕弟媳什么| 湿气重可以吃什么水果| 为什么会面瘫| 孕妇过敏性鼻炎可以用什么药| 家五行属性是什么| 早晨起来口苦是什么原因| nuxe是什么牌子护肤品| 梦见火烧房子是什么预兆| 脾阳不足吃什么中成药| 睾丸痛挂什么科| 刚刚怀孕有什么症状| 喉咙不舒服是什么原因| 议论纷纷是什么意思| 11.24是什么星座| 低密度脂蛋白胆固醇高是什么意思| se是什么| 什么是肾阴虚和肾阳虚| 什么的田野| 盆腔炎吃什么消炎药效果好| 息肉和囊肿有什么区别| 好老公的标准是什么| 人民检察院是国家的什么机关| 甲鱼和什么一起炖最好| 花孔雀是什么意思| 活塞是什么| 县教育局局长是什么级别| 蛇怕什么东西| 鸡腿炖什么好吃| 自负是什么意思| 红疮狼斑是什么引起的| 什么是腹式呼吸| 3.21什么星座| 皮肤黑穿什么颜色| 天机不可泄露是什么意思| 合盘是什么意思| 睡觉时身体抽搐是什么原因| 什么是血栓| 为什么都开头孢不开阿莫西林| 胳膊肘往外拐是什么意思| 正局级是什么级别| 反酸烧心吃什么药效果好| 白天不咳嗽晚上咳嗽是什么原因| 下颚长痘痘是什么原因| 鲁冰花是什么意思| 头晕看什么科| 一感冒就咳嗽是什么原因| 宫颈管搔刮术是什么| 紫水晶五行属什么| 饭铲头是什么蛇| 劳损是什么意思| 宫腔内钙化灶是什么意思| 变色龙指什么人| 清肺火肺热吃什么药最有效| 晚上9点半是什么时辰| 脚代表什么生肖| 百度

基于单片机的CF卡文件存储

嵌入式系统 时间:2025-08-06来源:网络
百度 招商证券非银分析师郑积沙认为,据测算,首批CDR将有望带来120亿元承销收入,很可能将被个别券商垄断。

随着计算机应用技术的飞速发展,移动存储设备得到了广泛的应用。其中CF(Compact Flash)卡诞生于1994年,是最早推出的闪存卡,在众多产品中其普及率也最高。由于CF卡具有价格低廉、体积小、存储容量大、高速等特点,因此被广泛地应用于数码相机、PDA和笔记本电脑等当前十分热门的消费类电子产品中。CF卡在其他领域中也得到了广泛的应用。如本文所述内容就是将CF卡应用于动态脑电图系统中存储脑电信号。

由于CF卡中存储的脑电图信号要能够从PC机上读取出来,所以必须把脑电图信号以相应的文件格式存储。下面将介绍采用C8051F020微控制器控制CF卡的文件存储,并详细地介绍其软、硬件的设计。

1 C8051F020与CF卡的接口电路

C8051F020是完全集成的混合信号系统级MCU芯片,使用了Cygnal专利的高速、流水线结构以及与MCS-51指令集完全兼容的CIP-51微处理器内核,具有64条数字I/O引脚,片内有64KB可在系统编程的Flash存储器,有4 352B的片内RAM,片内有看门狗定时器、VDD监视器和温度传感器等;片内的JTAG调试电路允许使用安装在最终应用系统上的产品MCU进行非侵入式、全速、在系统调试;其MCU都可在工业温度范围(-45℃-+85℃)内用2.7~3.6V的电压工作;端口I/O、RST和JTAG引脚都兼容5V的输入信号电压。C8051F020其他功能可参考文献。

CF卡有3种工作模式可供选择:I/O模式、存储器模式和IDE模式。CF卡的默认模式是存储器模式,使用也最为普遍。如果使用存储器模式则不需要配置任何寄存器。每一种模式的电路连接各不相同。在I/O模式和存储器模式下,可以采用8位的访问方式,也可以采用16位的访问方式。本文所采用的是8位的存储器模式,其接口电路如图1所示。

8位的存储器模式其接口电路


C8051F020的外部数据存储器接口(EMIF)可用于访问片外存储器和存储器映射的I/O器件。若设置EMIF的配置寄存器EMIOCF的PRTSEL位为'1',可使EMIF位于端口7、6、5、4;设置EMD2位为'1',可使EMIF工作于非复用方式;设置EMDl~0为'01',可使EMIF工作于不带块选择的分片方式。这样P7口就为数据线D0~D7,P6口为A0~A7,P5口为A8~A15,P4.6、P4.7分别为读(RD)、写(WE)线。

由于C8051F020是8位的单片机,所以对CF卡的访问采用8位的方式较为方便。通过把-CE2设为'1'即可通过访问CF卡的D0~D7来存取数据。而-CEl可以作为CF卡的片选信号,通过设-CEl为'0'来选通CF卡,即-CEl接C8051F020的高位地址P5.7来线选CF卡。当CF卡插入其插座时,CDl和CD2都连接到地(CND);C8051F020的P1.1、P1.2分别连到CDl和CD2,并可以通过检测P1.1和P1.2来判断CF卡是否插入CF卡插座。CF卡工作于存储器模式下,-OE和-WE分别接C8051F020的读(P1.6)、写(P1.7)线。当REG为'0'时,访问CF卡的属性寄存器;REG为'1'时,CF卡在存储器模式下对数据进行读写操作。

2 C8051F020对CF卡的数据读写

图1所示电路的CF卡在存储器模式下有关数据读写的一些寄存器地址如表1所示。

电路的CF卡在存储器模式下有关数据读写的一些寄存器地址


CF卡1个扇区为512B,这些数据都是从表1中的第0个寄存器中读出,而且每次读写数据最小为1个扇区,但也可以设置从第2个寄存器中读出,1次读写几个扇区。

C8051F020对CF卡读扇区数据的过程是:首先读取第7个寄存器的状态字,如果为50H表示没有错误,并且CF卡已经准备好;然后再分别向第2、3、4、5、6个寄存器写入相应的数据指定需要读写的扇区;最后向第7个寄存器写20H或21H,读取状态字为58H后读取数据,其流程如图2所示。

流程


C8051F020对CF卡向指定扇区写数据的命令是30H或31H,其操作亦与读数据相似,只不过在写入数据后要等到CF卡中数据稳定并进入空闲状态才能结束这一过程。

在CF卡读写时,分别向第2、3、4、5、6个寄存器写入CF卡需要访问的扇区位置,其写入模式有2种:即CHS(Cylinder/Head/Sector)模式和LBA(Logical Block Address)模式。通过设置第6个寄存器的第6位LBA确定其模式:即如果LBA=0,则为CHS模式;如果LBA=I,则为LBA模式。

由CHS模式到LBA模式的转换如下:

由CHS模式到LBA模式的转换

其中LBA是逻辑块地址,Cn是柱面号,HpC是每个柱面的磁头数,Hn是磁头数,Sn是扇区号,SpH是每个磁头(簇)的扇区数。
3 CF卡的文件存储

FAT(File Allocation Table)文件系统产生于20世纪70年代末到80年代初,是微软的MS-DOS操作系统所支持的文件系统。目前FAT文件系统有3种类型:FATl2、FATl6和FAT32。它们的不同是在磁盘上实际的FAT结构中每个记录(Entry)所占的位数不同。FATl2占12位(1.5字节),FATl6占16位(2字节),FAT32占32位(4字节)。每一个记录中的数据都按照低字节在前、高字节在后排列。

在CF卡格式化时,首先要了解CF卡的容量等一系列信息。通过对CF卡写入命令ECH就可以读出1个扇区,其中包含了该CF卡的一些参数的信息,如容量、默认的柱面数、默认的磁头数、每个扇区的字节数、每个磁道的扇区数和CF卡上总的扇区数等。这为格式化CF卡提供了重要的数据。

在格式化后的CF卡中,FAT文件系统由如下4部分组成:

0区:保留区(引导区)。
1区:FAT区。
2区:根目录区(FAT32中存在的是浮动的FDT表)。
3区:文件、目录与数据区(下面简称数据区)。

引导区中包含了整个FAT文件系统的重要信息,即BPB(BIOS Parameter Block)。下面为BPB的几个重要数据结构:

BPB的几个重要数据结构


在FAT32格式下,BPBqRootEntCnt为'0',因此RootDirSec总是为'0'。

如果BPB.FATSzl6不为'0',就可以根据下面公式计算数据区的第一个扇区地址。

FirstDataSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSzl6)+RootDirSec (4)

因此数据区所占用的扇区数:

DataSec=BPB.TotSecl6-FirstDataSec (5)

根目录的第一个扇区地址(在FATl2、FATl6下):

FirstRootDirSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSzl6)
如果BPB.FATSzl6为'0',则BPB.FATSz32一定不为'0',则有:

FirstDataSec=BPB.ResvdSecCnt+fBPB.NumFATs*BPB.FATSz32)+RootDirSec (6)

DataSec=BPB.TotSec32-FirstDataSec (7)

FirstRootDirSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSz32) (8)

如果CF卡有多个分区,则(3)~(8)式计算出的参数只是相对当前分区而言的,且数据区所占用的簇数为:

CntofClus=DataSec/BPB.SecPerClus (9)

在格式化CF卡时,根据CF卡容量的大小决定FAT数据结构中的一些参数,再由式(9)算出数据区总的簇数,并根据总簇数的大小确定FAT形式。一般来说,如果CntofClus4 084簇,则可以格式化成FATl2的形式;如果≥4 084簇而65 524簇,则可以格式化成FATl6的形式;如果≥65 524簇,则格式化成FAT32的形式。

若给定一个簇的序号N(N≥2),则在数据区对应该簇的第一个扇区序号为:

FirstSecofClus=((N-2)*BPB.SecPerClus)+FirstDataSec (10)

式(10)表示了FAT与数据区的对应关系,如图3所示。在FAT区每一个记录的位置与数据区中的一簇数据相对应,同时,这个记录又存储着下一簇序号,从而一个件在FAT区形成一个链表。至于每一簇的序号在FAT中的存储位置,可以根据格式化的形式(FATl2、FAT16、FAT32)确定。设每一记录占i个字节,则第N个记录在N×i的位置上。

FAT与数据区的对应关系


文件的结束符在FATl2下为0xFFF,在FATl6下为0xFFFF,在FAT32下为0x0FFFFFFF。如果在写入时遇到损坏的簇,则在对应位置写损坏的标志(FATl2下为0xFF5FATl6下为0xFFF7,FAT32下为0x0FFFFFF7),并且在{表中跳过这一损坏的簇。在删除一个文件时,要把该文{在FAT区的链表全部写'0',释放空间。这样,该链表中所对应的数据区又可以被新的文件分配。 一个FAT的目录项或文件项通常占用32字节,并存储该目录或文件的相关信息。其数据结构如下:

数据结构


这个数据结构中12字节的名字是目录名还是文件名,由成员Attr决定。如果是目录Attr可设为10H;如果j文件,Attr可设为20H,也可以是几个属性的组合;如果为长文件名,Attr可设为OFH。有关详细的长文件名可参见文献。

成员FstClusHI和FstClusL0记录了文件第一簇数据对应FAT中的记录序号,即图3中第一簇的序号,从而可以根据链表查找下一簇数据。在FATl2和FATl6下,成员FstClusHI总为'0'。

4 讨论

本文只介绍了动态脑电图系统的有关文件存储的部分,C8051F020的功能并没有得到充分利用。实际上C8051F020还要完成系统的其他很多功能。用户可以根据自己系统的实际需要选择合适的单片机。本系统在设计时着重考虑系统的功耗、体积、速度等方面的因素,所以C8051F020采用非复用的方式,以求节省1片锁存器对低位地址的锁存。
CF卡在写入文件时,由于要记录24小时的脑电图信号。为了防止异常发生使文件写入失败,可以定时地更新FAT区该文件的记录链表和所存放文件数据结构的根目录区或数据区中该文件的大小。只有保存了这些信息,所写入的数据才能正常地读取。 此外,在写入文件时,如果遇到一个扇区写入失败,则整个簇都不能用。为此:(1)必须查找下一个未占用的簇,再把这一簇中已经正确写入的扇区中的数据复制到下一簇中。这样缓冲区中只要保存一个扇区的脑电信号就可以。(2)先对这一簇进行检测,确定没有错误后再向该簇写人数据。这种方法虽然比较简单,但占用系统的时间比较多,且在检测到没有错误后也不能完全保证下一次写入时不发生错误。所以第一种方法的可靠性要高。

实验证明,SanDisk和EagleTec等公司的不同容量的CF卡用于本系统中都能够正确地对采集到的脑电图信号进行存取。

关键词: 存储 文件 CF 单片机 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
水银是什么 11月24日是什么星座 巴黎世家是什么档次 荡秋千有什么好处 今天属什么生肖老黄历
重楼的别名叫什么 全身酸痛吃什么药 海里有什么鱼 慢性胰腺炎吃什么药 静的部首是什么
抱薪救火是什么意思 教育的本质是什么 部分导联t波改变是什么意思 共济会是什么 问羊知马是什么生肖
脑梗吃什么东西好 au9999是什么意思 惊蛰是什么季节的节气 男朋友发烧该说些什么 高密度脂蛋白胆固醇偏低是什么意思
甘油三酯高应该注意什么hcv8jop8ns2r.cn 司空见惯的惯是什么意思hcv7jop9ns0r.cn 鹦鹉代表什么生肖hcv8jop1ns8r.cn 放下是什么意思hcv8jop1ns1r.cn cc是什么单位hcv8jop0ns0r.cn
什么叫伴手礼0297y7.com 脱臼是指什么从什么中滑脱gangsutong.com 水痘擦什么药膏好得快hcv8jop9ns1r.cn 念旧的人是什么样的人hcv9jop2ns2r.cn 小狗需要打什么疫苗hcv8jop0ns0r.cn
垂问是什么意思hcv8jop4ns3r.cn 骨质疏松吃什么hcv9jop6ns8r.cn 刀口力念什么hcv8jop5ns1r.cn 鳌鱼是什么鱼hcv9jop6ns7r.cn 拔罐紫色说明什么hcv9jop4ns2r.cn
总是嗜睡是什么原因hcv8jop9ns3r.cn 脆皮是什么意思hcv8jop2ns8r.cn 手指甲出现双层是什么原因creativexi.com 夏天水肿的原因是什么hcv7jop7ns3r.cn 孩子发烧呕吐是什么原因hcv7jop5ns0r.cn
百度