微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机CF卡接口设计

单片机CF卡接口设计

时间:10-25 来源:互联网 点击:

在PC机上选择一个约4M大小的ASCII码文件,预计它将充满CF卡的8000个扇区,将其通过串口调试助手发送到单片机上。在单片机上运行的这个小程序是一个伺服进程,它一直在检测是否有数据通过串口传过来。一旦有数据过来,它就会调用中断,将接收到的数据存入CF卡相邻的扇区内。这样就完成了对CF卡的写操作。写操作之后可以立即对同一地址进行读操作,这也正是CF卡的读写机制与其它普通Flash存储器不同的地方,单片机从先前存入扇区的首地址开始,读出刚刚写入的数据,并将其送出到串口,发送到PC机的串口调试助手终端上。经过验证,原先发送的数据和反馈回来的内容一致,由此判定,CF卡程序编写正确。

CF 卡读写设计的难点主要在于对扇区的访问,由于CF卡由ATA控制器和Flash存储器两部分构成,系统访问Flash存储器的速度远远小于访问内存的速度,如果系统频繁访问CF卡,势必会影响系统的实时性和工作效率,所以必须考虑CF卡读写程序的设计技巧。根据存储器访问的局部性原理,CPU存取数据所访问的存储单元都趋向于聚集在一个较小的连续区域。从时间上看,如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。从空间上看,在最近将用到的信息很可能与目前正在使用的信息在空间地址上是临近的。在本系统的程序设计中,开辟了一个扇区的内存空间TempSect,用于存储最近访问过的扇区数据。另外还设置了两个全局变量SaveSectorNum和SectorDirty:SaveSectorNum保存最近备份的扇区编号; SectorDirty说明备份数据是否与CF卡中的相应数据一致,如果一致,其值为0,否则为1。这样不但可以减少读写CF卡的次数,而且提高了访问速度,满足嵌入式操作系统的实时性要求。

结语

本文对单片机直接读写CF卡进行了介绍,重点阐述了软硬件的实现思路、测试方法以及一些针对CF卡的编程思想。随着嵌入式处理器在通信、航空航天、医疗设备、消费类电子产品等领域的蓬勃发展,基于CF卡的嵌入式数据存储系统的应用前景一定会十分广阔。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top