外文文献原文_第1页
外文文献原文_第2页
外文文献原文_第3页
外文文献原文_第4页
外文文献原文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 绪论111 研究的目的及意义112 现状分析及发展趋势213 系统组成及工作原理4131 系统组成4132 系统工作原理42 系统方案设计及器件选择421 系统方案的设计4211 系统的开发流程4212 系统的设计方案722 I2C总线通信协议的介绍7221 总体特征8222 I2C总线的通信协议9223 位传输923 存储器的选择1124 可编程逻辑器件的选择153 系统的硬件设计1631 24C64存储器的设计1632 FPGA的配置电路设计1733 去耦电容的设计184 系统的软件设计1941 Xilinx设计流程19411 设计输入阶段19412 Xilinx的FPGA实现阶

2、段19413 设计完成及下载2042 模块图20421 24C64存储模块20422 数据缓存模块26423 FPGA内部存储模块26424 高阻态程序模块275 运行结果286 本次设计中遇到的问题和解决方案287 结论29附录A 原理图30附录B PCB板图31参 考 文 献32致 谢33外文文献原文译文用FPGA实现控制基于I2C总线的EEPROM摘 要本文首先简要的介绍了存储器的发展现状、发展趋势、研究的目的及意义。然后还介绍了I2C总线的通信协议和在总线协议控制下实现EEPROM存储的24C64芯片的读写规则,以及FPGA的优缺点。本文所研究的是用VHDL语言编程后的可编程逻辑器件作

3、为控制器,通过USB接口,计算机可以把帧结构数据下载到EEPROM中。再把EEPROM中的数据读回计算机进行校验。在此设计中,采用了以CPLD/FPGA控制逻辑模块为核心电路的实现方式。从而实现了通过计算机将所需程序利用JTAG接口下载到FPGA中和将需要下载的数据利用USB控制卡下载到FPGA中,再通过FPGA内以下载的程序控制将下载的数据存储到EEPROM中。数据存储完毕后,再利用FPGA内部的程序控制将所存储的数据读取出来并利用USB控制卡发送回计算机中进行校验。关键词:存储器,可编程逻辑器件,数据1 绪论11 研究的目的及意义随着电子科学技术的飞速发展,存储器件也不断的更新换代,人们与

4、存储器件的关系也越来越密切。从汞延迟线、磁带、磁鼓、磁心到磁盘、光盘以及纳米存储,每一次的技术的进步都拉近了人与存储器之间的距离。有了存储器,计算机才具有记忆功能,从而实现程序存储,使计算机能够自动高速地进行各种复杂的运算12。存储器大致可分为两大类:易失和非易失。易失存储器在系统关闭时立即失去存储在内的信息;它需要持续的电源供应以维持数据。大部分的随机存储器(RAM)都属于此类。非易失存储器在系统关闭或无电源供应时仍能保持数据信息。一个非易失存储器(NVM)器件通常也是一个MOS管,拥有一个源极,一个漏极,一个门极另外还有一个浮栅(FLOATING GATE)。它的构造和一般的MOS管略有不

5、同:多了一个浮栅。浮栅被绝缘体隔绝于其他部分。非易失存储器又可分为两类:浮栅型和电荷阱型。Kahng 和 Sze 在1967年发明了第一个浮栅型器件,在这个器件中,电子通过3nm厚度的氧化硅层隧道效应从浮栅中被转移到substrate中3。隧道效应同时被用于对期间的编程和擦除,通常它适用于氧化层厚度小于12nm。 储存在浮栅中的电荷数量可以影响器件的阈值电压,由此区分期间状态的逻辑值1或0。在浮栅型存储器中,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。所有的浮栅型存储器都有着类似的原始单元架构。第一个门极被埋在门极氧化层和极间氧化层之间,极间氧化层的作用是隔绝浮栅区,它的组成可以

6、是氧-氮-氧,或者二氧化硅。包围在器件周围的二氧化硅层可以保护器件免受外力影响。第二个门极被称为控制门极,它和外部的电极相连接。浮栅型器件通常用于EPROM(Electrically Programmable Read Only Memory)和EEPROM(Electrically Erasable and Programmable Read Only Memory)4。电可擦除可编程EEPROM在应用系统中既可由软件对其内容进行随机读写,又可在芯片断电的情况下长期保存片内信息,因此兼备了RAM和ROM的基本特点。EEPROM有串行和并行两大类。并行EEPROM存储容量较大,读写方法简单,但

