1、 基于 I2C 协议存储芯片的扩展存储电路设计 摘 要 本论文实现对单片机数据存储的扩展设计 。 由于单片机生产工艺简单,抗干扰能力强,是嵌入式系统中普遍使用的核心器件,但在一些数据采集系统或实 时控制系统中要求的数据量很大,内部数据存储器的容量有可能不够 ,这就需要扩展单片机容量。本设计 选择基于 I2C 的扩展存储设计 可以很好的解决这一问题。本论文 首先介绍了单片机的系统结构、工作原理和主要性能特点,根据单片机的串口结构和工作原理,采用 RS-232 接口标准,实现上位机到下位机的基本数据通信。然后阐述 I2C 总线协议的的特点及 通信 协议规则,进而介绍基于此协议的AT24C512 存
2、储芯片。最后介绍扩展存储的设计流程:利用仅靠数据线 ( SDA)和时钟线 ( SCL) 实现完善的半双工数据传输,即 CPU 与各个存储芯片仅靠这两 根 线实现信息交换。此设计的 I2C 总线系统与传统的并行总线系统相比具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点 。 关键词: MCS-51;串口通信; RS-232C 标准; I2C 协议 The Design of Expansion Storage Memory based on I2C Protocol Abstract The thesis is about the design of expans
3、ion storage memory about the MCU. As the MCUS production technology are simple and strong anti-interference ability, it is commonly used as a core devices in embedded systems, but in some data acquisition systems or real-time control systems , which require a large amount of data, the internal data
4、capacity may not be enough. It needs to expand the capacity of MCU. The design is very well to solve this problem that based on the I2C protocol with expanding the capacity of MCU. The thesis firstly introduced the MCU system structure, the principle and the main performance characteristic of MCU. I
5、n view of this, it communicated between the master computer (computer) and driven computer (MCS-51) with RS-232 interface standard. Secondly introduced the I2C bus protocol and communication characteristics of this protocol rules, and then it elaborated the EEPROM memory chip AT24C512, which based o
6、n the I2C bus protocol, and last it introduced the design proposal and concrete content of the expansion of storage. The overall system only depends on the data line (SDA) and the clock line (SCL) that realizes the consummation half-duplex data transmission. The CPU only depends on these two lines w
7、ith each periphery component to realize the exchange of information. The I2C bus system compares with the traditional parallel bus system which has the simple structure, the good maintainability, the easy to realize the system of expantion and to realize the modular standardization design, the relia
8、ble higher merit. Key words: MCS-51; serial communication; RS-232 standard; I2C protocol .目 录 论文总页数: 23 页 1 引言 . 1 1.1 课题背景 . 1 1.2 本课题研究的意义 . 1 2 单片机简介 . 1 2.1 嵌入式单片机的概念 . 1 2.2 MCS-51 单片机的主要性能特点 . 2 2.3 C51 系列单片机的硬件组成 . 3 2.4 单片机的最小系统 . 3 3 串行通信及其接口 . 4 3.1 通信基本概念 . 4 3.2 单片机串行口的工作原理 . 5 3.2.1 串行口
9、介绍 . 5 3.2.2 波特率的计算 . 6 3.2.3 串行口的初始化 . 6 3.3 串行通信接口标准 . 6 3.3.1 RS-232C 接口 . 6 3.3.2 本设计串口的接口电路 . 7 4 I2C 总线 . 7 4.1 I2C 总线基本概述 . 7 4.2 I2C 总线的主要特点 . 8 4.3 I2C 总线的基本原理 . 8 4.3.1 I2C 总线的基本接口电路 . 8 4.3.2 I2C 总线的寻址方式 . 9 4.3.3 I2C 总线 数据传输格式 . 9 4.4 串行 EEPROM 芯片 AT24C512. 10 4.4.1 AT24C512 的主要特性 .11 4.
10、4.2 管脚说明 .11 4.3 接口电路设计 . 12 4.4 本设计的硬件基础 . 12 5 扩展存储软件程序的设计 . 13 5.1 对芯片的读写操作基本原理 . 13 5.1.1 对芯片的写操作 . 13 5.1.2 对芯片的读操作 . 13 5.3 对芯片的写操作流程图 . 14 5.3.1 写 1Byte 到 AT24C512 的程序流程图 . 14 5.3.2 写一页数据到 AT24C512 中 . 14 5.3.3 程序编写的总流程图 . 16 5.4 程序设计相关子程序 . 16 5.4.1 程序读写子程序 . 16 5.4.2 对 4 片芯片的读操作子程序 . 17 5.4
11、.3 初始化 总 程序 . 18 6 扩展存储的实物演示 . 19 6.1 通过串口调试助手模拟数据读写状态 . 19 6.2 硬件实物图 . 19 结 论 . 20 参考文献 . 21 致 谢 . 错误 !未定义书签。 声 明 . 错误 !未定义书签。 第 1 页 共 23 页 1 引言 1.1 课题背景 单片机 ( Single Chip Microcomputer) 是将计算机的几个基本组成部分集成到一块芯片中, 使得一块集成电路芯片就是一部微型计算机 ,具备一般计算机的功能。它是面向控制的,在很多控制场合并不需要大量而复杂的数学计算,而单片机的生产工艺简单,抗干扰能力又比较强,因此大量
12、应用于各种环境 。 I2C( Inter Integrated Circuit) 总线是一种由 PHILIPS 公司开发的两线式串行总线, 用于连接微控制器及其外围设备 的通信协议 。 I2C 总线产生于 80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个 组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理 。如 温度传感 芯片 TM275/MAX6625, 数模转换 DAC 芯片 DAC5574, 数据采集 ADC 芯片 ADS1100
13、( 16bit ADC) /MAX1238( 12bit ADC) ;实时时钟芯片 DS1307/PCF8563。 I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此 I2C 总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。 总线能够以 10Kbps 的最大传输速率支持 40 个组件。 I2C 总线的另一个优点是 , 它支持多主控 , 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控 5。 1.2 本课题研究的意义 单片机以其体积小、价格低、抗干扰性好等特点,在现代控制系统
14、中常用在操作现场进行数据采集,以及实现现场控制。 而无论什么型号的单片机,内部都配置了一定容量的数据存储器,一般为 256 B。在一般 的应用场合,中间或 临时的数据量都不会很 大,内部的数据存储已经够用 。但对于一些数据采集系统,它们的数据量很大,内部的数据存储器的容量有可能不够用。因此在这种情况下,就要扩展外部数据存储器,该设计 选择基于 I2C 的扩展存储设计 , 扩展容量到64K4B。 2 单片机简介 2.1 嵌入式单片机的概念 嵌入式单片机, 是将整个计算机系统集成在一块芯片内,其核心部件是各种类型的嵌入式微处理器,芯片内部集成程序存储器、数据存储器、总线及其逻辑、定时、计数器, W
15、atch Dog、 I/O、串行口、 A/D、 D/A、 Flash 存储器、 E2PROM等各种必要功能和外部 设备。嵌入式单片机已成为机电产品的心脏部件,控制着第 2 页 共 23 页 机电产品的工作与操作应用。嵌入式单片机的特点是单片化、体积大大减小、功耗和成本降低、可靠性得到提高、软件代码少、自动化程度高和响应速度快等 5。 8051 系列有许多厂家生产的多种型号,他们在片内存储器容量、中断系统、各种功能的外围模块、可以达到的时钟频率和处理速度有很大的不同,但是,它们的硬件系统都有一个相同的基本结构 。 下面以 8051 为例介绍单片机的工作原理、主要性能特点、内部结构 。 图 2-1
16、 为单片机工作原理图 : 图 2-1 MCS-51 单片机 工作原理 方块图 2.2 MCS-51 单片机的主要性能特点 1) 片内存储容量较小 原因是受集成度的限制 , ROM 一般小于 8KB, RAM 一般小于 256B, 但可以在外部扩展 , 通常 ROM, RAM 可分别扩展至 64KB。 2) 可靠性高 因为芯片是按工业测控环境要求设计的 , 故抗干扰的能力优于 PC 机 。 系统软件 ( 如 : 程序指 令 、 常数 、 表格 ) 固化在 ROM 中 , 不易受病毒破坏 。 许多信号的通道均在一个芯片内 , 故运作时系统稳定可靠 。 3) 便于扩展 片内具有计算机正常运行所必需的
17、部件 , 片外有很多 供扩展用的 ( 总线 , 并行和串行的输入 /输出 ) 管脚 , 很容易组成一定规模的计算机应用系统 。 4) 控制功能强 具有丰富的控制指令 : 如条件分支转移指令 , I/O 口的逻辑操作指令 , 位处理指令 。 5) 实用性好 体积小 , 功耗低 , 价格便宜 , 易于产品化 5,6 。 振荡器 4KB 程序存储器 ( 8051) 128B 数据存储器 8051 STC CPU EEPROM Data Flash 可编程 I/O 口 216b 定时器 /计数器 开始信号 中断 第 3 页 共 23 页 2.3 C51 系列单片机的硬件组成 图 2-2 8051/52
18、 总体结构框图 2.4 单片机的最小系统 图 2-3 单片机最小系统电路图 1) 电源电路 :单片机与 TTL 电平是兼容的,因此单片机的供电电源一般P0 口驱动器 P2 口驱动器 P0 锁存器 P2 锁存器 EPROM /ROM 程序地址 寄存器 DPTR P C PC加 1 缓冲器 RAM 寄存器 B ACC S P 暂存 1 暂存 2 ALU PSW 定时及控制 P1 锁存器 P3 锁存器 P3 驱动器 P1 驱动器 中 断 串行口 定时器 RAM 地址寄存器 振荡器 第 4 页 共 23 页 为 +5V,随着各种工业上的要求不断提高,单片机也可以在低电压下工作,一般情况下如果没有作特殊
19、说明, VCC 都代表 +5V 电压。但一般电路中电源电压都不能超过 +5V。 2) 复位电路:单片机在启动运行时都需要复位 ,以使 CPU 和系统的其它部件处于一个确定的初始状态。 复位电路一般有两种形式,一种称为上电复位,一种称为按键 复位 。 3) 振荡电路:振荡电路有两种形式,一般我们采用外接晶体振荡的方式,因为在大多数情况下,我们要外接一个振荡信号 会大大增加电路的复杂程度 。 4) 程序存储器选择端: EA 管脚是内部和外部程序存储器的访问控制信号 ,当为高电平时既可访问片内程序存储器,也可访问外部程序存储器,为低时只访问外部程序存储器 7。 3 串行通信 及其接口 3.1 通信基
20、本概念 通信有并行通信和串行通信两种方式,在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。并行通信是将数据字节的各位用多条数据线同时进行传送。并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,如图 3-1 所示: 图 3-1 并行通信数据传输示意 图 串行通信是将 数据字节分成一位一位的形式在一条传输线上逐个地传送,其特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂,如图 3-2 所示: 图 3-2 串行通信数据传输示意 图 在串行通信中,数据通常是在两个端(如终端和微机)之间进行传送,按
21、照发送提示信号 应答提示信号 1 0 1 0 1 1 0 0 备 接 收 设 发送设备 8 位同时传送 接 收 设 备 发 送 设 备 8 位顺次传送 D0 第 5 页 共 23 页 数据流的方向可分为 3 种基本的传输方式 :单工、半双工、全双工、三种传输方式 。 端口通信 同步传输和异步传输 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。 异步 通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致 。 3.2 单片机串行口的工作原理 3.2.1 串行口介绍 8051 系列单片机 的各 IO 口在通
22、电时默认为高 电 平,有 32 根输入 /输出线,组成 4 个 8 位并行输入 /输出接口,分别称为 P0 口、 P1 口、 P2 口和 P3 口。这 4个接口可以并行输入或输出 8 位数据;也可按位使用,即每一根输入 /输出线都能独立地用作输入或输出。每个端口都由锁存器、输出驱动器、输入缓冲器组成。 其中 P0 口 是 一个双向口,它可以直接 用于对外部存储器的读写操作,输入和输出数据信息,所以也称为数据总线口; P1 口是标准的准双向口,一般用作普通的输入输出 口 ; P2 口作通用的 I/O 口使用; P3 口是一个双功能口,既可作通用口使用,也用作特殊功能口使用,一般情况都是用它的第二
23、功能。在 P3 口中,P3.0 与 P3.1 提供 全双工通信的 串行口,同时能够进行发送和接 收 7。 串行口 控制寄存器: SBUF 与 SCON 数据缓冲寄存器 SBUF:串行口缓冲寄存器 SBUF 是两个相互独立的接收缓冲器和发送缓冲器, 它们共用同一个地址。接收缓冲器用于存放接收到的数据,只能读出不 能写入;发送缓冲器用于存放要发送的数据,只能写入不能读出 。 串行口控制寄存器 SCON: SCON 是串行口的控制和状态寄存器, SCON 的各位可以位寻址,可以直接用各位的名字来进行操作。各位定义如下表 3-1 所示7: 表 3-1 SCON 的 各功能位 定义 D7 D6 D5 D
24、4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI SM0 与 SM1 作工作模式选择,其选择方式如表 3-2 所示 : 表 3-2 51 单片机串口工作模式介绍 SM0 SM1 工作方式 说明 波特率 0 0 模 式 0 同步移位寄存器 fosc/12 0 1 模式 1 10 位异步收发 由定时器控制 1 0 模式 2 11 位异步收发 fosc/132 或 fosc/64 1 1 模式 3 11 位异步收发 有定时器控制 REN: 允许接收位。由软件置位或清 0。 当此位为 1 时,允许接收;当此位第 6 页 共 23 页 为 0 时,禁止接收 ; RI
25、: 发送中断标志 位 。 在 模式 0 中,发送完第 8 位数据时,由硬件置位。在其 它 模式中,发送停止位之初, 由硬件置位 RI = 1 时申请中断, CPU 响应中断后发送下一帧数据 , 该位必须用软件来清除 ; TI: 接收终端标志 位 。在模式 0 中, 接收第 8 位结束时,由硬件置位。在其它 模式中,在接收停止位时,由硬件置位。 TI = 1,申请中断,请求 CPU 取走数据。而在工作模式 1 中, SM2 = 1 时,若未接收到有效的停止位,则不会对 TI置位 , 该位必须用软件清除 。 3.2.2 波特率的计算 在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可
26、对单片机串行口编程 设定 为四种工作方式 , 其中方式 0和方式 2的波特率是固定的,而方式 1 和方式 3 的波特率是可变的,由定时器 T1 的溢出率来决定 。 串行口的四种工作方式对应三种波特率 , 由于输入的移位时钟的来源不同,所以各种方式的波特率计算公式也不相同 ,具体计算公式如下: 1) 方式 0 的波特率 = fosc/12. 2) 方式 2 的波特率 = (2SMOD/64)fosc. 3) 方式 1 的波特率 = (2SMOD/32)(T1 溢出率 ). 4) 方式 3 的波特率 = (2SMOD/32)(T1 溢出率 ). 当 T1 作为波特率发生器时,最典型的用法是使 T1
27、 工作在自动 重 装入的 8位定时器方式(即方式 2,且 TCON 为 TR1=1,启动定时器)。这时溢出率取决于 TH1 中的计数值 4。 T1 溢出率 = fosc /12256 (TH1) 3.2.3 串行口的初始化 在 工作之前,应对 串行口 进行初始化,主要是设置产生波特率的定时器 1、串行口控制和中断控制。具体步骤如下: 1) 确定 T1 的工作方式(编程 TMOD 寄存器) 。 2) 计算 T1 的初值,装载 TH1、 TL1。 3) 启动 T1(编程 TCON 中的 TR1 位) 。 4) 确定串行口控制(编程 SCON 寄存器) 。 5) 串行口在中断方式工作时,要进行中断设置(编程 IE、 TI 寄存器) 。 6) 打开各中断标志(编程 EX0、 ES、 EA) 。 3.3 串行通信接口标准 3.3.1 RS-232C 接口 RS-232C 是 EIA(美国 电子工业协会) 1969 年修订 RS-232C 标准。 RS-232C
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。