基于C51的扩展存储电路设计_第1页
基于C51的扩展存储电路设计_第2页
基于C51的扩展存储电路设计_第3页
基于C51的扩展存储电路设计_第4页
基于C51的扩展存储电路设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于I2C协议存储芯片的扩展存储电路设计摘要本论文实现对单片机数据存储的扩展设计。由于单片机生产工艺简单,抗干扰能力强,是嵌入式系统中普遍使用的核心器件,但在一些数据采集系统或实时控制系统中要求的数据量很大,内部数据存储器的容量有可能不够,这就需要扩展单片机容量。本设计选择基于I2C的扩展存储设计可以很好的解决这一问题。本论文首先介绍了单片机的系统结构、工作原理和主要性能特点,根据单片机的串口结构和工作原理,采用RS232接口标准,实现上位机到下位机的基本数据通信。然后阐述I2C总线协议的的特点及通信协议规则,进而介绍基于此协议的AT24C512存储芯片。最后介绍扩展存储的设计流程利用仅靠数据线(SDA)和时钟线(SCL)实现完善的半双工数据传输,即CPU与各个存储芯片仅靠这两根线实现信息交换。此设计的I2C总线系统与传统的并行总线系统相比具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点。关键词MCS51;串口通信;RS232C标准;I2C协议THEDESIGNOFEXPANSIONSTORAGEMEMORYBASEDONI2CPROTOCOLABSTRACTTHETHESISISABOUTTHEDESIGNOFEXPANSIONSTORAGEMEMORYABOUTTHEMCUASTHEMCUSPRODUCTIONTECHNOLOGYARESIMPLEANDSTRONGANTIINTERFERENCEABILITY,ITISCOMMONLYUSEDASACOREDEVICESINEMBEDDEDSYSTEMS,BUTINSOMEDATAACQUISITIONSYSTEMSORREALTIMECONTROLSYSTEMS,WHICHREQUIREALARGEAMOUNTOFDATA,THEINTERNALDATACAPACITYMAYNOTBEENOUGHITNEEDSTOEXPANDTHECAPACITYOFMCUTHEDESIGNISVERYWELLTOSOLVETHISPROBLEMTHATBASEDONTHEI2CPROTOCOLWITHEXPANDINGTHECAPACITYOFMCUTHETHESISFIRSTLYINTRODUCEDTHEMCUSYSTEMSTRUCTURE,THEPRINCIPLEANDTHEMAINPERFORMANCECHARACTERISTICOFMCUINVIEWOFTHIS,ITCOMMUNICATEDBETWEENTHEMASTERCOMPUTERCOMPUTERANDDRIVENCOMPUTERMCS51WITHRS232INTERFACESTANDARDSECONDLYINTRODUCEDTHEI2CBUSPROTOCOLANDCOMMUNICATIONCHARACTERISTICSOFTHISPROTOCOLRULES,ANDTHENITELABORATEDTHEEEPROMMEMORYCHIPAT24C512,WHICHBASEDONTHEI2CBUSPROTOCOL,ANDLASTITINTRODUCEDTHEDESIGNPROPOSALANDCONCRETECONTENTOFTHEEXPANSIONOFSTORAGETHEOVERALLSYSTEMONLYDEPENDSONTHEDATALINESDAANDTHECLOCKLINESCLTHATREALIZESTHECONSUMMATIONHALFDUPLEXDATATRANSMISSIONTHECPUONLYDEPENDSONTHESETWOLINESWITHEACHPERIPHERYCOMPONENTTOREALIZETHEEXCHANGEOFINFORMATIONTHEI2CBUSSYSTEMCOMPARESWITHTHETRADITIONALPARALLELBUSSYSTEMWHICHHASTHESIMPLESTRUCTURE,THEGOODMAINTAINABILITY,THEEASYTOREALIZETHESYSTEMOFEXPANTIONANDTOREALIZETHEMODULARSTANDARDIZATIONDESIGN,THERELIABLEHIGHERMERITKEYWORDSMCS51SERIALCOMMUNICATIONRS232STANDARDI2CPROTOCOL目录论文总页数23页1引言111课题背景112本课题研究的意义12单片机简介121嵌入式单片机的概念122MCS51单片机的主要性能特点223C51系列单片机的硬件组成324单片机的最小系统33串行通信及其接口431通信基本概念432单片机串行口的工作原理5321串行口介绍5322波特率的计算6323串行口的初始化633串行通信接口标准6331RS232C接口6332本设计串口的接口电路74I2C总线741I2C总线基本概述742I2C总线的主要特点843I2C总线的基本原理8431I2C总线的基本接口电路8432I2C总线的寻址方式9433I2C总线数据传输格式944串行EEPROM芯片AT24C51210441AT24C512的主要特性11442管脚说明1143接口电路设计1244本设计的硬件基础125扩展存储软件程序的设计1351对芯片的读写操作基本原理13511对芯片的写操作13512对芯片的读操作1353对芯片的写操作流程图14531写1BYTE到AT24C512的程序流程图14532写一页数据到AT24C512中14533程序编写的总流程图1654程序设计相关子程序16541程序读写子程序16542对4片芯片的读操作子程序17543初始化总程序186扩展存储的实物演示1961通过串口调试助手模拟数据读写状态1962硬件实物图19结论20参考文献21致谢22声明23第1页共23页1引言11课题背景单片机(SINGLECHIPMICROCOMPUTER)是将计算机的几个基本组成部分集成到一块芯片中,使得一块集成电路芯片就是一部微型计算机,具备一般计算机的功能。它是面向控制的,在很多控制场合并不需要大量而复杂的数学计算,而单片机的生产工艺简单,抗干扰能力又比较强,因此大量应用于各种环境。I2C(INTERINTEGRATEDCIRCUIT)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备的通信协议。I2C总线产生于80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。如温度传感芯片TM275/MAX6625,数模转换DAC芯片DAC5574,数据采集ADC芯片ADS1100(16BITADC)/MAX1238(12BITADC);实时时钟芯片DS1307/PCF8563。I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线能够以10KBPS的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控5。12本课题研究的意义单片机以其体积小、价格低、抗干扰性好等特点,在现代控制系统中常用在操作现场进行数据采集,以及实现现场控制。而无论什么型号的单片机,内部都配置了一定容量的数据存储器,一般为256B。在一般的应用场合,中间或临时的数据量都不会很大,内部的数据存储已经够用。但对于一些数据采集系统,它们的数据量很大,内部的数据存储器的容量有可能不够用。因此在这种情况下,就要扩展外部数据存储器,该设计选择基于I2C的扩展存储设计,扩展容量到64K4B。2单片机简介21嵌入式单片机的概念嵌入式单片机,是将整个计算机系统集成在一块芯片内,其核心部件是各种类型的嵌入式微处理器,芯片内部集成程序存储器、数据存储器、总线及其逻辑、定时、计数器,WATCHDOG、I/O、串行口、A/D、D/A、FLASH存储器、E2PROM等各种必要功能和外部设备。嵌入式单片机已成为机电产品的心脏部第2页共23页件,控制着机电产品的工作与操作应用。嵌入式单片机的特点是单片化、体积大大减小、功耗和成本降低、可靠性得到提高、软件代码少、自动化程度高和响应速度快等5。8051系列有许多厂家生产的多种型号,他们在片内存储器容量、中断系统、各种功能的外围模块、可以达到的时钟频率和处理速度有很大的不同,但是,它们的硬件系统都有一个相同的基本结构。下面以8051为例介绍单片机的工作原理、主要性能特点、内部结构。图21为单片机工作原理图振荡器4KB程序存储器(8051)128B数据存储器8051STCCPUEEPROMDATAFLASH可编程I/O口216B定时器/计数器开始信号中断图21MCS51单片机工作原理方块图22MCS51单片机的主要性能特点1片内存储容量较小原因是受集成度的限制,ROM一般小于8KB,RAM一般小于256B,但可以在外部扩展,通常ROM,RAM可分别扩展至64KB。2可靠性高因为芯片是按工业测控环境要求设计的,故抗干扰的能力优于PC机。系统软件(如程序指令、常数、表格)固化在ROM中,不易受病毒破坏。许多信号的通道均在一个芯片内,故运作时系统稳定可靠。3便于扩展片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统。4控制功能强具有丰富的控制指令如条件分支转移指令,I/O口的逻辑操作指令,位处理指令。5实用性好第3页共23页体积小,功耗低,价格便宜,易于产品化5,6。23C51系列单片机的硬件组成P0口驱动器P2口驱动器P0锁存器P2锁存器EPROM/ROM程序地址寄存器DPTRPCPC加1缓冲器RAM寄存器BACCSP暂存1暂存2ALUPSW定时及控制P1锁存器P3锁存器P3驱动器P1驱动器中断串行口定时器RAM地址寄存器振荡器图228051/52总体结构框图24单片机的最小系统图23单片机最小系统电路图第4页共23页1电源电路单片机与TTL电平是兼容的,因此单片机的供电电源一般为5V,随着各种工业上的要求不断提高,单片机也可以在低电压下工作,一般情况下如果没有作特殊说明,VCC都代表5V电压。但一般电路中电源电压都不能超过5V。2复位电路单片机在启动运行时都需要复位,以使CPU和系统的其它部件处于一个确定的初始状态。复位电路一般有两种形式,一种称为上电复位,一种称为按键复位。3振荡电路振荡电路有两种形式,一般我们采用外接晶体振荡的方式,因为在大多数情况下,我们要外接一个振荡信号会大大增加电路的复杂程度。4程序存储器选择端EA管脚是内部和外部程序存储器的访问控制信号,当为高电平时既可访问片内程序存储器,也可访问外部程序存储器,为低时只访问外部程序存储器7。3串行通信及其接口31通信基本概念通信有并行通信和串行通信两种方式,在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。并行通信是将数据字节的各位用多条数据线同时进行传送。并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,如图31所示发送提示信号应答提示信号10101100备接收设发送设备8位同时传送图31并行通信数据传输示意图串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,其特点传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂,如图32所示接收设备发送设备8位顺次传送D0图32串行通信数据传输示意图第5页共23页在串行通信中,数据通常是在两个端(如终端和微机)之间进行传送,按照数据流的方向可分为3种基本的传输方式单工、半双工、全双工、三种传输方式。端口通信同步传输和异步传输同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。32单片机串行口的工作原理321串行口介绍8051系列单片机的各IO口在通电时默认为高电平,有32根输入/输出线,组成4个8位并行输入/输出接口,分别称为P0口、P1口、P2口和P3口。这4个接口可以并行输入或输出8位数据;也可按位使用,即每一根输入/输出线都能独立地用作输入或输出。每个端口都由锁存器、输出驱动器、输入缓冲器组成。其中P0口是一个双向口,它可以直接用于对外部存储器的读写操作,输入和输出数据信息,所以也称为数据总线口;P1口是标准的准双向口,一般用作普通的输入输出口;P2口作通用的I/O口使用;P3口是一个双功能口,既可作通用口使用,也用作特殊功能口使用,一般情况都是用它的第二功能。在P3口中,P30与P31提供全双工通信的串行口,同时能够进行发送和接收7。串行口控制寄存器SBUF与SCON数据缓冲寄存器SBUF串行口缓冲寄存器SBUF是两个相互独立的接收缓冲器和发送缓冲器,它们共用同一个地址。接收缓冲器用于存放接收到的数据,只能读出不能写入;发送缓冲器用于存放要发送的数据,只能写入不能读出。串行口控制寄存器SCONSCON是串行口的控制和状态寄存器,SCON的各位可以位寻址,可以直接用各位的名字来进行操作。各位定义如下表31所示7表31SCON的各功能位定义D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0与SM1作工作模式选择,其选择方式如表32所示表3251单片机串口工作模式介绍SM0SM1工作方式说明波特率00模式0同步移位寄存器FOSC/1201模式110位异步收发由定时器控制10模式211位异步收发FOSC/132或FOSC/64第6页共23页11模式311位异步收发有定时器控制REN允许接收位。由软件置位或清0。当此位为1时,允许接收;当此位为0时,禁止接收;RI发送中断标志位。在模式0中,发送完第8位数据时,由硬件置位。在其它模式中,发送停止位之初,由硬件置位RI1时申请中断,CPU响应中断后发送下一帧数据,该位必须用软件来清除;TI接收终端标志位。在模式0中,接收第8位结束时,由硬件置位。在其它模式中,在接收停止位时,由硬件置位。TI1,申请中断,请求CPU取走数据。而在工作模式1中,SM21时,若未接收到有效的停止位,则不会对TI置位,该位必须用软件清除。322波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程设定为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率,由于输入的移位时钟的来源不同,所以各种方式的波特率计算公式也不相同,具体计算公式如下1方式0的波特率FOSC/122方式2的波特率2SMOD/64FOSC3方式1的波特率2SMOD/32T1溢出率4方式3的波特率2SMOD/32T1溢出率当T1作为波特率发生器时,最典型的用法是使T1工作在自动重装入的8位定时器方式(即方式2,且TCON为TR11,启动定时器)。这时溢出率取决于TH1中的计数值4。T1溢出率FOSC/12256TH1323串行口的初始化在工作之前,应对串行口进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下1确定T1的工作方式(编程TMOD寄存器)。2计算T1的初值,装载TH1、TL1。3启动T1(编程TCON中的TR1位)。4确定串行口控制(编程SCON寄存器)。5串行口在中断方式工作时,要进行中断设置(编程IE、TI寄存器)。6打开各中断标志(编程EX0、ES、EA)。第7页共23页33串行通信接口标准331RS232C接口RS232C是EIA(美国电子工业协会)1969年修订RS232C标准。RS232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。RS232C接口规定使用9针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。332本设计串口的接口电路本设计使用MAX232芯片实现串口通信的电平转换,接口电路如图33所示图33本设计串口通信的电平转换其中的RXD,TXD端分别与单片机的RXD,TXD相连,能够实现RS232电平的转换,顺利进行上位机与下位机串口的信号传输。4I2C总线41I2C总线基本概述在现代通信系统中,一个系统中有众多的IC需要进行相互之间以及与外界进行通信。为了提高硬件和简化电路的设计,PHILIPS开发了一种用于内部IC控制的、简单的双向两线串行总线I2C。其数据传输率在标准模式下为100KB/S,但随着数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400KB/S)及高速模式(34MB/S)。它采用二线制传输,一根是数据线SDA,另一根是时钟线SCL,所有I2C器件都连接在同名端的SDA和SCL上,每一器件有一个唯一的地址。它是一个多主机总线,即总线上可以有一个或多个主机(或称主控制器件),总线运行由主机控制5。I2C总线它支持多主和主从两种工作方式第8页共23页1多主方式,即总线上可以有多个主机的工作方式。I2C总线需要通过硬件和软件仲裁主机对总线的控制权,由于存在仲裁总控制权的问题,因而I2C总线的协议模拟非常困难。2主从方式中,系统中只有一个主机,总线上的其它器件都是具有I2C总线接口的外围器件(称为从机或从器件),总线只有主机对I2C总线从器件的读写访问,没有总线的竞争问题。这种方式下只需要单片机模拟主发送和主接收时序,就可以完成对器件的读写操作(SCL时钟信号由主机产生)。这种情况下,I2C总线时序可以模拟,可以使I2C总线的使用不受主机必须带I2C总线接口的限制。42I2C总线的主要特点1总线的驱动能力强。I2C总线的外围扩展器件都是COMS型的,功耗极低。总线上扩展的I2C器件的数量主要受到器件地址的限制。2总线只有两根线。不论功能差别有多大,都是通过串行时钟线和串行数据线连接到I2C总线上的。3每个连接到总线上的器件地址由芯片内部硬件电路和外部地址共同决定,避免了片选线的连接方法,并建立了简单的主从关系。4它是一个真正的多主总线,带有竞争监测和仲裁电路,多个主机任意发送而不破坏总线上的数据。5同步时钟和数据线配合产生可以作为启动、应答、停止或重新启动串行发送的握手信号5。43I2C总线的基本原理431I2C总线的基本接口电路由于I2C总线为双向同步串行总线,因此I2C总线接口内部为双向传输电路,即各器件连接到总线的输出端是漏极开路输出或集电极开路输出的电路结构,故两条总线上必须有上拉电阻R,R一般选择1K10K。典型的I2C总线接口电路如图41所示4I2C器件I2C器件I2C器件I2C器件SCLSDASDASDASDASDASCLSCLSCLSCL1K1KP13P14STC89C525V第9页共23页图41I2C总线的接口电路432I2C总线的寻址方式I2C总线启动信号后,主器件发出的第一个字节数据用来选择从器件地址,其中前7位为地址码,第8位为方向位(R/W)。方向位为0表示发送,即主器件把信息写到所选择的从器件;方向位为1表示主器件将向从器件读信息。启动信号后,系统中的各个器件将自己的地址和主器件发送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,是接收信息还是发送信息则由第8位(R/W)确定,寻址字节的格式如表41所示4表41I2C总线的寻址方式433I2C总线数据传输格式1I2C总线信号主器件和从器件之间的一次数据传送为一帧。一帧由启动信号和若干个数据字节以及应答位和停止信号组成。I2C总线是按位传送的,在时钟线SCL的一个时钟周期内只能传送一位数据,而且数据线SDA上的信号电平在SCL为高电平期间必须稳定(除启动信号和停止信号外),数据线上的信号变化只允许在SCL的低电平期间发生,如图42所示数据线保持稳定,数据有效允许数据变化图42I2C总线接口电路时序在I2C总线技术规范中,启动信号和结束信号以及应答信号的定义如图43所示。当时钟线SCL为高电平时,主器件向SDA线上送出一个由高到低的电平,表示开始信号,总线上出现开始信号后,就认为总线处在工作状态;当SCL线为高电平时,主器件向SDA线上送出由低到高的电平,表示结束信号,总线上出现结束信号后,就被认为总线处于不忙或空闲状态。I2C总线上第9个时钟脉冲对应于应答位,相应数据线上低电平时为应答信号,高电平时为非应位序D7D6D5D4D3D2D1D0寻址地址引脚地址方向位寻址字节DA3DA2DA1DA0A2A1A0R/W第10页共23页答信号。停止信号应答信号非应答信号开始信号图43开始信号、结束信号和(非)应答信号2I2C总线上的数据传输格式在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK),数据传送每次都是先传送最高位,通常从器件在接收到每一个字节后都会做出响应,准备接收下一个字节,主器件可继续传送,如果从器件正在处理一个实时事件而不能接收数据时,例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C总线上的数据字节,这时可以在应答信号后使时钟SCL线保持低电平,控制总线暂停。当接收器准备好接收下一个字节时再释放时钟线SCL,使数据传输线继续进行4。如表42、表43和表44所示为器件的写读操作格式其中S为开始信号,P为结束信号,A为应答信号,DW为对器件地址写,DR为对器件地址读,DE器件地址内的偏移地址,DATA为数据。主控制器的写操作主控制器向被寻址的被控器发送数据字节的操作,整个传输过程中数据的方向不变。其格式如下字节写格式如表42所示表42主控制器字节写操作数据格式SDWADEADATAAP页写格式如表43所示表43主控制器页写操作数据格式SDWADEADATAADATAAP主控制器读操作格式主控制器从被控器中读入数据字节的操作,整个传输过程中除寻址外都是被控器发送,主控器接收的过程。其格式如表44所示表44主控制器读操作数据格式SDWADEASDRADATAP第11页共23页44串行EEPROM芯片AT24C512AT24C512是ATMEL公司生产的64KBYTE串行电可擦除的可编程存储器,内部有512页,每一页为128BYTE,任一单元的地址为16位,地址范围为00000FFFFH。它采用8引脚封装,具有结构紧凑,存储容量大等特点,可以在I2C总线上并接四片芯片,特别适合于大容量数据存储要求的数据采集系统,因此在测控系统中被大量采用4。441AT24C512的主要特性1具有如下3种工作电压50V(45V55V)27V(2755V)18V(18V36V)2存储容量为65536BYTE即512KBIT(64K8BIT)3采用斯密特触发,可抑制输入噪声4符合双向数据传送协议5与100KHZ,400KHZ,1MHZ的I2C兼容6具有硬件写保护和软件数据保护功能7具有128BYTE页写入缓冲器自动定时的写周期8可擦写次数100000次;ESD保护电压4KV;数据可以保存40年9CMOS低功耗技术,最大写入电流为3MA10具有8引脚DIP及20引脚SOIC封装等多种式样442管脚说明AT24C512的管脚如图44所示1A0VCC82A1WP73NCSCL64GNDSDA5图44AT24C512的封装各引脚的功能如下A0、A1地址选择输入端,在串行总线结构中,如需要连接4个AT24C512芯片,则可用A0、A1来区分各芯片,A0、A1悬空时为0,但一般不悬空。SDA双向串行数据输入输出口,用于存储器与单片机之间的数据交换。SCL串行时钟输入,通常在上升沿将SDA上的数据写入存储器,而在下降沿从存储器读出数据并送往SDA。WP为写保护输入,此引脚与地相连时,允许写操作;与VCC相连时,所有的写存储器操作被禁止;如果不连,该脚将在芯片内部下拉到地。1A0VCC82A1WP73NCSCL64GNDSDA5第12页共23页VCC电源GND接地NC悬空43接口电路设计本设计的接口电路如图45所示由于采用I2C串行总线接口,连线非常简单。如果单片机没有集成硬件I2C总线接口,可以采用P13,P14口线来模拟I2C,AT24C512的SDA和SCL为开漏输出,故接入1K的上拉电阻4。图4524C512与单片机的接口电路44本设计的硬件基础1采用STC89C52芯片,自带ISP,可直接在线写程序。2MAX232芯片,实现PC机与C52单片机串口通信的电平转换。3基于I2C的EEPROM芯片AT24C512四片。4蜂鸣器、USB电源接口以及若干LED、电阻、电容等。5本设计的单片机外围电路如图46所示。整个下位机系统包括STC89C52所必须的驱动电路,电源信号灯,四片EEPROM芯片,两个读写LED灯,一个写满或读空声光警示。设计本硬件时使用的是PROTEL99SE软件,绘制原理图如图46所示1,4。第13页共23页图46本设计的原理图由原理图生成的PCB,及手动布线PCB如图47所示1,4图47扩展存储软件程序的设计5扩展存储软件程序的设计51对芯片的读写操作基本原理511对芯片的写操作1写操作分为字节写和页写两种方式。通常EEPROM的写入占用一定的写入时间,但AT24C512内部有128BYTE的页写缓存,使得操作该器件如同操作SRAM一样方便,页面缓存使得两种写方式的操作过程相同,区别仅在于写入数据字节的多少。下面以字节写入为例介绍写操作过程。2在字节写操作模式下,主器件首先给从器件发起始信号和从器件地址信息。在从器件送回应答信号后,主器件再发送两字节的地址信息到AT24C512地址指针,主器件在收到从器件的应答信号后,再发送1BYTE的数第14页共23页据到被寻址的存储单元,从器件再次应答,并在主器件产生停止信号后开始内部数据擦写,在内部擦写过程中,从器件不再应答主器件的任何请求。3在页写方式中,AT24C512可以一次性写入一页128BYTE。其初始化过程与字节写方法基本相同,不同的是写入一个数据字节后,单片机不发停止状态,而是在应答信号后接着输入127BYTE。每1BYTE接收完毕后,AT24C512则照样输出一个应答信号4,5。512对芯片的读操作读操作有当前地址读,随机读,读串三种方式。其初始化过程基本与写操作相同,只是在设备选择的最低位要改成读而已。当前地址读操作方式时,内部数据的地址将保持在最后的读写操作地址加上1,直到读到最后字节后又回到最开始的位置。而随机读操作之前先要向AT24C515写入1BYTE地址,然后才能读。读串操作既可以是当前地址读,也可以是随机读。当单片机接收到一个数据后,会回应一个应答信号。AT24C512在接收到应答信号后会将地址加1,接着输出下1BYTE。当单片机接收到数据但不送应答信号时,读过程结束。本设计采用的是随机读的方式4,5。53对芯片的写操作流程图531写1BYTE到AT24C512的程序流程图AT24C512内部有64BYTE个单元,每个单元都对应一个16BIT的地址,地址范围为00000FFFFH。对应的流程图如图411所示2,3第15页共23页主机发送开始信号主机发送片选地址主机发送片内高8BIT地址从机应答主机发送片内低8BIT地址主机发送需要写入的数据主机发送停止信号置发送失败标志位结束从机应答从机应答从机应答无应答无应答无应答无应答有应答有应答有应答有应答图411写1BYTE程序流程图532写一页数据到AT24C512中通常对EEPROM器件写入时总需要一定的时间(510MS),因此在写入程序中无法连续写入多个数据字节。为了解决连续写入多个数据字节的问题,EEPROM器件中常设有一定容量的页写入数据寄存器。用户一次写入EEPROM的数据字节不大于页写字节数时,可按通常RAM的写入速度,将数据装入EEPROM的数据寄存器中,随后启动自动写入控制逻辑。经过510MS的时间,自动将数据寄存器中的数据同步写入EEPROM的指定单元。这样一来,只要一次写入的字节数不多于页写入容量,总线对EEPROM的操作可视为对静态RAM的操作,但要求下次数据写入操作在510MS之后进行。对AT24C512进行页写入指向其片内指定首地址连续写入不多于N个字节数据的操作。M3RETURN/溢出,不用再写ADD0XA0ADD2START第18页共23页WRITE_BYTEADD/写芯片地址RESPONSADDG_SIZE0X10000/0X100WRITE_BYTEADD/写地址1RESPONSADDG_SIZE0X100000X100WRITE_BYTEADD/写地址2RESPONSWRITE_BYTEX/写数据RESPONSSTOPG_SIZEDELAYMS1542对4片芯片的读操作子程序UCHARREADONEDATAUNSIGNEDLONGI/返回当前地址的数据/当前位置的编号为I,将它换算成芯片地址和芯片内偏移量地址UCHARADDI/0X10000/ADD0,1,2,3如果大于3就会溢出IFADD3RETURN0X00/溢出,不用再读ADD0XA0ADD2STARTWRITE_BYTEADD/写芯片地址RESPONSADDI0X10000/0X100WRITE_BYTEADD/写地址1RESPONSADDI0X100000X100WRITE_BYTEADD/写地址2RESPONSSTARTADDI/0X10000ADD0XA1ADD2第19页共23页WRITE_BYTEADD/写芯片地址RESPONSADDREAD_BYTESTOPDELAYUS10RETURNADD543初始化总程序VOIDINITCOMVOIDTMOD|0X20/设置定时器1为工作方式2,M11,M00TH10XFD/实现数据传输速率9600BIT/S晶振为110592MHZTL10XFDTR11/启动定时器T1SM00/选择串口工作方式1SM11REN1/打开接收允许EA1/打开中断ES1/打开串行口中断PCON0X00EX01/打开外部中断0IT00/控制INT0的触发方式0为低电平1为下降沿在程序中定义,P16与P15口分别为单片机写入芯片指示灯和读芯片数据指示灯。6扩展存储的实物演示61通过串口调试助手模拟数据读写状态打开串口调试助手设定串口为COM1口,波特率为9600,无检验位,取消十六进制发送与显示,在发送框中任意输入字符数据,点击发送则数据通过硬件发送到I2C芯片中,并点亮写指示灯;按下读操作中断,则在串口调试助手中显示I2C芯片中存放的数据。成功操作界面如图61所示第20页共23页图61串口调试助手读写界面若要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论