7、价格较高,适用于信息量较多的场合。串行EEPROM结构简单紧凑,价格低廉,但其读写方法复杂,存储单元较小,一般用于掉电情况下需要保存或一些数据需要在线修改的场合,这类数据不多却很重要,若使用常规的RAM芯片,就必须附带一套性能可靠的掉电保护系统,这不仅增加了线路设计的复杂性,同时也给设备的运行和维护带来了诸多不便。使用串行EEPROM来存储这类数据是最合适不过的。尤其随着当今智能化仪表趋于小型化,再加上真正需要保存的以及预设的数据位、控制位、保密位并不占据太多的存储空间,串行EEPROM的体积小,功耗低,硬件接口非常简单,因而越来越受到人们的重视,在智能化仪器仪表、控制装置等领域得到广泛的应用

8、。在测量仪器中使用EEPROM保存数据,这是仪器具有校准、标定功能的基本条件EEPROM读写数据安全可靠保证了在测量过程中数据稳定5。但和Flash存储器进行比较,Flash存储器结合了以往EPROM 结构简单、密度高和EEPROM 在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性6。Flash存储器和传统存储器的最大区别在于它是按块(sector)擦除,按位编程,从而实现了快闪擦除的高速度7。本文所研究的是用VHDL语言编程后的可编程逻辑器件作为控制器,通过编程接口计算机可以把帧结构数据下载到EEPROM中。再可以把写入EEPROM中的数据读回计算机进行校验。12 现状分析及发展

9、趋势电荷阱型器件是在1967年被发明的,也是第一个被发明的电编程半导体器件。在这类型的存储器中,电荷被储存在分离的氮阱中,由此在无电源供应时保持信息。电荷阱器件的典型应用是在MNOS(Metal Nitride Oxide Silicon),SNOS(Silicon Nitride Oxide Semiconductor)和SONOS(Silicon Oxide Nitride Oxide Semiconductor)中。世界上第一个EPROM,是一个浮栅型器件,是通过使用高度参杂的多晶硅(poly-Si)作为浮栅材料而制成的,它被称为浮栅雪崩注入型MOS存储器(FAMOS)。它的门极氧化层厚

10、度为100nm, 由此保护电荷流向substrate。 对存储器的编程是通过对漏极偏压到雪崩极限使得电子在雪崩中从漏极区域被注入到浮栅中。这种存储器的擦除只能通过紫外线照射或X光照射。如今,这种EPROM的封装形式通常是陶瓷带有一个可透光的小窗口,或者是一个塑料封装的没有石英窗的。这些存储器被称为一次性编程存储器(OTP),这种存储器很便宜,但是在封装后要测试他们是不可能的。带有石英窗口的EPROM价格比较贵,但是由于可被擦除,所以可以在封装后作另外的测试8 9。虽然在70年代有了紫外可擦除型的商业用非易失存储器,研制电可擦写型非易失存储器的吸引力正在逐渐扩大。 H.IIZUKA et.al

11、发明了第一个电可擦写型非易失存储器,被称为叠门雪崩注入型MOS(SAMOS)存储器。SAMOS存储器由两个多晶硅门和一个外部控制门组成3。外部控制门的出现使得电可擦写成为了现实,并且提高了擦除的效率。电可擦写型非易失存储器的电擦除是通过将浮栅中的电荷量恢复到未注入时的水平实现的。比起紫外照射擦除产品,这种产品的封装成本低廉很多。缺点是单位存储单元的尺寸要比以前大很多,使得晶元面积也大了很多1011。EEPROM单元由两个晶体管组成,一个是浮栅晶体管,另一个是选择晶体管。选择晶体管是用于在编程和擦除时选择相应的浮栅晶体管。后来,由于加入了错位修正电路以及修补电路,晶元尺寸被再次增大。在80年代,

12、一个经典的非易失存储器产品被发明了,那就是闪存。第一个闪存产品通过热电子注入机制实现对器件编程,而擦除则采用了隧道效应。这种新型的存储器只能被整片或一个区域的删除而不能被单字节删除。因此,选择晶体管被移除了,由此也减小了单元的尺寸12。而如今,意法半导体(ST)推出两款工作电压为1.8V的512Kb EEPROM器件M95512和M24512。这些EEPROM存储器将用于动态变化的大容量参数数据存储应用,例如,视频游戏系统和电子玩具、汽车收音机、导航、寻呼机、机顶盒、数码相机、PDA、MP3播放机/录音机,及其它便携消费应用3。Integrated Silicon Solution推出2KBi

13、t串行EEPROM专为DDR2内存模块应用的高性能芯片。IS34C02B是ISSI推出的又一款高度集成的电可擦除的可编程存储器IC,专门用作DDR2内存模块,有高度的可靠性和优良的性能,极大的降低了系统成本11。飞利浦宣布其0.18微米CMOS嵌入式闪存/EEPROM技术现已完全符合Grade-1汽车电子应用的需求,其0.14微米嵌入式闪存/EEPROM已开始在位于荷兰奈梅亨市的晶圆厂进行量产,这也是飞利浦第二家符合这一工艺生产要求的工厂。 飞利浦称,嵌入式闪存和EEPROM存储器已成为当今许多片上系统解决方案的一个重要组成部分。它不但提供了在生产线上用不同的软件对这些芯片进行编程或进行现场软

