《基于SPI的串行FLASH存储器读写系统设计》本科毕业设计.doc_第1页
《基于SPI的串行FLASH存储器读写系统设计》本科毕业设计.doc_第2页
《基于SPI的串行FLASH存储器读写系统设计》本科毕业设计.doc_第3页
《基于SPI的串行FLASH存储器读写系统设计》本科毕业设计.doc_第4页
《基于SPI的串行FLASH存储器读写系统设计》本科毕业设计.doc_第5页
免费预览已结束,剩余55页可下载查看

下载本文档

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

文档简介

第53页本科毕业设计(论文)基于SPI的串行FLASH存储器读写系统设计THE READ&WRITE SYSTEM DESIGN OF SERIAL FLASH MEMORY BASED ON SPI毕业设计任务书发题日期: 题 目 基于SPI的串行FLASH存储器读写系统设计 1、本论文的目的、意义 Flash存储器是在20世纪80年代末逐渐发展起来的一种新型半导体不易挥发性存储器,它具有结构简单、高密度、低成本、高可靠性和在系统的电可擦除性等优点。本设计要求在基于SPI接口下对FLASH存储器进行读写系统的开发,使存储芯片具有可读,写,擦除等功能。通过这次毕业设计,既能做出有用的软件产品,又对单片机、Flash存储器、SPI、以及C程序设计加深认识,争取融会贯通,用于以后的工作中。 2、学生应完成的任务 (1)了解Flash存储器; (2)了解SPI接口原理; (3)完成Flash存储器读写系统软件的设计; (4)要求所编制的软件在答辩时演示; (5)应完成不少于一万英文字符的翻译及将毕业设计(论文)的中文摘要翻译成英文。 3、论文各部分内容及时间分配:(共 10 周)第一部分 整体构思,收集查阅资料,调研 (1周)第二部分 可行研究、系统需求性分析 (2周)第三部分 系统总体设计、详细设计、编码和测试 (3周)第四部分 系统综合调试和完善 (2周)第五部分 毕业论文撰写、装订 (1周)评阅及答辩 (1周)摘 要本文在单片机程序文件Intel格式和二进制格式的研究下,学习了单片机SPI工作方式并对带SPI接口的串行FLASH存储芯片进行读写时序分析,设计了一套高准确率的FLASH存储芯片读写系统。FLASH存储芯片读写系统用于上位机与单片机之间进行数据传输,传输的每一帧数据都带有存储地址,数据字节个数和检验字节,具有很高的可靠性。在本设计中,该系统的研发背景是要编写一个可以对LED显示屏在线读写字库的软件。该软件下载LED显示屏字库文件,可读出字库文件,也可对字库文件进行校验。软件完成后,经过多次测试,准确率达100%。该软件同时也可在线修改程序存储器,用于对软件的升级,对控制板参数进行修改。该系统采用串行口进行通信,一方面上位机使用自带的超级终端软件就可进行控制,另一方面单片机自带串行接口,可以方便的接收数据。本设计首先编写了串行口通信软件模块,该模块可单字节,双字节和四字节和六字节数据读写。其次,对SPI接口总线,读写时序图进行分析,编写了基于SPI总线接口对串行flash芯片读写的程序模块。然后比较了二进制与Intel格式各自的优点,采用Intel格式,编写了Intel文件格式下载程序。最后将三个模块进行组合、测试,实现了Intel格式文件的可靠下载。关键词: Flash存储器 ;SPI ;Intel格式AbstractThrough researching the MCU program file Intel style and binary style, I was not only studying MCU SPI work methods, but also analyzed read&write sequence of serial FLASH memory chip based on SPI. Then designed a high accurate rate FLASH memory chip read&write system. FLASH memory chip read&write system can transmit data between PC and MCU .Meanwhile, all the transmitted data have memory address, the number of data byte and check byte. Whats more, the process had high reliability. In the design, the bank of system was to program software which could read and write to the LED displayer on-line .The software downloaded the LED displayer font which can be read and checked. The accurate rate also can up to 100% after programming. Except above described, the software can modify program memory to update and amend controlling board parameter. Further more, the system used serial port to communicate .On the one hand ,PC could control with super terminal software ;On the another hand, MCU has the serial port which can receive data conveniently. The design, firstly, programmed serial port communication module that can read and write by one byte, two bytes, four bytes and six bytes. Secondly, it analyzed SPI bus and read&write sequencers map, also compiled the serial port read&write program module based on SPI. Then, compared binary with Intel style and programmed Intel file style to download programs. Finally, the three modules were integrated、tested . So the Intel files were downloaded reliably.Key words:FLASH memory; SPI; Intel style 目 录第1章 绪 论11.1 设计目的11.2 课题研究背景11.3 设计意义21.4 本论文主要内容和结构3第2章 SST25VF0系列及SPI接口通信原理42.1 SST25VF040简介42.2 SST25VF040特性52.3 SST25VF040读写62.3.1 读指令(25 MHZ)62.3.2 写使能(WREN)72.4 SPI概述72.4.1 SPI结构72.4.2 SPI内部硬件结构82.5 SPI寄存器92.5.1 SPI控制寄存器SPCR92.5.2 SPI状态控制寄存器102.5.3 SPI数据寄存器SPDR112.6 SPI操作模式112.7 SPI读写122.8 SPI接口芯片同微处理芯片的接口132.8.1 对SPI接口类型芯片编程132.8.2 对SPI接口类型芯片编程时应注意的一些问题14第3章 系统硬件设计163.1 使用软件介绍163.1.1 PROTEL DXP163.1.2 PCB 板设计的工作流程173.1.3 KEIL C51173.1.4 KEIL C51操作183.2 系统硬件结构183.3 系统硬件结构介绍183.3.1 MAX232183.3.2 SST89E564RD193.3.3 SST89E564RD特性203.3.4 SST89E564RD管脚图213.3.5 SST89E564RD /SPI 描述22第4章 系统软件设计244.1 串行口操作244.1.1 串行口初始化244.1.2 串行输入254.1.3 ASC转换264.1.4 串行输出264.2 SPI操作274.2.1 SPI初始化274.2.2 串行FLASH读状态寄存器284.2.3 串行FLASH写状态寄存器294.2.4 字节编程304.3 下载HEX文件314.3.1 二进制与Intel格式比较314.3.2 HEX文件格式324.3.3 HEX文件结束记录344.3.4 扩展段地址记录344.3.5 扩展线性地址记录354.3.6 HEX文件校验354.4 HEX文件操作流程图374.4.1 写HEX文件374.4.2 读HEX文件40第5章 整体系统的实验及现场测试445.1 实验内容445.1.1 程序测试445.1.2 LED显示屏测试475.2 实验结论47结 论49致 谢51参考文献52附 录53第1章 绪 论1.1 设计目的此设计的目的是设计Flash存储器读写系统,使之能够在线写串行FLASH字库。写串行FLASH字库有两种方法。一种是编程器写,另外一种是在线写。之所以采用第二种是因为在线写,使得用户可以随时更改字库,相对来说较方便。在计算机与外设的串行通信中,所传输的数据包括两种格式:文本数据和二进制数据。因而对应的传输方式也有两种:文本(字符)模式和二进制(字节)模式。即在两种方式下,分别把数据以文本和二进制数据的形式传输。而在实际应用中,不同的场合,两者各有其特点。此设计采用了Intel格式的文件传输,也即HEX文件格式,这种格式可以用文本打开,所以属于文本模式。1.2 课题研究背景Flash存储器是Intel公司于1988年推出的一种新型非易失性大容量存储器。它因良好的性能而深受广大用户和半导体芯片制造商的青睐。如今的Flash存储器技术上已经成熟:存储容量为16MB32MB; 再编程次数达100万次;工作电压是AMD 公司提供的单一电压结构(5V 或3V )和Intel公司提供的“灵活电压”结构(Smart Voltage, 芯片支持2175V读电压和512V 写电压)。Flash存储器是在EPROM和EEPROM基础上发展起来的非易失性存储器,它最大的特性就是能够在切断供电电源后保持所存储的数据,且保存的时间可长达十年之久。Flash 存储器能够在不离开电路板或所在设备的情况下,实施擦除和再编程操作。因此结构简单,维护便利,存取速度快对环境适应能力强,抗振性能好。 Flash存储器的可靠性能高。Intel公司提供的28F020芯片,平均无故障时间可达160万小时。由于Flash器件常工作在高电场应力之下,其可靠性问题就显得尤为严重, 并成为其发展过程中最重要的课题之一。器件的可靠性主要表现在以下两个方面: Flash的耐久性(Endurance)和电荷保持特性(Charge Re2 tention)。其中,影响器件可靠性的因素主要有隧道氧化层的质量、隔离绝缘层的质量和厚度,等等。不同的编程方式引起Flash存储器可靠性退化的机制也不同。一般认为, 各种可靠性问题是氧化层中电荷陷阱、界面态产生、电子(空穴)俘获和去俘获(发射)共同作用的结果。Flash存储器的耐久性是指器件经过多次擦写后而不会失效的能力。由于薄栅氧化层中存在电荷陷阱,在擦写过程中, 这些陷阱将俘获电子,并进而改变擦写时的氧化层电场,导致擦写窗口特性小。显然,影响耐久性最直接的是超薄氧化层的质量,改进生长工艺, 减少其中的陷阱密度,可以明显提高器件的耐久性。Flash 存储器的保持特性是指存贮在浮栅上的电荷保持有效的能力,一般要求要达到十年以上。浮栅上的电荷一般通过栅氧化层和多晶间的绝缘层泄露,电荷遗失(charge loss)的机制有:通过镜像力势垒降低的热电子发射, 陷阱电子释放, 氧化层缺陷,离子玷污,循环擦写引入的电荷遗失,隧道氧化层击穿,等等。其中,镜像力势垒降低热电子发射的激活能比其他遗失机制要高,这种方式不是主要的;离子玷污和氧化层缺陷由工艺引起; 而其他的与Flash存储器的编程应力直接相关。目前较为通用的Flash存储器体系结构有三种: NOR 结构、ETOX 结构、NAND 结构。其中Intel 公司1983年提出的基于EPROM 隧道氧化层的ETOX (EPROM Tunnel Oxide)结构最为简单实用。目前Flash存储器的主要缺点是:只能进行全片擦除或分扇区擦除。Flash存储器是基于电荷存储原理来存储数据, 其数据写入都是利用电场强迫电子通过半导体薄层,这些电子的运动最终要引起栅极氧化层的击穿而使器件损坏, 因此它决定了Flash 存储器的再编程次数是有限的。Flash存储器的另一个致命缺点是数据改写的速度比较慢。 1.3 设计意义闪速存储器是在EPROM和EEPROM基础上发展起来的非易失性存储器,具有EPROM和EEPROM各自的优点,单元面积仅比EPROM大10%-15%。集成度可以做到EPROM相当水平。同时也具有EEPROM在系统上再编程能力,因此具有较高的灵活性。闪速存储器具有与EPROM相同的写入机理,与EEPROM相同的擦除机理,在单元结构上为双层多晶硅浮栅结构。因此在理论上,在设计和制造工艺上结局了关键性技术问题,使该期间得以迅速发展。近几年来,随着采用亚微米技术,大容量闪速存储器产品占领时常。伴随计算机向轻便型发展的趋势,即从台式机设置笔记本型向亚笔记本机,袖珍计算机方面发展,闪速存储器作为固态驱动器,在机器内部可取代一般的硬盘机和软驱,在外部作用作pc存储卡。从长远来看,闪速存储器将直接和微处理器接口,可以就地执行软件。因此闪速存储器有“后DRAM”之美称。闪速存储器的发展前景是不可估量的。FLASH存储芯片的用途非常广泛:1. 军事及航空航天领域Flash存储器目前广泛用作返回式卫星数据存储器、遥测数据记录器、卫星载机微存储器等。比普通EPROM和EEPROM更好的性能价格比;2.飞机、车辆试验测试Flash存储器的抗振性能好,存取速度快。适用于无人驾驶飞机及各种车辆试验测试,作为飞机、车辆等“黑匣子”的关键组成部分;3.个人计算机Flash 存储卡,又称作闪速固态盘(Flash SSD),既能用于个人计算机内部作为主存储器;又能用于计算机外部作为外存储器;4.各种便携式设备:如蜂窝电话、袖珍计算机、网络路由器、调制解调器、SCS I 控制器等。在1995年中期,欧洲的移动电话率先开始采用1-2M位的闪速存储,目前在欧洲GSM(全球移动通信系统)制式移动电话机中,已经采用8M位器件;在面向日本PDC(个人数字蜂窝电话)制式的电话机中,则采用的是 4-8M位器件。预计,今后装入移动电话机中的闪存存储器,除了用于存储程序和电话号码之外,还需要存储话音数据及汉字格式等,存储容量需要进一步增大。1.4 本论文主要内容和结构本论文在基于单片机Intel格式的研究下,针对带SPI接口的串行FLASH存储芯片的特点,设计了一套高准确率的FLASH存储芯片读写系统。给出了基于该控制系统的数据组织方法相应的硬件电路,同时给出了相应的软件程序流程及源程序。第1章 绪论,本章主要介绍了课题的研究背景、意义和主要内容,并简要介绍了FLASH存储芯片和目前应用中所面临的主要问题。第2章 介绍本设计所用的串行FLASH存储芯片SST25VF040和SPI接口原理。第3章 系统总体结构设计,本章确定了系统的设计目标,对系统整体性能进行了分析,选择了合适的芯片,给出了系统的软、硬件结构框图。第4章 系统硬件设计与开发,本章对控制板的各个模块进行了重点分析和说明,并对部分芯片进行了介绍。重点讲述了HEX文件下载的工作过程。第5章 整体系统的实验及现场测试,本章对控制板进行了现场实验,获得了预期效果。最后概括总结了作者在设计中的体会,并提出今后需要进一步研究和发展的方向。第2章 SST25VF0系列及SPI接口通信原理2.1 SST25VF040简介SSTs25串行FLASH系列都是四线,兼容SPI接口,这种接口允许占用很少的主板空间并最终降低总的系统代价的低Pin-count组件。25VF040设备是带有升级的操作频率的增强设备,它比以前的SST25VFxxxA消耗更少的能量。SST25VF040BSPI串行FLASH存储器是SSTs制造的,具有高性能的可执行CMOS高速FLASH技术。所具有的分闸元件设计和厚氧化物管道注射器支持更好的可靠性和相对的可变操作。SST25VF040设备在降低功能消耗的同时能显著提高执行功能和可靠性,在写的时候有单独的2.7-3.6V功能提供给25VF040。总的能量消耗是可使用的电压,电流,和可用时钟的一个功能。对于任何一个所给的电压范围,高速FLASH存储器使用更少的电流来变成,并拥有更少的擦除时间。在任何一个擦除或是编程操作中所用的总的能量消耗都少与易失性FLASH存储器技术。 SST25VF040设备有8个主要的SOIC (200 mils)和8个可连接的WSON (6mm x 5mm)组件。功能框图如图2-1: 图2-1 功能框图管脚说明:SCK 串行时钟 提供串行接口的时钟,命令,地址,或输入数据被上锁在时钟输入的上升沿。当处于时钟输入的下降沿输出数据被改变。SI 串行输入 把命令,地址或数据串行地转移到设备中。输入数据在串行时钟的上升沿被上锁。SO 串行输出 把数据转移出设备。在串行时钟的下降沿数据被改变。CE# 芯片使能 设备在CE#从高到低的转换中可使用。CE#在任何一个命令时序中必须处于低电平。WP# 写保护 写保护用于状态寄存器中的使能/不使能BPL字节。HOLD# 停止 在没有重新复位设备的同时暂时停止与SPIFLASH存储器串行通讯。VDD 能量提供 提供电压:2.7-3.6V。VSS 接地2.2 SST25VF040特性1读写操作电压2.7-3.6 V2串行接口结构:兼容SPI模式0和模式33高速时钟频率:50MHZ4优越的可靠性(1)重复擦写次数:100,000(2)超过100年的数据保存5低功耗: (1)激活读电流:10mA(2)等待电流:5uA6弹性擦除兼容:(1)均匀4KB扇区(2)均匀32KB扩展扇区(3)均匀64 KB扩展扇区7快速擦除和字节程序:(1)芯片擦除时间:35 ms(2)扇区/块擦除时间:18ms(3)字节程序时间:7us8自动地址添加程序9写操作结束(1)软件在状态存储器轮流检测到BUSY字节(2)BUSY状态在AAI模式中读出 SO10HOLD命令(HOLD#)11在为检测到设备时延迟发送串行序列12写保护(WP#)使用/不能使用状态寄存器的上锁功能13 软件写保护通过在状态寄存器Block-Protection字节14 温度范围:(1)商用(070 摄氏度)(2)工业(4085 摄氏度)15 可使用的组件:(1)8个主要的SOIC(2)8个可连接的WSON2.3 SST25VF040读写1存储结构 SST25VF040高速FLASH存储器是被组织在4KB可擦除扇区拥有32KB扩展块和64KB扩展可擦除块。2设备操作 SST25VF040通过SPI总线兼容协议来使用。SPI总线由4条控制线,用来选择设备的CE,以及通过串行数据 输入(SI),串行数据输出(SO),串行时钟(SCK)组成。SST25VF040支持SPI操作的模式0和模式3。这两种模式的区别如图2-2所示,也就是当总线主机处于等待模式SCK信号的状态并且没有数据被传输。对于两种模式SI在SCK的上升沿使用,SO在SCK的下降沿使用。图2-2 SST25VF040/SPI协议2.3.1 读指令(25 MHZ)读指令,03 H,支持25 MHZ读。输出数据是从特定的分配地址开始的。输出的数据流都是连续地通过所有的地址,直到最后被一个从低到高的CE#终止。内部的地址指针将会自动地增加直到到达最高的存储地址。一旦到达最高位的存储地址,地址指针将会自动地回到地址空间的最开始位。一旦来自地址分配1FFFFFH被读,那么下一个输出将会是来自地址分配000000H。读指令被初始化是被8bit命令执行的,03H,接着伴随地址比特A23-A0。CE#在整个读周期中必须仍然处于激活状态。读时序如图2-3所示: 图2-3读指令2.3.2 写使能(WREN)写使能指令设置写使能锁在状态寄存器直到一个允许写操作发送。WREN比任何一个写操作(编程/擦除)都先执行。WREN可能同时也被允许写状态寄存器(WRSR)指令执行;然而,状态寄存器中的写使能字节将会在WRSR指令的上升沿被清除。CE#必须在(WRSR)指令被执行前处于高位。如图2-4: 图2-4 写使能时序2.4 SPI概述 SPI接口的全称是Serial Peripheral Interface,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。2.4.1 SPI结构SPI系统使用四个I/O脚,它们是串行时钟SPSCK;主机输入/从机输出数据线MISO;主机输出/从机输入数据线MOSI和低有效的从机选择线SS。在不使用SPI系统时,这四根线可用作一般的输入线(PTD3、PTD2、PTD1、PTD0)。 1串行数据线(MISO、MOSI)MISO和MOSI用于串行接收和发送数据,先为MSB(高位),后为LSB(低位)。在SPI设置为主机方式时,MISO是主机数据输入给,MOSI是主机数据输出线。这时SPMSTR控制位(位于SPCR寄存器位5)应由程序设置为1从允许主机方式。在SPI设置为从机方式时,MISO变成从机数据输出线,而MOSI成为从机数据输入线。 2串行时钟(SPSCK)SPSCK用于同步数据从MOSI和MISO的输入和输出的传送。在SPI设置为主机方式时,SPSCK脚为输出;设置为从机方式时,SPSCK脚为输入。对主机方式,SPSCK信号由内部MCU总线时钟得出。在主机启动一次传送时,自动在SPSCK脚产生8个时钟。在主机和从机SPI器件中,SPSCK信号的一个跳变进行数据移位,在数据稳定后的另一个跳变进行采样。主机的SPCR寄存器的两位SPR1、SPR0选择时钟速率。3从机选择SS 在从机方式中,SS脚用于使能SPI从机进行数据传送。在主机方式中,如“禁止方式检测”时,SS可用作I/O口(PTD0),方向由DDRD0控制;如“允许方式检测”时,SS为输入口。图2-5 SPI通信图点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。2.4.2 SPI内部硬件结构SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如图2-6所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。SPI接口内部硬件图2-7: 图2-6 写寄存器 图2-7 内部结构图2.5 SPI寄存器 2.5.1 SPI控制寄存器SPCRSPI控制寄存器SPCR 除了DMAS位外,SPCR的各位均可读/写。 注:在设置CPOL和CPHA前,应先置SPE=0。 1 SPRIESPI接收中断允许:1=允许SPRF产生中断0=禁止SPRF产生中断2 DMASDMA选择位:对于无DMA功能的M68HC08单片机,它只可读出,并恒为“0”。 3 SPMSTRSP主机位:1=设置为主机方式 0=设置为从机方式 4 CPOL时钟极性位: 这位决定SPSCK的极性。 5 CPHA时钟相位:这位控制串行时钟和数据的定时关系。 6 SPWOMSPI线或方式位: 1=设置SPSCK、MOSI和MISO脚为开漏输出 0=设置SPSCK、MOSI和MISO脚为普通输出 7 SPE允许SPI位: 1=允许SPI系统 0=禁止SPI系统 8 SPTIESPI发送中断允许位: 1=允许SPTE中断0=禁止SPTE中断 2.5.2 SPI状态控制寄存器 SPSCR寄存器的ERRIE、MODFEN、SPR1、SPR0为可读/写位,而SPRF、OVRF、MODF、SPTE是只可读出位。 1 SPRFSPI接收器满标志: SPRF在数据从移位寄存器传至接收数据寄存器时置位。在SPRIE=“1”时可产生中断。在SPRF置位时读出SPSCR,再读出SPI数据寄存器,使清“0”SPRF。 1=接收数据寄存器满0=接收数据寄存器空 2 ERRIE“允许出错中断”标志位: 1=允许MODF和OVRR出错中断 0=禁止MODF和OVRF出错中断 3 OVRF“溢出”标志: 在软件示读出接收数据寄存器的数据时,移位寄存器又收到下一个字节。在OVRF置位时读出SPSCR,再读出SPDR,使OVRF清“0”。 1=数据接收时发生溢出 0=数据接收时没发生溢出 4 MODF“方式错”标志: 在主机方式置位MODFEN位时,SS脚变成0时置位MODF。在从机方式置位MODFEN位时,正在传送SS脚变高时置位MODF。在MODF置位时读出SPSCR,再写入SPDR,使MODF清“0” 。1=SS脚发生不正常电平 0=SS脚电平正常 5 SPTESPI“发送器空”标志: 一个字节从发送数据寄存器传送至移位寄存器时置位SPTE。允许时可产生中断。向SPI数据寄存器写入数据时使SPTE位清“0”。1=发送数据寄存器为空 0=发送数据寄存器不空 6 MODFEN“方式错允许”位: 它允许方式错检测功能。在主机方式,MODFEN=0,允许SS脚用作通用I/O口(PTDO)。在MODFBN=1时,允许方式错检测功能(这时SS脚为输入)。7 SPR1和SPR0SPI波特率选择位。 2.5.3 SPI数据寄存器SPDR SPI数据寄存器包括只可读出的接收数据寄存器和只可写入的发送数据寄存器。写入SPDR则访问发送数据寄存器;读出SPDR是访问接收数据寄存器。 2.6 SPI操作模式一般而言,SPI总线接口主要用于主从分布式的通信网络,由4根口线即可完成主从之间的数据通信。这四根口线分别为:时钟线(SCLK)、数据输入线(SDI)、数据输出线(SDO)、片选线(CS*),如MC68HC05,AT89S8252的接口设置即是如此。其中,CS*的有效与否完全由主控制器来定,时钟信号也由主控制器发出。通过SPI 接口进行数据通讯的逻辑时序图如图2-8 所示(数据读写应在上升沿)。它的主要特征是:串行数据同时输入和输出;同步工作;提供频率可编程时钟;数据传送结束标志。显然,这种总线扩展方法与并行扩展相比有着无可比拟的优点:1连线较少,简化电路设计。并行总线扩展方法通常需要8根数据线、816根地址线、23根控制线。而这种设计,仅需4根数据和控制线即可完成并行扩展所实现的功能;2器件统一编址,并与系统地址无关,操作独立性好;3器件操作遵循统一的规范,使系统软硬件具有良好的通用性;4非常适合光电隔离设计,使系统工作可靠性增加。在实际的应用中,各I/ O 芯片只能在收到CPU 发出的使能命令后,才能向CPU 传送数据或从CPU 接收数据,并遵循“高位(MSB)在前,低位(LSB)在后”的数据传输格式。如图2-8:图2-8 SPI接口的一般时序图串行外围接口一共有4种操作模式, 图2-9为其时序图。这些操作模式决定了传送与接收的时钟相位和极性, 换句话说, 也就是这些模式决定了利用时钟信号的哪个沿来控制数据传送的方向。这些模式一般由主机( CPU )来设置。当CPOL = 0 时,时钟信号SCK 在空闲时为“0”,即模式0和1;如果CPOL =1,则SCK在空闲时为“1”,即模式2和3 ;当CPHA =CPOL 时, 数据总在时钟信号的上升沿移进Flash,下降沿移出Flash,即模式0和3;当CPHA CPOL 时, 情况正好相反, 即数据在时钟信号的下降沿移进,上升沿移出,即模式1和2。SST25VF040支持最常用的模式0和3。 图2-9 SPI操作模式时序2.7 SPI读写在一个网络系统中,当外部网络节点同本地网络节点进行数据通信时,仅仅依靠上述的四根口线并不能很好的完成数据的通信,因而在某些含有SPI接口的网络节点器中另外设置了一根中断信号线(INT 或INT*),其主要功能是:在数据信息发送或接收完成、接收到其它外部网络数据信息以及SPI字节发送(或接收)完成时通知主控制器,以便于主控制器作下一步的处理工作。一般的读写时序如图2-10所示:图2-10 SPI的一般逻辑时序在基于SPI总线接口构成的通信网络中,通信可由主节点发起,也可由从节点发起。当主节点发起通信时,它可主动对从节点进行数据的读写操作。工作过程叙述如下:首先选中要与之通信的从节点(通常片选端为低有效),而后送出时钟信号,读取数据信息的操作将在时钟的上升沿(或下降沿)进行。每送出八个时钟脉冲,从节点产生一个中断信号,该中断信号通知主节点一个字节已完整接收,可以发送下一个字节的数据。通过以上的说明可以看出,基于SPI总线接口构成的主从分布式通信网络的主从节点仅是相对的。对于SPI接口网络而言,主从点需要完成的是给出片选信号及时钟信节,它可以主动的与各从节点进行信息的交流;而在从节点主动要求服务的情况下,它却是一种半主动的形式。同时也可以看出由SPI技术构成的网络接口信号线(INT,CS,SCK,SDI/SDO)如果辅之以相应完备的通信协议,其服务功能必然会大大的增强,相比于RS485网络而言,其通信速率也应有较大的提高。2.8 SPI接口芯片同微处理芯片的接口当前市场上具有SPI接口类型的芯片很多,比如有FLASHRAM型的24C45等、网络控制器SS-CP200,SSCP300等,LED显示驱动芯片MAX7219,MAX7221等等。些芯片通常需要同微处理器相连接才能最大程度发挥他们的效能。设计人员使用SPI接口芯片进行电路设计时具有一定的灵活性,既可选用具有SPI接口的微处理器AT8958252,68HC05等,也可选用没有SPI接口的单片处理器而使通用I/O端口来完成这些信号联接的要求,图2-11分别示出了这两种接口连接方式。图2-11给出的两种联接方式看起来似乎是一样,但在编程实现时有着显著的不同:第一种联接方式需对微处理的SPI接口进行初始化,在进行通信时仅对完整的字节进行处理,而第二种方式则需对进行通信的数据包的每个字节的每个数据位进行单独的处理。对于不带中断请求服务的接口芯片,在进行硬件连接时,将中断连接端去掉即可;另有一种SPI类型的接口芯片,它有只有一根信号输入线(SDI)如MAX7221则进行硬件连接时只须CS*,SCLK及SDI,(对于主节点为 SDO)几根信号线的连接即可,这些可根据不同的情况做出不同的选择。 图2-11 SPI接口芯片同微处理器的两种连接方式2.8.1 对SPI接口类型芯片编程1初始化SPI在使用前必须加以初始化。初始化操作主要是将控制字输入SPCR和SPSCR。 (1)置MSTR=1,以置MCU为主机方式,对I/O扩展来说,这是必须的。 (2)置SPR1和SPR0为适当值,以使SPI时钟(SPSCK)能满足所有扩展的I/O芯片的时钟要求。对M68HC08,在总线频率为8MHz时,最高的SPI时钟频率为4MHz,完成一次串行数据传送约需2ms。 (3)置CPOL和CPHA为适当值,以使SPI时序能满足所有串行I/O扩展芯片的时序要求。其中主要应考虑I/O扩展芯片是在SCK上升沿还是下降沿移入(或移出)数据。对一般的D触发器类型的扩展芯片,均是在SCK上升沿移入和移出数据。这样,对于输入芯片(如74HC165、166、589等),应选择MCU在下降沿采择输入数据的方式。即可选CPOL=0,CPHA=1。对于输出芯片(如74HC164、595等),应选择MCU在上升沿前半周(下降沿)输出数据的方式,即可选CPOL=0,CPHA=0或CPOL=1,CPHA=1。对于需同时扩展这两种芯片,则应置CPHA=1,CPOL=1,同时在输入芯片的时钟输入端前加一个反相器,而输出芯片的时钟输入端则直接SPSCK。 对于一些特殊的串行I/O扩展芯片,如串行A/D、D/A芯片,串行时钟芯片,串行EEPROM,串行LCD、LED驱动芯片等,应根据它们的特性选择适当的CPOL和CPHA,方法同前。 (4)按是否使用SPI中断来决定使SPIE=0还是1。一般情况下,对主机方式的SPI,均采用程序询问方式,特别是在SPI时钟速率较高时更应如此。对从机方式的SPI,应采用中断方式,因为这时的串行发送由外部主机启动。 2传送方法 在对SPCR和SPSCR进行初始化后,可进行数据传送。对每次数据传送,需执行四个操作: (1)“允许”指定的从件,这一般用清零(对低电平有效的器件)或置位(对高电平有效的器件)接至该器件的“允许输出”线实现; (2)向SPDR写入需发送的数据(或地址、命令等),以启动数据传送。对单独接收数据的场合,也需向SPDR执行写入操作(写入什么数据无关紧要)以启动数据的传送; (3)等待SPRF等于1。在传送完成前不能清除从器件的“允许”信号; (4)“禁止”器件,即清除从器件的“允许”信号(置位或清零允许输出控制端)。在执行串行数据输入场合,可以用读出SPDR中的输入数据来实现。对于多字节连结发送的场合,在第(3)步时,在等待SPTE等于1时,可再写入数据(转(2)。直至多字节发送完成。 2.8.2 对SPI接口类型芯片编程时应注意的一些问题在对具有SPI接口类型的芯片进行编程时,设计人员一般应注意以下几个问题:1SPI接口芯片读入或送出数据发生在时钟信号的上升沿或是下降沿。在进行编程时应使数据保持稳定后再进行数据的读写操作;2需保持的最低有效时间,避免在SPI 接口芯片未完成读写数据时即进行下一次的操作;3对于从节点主动寻求主动节点服务的接口芯片,应注意SPI接口芯片发出中断数据请示信号后,所需的响应时间,以避免出现SPI接口芯片发出请示服务信号后长时间处于等待状态而致使数据信息丢失等现象的出现。4在进行数据通信时,通信字节位发出的顺序确定出通信方式时MSBLSB方式还是以LSBMSB 的方式进行。第3章 系统硬件设计硬件设计的核心需要先确定使用什么类型的CPU,因为它对整体系统功能、开发难度和价格起到主导作用,所以在硬件开发中应该首先确定CPU,然后再依据实际需求设计周边电路。本设计是选用SST89E564单片机,MAX232以及两片SST25VF040。SST 的高可靠性,拥有专利的SuperFlash技术和存储器单元架构(memory cell architecture)有一系列的设计和生产flash EEPROMs的重要的优势。这些优势转换成为重大的价值和使用户可靠地受益。设计思想是在PC机上发出命令,利用SST89E564单片机控制两片SST25VF040,对它们进行读和写。以其中一片做主节点,另外一片做从节点。主从点需要完成的是给出片选信号及时钟信节,它可以主动的与各从节点进行信息的交流;而在从节点主动要求服务的情况下,它却是一种半主动的形式。 3.1 使用软件介绍本设计使用了两个软件PROTEL DXP和KEIL C51。3.1.1 PROTEL DXPProtel从1985年诞生dos版以来经过几十年的发展,逐渐形成了既有原理图的逻辑功能验证的混合信号仿真,又有了 PCB信号完整性分析的板级仿真,构成从电路设计到真实板分析的完整体系并集成了更多工具,使用方便,功能更强大。其主要特点如下:1通过设计文档包的方式,将原理图编辑、电路仿真、 PCB 设计及打印这些功能有机地结合在一起,提供了一个集成开发环境。 2提供了混合电路仿真功能,为设计实验原理图电路中某些功能模块的正确与否提供了方便。 3提供了丰富的原理图组件库和PCB封装库,并且为设计新的器件提供了封装向导程序,简化了封装设计过程。 4提供了层次原理图设计方法,支持“自上向下”的设计思想,使大型电路设计的工作组开发方式成为可能。 5 提供了强大的查错功能。原理图中的ERC(电气法则检查)工具和 PCB 的 DRC (设计规则检查)工具能帮助设计者更快地查出和改正错误。 6全面兼容 Protel 系列以前版本的设计文件,并提供了 OrCAD 格式文件的转换功能。 7提供了全新的 FPGA 设计的功能,这好似以前的版本所没有提供的功能。 3.1.2 PCB 板设计的工作流程1方案分析 决定电路原理图如何设计,同时也影响到PCB板如何规划。 根据设计要求进行方案比较、选择,元器件的选择等,开发项目中最重要的环节。 2电路仿真 在设计电路原理图之前,有时候会对某一部分电路设计并不十分确定,因此需要通过电路仿真来验证。还可以用于确定电路中某些重要器件参数。 3设计原理图组件 Protel DXP提供了丰富的原理图组件库,但不可能包括所有组件,必要时需动手设计原理图组件,建立自己的组件库。 4绘制原理图 找到所有需要的原理组件后,开始原理图绘制。根据电路复杂程度决定是否需要使用层次原理图。完成原理图后,用 ERC(电气法则检查)工具查错。找到出错原因并修改原理图电路,重新查错到没有原则性错误为止。 5设计组件封装 和原理图组件库一样,Protel DXP 也不可能提供所有组件的封装。需要时自行设计并建立新的组件封装库。 6设计 PCB 板 确认原理图没有错误之后,开始 PCB 板的绘制。首先绘出 PCB 板的轮廓,确定工艺要求(使用几层板等)。然后将原理图传输到 PCB 板中来,在网络表(简单介绍来历功能)、设计规则和原理图的引导下布局和布线。(设计规则检查)工具查错。 电路设计时另一个关键环节,它将决定该产品的实用性能,需要考虑的因素很多,不同的电路有不同要求。 7文檔整理 对原理图、PCB 图及器件清单等文件予以保存,以便以后维护、修改。3.1.3 KEIL C51keil Software德国Keil公司设计的处理电子期间和处理器有关的硬件设计,编写可靠性实验有关的程序。其中 的8051开发工具提供以下程序,你可以用它们来编译你的C源码,汇编你的汇编源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。Windows应用程序uVision2是一个集成开发环境,它把项目管理,源代码编辑,程序调试等集成到一个功能强大的

温馨提示

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

评论

0/150

提交评论