新闻中心

EEPW首页>嵌入式系统>设计应用> 文件系统在EEPROM中的应用

文件系统在EEPROM中的应用

作者: 时间:2010-05-19 来源:网络 收藏

(2) 写操作

  AT24C512提供字节写和128字节页写功能。字节写与页写操作主要区别在于:后者不需要每写入一字节就提供一个结束标志,而是在处理器得到应答信号后继续写入数据,直到写完小于等于一页的数据。字节写和页写的操作如图2和图3所示。

按此在新窗口浏览图片
图2字节写操作

按此在新窗口浏览图片

图3页写操作

(3) 读操作

  AT24C512的读操作有多种模式,包括当前地址读、随机地址读和连续多字节读3种方式。读操作基本与写操作同。当前地址读操作不发送片内地址,每次只读取当前地址的数据,片内读地址自动加1,直到读完整片后置0。随机地址读操作需先指定片内地址,然后读出数据。而连续多字节读操作则综合了上述两种方式,既可以是当前地址读,也可以是随机地址读。每当处理器接收到一字节数据后返回一个ACK,收到此ACK后地址自动加1,接着输出下一个字节数据,直到控制器返回NO ACK时,读过程结束。

2 AT24C512与主控芯片的连接

  采用Atmel公司的工控芯片AT91RM9200[2]作为主控芯片。AT91RM9200有专用两线接口,可用来连接AT24C512。AT24C512与主控芯片的连接如图4所示。

按此在新窗口浏览图片

图4 AT24C512与主控芯片的连接电路

  由于AT91RM9200内部有两线控制器,因此对AT24C512的访问只需操作AT91RM9200的内部寄存器,而无需人为模拟AT24C512的访问时序。这为编程提供了方便,同时也保证了可靠性。这里以写操作的流程为例,简要介绍在主控芯片AT91RM9200下如何对AT24C512进行编程,如图5所示。

按此在新窗口浏览图片

图5 写流程

3 Linux块设备驱动

3.1 Linux块设备驱动模型[3]

  在Linux中(本文使用Linux内核2.6.28),设备驱动程序通常有固定的模式,既为编写具体的驱动程序提供了方便,也减少了错误的发生。在编写块设备驱动程序时,首先用register_blkdev注册块设备,之后分配处理函数。处理函数主要包括:request函数,当有读写操作时内核会调用该函数;open函数,用于打开设备;release函数,用于释放设备;ioctl函数,用于查询或设置一些信息。最后向内核注册磁盘。在这个过程中,最重要的一个结构是struct gendisk。上述所描述的处理函数都被写入该结构体,将该结构体必要的字段赋值后,就可使用add_disk将该结构体添加入内核。此时,磁盘设备将被激活,并随时会调用它提供的方法。



评论


相关推荐

技术专区

关闭