14、件升级的能力,还实现了对重要的本地数据例如PIN密码或地址簿信息的存储,并且可以在设备断电的时候保留这些数据。    典型的应用包括手机、电视机、MP3播放器和智能卡、以及电线驱动的汽车电子系统12。 13 系统组成及工作原理131 系统组成本课题所要求的系统主要是由计算机,USB控制卡,控制器FPGA,EEPROM,晶体振荡器,电源模块组成,具体框图如图1.1 所示:计算机USB控制卡控制器FPGAEEPROM晶体振荡器电源模块 图1.1 系统组成框图132 系统工作原理传输部分:由计算机经USB控制卡将数据传输到控制器FPGA中。写入部分:是由控制器FPGA与

15、EEPROM完成,它通过控制器FPGA经编程后实现控制,把帧结构数据下载到EEPROM中,并储存起来。读取部分:是控制器FPGA经编程后,实现控制的,它将EEPROM内的帧结构数据读取出来,并经USB控制卡发送回计算机进行校验。2 系统方案设计及器件选择21 系统方案的设计211 系统的开发流程为了提高效率,增强各个模块之间的互相移植量,符合常规逻辑习惯,所以采用了自顶向下的设计方法。如图2.1。系统需求分析总体设计原理设计逻辑分析概要设计模块化设计语言实现模拟仿真PCB设计结构设计系统集成测试原理机样图 2.1 系统方案流程图在本设计中,采用了CPLD/FPGA可编程逻辑器件,其自有一套独特

16、的开发流程,包括电路的设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板调试等主要步骤,如图2.2为完整的FPGA设计流程图。根据此流程图FPGA内部电路设计采用模块化设计方法。基于FPGA使用模块化设计方法就是将大规模复杂系统按照一定规则划分若干模块,然后对每个模块进行设计输入、综合,并将实现结果约束在预先设计好的区域内,最后将所有模块的实现结果有机地组织起来,就能完成整个系统的设计13。开始电路的设计与输入功能仿真是否正确是否为原理设计问题是否为综合优化问题综合后仿真是否正确及面积是否符合要求是否为实现问题布线后仿真是否正确及面积是否符合要求综合优化实现过程烧写芯片、在线调试是

17、是是是是否否否是否图2.2 FPGA设计流程图212 系统的设计方案本系统的设计方案是由计算机将所需程序利用JTAG接口下载到FPGA中,将需要下载的数据利用USB控制卡下载到FPGA中,再通过FPGA内以下载的程序控制将其存储到EEPROM中。数据存储完毕后,再利用FPGA内部的程序控制将所存储的数据读取出来并利用USB控制卡发送回计算机中进行校验。在编写FPGA内部程序时需要注意程序的时序需要满足I2C总线的通信协议。22 I2C总线通信协议的介绍在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括: (1)一些智能控制通常是一个单片的微控制器;(2)

18、通用电路例如LCD驱动器远程I/O口RAM EEPROM或数据转换器;(3)面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTMF发生器。为了使这些相似之处对系统设计者和器件厂商都得益,而且使硬件效益最大电路最简单,Philips开发了一个简单的双向两线总线实现有效的IC之间控制,这个总线就称为Inter IC或I2C总线。现在Philips包括超过150种CMOS和双极性兼容I2C总线的IC,可以执行前面提到的三种类型的功能。所有符合I2C总线的器件组合了一个片上接口使器件之间直接通过IC总线通讯,这个设计概念解决了很多在设计数字控制电路时遇到的接口问题。I2

19、C Bus是一种通行世界的低速接口标准。在消费类电子的领域里,虽然有许许多多不同的应用,但是其组成却常常是固定的器件,如微控制器(Micro Controller)、随即存取内存(RAM)、电子可擦除式可编程存储器(EEPROM)及一些特殊用途集成电路(ASIC, Application Specific Integrated Circuit)。这些器件需能彼此沟通。沟通的方式,其电路的需求是降低设计成本和减小设计的复杂性。飞利浦公司鉴于此,提出了一种总线构架。这种总线构架是一种两条线(2-wire)双向的(Bi-Directional)的设计,此种总线构架被称为是Inter IC的总线,又简

20、称为I2C13。I2C总线产生于在8O年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此,I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达762m,并且能够以10kbps的最大传输速率支持4O个组件。I2C总线的另一个优点是,它支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控10。I2C总线是一种用于IC器件之间连接的二线制总线。它通过SDA(串行数据线)

