欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    FPGA课程设计物联网.docx

    • 资源ID:3807663       资源大小:294.42KB        全文页数:45页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA课程设计物联网.docx

    1、FPGA课程设计物联网CPLD/FPGA课程设计项目名称 基于FPGA的IIC接口设计与实现 专业班级 物联网112班 学生学号 2011133056 学生姓名 王海超 指导教师 苗凤娟 2014年 6 月 15 日摘 要IIC(Inter Integrated Circuits)总线接口是Philips公司开发的用于芯片之间连接的串行总线。现场可编程门阵列(FPGA)设计灵活、速度快,在数字专用集成电路的设计中得到了广泛的应用。IIC串行总线接口电路设计的主要任务是根据IIC时序协议用Verilog HDL语言对IIC总线接口电路的描述,其目的是通过在FPGA上来实现IIC接口电路来领会复杂

    2、数字电路的设计思路和理念。在对IIC总线的研究现状与发展进行了深入的调研的基础上,本课设着重阐述了在FPGA上实现随机读/写的IIC接口电路的设计方案。首先,本课设简单介绍了硬件描述语言(Verilog HDL)与现场可编程门阵列(FPGA)。其次,本课设详细说明了IIC串行总线内部结构和数据传输格式及其时序协议。基于此,本课设重点阐述了接口电路的设计方案以及在FPGA开发板上与外围IIC接口器件E2PROM实现数据传输的仿真与测试。经过多次实验验证,IIC总线接口电路已通过行为级仿真和综合及布局布线后门级时序仿真,满足系统要求。因此,本课设选择了时序接口模块加以研究。关键词: Verilog

    3、_HDL;FPGA;I2C串行总线;随机读/写;E2PROM;时序接口;Abstract IIC (Inter Integrated Circuits) Bus is developed by Philips for the connection between the chip serial bus. In the digital ASIC design, Field-programmable gate array (FPGA) design has been widely used because of its flexibility and high speed. The main ta

    4、sk of IIC serial bus interface circuit design is based on the IIC timing agreement with Verilog HDL language description of the IIC bus interface circuit, which aims to achieve IIC interface circuit up to comprehend complex digital circuit design ideas and concepts through the FPGA.Based on the in-d

    5、epth research of the IIC bus status and development, the design scheme of the random read/write IIC interface circuit on FPGA was underlined in the paper. First,hardware description language (Verilog HDL) and field-programmable gate array (FPGA) were introduced slightly in the paper. Second, the int

    6、ernal structure and data transmission format of IIC serial bus and its timing protocol were illustrated in the paper in detail. Based on this, the interface circuit design in FPGA development board was emphasized in the paper.As well as, the simulation and test of data transmission with peripheral d

    7、evices EEPROM with IIC interface were stressed. After several experiments, IIC bus interface circuit has passed the behavioral level simulation and synthesis and layout-level timing simulation backdoor to meet system requirements. Finally, the research results were summarized.Therefore, this lesson

    8、set selection sequence interface module to study them.The keyword: Verilog_HDL; FPGA; IICserial bus ; Random read /write; EEPROM;The sequential interface第1章 本课设的研究意义1.1 概述 IIC总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件

    9、的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1.2 IIC接口设计的研究现状 单片机应用系统正向小型化、高可靠性、低功耗等方向发展。在一些功能较多的电路系统中,经常需扩展多个外围接口器件。如果采用传统的并行传输方式,传输时间是缩短了,但也增加了系统资源的消耗和系统的复杂度,关键是功耗的增大和成本的增加。现在,许多公司采用了Philips公司开发的I2C总线,使单片机系统电路结构的复杂度大大减小,并且增加了硬件的灵活性,缩短了产品开发周期,降低了成本。自从I2C总线成为国际通用的总线标准后,I2C总线因为具有扩展方便、协议完善、

    10、支持芯片多和连线少等优点,已经被很多集成电路厂商集成到微控制器集成电路中。I2C总线的应用涉及通信、控制、家电、消费电子等众多领域,在很多器件上都配备有I2C 总线接口,而且功能日益强大。1.2.1 IIC接口设计的应用1. 接收和发送数据 2C模块接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。2. 接口时序模拟1.2.2 I2C接口设计的困难I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。1.3 本文研究的意义随着电子科技的迅速发展,需要相互通信及与外界

    11、通信的IC电路变得越来越复杂。为了简化电路设计,Philips公司开发了一种双向二线的串行I2C总线(Intel Integrated Circuit Bus)。该总线具有通讯效率高、传输线少等特点。因为其简单的接口、控制简便,使用I2C总线的电子电路设计工程师日益增多。I2C总线只提供两根线进行通信,所有具有I2C接口的器件都可以挂在这两根线上直接通信。目前,IC制造商提供的I2C总线应用芯片的功能越来越强大。I2C总线由主器件控制,增加额外的I2C控制器需要额外的印制板面积,增加了成本。因此,在一些特殊应用条件下,使用一种利用应用广泛的现场可编程门阵列(FPGA)实现与I2C总线器件无缝连

    12、接的方法,将是更为经济的解决方案。根据I2C总线的通讯协议,在Altera 公司的EP2C35F672C6型号的FPGA上实现与具有I2C接口的外围芯片进行通信,具有易调试、灵活配置、高速传输等优点,这样大大地缩减了电路系统的开发时间。因此,课题暂时先以IIC时序接口模块为切入点进而进行下一步研究。1.4发展趋势I2C总线以其结构简单、通信功能可制定、高抗干扰性、传输速度快等特点获得了广泛的应用。I2C总线控制器是MPU与I2C器件之间的桥梁,它负责接收处理器的数据、地址以及控制信号,而且反馈I2C器件的状态和数据给处理器,实现处理器与I2C器件之间的通信。Philips公司除了生产具有I2C

    13、总线接口的单片机外,还推出了许多具备I2C总线的外部接口芯片,如AT24CXX系列的EEPROM、128字节的SRAM芯片PCF8571、日历时钟芯片PCF8563、4位LED驱动芯片SAA1064、160段LCD驱动芯片PCF8576等多种类多系列接口芯片。随着可编程器件的飞速发展,用FPGA器件实现I2C总线控制器接口的设计可以带来很多方面的便利。第2章 Verilog HDL和FPGA的简介2.1 硬件描述语-Verilog HDL2.1.1 Verilog HDL简介Verilog HDL是一种描述硬件的语言,可以用文本编程的形式来描述硬件的内部结构和行为。它可以表示逻辑电路图、逻辑表

    14、达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL由Gateway Design Automation公司开发的。现在,Verilog HDL和VHDL一样也是世界上最流行的两种硬件描述语言之一,已经成为为IEEE标准。2.1.2 Verilog HDL的发展Verilog HDL语言原来是由Gateway Design Automation公司于1983年为其模拟器产品开发的硬件建模语言,它还只是一种专用语言2。随着他们的模拟、仿真器产品被电子业界广泛使用,Verilog HDL作为一种便于使用而且实用的语言开始被越来越多的电路设计者所接受2。Verilog HDL语言在一

    15、次增加语言普及性的活动中被推向公众领域。1992年,Open Verilog International决定推广Verilog OVI标准成为IEEE标准,这一推广最终获得了成功。于1995年,Verilog 语言成为IEEE标准,称为IEEE Std 136419952。2.1.3 Verilog HDL用途Verilog HDL是目前应用最为广泛的硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模14。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间14。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模14。Verilog HDL可以用来

    16、进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等14。2.2 现场可编程门阵列-FPGA现场可编程门阵列(Field Programmable Gate Array:FPGA),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点5。2.2.1 FPGA的概要目前以硬件描述语言(Verilog或VHDL)描述的逻辑电路,可以利用逻辑综合和布线工具软件,快速地烧录至FPGA上进行测试,这一过程是现代 集成电路设计验证的技术主流5

    17、。这些可编程逻辑元件可以被用来实现一些基本的逻辑门数字电路(比如与门、或门、异或门、非门)或者更复杂一些的组合逻辑功能,比如译码器等19。大多数的FPGA里面包含记忆元件,例如触发器(Flipflop)或者其他更加完整的记忆块,从而构成时序逻辑电路19。电路系统设计人员可以根据需要,通过编程下载的方式,把FPGA内部的逻辑块连接起来,这样就完成了在FPGA芯片里构建你所要的电路。FPGA内部的逻辑块和连接可以随着设计者的需要而改变,所以FPGA能够成为数字电路设计人员在半定制电路中的第一选择。一般来说,FPGA比专用集成电路(ASIC)的速度要慢一点,无法完成更复杂的设计,并且能耗也大。但是,

    18、FPGA具有可以快速成品,而且其内部逻辑可以被设计者反复修改的优点。此外,用FPGA调试的成本较低。2.2.2 FPGA的基本组成 静态随机存取存储器(SRAM):基于静态内存Static memory技术,系统内可编程化和再程序化(Re-programmable),须要外部启动元件(External boot devices)CMOS。 Antifuse:可烧录一次。通常为CMOS。 PROM(一次性可编程EPROM):可编程化只读存储器技术,可烧录一次。使用塑料封装,无窗,不能清除内容。 EPROM:可清除可编程化只读存储器技术,有窗,经紫外线照射可清除内容。 EEPROM:可电气清除可编

    19、程化只读存储器技术,可用电气信号清除内容。 闪存:一种特殊的EEPROM。 熔丝:可烧录一次。通常为双极性的。2.2.3 FPGA的基本特点 采用FPGA设计ASIC电路,用户无需投片生产,就能得到组合的芯片。 做半定制电路的样品。 内部有大量的触发器和I/O引脚。 电路设计周期短、开发成本低、风险小。 采用高速、功耗低的CHMOS工艺,兼容CMOS、TTL电平。 能提高系统集成度和可靠性。FPGA内部RAM中的程序控制其工作过程。工作时,只需对片内的RAM进行编程,就可以实现不同的功能。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,完成配置后,FPGA进入工作状态3。掉电后,F

    20、PGA恢复成空白片,内部逻辑关系消失3。因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可3。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能3。因此,FPGA的使用非常灵活。第3章 项目设计的技术及原理3.1 IIC接口设计I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持40个组件。I2C总线的另一个优

    21、点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。3.1.2 1I2C串行总线接口电路的性能指标 本文设计要求实现一个严格遵循I2C协议的接口电路,传输速率最高为1MHz,向下兼容低速的I2C接口的设备,输入的数据是8位的,输入地址是15位的(高7位是器件地址,低8位是器件内地址),另外器件地址为7位,可以对128个有I2C接口的器件进行寻址,能与I2C接口的E2PROM进行数据传输,并支持对从设进行随机读、写。3.1.3 I2C串行总线接口电路的设计方案3.1.3.1 I2C串行总线接口电路的框图设计图

    22、4.1 I2C接口电路的框图设计在电路设计中,电路的整体外部框图的设计对整个电路设计起到了决定性作用。拥有一个完整的、清晰的电路外廓对之后电路的各个部分的设计就有了清晰的把握。本次I2C接口电路需要一边要与MPU进行通信,另一边要与带有I2C接口的设备进行数据传输,这样就构成了一个简单的电路系统。电路框图设计如图4.1。3.1.3.2 IIC串行总线接口电路的内部模块设计I2C串行接口电路的外部框图只是给出一个电路系统的轮廓图,接口电路的内部结构如何还要根据内部框图的设计。内部框图的设计将会决定接口电路的具体实现。I2C串行接口电路的程序设计是遵循了“自顶向下”的设计理念。利用层次化,结构化的

    23、设计方法,使电路设计变得层次清晰,结构简单。这个电路设计被分为7个子模块,分别是:I2C接口顶层模块、输入时钟分频模块、串行时钟产生模块、输入数据寄存器模块、地址寄存器模块、控制寄存器模块和时序主状态控制模块。其中时序主状态控制模块是接口电路中核心部分,它控制着电路有序的运作。每个模块实现各自的功能,把每个模块按照逻辑相连就组成了一个电路整体。I2C串行接口内部模块设计如图4.2。图4.2 I2C接口电路的内部模块设计3.1.3.3 I2C串行总线接口电路各模块的程序设计方法I2C串行接口电路的程序设计利用层次化,模块化的设计方法,使电路设计变得层次清晰,结构简单。这个电路设计被分为7个子模块

    24、,下面详细说一下各模块的设计方法。I2C接口顶层模块主要是用来对下一层子模块的实例调用,要求子模块每个功能都能正确地实现,并且子模块之间的输入/输出也要满足时序要求。它是整个设计流程中最高层次的一个模块。输入数据锁存器、地址锁存器、控制锁存器模块都属于输入锁存模块。它们的作用就是用来协调设备与CPU之间的通信。由于CPU工作速度快,数据信号、地址信号、控制信号只能保持一段时间有效。接口电路的输入锁存器就能很好地解决这个问题,当控制信号出现时,其就把数据信号和地址信号锁入相应的锁存器。这块程序是采用组合逻辑来编写的。输入时钟分频模块用来协调接口输入的时钟与I2C总线传输时序之间的不匹配的,加个分

    25、频就能很好地解决这个问题。输入时钟为50MHz,经过分频后输出的时钟频率是2MHz。这块程序是采用时序计数来分频的。图4.3 状态转移图串行时钟产生模块就是使I2C总线的串行数据线SDA在串行时钟线SCL的配合下把数据按照传输协议一位一位地传出去7。这块程序也是采用时序来分频的,在CLK的下降沿SCL翻转,前提是要在SCL时钟产生信号有效。时序主状态控制模块是时序电路,也是整个电路的核心电路。它直接控制着并行数据的装载、状态位标志和时序发送/接收的控制。整个电路在它的控制下有条不紊地进行数据通信。这块程序采用同步有限状态机(FSM)的设计方法。程序实际上就是一个主控状态机,在主状态不同的状态下

    26、都控制着不同的任务和控制信号,在不同的输入信号与当前状态的情况下构成复杂的有限状态机1。这个有限状态机的驱动时钟是频率为2MHz的CLK。由于读写操作的状态中有几个状态是一致的,用到了嵌套状态机。状态转移如下图4.3。为了避免代码重复,程序由一个发送的大任务和接收的大任务组成,状态编码采用独热码。3.2 总线的简介3.2.1 IIC总线特点 IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持40个组件。IIC总线的另一个优点是,

    27、它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。13.2.2 IIC总线工作原理 3.2.2.1 总线的构成及信号类型 图1 具有多主机的IIC总线的系统结构 IIC总线的系统结构如图1所示。IIC总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,

    28、IIC总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。2IIC总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号: SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit

    29、数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 目前有很多半导体集成电路上都集成了IIC接口。带有IIC接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供IIC接口。3.2.2.2总线基本操作 IIC规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收

    30、器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。参见图2。图2 串行总线上的数据传送顺序 3.2.3 控制字节 在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。如图3所示。 图3 控制字节配置3.2.4 写操作 写操作分为字节

    31、写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。关于页面写的地址、应答和数据传送的时序参见图4。图4 页面写3.2.5 读操作 读操作有三种基本操作:当前地址读、随机读和顺序读。图5给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。图5 顺序读IIC总线系统由两根总线即SCL(串行时钟)线和 SDA(串行数据)线构成。这种总线可以设计成很多种通讯配置,但本文只讨论主从系统的应用。主器件控制总线通讯,开始结束传送、发送信息并产生IIC

    32、系统时钟在写操作过程中,从器件一旦被主控器件寻址,就执行特定的相应功能。在读操作过程中,主控器件从从器件那里获得数据。在整个主从传送过程中,所有的事件都通过主控器件的SCL 时钟线达到同步。连到总线上的器件的接口形式必须是漏极开路或集电极开路输出状态。通过上拉电阻,使得两根总线在空闲的状态下都为高电平状态。因此IIC 总线上具有线与功能,即总线上的所有器件都达到高电子状态时,IIC总线才能达到高电平状态,从而使总线上的高速器件和慢速器件工作同步。 3.2.6 7位的地址格式介绍 数据的传输遵循图7所示的格式 在起始条件S 后,发送了一个从机地址,这个地址共有7 位,紧接着的第8 位是数据方向位R/ W, 0 表示发送写 ,1 表示请求数据读。数据传输一


    注意事项

    本文(FPGA课程设计物联网.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开