ICEEPROM读写设计与制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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电源转换