IIC总线协议及应用,i2c总线协议
本作品内容为IIC总线协议及应用,格式为 doc ,大小 2817858 KB ,页数为 23页
('科研训练报告题目:I2C通信协议分析研究院系:电子工程学院姓名:白阿妮班级:集电0903学号:04096087(17)起止时间:2012.11.13~2012.12.20科研训练报告..................................................................................................................................1题目:I2C通信协议分析研究........................................................................................................1摘要................................................................................................................................................3Abstract.............................................................................................................................................4绪论..................................................................................................................................................51.1课题背景.............................................................................................................................51.2I2C总线的产生及发展......................................................................................................51.3FPGA的现状与展望..........................................................................................................51.4相关计划.............................................................................................................................6一、I2C总线技术的研究...............................................................................................................61.1I2C总线的概念...................................................................................................................61.2I2C总线的传输...................................................................................................................71.2.1数据的有效性..........................................................................................................71.2.2I2C总线数据传送的开始和停止条件....................................................................72.2.3I2C总线传输过程中的应答信号............................................................................82.2.4I2C总线数据传送的重复开始条件........................................................................82.2.5I2C总线的传输过程中的字节格式........................................................................82.2.6I2C总线的器件子地址............................................................................................82.2.7I2C总线传输信号的时序........................................................................................9二、详细设计方案.........................................................................................................................112.1电路框图...........................................................................................................................112.3设计原理...........................................................................................................................112.4I2C主模块状态机转移图.................................................................................................112.5用VHDL语言实现写操作时的串行转并行..................................................................122.6用VHDL语言实现顺序读操作时的并行转串行..........................................................123.4I2C总线控制器的顶层设计.............................................................................................13三、I2C总线的硬件时序仿真.......................................................................................................143.1器件的选择.......................................................................................................................143.2硬件仿真...........................................................................................................................153.2.1用VHDL语言实现写字节周期...........................................................................153.2.2用VHDL语言实现顺序读字节周期...................................................................163.2.3用VHDL语言实现选择性读字节周期...............................................................17四、结论.......................................................................................................................................17摘要随着微电子技术的发展,现场可编程逻辑门阵列FPGA(FieldProgrammableGateArray)可以实现数字电路系统设计的功能。尤其现场可编程逻辑门阵列FPGA具有集成度高的优点,受到工程界高度的重视。I2C总线以接口简单,成本底,可扩展性好在数字系统中得到了广泛的应用。硬件描述语言是数字系统高层设计的核心,是实现数字系统设计新方法的关键技术之一。本课题正是利用VHDL语言在FPGA上实现I2C总线控制器的功能。首先研究了I2C总线的规范,又简要介绍了QuartusⅡ设计环境以及FPGA的设计流程。在此基础上,重点介绍了I2C控制器的总体设计方案,以及在QuartusⅡ平台上的时序仿真。关键词QuartusII;I2C总线控制器;现场可编程逻辑门阵列;时序仿真AbstractWiththedevelopmentofmicroelectricandEDA(electronicdesignautomation)technology,FPGA(fieldprogrammablegatesarray)canrealizethefunctionofdigitalcircuitsystemdesign.FPGAhavethemeritoffiledprogrammabilityandHighintegrationrate,thereforeishighlyrecognizedforengineering.I2Cbusiswidelyappliedinthedigitalsystemassimpleinterface,expedientuse,lowcostandgoodexpansibility.VHDLisconsideredasacoreofdigitalsystemdesignandakeytechniqueofimplementdigitalsystem.ThedesignrealizesthefunctionofI2CbusinterfaceontheFPGA.AtfirstthethesisdeeplyresearchI2Cbusspecification,thenbrieflyintroducetheQuartusIIdesignenvironmentandthedesignmethod,aswellasFPGAdesignflow.Inthisfoundation,I2CbuscontrollerdesignschemeandthetimingsimulationunderQuartusIIisparticularlyintroduced.KeywordsQuartusII;I2Cbuscontroller;FPGA;timingsimulation绪论1.1课题背景近年来,随着社会的发展,电子产品越来越多的进入人们的生活和工作中,成为了我们生活中必不可少的一部分,随着计算机的普及,以及电子设备之间相互沟通的更加频繁为了更方便的实现器件与器件之间的通信,研发人员从消费者电子、电讯和工业电子中许多看上去不相关的设计中寻找到了他们的相似之处,例如几乎每个系统都包括:(1)一些智能控制,通常是一个单片的微控制器。(2)通用电路,例如LCD驱动器、远程I/O口、RAM、EEPROM或者数据转换器。(3)面向应用的电路,譬如收音机和视频系统的数字调谐和信号处理电路。为了使这些相似之处对系统设计者和器件厂商都得益,而且使硬件效率最大电路最简单,Philips开发了一个简单的双向两线总线,实现有效的IC之间控制,这个总线就称为I2C总线。现在Philips包括超过150种CMOS和双极性兼容I2C总线的IC,可以执行前面提到的三种类型的功能。所有符合I2C总线的器件组合了一个片上接口,使器件之间直接通过I2C总线通讯,这个设计概念解决了很多在设计数字控制电路时遇到的接口问题。I2C总线具有以下优点:(1)极低的电流消耗、抗高噪声干扰、电源电压范围宽以及较广的工作温度范围、简单性和有效性(2)I2C总线占用的空间非常小(接口直接在组件之上),减少了电路板的空间和芯片管脚的数量,降低了互联成本(3)支持主控,其中任何能够进行发送和接收的设备都可以成为总线,一个主控能够控制信号的传输和时钟频率(任何时间点只能有一个主控)1.2I2C总线的产生及发展I2C总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。1.3FPGA的现状与展望FPGA是英文Field-ProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA经过70年的不断发展,由当初的1200门发展成为今天的百万门级。通过不断更新优化产品架构和生产工艺,实现了更高的性能、更短的开发周期、更低的单位成本和功耗。从前的“定论”是:FPGA可编程,灵活性高,一直依赖都是用作建模的平台,而不适合进行量产,但是经过多年的研发,大大缩短了FPGA开发时间,降低了验证成本。高集成度和灵活度从消费电子的发展来看,客户要求产品的更新换代的周期越来越短,并要求不段的继承更多的,层出不穷的,新的技术和应用,而且又要严格控制成本。因此,FPGA在灵活性上就具备了天然的优势,且通过多年的努力,在高性能和低功耗方面也取得了显著地改进,现在的FPGA性能已经能够满足大多数应用的的需要。1.4相关计划为了设计基于FPGA的I2C总线控制器,包括数据传输时序、传输命令、传输格式。首先要深入研究I2C总线的协议规范,在QuartusⅡ平台上,对设计进行分析、综合,功能和时序仿真,最后深入研究FPGA芯片的设计流程,并根据以上结果选择芯片,并配置到FPGA上,验证设计结果。一、I2C总线技术的研究1.1I2C总线的概念I2C总线是一种比较流行的总线,它的接受和发送在同一条数据线上。I2C由串行数据(SDA)和串行时钟(SCL)两根线构成的。总线上允许连接的设备数主要决定于总线上的电容量,一般设定为400pf以下。SDA和SCL都是双向总线,它们都通过上拉电阻连接到电源上。当总线处于停止(IDLE)状态,两根线都是高电平。对于I2C总线来说,总线上连接的设备,例如LCD驱动器、存储器等都是有一个唯一的地址识别,而且都可以作为一个发送器或接收器。至于是作为发送器还是接收器,主要取决于连接设备的具体功能。例如LCD驱动只是一个接收器,而存储器则既可以接受又可以发送数据。除了发送器和接收器外,设备在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输,并产生允许传输的时钟信号的设备,这时任何被寻址的期间都被认为是从机。由于I2C总线使用两线的硬件接口简单,I2C总线的应用越来越广泛[1]。下面,将I2C总线的通用术语进行介绍,如表2-1所示;I2C总线的典型接法如图2-1所示。表2-1I2C总线的通用术语术语描述发送器发送数据到总线的器件接收器从总线接收数据的期间主机初始化发送、产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线,但不破坏报文仲裁是一个在有多个主机同时尝试控制总线,但只允许其中一个控制总线并使报文不被破坏的过程同步两个或多个器件同步时钟信号的过程图2-1I2C总线信号连接示意图1.2I2C总线的传输由于I2C总线的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑‘0’(低)和‘1’(高)的电平不是固定的。在I2C总线每传输一位数据就有一个时钟脉冲相对应,其逻辑“0”或“1”的信号电平取决于该节点的正端电源Vdd的电压。1.2.1数据的有效性在工作过程中,数据有效要求串行数据(SDA)线上的数据必须要在串行时钟(SCL)的高电平时钟周期期间保持稳定。而只有在串行时钟(SCL)线的时钟信号是低电平的时候串行数据(SDA)上的数据才能发生变化(如图2-2所示)1.2.2I2C总线数据传送的开始和停止条件在I2C总线数据传送的整个过程中,需要先有开始条件引发,并由停止信号结束,这两个条件在数据线上的表示如图2-3所示。开始条件:当串行时钟(SCL)线上的时钟信号是高电平的时候串行数据(SDA)上的数据由高电平变为低电平,产生了一个下降沿,表示数据传输开始。停止信号:当串行时钟(SCL)线上的始终信号是高电平的时候串行数据(SDA)上的数据由低电平变为高电平,产生了一个上升沿,表示数据传输停止。开始和停止条件一般由主机产生。总线在开始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。图2-2I2C总线的数据位传输图2-3开始和停止条件2.2.3I2C总线传输过程中的应答信号数据传输必须带应答。相应的时钟脉冲又主机产生。在应答的时钟脉冲器件,发送机SDA输入端保持高电平,接收机将SDA输出端拉低,使它在这个时钟脉冲的高电平器件保持稳定的低电平。当从机不能应答从机地址时,从机必须使数据线保持高电平,主机产生一个停止条件,终止传输或者产生重复起始条件开始新的传输。如果执行写操作过程中,从机应答了从机地址,但是在传输了一段时间后不能接收更多数据字节,主机必须终止传输。这个情况用从机在第一个字节后没有产生应答来表示,从机使数据线保持高电平,主机产生一个停止或重复起始条件。如果执行读操作过程中,主机必须在从机传输最后一个字节之后产生一个不应答信号,之后产生停止条件,而从机必须将数据线保持高电平,允许主机产生一个停止或重复起始条件。2.2.4I2C总线数据传送的重复开始条件主机与从机进行通信时,有时需要切换数据的收发方向。例如,访问某一具有I2C总线接口的存储器时,主机先向存储器输入存储单元的地址信息(发送数据),然后再读取其中的存储内容(接收数据)。在切换数据的传输方向时,可以不必先产生停止条件再开始下次传输,而是直接再一次产生开始条件。I2C总线在已经处于忙的状态下,再一次直接产生起始条件的情况被称为重复起始条件。正常的起始条件和重复起始条件在物理波形上并没有什么不同,区别仅仅是在逻辑方面。在进行多字节数据传输过程中,只要数据的收发方向发生了切换,就要用到重复起始条件。2.2.5I2C总线的传输过程中的字节格式总线传输时要按照规定的数据格式,发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个应答信号。首先传输的是数据的最高位(MSB)。在开始条件发出之后,SDA输入端发送一个7位的从机地址,然后第8位为数据方向位(读/写位),数据方向表明主机和从机的数据传输方向。“0”表示主机发送数据(写),“1”表示从机发送数据(读)。如果从机要完成一些其他功能后才能接受或者发送下一个完整的数据字节,可以使时钟SCL保持低电平迫使主机进入等待状态。当从机准备好接受下一个数据字节并释放时钟SCL后,数据传输继续。数据传输由主机产生停止条件结束。2.2.6I2C总线的器件子地址带有I2C总线的器件除了有从机地址(SlaveAddress)外,还可能有子地址。从机地址是指该器件在I2C总线上被主机寻址的地址,而子地址是指该器件内部不同部件或存储单元的编址。某些器件(只占少数)内部结构比较简单,可能没有子地址,只有必须的从机地址,子地址与从机地址一样,子地址实际上也是像普通数据那样进行传输的,传输格式仍然是与数据相统一的,区分传输的到底是地址还是数据要靠收发双方具体的逻辑约定。子地址的长度必须由整数个字节组成,可能是单字节(8位子地址),也可能是双字节(16位子地址),还可能是3字节以上,这要看具体器件的规定。2.2.7I2C总线传输信号的时序I2C总线数据传送分为读操作和写操作(图2-4),而读操作还分为按照当前位置进行读操作(图2-6)以及随即性读操作(图2-8),时序图如下图2-4主机向从机发送了一个字节的时序图2-5主机向从机连续发送多个字节的时序图2-5所表示的是一个最简单的写操作的时序,主机向从机传送一个7位的地址数据,然后第8位为读/写位,在这个表示地址的字节传输结束之后,在串行时钟(SCL)的第9个时钟,由从机发送一个应答信号(此时串行数据SDA输入端在SCL为高电平期间内保持高电平,而SDA输入端输出为低电平,表示一个应答信号),接着主机继续向从机传输8位数据,之后再次由从近发送一个应答信号,这个时候如果还需要发送数据字节,可以继续发送(图2-5),每发送8位数据后都要由从机发送一个应答信号,当数据发送完毕后,在最后一个应答信号之后的那个SCL处于高电平的时钟周期内,将串行数据SDA输入端从低电平拉为高电平,表示数据传输停止。图2-6主机向从机接收1个字节数据的时序图2-7主机向从机连续接收多个字节数据的时序图2-6所表示的是一个最简单的按照当前位置进行的读操作,前9个周期的时序与写操作的时序一致,不同的是当从机发送一个应答信号之后,由从机向主机传输8位数据,这个时候如果还需要发送数据字节,可以继续发送(图2-7),每发送8位数据后都要由主机发送一个应答信号,当数据发送完毕后,在最后一个数据字节传送结束之后的那个SCL处于高电平的时钟周期内SDA的输入端保持高电平,而SDA输入端输出也为高电平,表示一个不应答信号(图中Nack(Notacknowledge)表示),之后的一个时钟周期内产生停止条件,表示数据传输停止。图2-8主机向从机随即接收多个字节数据的时序图2-8所表示的是一个多字节的随机性读操作,选择性读操作允许主器件对寄存器的任意字节进行读操作,主机首先通过发送起始信号、从机地址和它想要读取的字节数据的地址执行一个伪写操作。在从机应答之后,主机重新发送起始信号和从机地址,此时读/写位为“1”进行读操作,从机响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件发送应答信号,这个时候如果还需要发送数据字节,可以继续发送,每发送8位数据后都要由主机发送一个应答信号,当数据发送完毕后,在最后一个数据字节传送结束之后的那个SCL处于高电平的时钟周期内SDA的输入端保持高电平,而SDA输入端输出也为高电平,表示一个不应答信号(图中Nack(Notacknowledge)表示),之后的一个时钟周期内产生停止条件,表示数据传输停止。二、详细设计方案2.1电路框图2.2模块化分分频模块:由FPGA的锁相环输出的稳定信号,由于频率很高所以必须分频模块输出满足I2C总线要求的数据传送速率。I2C总线控制时序模块:该模块用于产生I2C总线数据传送的时序控制,是设计的核心。数据锁存器:根据读写使能信号(r/w)存储I2C总线已接受或等待发送的数据。移位寄存器:在时序控制逻辑模块的控制下根据读写使能信号(r/w)对数据进行正确处理。2.3设计原理由于I2C总线传输协议可知,I2C总线在传输过程中有几个固定状态,因此我们采用同步状态机来设计I2C总线模块。主状态机共有5个状态:空闲(Idle)、开始(start)、发送数据(Tx)、接收数据(Rx)、停止(Stop)。Idle:I2C总线处于空闲状态start:当启动信号为高电平时,开始运作I2C模块,且根据使能信号判断进入下一个状态。Tx:当读写控制信号为低电平时发送数据。Rx:当读写控制信号为高电平时接收数据。Stop:当数据传送完毕,跳入Stop状态。2.4I2C主模块状态机转移图2.5用VHDL语言实现写操作时的串行转并行写操作时,输入SDA上的串行数据,输出从机上的并行数据,用VHDL语言实现如图5-1和图5-2图5-1串行转并行模块图图5-2串行转并行仿真图2.6用VHDL语言实现顺序读操作时的并行转串行顺序读操作时,输入从机上的并行数据,输出SDA的串行数据,用VHDL语言实现如图5-3和图5-4图5-3并行转串行模块图图5-4并行转串行仿真图3.4I2C总线控制器的顶层设计I2C总线控制器就是将主机和从机连接起来,它一方面要通过数据总线与主机交换数据,另一方面通过I2C总线与从机交换数据,使他们之间能够进行通讯。根据据总线控制器要完成的功能,需要2条8位数据线,1条8位地址线,1条串行时钟线,1条串行数据线,1条读写控制线,1条启动线,1条清零线,1条应答信号线。其详细的输入输出接口信号及其功能如表5-1所示,其中kongzhi是芯片的控制信号,只有当它启动之后,其它的地址、复位和命令信号才能启动。表5-1I2C总线接口信号表端口名方向描述kongzhi输入启动信号scl输入时钟输入clr输入清零位dizhi输入地址信号输入shuru输入读操作中从机发送的数据duxie输入读写控制信号shuchu输出写操作中主机接收的数据ack输出从机的应答信号sda输入/输出数据输入输出信号它的外围接口设备如图5-5图5-6图5-7所示:图5-5I2C总线顶层设计模块图图5-6I2C总线控制器的外围接口功能框图图5-7I2C总线控制器的端口图三、I2C总线的硬件时序仿真本文在Quartus7.1环境下对I2C总线控制其时序进行仿真,上一章中已经对部分模块进行了功能仿真。而时序仿真是在FPGA布局布线完成之后进行的仿真,这一级别的仿真可以真实地模拟真实电路的工作情况。为了确认I2C总线控制器是否能够正确运行,我们建立一个模拟的仿真环境,主器件为微控制器,从器件是EEPROM。I2C总线规范规定,每个从器件都拥有一个唯一的7位从器件地址,让主机来进行选择,通常7位中四个较重要的位(MSB――theMostSignificantBit)为固定的,并依器件本身性质的分类区分,如1010即代表串行EEPROM,而其他三个较不重要的位(LSB),即A2、A1与A0则可以通过硬件电子引脚设定,并取得8个不同的I2C地址组合,因此在同一个I2C总线上可以有8个相同类型的器件[10]。3.1器件的选择在QuartusⅡ平台上,对FPGA进行仿真之前,要选择一个器件。FPGA器件的选用同其它通用逻辑器件不同,除考虑器件本身的性能外,软件工具也很重要[11]。如何选用合适的FPGA器件,不只是一件一次性的工作,还涉及到设计软件的选用以及今后进一步工作的开展。首先,用户应该根据自身的技术环境、技术条件、使用习惯等选择一种合适的软件工具,同时要兼顾EDA技术的发展。占据优势的软件供应商同大多数芯片制造商建立了良好的合作伙伴关系,所以,拥有一种设计软件,再进一步选择不同的工具库,或增加部分配置,即可对不同厂家的不同种类的FPGA产品进行设计。其次,用户可根据设计的需要确定选择哪一类FPGA器件。如果用于航天、军事领域,反熔丝技术的一次编程型FPGA是首选;如果要完成多种算术运算,或是要求工作在较高速度下,EPLD/CPLD是较好的选择;而对于功能复杂的时序逻辑电路而言,标准门阵列单元型的FPGA具有集成度高、保持灵活和功耗低的优点。第三,选定某一厂家的产品,生产同类器件的厂家很多,一般依据以下准则进行选择。(1)选择有设计软件支持的厂家的芯片,这样可减少资本投入,降低成本。(2)选择产品设计性能改进有余量的。如果所选择的芯片是某一厂家产品中容量最大,或是速度最高的,那么,一旦设计需要改进,则有可能在该厂家的芯片中再选不出合适的来了。(3)设计应用的延续性和可扩展性。如果所选厂家的产品具有很大的局限性,则有可能仅仅适用于很少一部分设计,从而造成设计软件投入上的浪费。(4)选择性能价格比最优的。尽管象Xilinx、Altera这样的器件生产厂家都在通过降价来作市场宣传,大多数FPGA芯片的价格还是比较高的,所有在满足上述准则的情况下适当考虑价格也是有必要的。参考产品说明书,了解芯片容量、外引脚个数、封装形式、速度级别以及温度范围等等。选择合适芯片的前提是对设计要求的全面分析和了解。设计人员应结合芯片的内部结构适当调整设计以尽可能充分地利用芯片资源[12]。根据以上原则,在本设计中,选择了Altera公司的cycloneII系列的EP2C35器件,它采用90nm技术,就有较大的容量和速度,具有强大的系统级功能以及重要的改进和新特性,是同类产品中成本最低密度最大的FPGA。3.2硬件仿真本课题设计的控制器主要是针对8位的微处理,为了更充分地体现它在系统中的应用,在对设计进行仿真的时候,建立一个仿真环境,但是并不将它们具体的模块体现在论文中微处理器为控制器提供输入信号,控制器的输出信号连接到EEPROM上。在QuartusⅡ平台上,根据器件的datasheet,进行管脚分配,然后对项目进行语法分析,编译,EDA工具可以生成一个RTL级的连接图,影射到工艺库,项目会生成一个工艺库影射浏览图,生成的图形见附录,之后进行综合,时序分析。为了验证系统的功能性,在时序仿真之前,首先进行功能级的仿真,各个模块的仿真波形见附录。然后进行布局布线,创建波形图,进行时序仿真,也就是后级仿真,它能够真实地反映系统的工作情况。下面具体分析几个仿真图形3.2.1用VHDL语言实现写字节周期首先控制端口先发送一个启动信号(本设计中用一个下降沿作为启动信号),系统接到启动信号后,所有的器件开始工作。写操作中,由主机先向SDA串行数据线发送一个开始信号,之后发送一个7位的从机地址以及第8位的写位(“0”),为寻找此次操作的目标器件,因为所有的从机都已经于SDA线相连,然后开始根据这个地址搜索所寻找的从机,这个过程I2C总线将自行完成,找到后,从机会发送一个应答信号,接到应答信号后主机开始向从机发送数据,因为SDA为串行线,而从机位并行输出,这个时候完成的工作就是上一章的做的写操作的时候的串行转并行,每传输完毕一个字节(8位)从机就会发送一个应答信号,当最后一个字节发送完毕后,主机在接受到最后一个应答信号的时候就会发送一个停止信号,标志这次写操作的结束。图6-1写字节操作仿真图3.2.2用VHDL语言实现顺序读字节周期首先控制端口发送一个启动信号,系统接到启动信号后,所有的器件开始工作。顺序读字节操作中,由主机先向SDA串行数据线发送一个开始信号,之后发送一个7位的从机地址以及第8位读位“1”,为寻找此次操作的目标器件,因为所有的从机都已经于SDA线相连,然后开始根据这个地址搜索所寻找的从机,这个过程I2C总线将自行完成,找到后,从机会发送一个应答信号,本次操作要求是接收从机的数据,并没有选择接受哪个子地址的字节的信号,所以,按照顺序操作下面就可以从从器件接收数据了,发送了应答信号后的一个周期,从机开始向SDA线发送数据,因为SDA为串行线,而从机位并行,这个时候完成的工作就是上一章的做的读操作的时候的串行转并行,每传输完毕一个字节(8位)主机就会发送一个应答信号(此次操作反应在SDA线上,最后一个字节除外),当最后一个字节发送完毕后,主机将发送不应答信号而直接发送一个停止信号,标志这次顺序读操作的结束。图6-2顺序读操作仿真图3.2.3用VHDL语言实现选择性读字节周期首先控制端口先发送一个启动信号,系统接到启动信号后,所有的器件开始工作。顺序读操作首先要进行一次伪写操作,前9个时钟周期都是和写操作一样,包括第8位的读写位也输入的是写位“0”,由主机先向SDA串行数据线发送一个开始信号,之后发送一个7位的从机地址以及第8位的写位(“0”),为寻找此次操作的目标器件,因为所有的从机都已经于SDA线相连,然后开始根据这个地址搜索所寻找的从机,这个过程I2C总线将自行完成,找到后,从机会发送一个应答信号,接到应答信号后主机开始向从机发送所选择的那个8位的字节地址,当从机收到这8位字节地址后发送一个应答信号,主机收到这个应答信号后发送一个重复因开始条件,之后主机再次向从机发送7位从机地址和第8位的读位“1”,从机收到后发送一个应答信号,主机收到应答信号后开始向从机发送数据,每传输完毕一个字节(8位)主机就会发送一个应答信号(此次操作反应在SDA线上,最后一个字节除外),当最后一个字节发送完毕后,主机将发送不应答信号而直接发送一个停止信号,标志这次选择性读操作的结束。图6-3选择性读操作仿四、结论本次设计的题目是基于FPGA的I2C总线的设计与实现,设计中涉及到了I2C的有关知识,VHDL语言的编写,QuartusII软件的使用方法,以及FPGA的有关知识。其中主要任务就是运用VDHL语言编写I2C总线的功能和时序功能。论文中将几个比较重要的模块进行了功能仿真,并且对顶层设计也进行了详细的功能仿真和时序仿真,仿真结果表明,各个模块均基本完成了相应的逻辑功能。本次设计的I2C总线控制器非常适合于内含FPGA的系统中,因为I2C总线需要控制器,使用独立的控制器占用了多余的空间,用FPGA实现对I2C总线器件的控制成为最理想的选择,本设计能够实现FPGA模拟I2C总线来控制其读写操作,由于FPGA的快速发展,其容量可以将各种外围器件的接口集成到FPGA内部,这样可以实现设计的小型化,低功耗,并且降低了设计的复杂度,而且利用了FPGA在线可编程特点,可以增加系统设计的灵活度,提高了设计效率。着眼于VHDL语言的效率和可移植性以及不依赖器件的特性,设计者更能在不同系统中把握和描述系统结构和功能特性,使设计更具灵活性。本设计可以在本系统中使用,也可以移植到其他系统等。在设计期间,通过不断的学习、思考和实践,主要掌握了VHDL语言的基本编写技术,QuartusII的基本使用方法,提高了学习能力和操作能力,以及创新能力。为以后的学习打下了一定的基础,对以后学习别的语言等,积累的一定的经验。',)
提供IIC总线协议及应用,i2c总线协议会员下载,编号:1700635761,格式为 docx,文件大小为23页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。