Linux下I2C总线EEPROM驱动程序设计方法
er结构中。通过i2c_algo_8260_data算法模块中输出的接口函数传递给算法模块。
4.2 I2C设备驱动的设计
I2C设备EEPROM 驱动除了要根据EEPROM的具体特性进行设计外。还要考虑I2C总线驱动程序体系结构的特性。在EEPROM设备驱动程序中需要实现一个i2c_driver结构。每个对应于具体设备的Client都从这个结构来构造。在i2c_driver结构中有两个函数attach_adapter和detach_client必须要实现。i2c_driver结构的定义如下:
struct i2c_driver eeprom_driver = {
/*name*/ “I2C_EEPROM_DRIVER”,/*id*/I2C_DRIVERID_EEPROM,
/*flags*/ I2C_DF_NOTIFY,/*attach_ adapter*/eeprom_attach_adapter,/*detach_client */eeprom_detach_client,
/*command*/eeprom_command,/*inc_use*/ eeprom_inc_use,/*dec_use*/ eeprom_dec_use
};
在设备驱动中。向EEPROM 写数据通过调用i2c-core提供的i2c_master_send函数来完成。从EEPROM 读取数据通过另一个函数i2c_master_read来完成。与一般设备驱动不同的地方就是在EEPROM驱动模块初始函数中要调用i2c-core提供的i2c_add_driver函数来注册该设备。在模块退出函数中调用i2c_del_driver函数来注销该设备。
5 结束语
I2C总线具有控制简单、通信速率高等优点,作为一种2线双向同步串行数据总线,它为嵌入式系统设计提供了一种完善的集成电路间的串行总线扩展技术,大大简化了应用系统的硬件设计,为实现应用系统的模块化设计创造了极为有利的条件。同时,在很多情况下需要对系统中的某些动态信息进行掉电保护。在数据量不太大的场合下,通过I2C总线连接的EEPROM在这方面就比较能发挥作用。而Linux作为一种新的操作系统,目前在嵌入式系统中的应用非常广泛。其发展前景无法估量。由于Linux源码开放,且非常易于移植,为其编写设备驱动程序相对容易。本文介绍了Linux下I2C总线EEPROM驱动程序的一般设计方法。
程序设计 方法 驱动 EEPROM I2C 总线 Linux 相关文章:
- MCS-51系列单片机结构化程序设计探讨(04-20)
- 状态机在单片机程序设计中的应用(05-01)
- ARM处理器的位置无关程序设计(09-19)
- 基于分布式处理技术的物联网数据库设计(05-21)
- 模块化管理和设计(12-01)
- 马踏棋盘的实现(12-01)