21、及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件,不管是单片机、存储器、LCD驱动器还是键盘接口。串行扩展总线有突出的优点,电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本14。221 总体特征I2C总线支持任何IC生产过程(NMOS、CMOS、双极性)。两线:串行数据(SDA)和串行时钟(SCL)线在连接到总线的器件间传递信息。SDA 和SCL 都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压如图2.9。当总线闲时,这两条线路都是高电平。连接到总线的

22、器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C总线上数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s,连接到总线的接口数量只由总线电容是400pF的限制决定。图 2.9 标准模式器件和快速模式器件连接到I2C总线222 I2C总线的通信协议这里所说的通信协议指的是在I2C总线上传输的数据信号格式,由于仅使用一个时钟信号引脚SCL和一个数据引脚SDA,因此数据必须搭配时钟的变化来传输:而不管传送的是地址还是数据,又都必须用一定的格式来传送,这个格式就是我们所谓的通信协议。不论要传送的信号是地址还是数据,这一串

23、位信号都是以一个启动位(S)开始,而以一个停止位(P)结束的。至于这两个位之间则包括了要传送的地址或数据位、读写位(R/W Bit)以及应答位(Acknowledge Bit,ACK Bit)。除了启动位和停止位之外,只有在SCL引脚信号为高电平时,SDA引脚上的信号才是有效的.也就是说,要改变SDA上的信号,必须在SCL为低电平时改变,而在SCL变为高电平之前,SDA的信号必须保持稳定。这是SCL引脚和SDA引脚相互搭配的最高指导原则。至于启动位和停止位,则是要在SCL为高电平时,在SDA引脚上发生状态的变化,以启动位来说是从高电平变为低电平,也就是SDA引脚上信号的下降沿;以停止位来说,则

24、是从低电平变为高电平,也就是SDA引脚上信号的上升沿。在信号的传输过程中,这个启动位和停止位都是由主控器件来产生的,一旦产生了启动位之后,I2C总线就进入了忙碌状态(Busy State),一直到停止位出现后才结束。223 位传输由于连接到I2C 总线的器件有不同种类的工艺(CMOS、NMOS、双极性)逻辑0(低)和1(高)的电平不是固定的,它由VDD 的相关电平决定。每传输一个数据位就产生一个时钟脉冲。1)数据的有效性:SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。如图2.10 位传输图 2.10 I2C总线的位传输2)起始

25、和停止条件:在I2C总线中,唯一出现的是被定义为起始(S)和停止(P)条件(如图2.11)的情况。图 2.11 起始和停止条件其中一种情况是在SCL线是高电平时,SDA线从高电平向低电平切换。这个情况表示起始条件。当SCL是高电平时,SDA线由低电平向高电平切换表示停止条件。起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。如果产生重复起始(Sr)条件而不产生停止条件,总线会一直处于忙的状态。此时的起始条件(S)和重复起始(Sr)条件在功能上是一样的(如图2.12)因此在本文档的剩余部分,符号S 将作为一个通用的术语既表示起始

26、条件又表示重复起始条件,除非有特别声明的Sr。如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便。但是,没有这种接口的微控制器在每个时钟周期至少要采样SDA线两次来判别有没有发生电平切换。图 2.12 完成的数据传输23 存储器的选择24C系列串行EEPROM是目前串行EEPROM中用量最大的一类。24C系列串行EEPROM除具有一般串行EEPROM的体积小、功耗低、工作电压允许范围宽等特点外,还具有型号多、容量大、二总线协议、占用IO口线少、容量扩展配置极其灵活方便、读写操作相对简单等特点。正被广泛用在多种数据卡、电钥匙、智能电话、智能电表等多种智能仪器仪表当中1

27、5。目前在我国应用开发中,所用的24C系列串行EEPROM主要由ATMEL、MICROCHIP、XICOR、NATIONAL等几家公司提供。目前市场上容量最小的为24C01(1kb),最大的是24C64(64kb),生产工艺都是CMOS工艺,工作电压在1855V之间,24系列有两种封装形式:8脚封装和14脚封装。我国目前开发用量最多的封装形式是8脚PDIP封装。8脚PDIP封装的引脚定义(如图2.3)所示。其中A0、A1、A2为器件地址选择位,这3个引脚配置成不同的编码值,在同一串行总线上最多可扩展8片同一容量或不同容量的24C系列串行EEPROM芯片。WP(TEST)为硬件写保护控制端(测试

28、端),这个引脚,脉冲的上升沿将数据写入EEPROM,下降沿将数据从EEPROM中读出。SDA为串行数据输入输出端,漏极开路驱动,容量扩展时,可以将多片24系列SDA引脚直接相连,实际使用时要加一个上拉电阻 。SCL为串行时钟信号,VCC和GND分别是电源和地。 图2.3 引脚分配图由于24C系列串行EEPROM是串行接口器件,则其地址、数据信息都在同一条线路上传送,当串行总线上挂有多个芯片时,每个芯片必须具有唯一的器件地址。24C系列芯片的器件地址由7位数据位和一位读写位组成,即1010A2A1A0RW,其中,高4位的1010为24系列的协议格式,是I2C总线分配给串行EEPROM的器件地址;

