I2C EEPROM读写设计与制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川理工学院

课程设计书

学院计算机学院

专业计算机科学与技术

班级2013级 4 班

课程嵌入式系统软硬件开发及应用实践

题目I2C EEPROM读写设计与制作

教师杨维剑

学生龚程金黄雨杨坤陈超王俊枭

摘要

随着计算机系统及电子系统的飞速发展,信息的存储也越来越重要,EEPROM (电可擦写可编程只读存储器)是可用户更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写),断电后存在其中的数据不会丢失,通常用于存放硬件信息,如mac地址、BIOS芯片等,并在嵌入式ARM系统中应用广泛,IIC作为一种常见的总线技术,其方便扩展外围设备的特性使得其应用广泛,AT24C02是一款性价比超高的IIC接口EEPROM,擦写次数多、稳点不易丢失数据,本文将设计并制作ARM系统,并在Linux中实现I2C EEPROM读写。

关键词:ARM,EEPROM,IIC,AT24C02,Linux

目录

一、LinuxI2C驱动--概述 (1)

1.1 设计任务与要求 (1)

1.2 I2C (1)

1.3 硬件 (1)

1.4 软件 (1)

二、硬件电路设计 (2)

2.1 电路设计要求 (2)

2.2 原理图的绘制 (2)

2.2.1电源接口 (2)

2.2.2UART接口 (3)

2.2.3AT24C02接口 (3)

2.3 PCB板的制作 (3)

三、LinuxI2C驱动--I2C总线 (5)

3.1 I2C总线物理结构 (5)

3.2 I2C总线特性 (5)

3.3 开始和停止条件 (6)

3.4 数据传输格式 (6)

3.5 响应 (7)

3.6 总线仲裁 (8)

四、LinuxI2C驱动--解析EEPROM的读写 (9)

4.1 概述 (9)

4.2 设备地址 (9)

4.3 读eeprom (9)

4.4 写eeprom (10)

五、LinuxI2C驱动--访问eeprom (10)

5.1 通过sysfs文件系统访问I2C设备 (10)

5.2 通过devfs访问I2C设备 (11)

5.3 总结 (11)

六、LinuxI2C驱动--浅谈LinuxI2C驱动架构.. 12

6.1 I2C体系结构 (13)

6.2 I2C重要数据结构 (13)

七、LinuxI2C驱动--I2C设备驱动 (14)

7.1 eeprom板级设备资源 (14)

7.2 AT24C02 EEPROM 的I2C设备驱动 (14)

7.2.1 at24_driver (14)

7.2.3 at24_bin_read() (15)

7.2.4 at24_bin_write() (15)

7.3 总结 (15)

八、LinuxI2C驱动--I2C总线驱动 (16)

8.1 三星S3C2410 i2c适配器的硬件描述 (16)

8.2 i2c总线驱动的加载/卸载 (17)

8.3 i2c总线驱动的probe (17)

8.4 启动i2c传输 (18)

8.5 通过中断来推进i2c的传输 (18)

课程设计体会 (19)

参考文献 (20)

附录 A (21)

附录 B (29)

一、LinuxI2C驱动--概述

1.1 设计任务与要求

1)通过软件基于I2C协议对EEPROM读写功能的实现。

2)需要有EEPROM读写功能的具体实现过程。

linux i2c体系结构的三大组成:i2c核心,i2c总线驱动,i2c设备驱动,通过设计,了解I2C协议的基本原理,并对EEPROM读写功能的实现有个系统的概念,对其实现过程比较清楚。同时,在设计中,巩固我们所学的理论知识。1.2 I2C

I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2C在标准模式下传输速率最高100Kb/s,在快速模式下最高可达400kb/s。属于半双工。

在嵌入式系统中,I2C应用非常广泛,大多数微控制器中集成了I2C总线,一般用于和RTC,EEPROM,智能电池电路,传感器,LCD以及其他类似设备之间的通信。

1.3 硬件

CPU型号:Samsung S3C2410

EEPROM型号:AT24C02

1.4 软件

linux版本:Linux 2.6.35.7

I2C总线驱动:drivers/i2c/busses/i2c-s3c2410.c

eeprom驱动:drivers/misc/eeprom/at24.c

二、硬件电路设计

2.1 电路设计要求

使用ARM芯片读写EEPROM,本设计中采用的ARM 芯片S3C2410,S3C2410

处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用FBGA封装,采用0.18um制造工艺的32位微控制器。该处理器拥有:3路UART,IIC-BUS 接口等;EEPROM采用的是AT24C02,AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。并完成串口设计与JTAG在线调试接口设计。

2.2 原理图的绘制

主要分为电源接口部分、UART接口部分、AT24C02接口部分的绘制。

2.2.1电源接口

电源部分主要使用LM1117系列和AS1117系列芯片将电源转换为2.5V,3.3V和5V为系统不同器件提供电源,包括复位电路。如图2.1所示。

图 2. 1电源转换

相关文档
最新文档