电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>在Linux环境下实现EEPROM驱动程序

在Linux环境下实现EEPROM驱动程序

2017-10-15 | rar | 0.4 MB | 次下载 | 1积分

资料介绍

 1引言
  I2C (Inter-Integrated Circuit1总线是一种由Philips公司开发的2线式串行总线,用于连接微控制器及其外围设备。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。在主从通信中,可有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。笔者在开发基于MPC8250的嵌入式Linux系统的过程中发现I2C总线在嵌入式系统中应用广泛,I2C总线控制器的类型比较多,对系统提供的操作接口差别也很大。与I2C总线相连的从设备主要有微控制器、EEPROM实时时钟、A/D转换器等。MPC8250处理器正是通过内部的I2C总线控制器来和这些连接在I2C总线上的设备进行数据交换的。由于I2C总线的特性,Linux的I2C总线设备驱动程序的设计者在设计驱动程序时采用了独特的体系结构。使开发I2C总线设备驱动程序与开发一般设备驱动程序的方法具有很大差别。因此,开发I2C总线设备驱动程序除了要涉及一般Linux内核驱动程序的知识外。还要对I2C总线驱动的体系结构有深入的了解。笔者在开发过程中使用设备型号为AT24C01A的EEPROM来测试I2C总线驱动。
  2工作原理概述
  在介绍I2C总线结构之前。要搞清楚两个概念:I2C总线控制器和I2C设备。I2C总线控制器为微控制器或微处理器提供控制I2C总线的接口,它控制所有I2C总线的特殊序列、协议、仲裁、时序,这里指MPC8250提供的I2C总线控制接口。I2C设备是指通过I2C总线与微控制器或微处理器相连的设备,如EEPROM、LCD驱动器等,这里指EEPROM.
  在一个串行数据通道中。I2C总线控制器可以配置成主模式或从模式。开发过程中,MPC8250的I2C总线控制器工作在主模式,作为主设备;与总线相连的I2C设备为AT24C01A型EEPROM,作为从设备。主设备和从设备都可以工作于接收和发送状态。总线必须由主设备控制,主设备产生串行时钟控制总线的传输方向,并产生起始和停止条件。
  2.1 I2C总线控制器
  I2C使用由串行数据线SDA和串线时钟线SCL组成的两线结构来在外部集成电路与控制器之间交换数据。MPC8250的I2C总线控制器包括发送和接收单元、一个独立的波特率发生器和一个控制单元。发送和接收单元使用相同的时钟信号,如果I2C为主设备。那么时钟信号由I2C的波特率发生器产生;如果I2C为从设备,时钟信号则由外部提供。
  SDA和SCL为双向的,通过外部+3.3 V上拉电阻连接至正向电压。当总线处于空闲状态时,SDA和SCL都应是高电平,I2C通常的配置模式如图1所示。
  在Linux环境下实现EEPROM驱动程序
  图1 I2C配置模式
  I2C的接收和发送单元均为双缓存,在数据发送时,数据从发送数据寄存器到移位寄存器,以时钟速率输出到SDA线;在数据接收时,数据从SDA线进入移位寄存器,然后进入接收寄存器。
  2.2 I2C总线控制器和EEPROM的基本操作
  I2C总线在传送数据过程中共有3种类型的信号,分别是:开始信号、结束信号和应答信号。
  开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;
  结束信号:SCL为高电平时,SDA由低电平向高电平跳变,传送数据结束;
  应答信号:接收数据的设备在接收到一个字节数据后,向发送数据的设备发出特定的低电平脉冲。表示已收到数据。
  当MPC8250的I2C总线空闲时,其SDA和SCL均为高电平,主设备通过发送一个开始信号启动发送过程。这个信号的时序要求是当SCL为高时,SDA出现一个由高到低的电平跳变。在起始条件之后。必须是从设备的地址字节,其中高4位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着3位为片选,最后1位为读写位,当为1时为读操作,为0时为写操作,如图2所示。
  在Linux环境下实现EEPROM驱动程序
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 6基于FPGA的C8051F单片机开发板设计
  12. 0.70 MB  |  2次下载  |  免费
  13. 751单片机窗帘控制器仿真程序
  14. 1.93 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21548次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183278次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费