29、之后的3位A2、A1、A0为可编程地址位,且32字节为一页,由器件厂商定义,供在总线上联接多片同一型号器件时分配器件地址用;最后一位是读写控制位RW,当该位为高电平“1”时,表示当前的操作是读操作,该位为低电平“0”时,表示当前的操作是写操作。24C04以后的串行EEPROM芯片所需寻址位超出了8位,这样,超出位采用了占用引脚地址(A2、A1、A0)的方式实现。参见表2.1。厂家规定,凡被寻址位占用的引脚在线路上只能作悬空处理,不能另行使用。即芯片容量大于32字节时,内部单元寻址采取了分页处理的方法,每页32字节,而且页寻址位包含在器件寻址字节内。表2.1 器件型号、容量、结构及地址选择控制格

30、式器件型号容量(bit)页数器件地址选择位(8位)24C01A128×8不分页1010A2A1A0(R/W)24C02256×8不分页1010A2A1A0(R/W)24C04512×821010A2A1P0(R/W)24C081024×841010A2P1P0(R/W)24C162024×881010P2P1P0(R/W)24C324096×8不分页1010A2A1A0(R/W)24C648192×8不分页1010A2A1A0(R/W)24C64芯片的写入字节指令每次只能向芯片中的一个地址写入一个字节的数据。首先发送开始位来

31、通知芯片开始进行指令传输,然后传送设置好的器件地址字节,R/W位应置0,接着是分开传送十六位地址的高低字节,再传送要写入的数据,最后发送停止位表示本次指令结束。如图2.4单个字节的时序图。图2.4 单字节时序图24C64支持32字节的页写入模式,它的操作基本和字节写入模式一样,不同的是它需要发送第一个字节的地址,然后一次性发送32字节的写入数据后,再发送停止位。写入过程中其余的地址增量自己由芯片内部完成。如图2.5为页写入的时序图。无论那种写入方式,指令发送完成后,芯片内部开始写入,这时SDA会被芯片拉高,直到写入完成后SDA才会重新变的有效。操作完成后需要等待ACK响应返回,如果有ACK响应

32、返回则可以进行下一步操作。图2.5 页写入时序图读取当前地址是读取当前芯片内部的地址指针指向的数据。每次读写操作后,芯片会把最后一次操作过的地址作为当前的地址。在这里要注意的是在微处理器接收完芯片传送的数据后不必发送给低电平的ACK响应给芯片,直接拉高SDA等待一个时钟后发送停止位。如图2.6是读当前地址时序图。图2.6 读当前地址时序图读当前地址可以说是读的基本指令,读任意地址时只是在这个基本指令之前加一个伪操作',这个伪操作传送一个写指令,但这个写指令在地址传送完成后就要结束,这时芯片内部的地址指针指到这个地址上,再用读当前地址指令就可以读出该地址的数据。如图2.7是读任意地址的时

33、序图。图2.7 读任意地址时序图连续读取操作时只要在上面二种读取方式中芯片传送完读取数据后,微处理器回应给芯片一个低电平的ACK响应,那么芯片地址指针自动加一并传送数据,直到微处理器不回应并停止操作。图2-8是连续读取的时序图。图2-8 连续读取时序图 24C64芯片能完成系统要求的串行数据写入操作和读取操作,所以本设计的EEPROM选择24C64芯片来完成。24 可编程逻辑器件的选择在此设计中,采用了CPLD/FPGA控制逻辑模块为核心电路的实现方式。复杂可编程逻辑器件和现场可编程门阵列是近几年来迅速发展的大规模可编程专用集成电路,其应用广泛,已成为各种电路设计的重要手段16。其中CPLD是

34、将多哥可编程阵列逻辑器件集成到一个芯片内,因而其具有类似可编程逻辑阵列的结构,而FPGA是由逻辑功能块排列成阵列组成。由于在结构上的差异,使其具有以下不同点:1)FPGA由于采用了类似门列阵的通用结构,其规模可以做的比较大,可实现功能更强,设计灵活性更大,比CPLD更适合于设计多触发器结构;2)CPLD采用连续互连方式,这使得CPLD能够方便的预测设计时序,而典型的FPGA采用分段互联式结构,这种方式虽然具有走线灵活、便于复杂功能的多级实现等优点,但也存在着布线复杂度增加、I/O延时变大、设计时序预测困难;3)CPLD的编程由于采用EPROM或FAST FLASH技术,无需外部存储器芯片,而F

