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

嵌入式处理器MPC8250与CF卡的接口设计


否与备份数据的扇区号(SaveSectorNum)一致,如果一致,则从备份数据中读取,加快了访问速度;否则,判断备份数据是否更改,即SectorDirty是否为“1”;如果不是,则从CF卡中读取扇区号为CurrSectorNum的数据到tempSect中;否则,先把tempSect的数据写回CF卡,然后从CF卡中读取扇区号为CurrSectorNum的数据到tempSect中。最后,设置备份数据扇区号SaveSectorNum为当前数据的扇区号CurrSectorNum,设置SectorDirty为“0”,并从备份数据中读取所需数据。

当写入一个扇区的数据时,首先比较所写入的扇区号(CurrSectorNum),是否与备份数据的扇区号(SaveSectorNum)一致,如果一致,则把数据写入备份数据中,并且设置SectorDirty为“1”;否则,判断备份数据是否更改,即SectorDirty是否为“1”;如果不是,则从CF卡中读取扇区号为CurrSectorNum的数据到tempSect中;否则,先把tempSect的数据写回CF卡,然后从CF卡中读取扇区号为CurrSectorNum的数据到tempSect中。最后,设置备份数据扇区号SaveSectorNum为当前数据的扇区号CurrSectorNum,将指定数据写到备份数据中,并且设置SectorDirty为“1”。

2.3 读写数据的相关寄存器

根据CF卡标准,不能直接访问CF卡的数据区域,而需要通过访问CF卡内的相关寄存器(这些寄存器的基地址在CF卡初始化时配置,见2.1节)间接读取或者写入数据。在访问CF卡时必须对它们进行正确配置:

(1)扇区数目寄存器(Sector_CNT Register)

读写操作时,保存需要传送的扇区数目。如果为0,则选择256个扇区;如果操作成功,操作结束时此寄存器为0;如果操作不成功,此寄存器包含了有待完成的扇区数目。

(2)磁头寄存器(Select_HEAD Register)

其中包含了LBA位(1比特),用于设置地址访问方式。“1”?LBA_Mode?为逻辑地址访问方式,“0”为柱面/磁头/扇区访问方式。本系统选择逻辑地址访问方式,则该寄存器还包含了逻辑地址的24~27位。

(3)扇区编号寄存器(Sector_NUM Register)

在采用逻辑地址访问方式时,该寄存器包含了逻辑地址的0~7位。

(4)柱面低位寄存器(Cylinder_LO Register)

在采用逻辑地址访问方式时,该寄存器包含了逻辑地址的8~15位。

(5)柱面高位寄存器(Cylinder_HI Register)

在采用逻辑地址访问方式时,该寄存器包含了逻辑地址的16~23位。

(6)状态寄存器(Status Register)

反映了CF卡的状态,其中包含了CF卡忙(Busy)位、出错位(Err)、是否准备就绪位(Rdy)等。

(7)数据寄存器(Data Register)

存放读写数据,是一个16位寄存器。

2.4 读数据

从CF卡读取一个扇区的数据,如图3所示。因为系统采用的CF卡的扇区大小为:SectorSize = 512字节,假设读写数据的地址为Addr,则该地址所在的扇区号为:

Sector = Addr % SectorSize。

首先配置寄存器,设置读取的扇区数目、相应地址和访问模式;然后发送读命令(0x20),等待CF卡

《嵌入式处理器MPC8250与CF卡的接口设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/148565.html

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