您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式Linux系统中I2C总线设备的驱动设计 正文
嵌入式Linux系统中I2C总线设备的驱动设计

嵌入式Linux系统中I2C总线设备的驱动设计

点击数:7406 次   录入时间:03-04 11:48:27   整理:http://www.55dianzi.com   嵌入式系统-技术
 open:  x1227_rtc_open,
 release: x1227_rtc_release,
};

  其中open和release用来打开和关闭X1227,x1227_rtc_ioctl则向用户提供的一系列控制时钟芯片的具体命令:RTC_GET_TIME(以固定的数据格式读取实时时钟的时间)、RTC_SET_TIME(以固定的数据格式设定实时时钟的时间)以及E2PROM读写等。

  对于X1227,一般注册为一个miscdevice设备(所有miscdevice设备共同一个主设备号,不同的次设备号)。

  static struct miscdevice x1227_rtc_miscdev = {
 RTC_MINOR,
 tc?
 &rtc_fops
};

  初始化时,通过misc_register (&x1227_rtc_miscdev)注册X1227,这样用户程序可以通过主设备号10 次设备号 135的设备节点/dev/rtc来访问X1227。

  要测试X1227的时钟功能,首先把AT91RM9200的I2C总线驱动模块和X1227模块在系统启动时先后加载。需要指出的是, Linux 将时钟分为系统时钟和硬件时钟两种。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,也就是本文中的X1227。

  在Linux中,用于时钟查看和设置的命令主要有date、hwcLOCk。首先设置系统时钟,比如设置为2006年8月17日12点30分:date 081712302006,然后设置硬件时钟为当前系统时钟时间,使用命令/sbin/hwclock 衧ystohc,则X1227中的时间设置为当前系统时间。然后,通常在操作系统启动时设置启动脚本/sbin/hwclock 衕ctosys,利用X1227内的时间更新系统时钟,然后直到重启或关闭系统,由系统时钟来记录时间。

  结语

  本文介绍了I2C总线适配器及I2C设备驱动的实现。该设计成功用于某网络测试设备的主控模块上,实现了设备的实时时钟功能,便于整个系统的监控。I2C总线在目前的嵌入式领域中应用非常广泛,如音/视频的控制,存储设备的通讯等,而Linux也已成为嵌入式系统的主流。从linux内核看,I2C的驱动程序具有清晰的层次结构,为编程者开发I2C相关驱动提供了规范的框架。

  参考文献:

  1. lessandro Rubini,Jonathan Corbet. Linux Device Drivers,second edition[M].O誖eilly & Associates,2002.

  2. 郑旭阳、李兵兵、黄新平,模拟I2C总线多主通信研究与软件设计,单片机与嵌入式系统应用,2005,12:29_32

  3. Philips Corporation, I2C bus specification version 2.1, 2000 

  4. Atmel Corporation, AT91RM9200 Datasheet, version E, 2005

  5.  Xicor Corporation, X1227 Datasheet, version1.3, 2004



上一页  [1] [2] 


本文关键字:嵌入式  Linux  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术