35、PGA的编程信息需存放在外部存储器上,所以应用CPLD比FPGA更简化、更方便;4)由于CPLD是通过修改具有固定内连电路的逻辑功能来编程,而FPGA主要通过改变内部连线的布线来编程,FPGA比CPLD具有更大的编程灵活性; 5)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现;6)一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显1718。在本系统中采用了Xilinx公司生产的XC2S100E型FPGA。XC2S100E是Spartan-E系列产品中的一款,它采用了1.8V的内核电压,系统性能可达到200MHz,具有37000到100000个系统门,CLB数量为20&#

36、215;30,LC数量为2700,BlockRAM容量40Kbit,拥有202个I/O15。由于这款FPGA采用了低内核电压,这将从根本上减小芯片功耗,同时其丰富的门阵列资源,也为复杂控制逻辑的实现提供了可能,并且进一步可以在其内部实现数据的压缩算法。所以本设计的FPGA选择XC2S100E芯片。3 系统的硬件设计31 24C64存储器的设计本系统的EEPROM通过24C64芯片来实现,原理如下(如图3.1)。图 3.1 24C64设计图中的R2,R3为上拉电阻,其作用是使SDA和SCL在总线空闲时都保持高电平,并确保信号在要求的上升时间内从低电平上升为高电平。从图中可以看出以将24C64的器

37、件地址A2、A1、A0设置为0、0、1。所以FPGA程序中的器件地址为1、0、1、0、0、0、1、R/W。WP为写保护,当其为高电平(1)是处于保护状态,为低电平(0)时,可以读写。R4为写保护的上拉电阻。24C24C64芯片遵循延长的I2C总线的通信协议。该通信协议规定任何器件所发送数据在SDA线上被看作为发送者,接收的器件被看作为接收者。器件控制传输的是控制器,被控制的是从动装置。控制器总是启动数据的传输,为传送和接收操作提供时钟。24C64芯片在所有的应用中作为一个从动器件。控制器或从动器件都能控制SDA总线,这取决于协议的要求。开始/停止条件和数据转换: 当SCL时钟处于高时,SDA总

38、线上一个高或低的转变被看作是开始的命令,它优先于任何读或写操作。当SCl处于高时,SDA总线上一个低或高的转变被看作是停止的命令,它终止传送,并且使24C64芯片处于备用的模式。SDA总线上任何其他的数据转变必须发生在SCL时钟置低时,来确保正确的操作.响应:在SDA总线上,所有的数据以字节(8位)连续的传送,响应协议作为握手信号,用于表示一个字节的数据的成功传送。总线传送者,不管是控制器还是从动器件,发送完一个字节的数据在SDA总线上后,释放总线。接收器在第九个时钟周期使SDA总线处于低电平,来响应一个字节数据的成功传送。如果在第九个时钟周期,SDA不处于低电平,24C64芯片终止数据的传送

39、,处于备用的模式。对于读操作,器件写地址后,24C64芯片会响应,然后24C64芯片传送每个并行的数据,每个数据传递后,控制器发出响应,表示它需要更多的数据字节。24C64芯片监控SDA总线来发出响应,为终止传送,控制器不会响应,然后发送停止命令。32 FPGA的配置电路设计FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的19。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的的SRAM中,在不掉电的情况下,这些逻辑结构将会始终被保持,从而完成用户编程所要实现的功能,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置。FPGA的配置主要

40、分为两大类,主动配置方式和被动配置方式。主动配置方式由FPGA引导配置操作过程,它控制着外部存储器和初始化过程;而被动配置则由外部计算机或控制器控制配置过程。FPGA共有四种配置模式:主串模式(Master Serial), 从串模式(Slave Serial),从并模式(Slave Parallel/SelectMap)以及JTAG或边界扫描模式(Boundary-scan).具体的配置模式由模式选择引脚M0、M1、M2决定20。本系统的配置电路的设计采用的是主串的模式,用XCF01串行PROM作为下载配置数据的存储器件,通过JTAG接口从计算机中下载FPGA的配置数据。如图3.3。图 3.

41、3 配置电路设计设计中对配置模式脚M2、M1、M0采用了跳线方式。当M2、M1、M0分别跳到0、0、0时,FPGA进入主串模式,向PROM发出控制信号和时钟信号,从PROM中下载配置数据。当M2、M1、M0分别跳到1、0、1时,FPGA进入边界扫描模式,直接通过JTAG接口从计算机下载FPGA的配置数据文件。33 去耦电容的设计数字电路输出信号电平转换过程中会产生很大的冲击电流,在供电线和电源内阻上产生较大的压降,使供电电压产生跳变,产生阻抗噪声(亦称开关噪声),形成干扰源。去耦电容在集成电路电源和地之间的有两个作用:一方面是本集成电路的蓄能电容,另一方面旁路掉该器件的高频噪声。数字电路中去耦

42、电容取值一般为0.010.1uf,频率越高,去耦电容值越小。如图3.4。图3.4 去耦电容原理图见附录A,PCB图见附录B。4 系统的软件设计41 Xilinx设计流程一个完整的CPLD/FPGA设计流程主要是由设计与进入、设计综合、功能仿真、设计实现、布局布线仿真、时序仿真和下载设计等电路或模块组成,如图4.1所示设计与进入时序约束设计综合静态时序分析布局布线仿真静态时序分析布局规则功能仿真门级仿真时序仿真芯片图 4.1 Xilinx设计流程411 设计输入阶段1)设计规划和预算:设计规划系统的结构及器件的选型。2)多种设计输入方法:硬件描述语言(HDL)或原理图,也可以利用结构化设计向导及

43、核生成工具辅助设计输入。3)对设计进行仿真,使设计按照预想的功能实现。412 Xilinx的FPGA实现阶段一旦建立了网络表文件,就可以来实现设计。在实现过程中将会产生许多输出文件,如流程报告、时序仿真网表、平面布局文件、FPGA编辑器文件等。实现的步骤如下:1) 转换:将多个设计文件合并为一个网表。2) 映射:将网表中的逻辑符号(门)整合到物理元件(CLB和IOB)中。3) 布局布线:将元件放到器件中,并将他们连接起来,同时提取出时序数据,并生成各种报表413 设计完成及下载一旦设计实现并完成后,必须建立一个CPLD/FPGA可以识别的文件,FPGA为BIT文件(也称位流文件),CPLD为J

44、TAG文件。这个BIT文件可以被直接下载到FPGA中,或者可以转换为存储编程信息的PROM文件21。42 模块图该部分包括24C64存储模块、数据缓存模块、FPGA内部存储模块、高阻态程序模块。421 24C64存储模块该模块实现数据的存储与读写。当WP接高电平时,芯片的芯片数据处于禁止写入状态(写保护状态),当WP接地为低电平时,芯片才处于正常的读写状态。24C64芯片的写入数据和读取数据的逻辑如图4.2所示。数据的写入:首先发送起始位来通知芯片开始进行指令传输,然后传送设置好的(写入数据的)器件地址字节1010A2A1A00,R/W设置为0表示写入。传送完毕等待ACK响应,有响应返回则可以

45、进行下一步操作即继续传送存储单元的16位地址的高8位和低8位。当存储单元地址发送完毕后一样需要等待ACK响应,看是否有响应返回。有响应则继续再传送要写入的数据,数据写入完毕后也需要等待ACK响应返回,响应返回后地址字节数加1,当字节满32位后字节数回0,地址页数值加1。最后发送停止位表示本次指令结束。数据的读取:芯片重新启动后开始发送起始位来通知芯片开始进行指令传输,但在读的操作里,需要进行一个伪操作,即将写数据中的器件地址和存储地址再发送一遍并等待ACK响应返回后,再开始将读数据的器件地址(注意R/W=1)发送,等待ACK响应返回后,这时芯片内部的地址指针指到这个地址上,再用读当前地址指令就

46、可以读出该地址的数据。结束结束ACK=0?ACK=0?存储地址+1计数器+1设置停止位存储单元寻址设置起始位1个数据写入器件寻址(写)储存单元寻址设置计数器值设置起始位器件寻址(读)器件寻址(写)设置起始位开始开始ACK=0?ACK=0?ACK=0?ACK=0?Data(7downto6)=”1 0” ?Redata(7downto6)=”1 0” ?设置停止位1个数据读NNNNNNNNYYYYYYYY写入逻辑框图读取逻辑框图图4.2 24C64 数据的写入与读取逻辑框图模块图如图4.3。图 4.3 24C64模块图fosc为主时钟信号;rst为复位信号;adfwr为写RAM信号;weo为控制

47、RAM信号;zdata(7:0)为24C64内的数据;adfaddra(8:0)为写RAM的地址;fiford为控制FIFO的读取的信号;redata(7:0)为从FIFO中读取的数据值;addrb(10:0)为写FIFO数据的地址;addra(10:0)为读取FIFO数据的地址;en为控制RAM的使能信号;scl为串行时钟信号;sdaout为向24C64中写入数据;we为控制S245的信号;sdain为从24C64中读取数据;add(2:0)为24C64的地址(A2、A1、A0)信号;wp为写保护信号;qd为启动信号。24C64存储开始的条件为:系统复位信号sysrst置低,串行时钟信号sc

48、l置高,24C64写数据信号sdaout置高,控制读FIFO的信号fiford置高,flag信号置低,写RAM信号adfwr置低,写RAM地址adfaddra为0,读FIFO地址addrb为0,控制S245的信号we置低,控制RAM的信号weo置高,复位信号rst和控制RAM的使能信号en置低,读写状态均为初态,CLK为高电平。24C64的写入与读取是由we信号控制S245进行选择完成的。当we置低时,系统通过S245选通sdout进行数据的写入;当we置高时,系统通过S245选通sdain进行数据的读取。24C64开始运行,利用状态机定义每个状态。当qd置低时,进入24C64的写入初态wr0

49、,此时存储的字节countbyte和页countp均为0,scl为1,写入信号sdaout为1,转入下一个状态wr1,状态需要空转一次,进入状态wr2,此时写入信号sdaout为0,进入下一个状态wr3,此时证明24C64的开启已经成功。下面开始写入写程序的器件地址1 0 1 0 A2 A1 A0 0。当scl为0时写入,当scl为1时其数值有效。当状态wr4时,scl为0,进入下一状态wr5,即在此时写入1,状态wr5时写入信号为1,该数据以写入。当进入状态wr6时,scl为1,此时该数据变为有效,进入下一个状态wr7,状态wr7进入状态wr8,到此器件地址的第一位1以写完。依次类推写完器件

50、的所有地址。如图4.4。SCL19SDA10101000ACK开始条件写入数据的开始位和器件地址A2 A1 A0R/W响应图4.4 写入数据的开始位和器件地址的输入时序图当写完器件地址后,需要等待一个ACK响应的回复,该响应回复是24C64芯片内自带的。如果sdain=1则返回当前状态,否则则进入下个状态。以同样的写入方法将存储地址的高8位和低8位写入FPGA中,在每段地址写完后都需要有ACK响应回复,才能进入下一个状态。如图4.5。SCL19SCL19SDA000Countp(7)Countp(6)Countp(5)Countp(4)Countp(3)ACK存储地址的高8位地址输入SDACo

51、untp(2)Countp(1)Countp(0)Countbyte(4)Countbyte(3)Countbyte(2)Countbyte(1)Countbyte(0)ACK存储地址的低8位地址输入图4.5 存储地址的高8位与低8位的输入时序图当所有地址全部写完后,开始向24C64中写入存储的数据。读FIFO信号为1,scl为0,控制读写选择信号we为0,则开始从FIFO中读出所存储的数据写入24C64中,进入下一状态,写信号sdaout写入FIFO中的一位数据redata,写完则读FIFO的地址addrb+1。进入下一状态,scl为1,数据变为有效。再进如下一状态,该位数据写入完毕。依次类

52、推将8位的存储数据全部写完后,需要ACK响应回复。每写入一位数据,存储的字节数也就相应的增加1,存储的字节没满时,则循环存储。当FIFO中的数据最后2位不是1 0时,字节写满则页数自动加1;当FIFO中的数据redata的最后2位为1 0时,数据写入完毕。数据写完需要停止24C64的运行。如图4.6。SCL19SDAData (7)Data(6)Data(5)Data(4)Data(3)Data(2)Data(1)Data(0)ACK停止条件所要存储的数据和停止条件图4.6 所要存储的数据和停止条件的时序图当需要从24C64中将数据读取出来时,需要重新启动一下24C64,然后还要进行一次“伪操

53、作”,即把写入数据时的器件地址和存储地址再发送一边,然后才发送真正的读取数据的器件地址。如图4.7。SCL1910101001SDAACKA2 A1 A0R/W响应读取数据时的器件地址图4.7 读取数据时的器件地址的输入时序图等待ACK响应返回后,此时24C64芯片内部的地址指针指到这个地址上,再用读当前地址指令就可以读出该地址的数据。422 数据缓存模块数据缓存模块即为FIFO,该模块的作用是将数据进行短暂的存储,防止当数据量过大时的数据溢出现象的发生。当wrfifo有效时,数据根据adda(10:0)的地址通过db(7:0)写入FIFO中,进行短暂存储;当rdfifo有效时,数据根据addb(10:0)的地址通过dp(7:0)从FIFO中读出,写入24C64中。如图4.8。图4.8 数据存储模块当adda与addb的差值为0时,则FIFO中没有数据为空;其差值不为0时,则FIFO中有数据可以读数。当开始向24C64中写入数据时,每写入一位数据,读FIF

温馨提示

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

评论

0/150

提交评论