




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业设计(论文)本科毕业设计(论文)题题目目基于基于 FPGA 的的 I2C 串行总线接口电路设计串行总线接口电路设计学生姓名学生姓名: 史俊达史俊达 专专 业业:集成电路设计及集成系统集成电路设计及集成系统指导教师指导教师: 黄静黄静 完成日期完成日期: 2013/5/30 诚诚 信信 承承 诺诺 书书本人承诺:所呈交的论文是本人在导师指导下进行的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 签 名: 日 期: 本论文使用授权说明本论文使用授权说明本人完全了解
2、南通大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容。(保密的论文在解密后应遵守此规定保密的论文在解密后应遵守此规定)学生签名: 指导教师签名: 日期: 南通大学毕业设计(论文)I摘摘 要要I2C(Inter Integrated Circuits)总线是 Philips 公司开发的用于芯片之间连接的串行总线。现场可编程门阵列(FPGA)设计灵活、速度快,在数字专用集成电路的设计中得到了广泛的应用。I2C 串行总线接口电路设计的主要任务是根据 I2C 时序协议用 Verilog HDL 语言对 I2C 总线接口电路的
3、描述,其目的是通过在 FPGA 上来实现 I2C 接口电路来领会复杂数字电路的设计思路和理念。在对 I2C 总线的研究现状与发展进行了深入的调研的基础上,论文着重阐述了在 FPGA上实现随机读/写的 I2C 接口电路的设计方案。首先,论文简单介绍了硬件描述语言(Verilog HDL)与现场可编程门阵列(FPGA)。其次,论文详细说明了 I2C 串行总线内部结构和数据传输格式及其时序协议。基于此,论文重点阐述了接口电路的设计方案以及在FPGA 开发板上与外围 I2C 接口器件 E2PROM 实现数据传输的仿真与测试。经过多次实验验证,I2C 总线接口电路已通过行为级仿真和综合及布局布线后门级时
4、序仿真,满足系统要求。最后,论文对所得的研究成果进行了总结。关键词关键词: Verilog_HDL;FPGA;I2C 串行总线;随机读/写;E2PROM南通大学毕业设计(论文)IIABSTRACTI2C (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 b
5、ecause of its flexibility and high speed. The main task of I2C serial bus interface circuit design is based on the I2C timing agreement with Verilog HDL language description of the I2C bus interface circuit, which aims to achieve I2C interface circuit up to comprehend complex digital circuit design
6、ideas and concepts through the FPGA.Based on the in-depth research of the I2C bus status and development, the design scheme of the random read/write I2C interface circuit on FPGA was underlined in the paper. First,hardware description language (Verilog HDL) and field-programmable gate array (FPGA) w
7、ere introduced slightly in the paper. Second, the internal structure and data transmission format of I2C 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 simul
8、ation and test of data transmission with peripheral devices E2PROM with I2C interface were stressed. After several experiments, I2C bus interface circuit has passed the behavioral level simulation and synthesis and layout-level timing simulation backdoor to meet system requirements. Finally, the res
9、earch results were summarized.Keywords: Verilog_HDL; FPGA; I2Cserial bus ; Random read /write; E2PROM南通大学毕业设计(论文)III目目 录录摘 要.IABSTRACT.II第一章 绪 论 .11.1 本课题研究的意义 .11.2 研究领域现状 .11.3 发展趋势 .11.4 所做的主要工作.2第二章 Verilog HDL 和 FPGA 的综述.32.1 硬件描述语-Verilog HDL .32.1.1 Verilog HDL 简介.32.1.2 Verilog HDL 的发展.32.1.
10、3 Verilog HDL 用途.32.2 现场可编程门阵列-FPGA.32.2.1 FPGA 的概要.32.2.2 FPGA 的基本组成.42.2.3 FPGA 的基本特点.4第三章 I2C 串行总线简介.63.1 I2C 串行总线的概述 .63.2 I2C 总线特征 .63.3 I2C 总线的数据位传输 .73.3.1 有效数据位的规定 .73.3.2 起始和终止信号 .73.4 I2C 总线上的数据传输 .83.4.1 数据字节格式 .83.4.2 应答确认 .83.4.3 I2C 总线的工作模式.93.5 I2C 总线的工作流程 .9南通大学毕业设计(论文)IV3.5.1 I2C 总线
11、的写操作.93.5.2 I2C 总线的读操作.103.6 仲裁和时钟同步.103.6.1 时钟同步 .103.6.2 数据仲裁 .11第四章 I2C 串行总线接口电路设计.134.1 I2C 串行总线接口电路的性能指标 .134.2 I2C 串行总线接口电路的设计平台 .134.3 I2C 串行总线接口电路的设计方案 .134.3.1 I2C 串行总线接口电路的框图设计.134.3.2 I2C 串行总线接口电路的内部模块设计.144.3.3 I2C 串行总线接口电路各模块的程序设计方法.144.4 I2C 串行总线接口电路程序的综合 .16第五章 I2C 串行接口电路仿真与 FPGA 开发板测
12、试.185.1 电路仿真测试平台.185.1.1 电路仿真工具 .185.1.2 电路开发板测试仪器 .185.1.3 外部测试芯片 .195.2 外围电路的构建.225.2.1 E2PROM 电路构建.225.2.2 完整的测试电路 .235.3 I2C 串行接口电路仿真结果.245.3.1 I2C 串行接口电路写数据的功能仿真.245.3.2 I2C 串行接口电路读数据功能仿真.255.3.3 I2C 串行接口电路写数据时序仿真.265.3.4 I2C 串行接口电路读数据时序仿真.265.3.5 E2PROM 行为模块的反馈信息图.275.4 I2C 串行接口电路 FPGA 测试结果.27
13、结束语 .32参考文献 .33南通大学毕业设计(论文)V致 谢 .34附 录 .35南通大学毕业设计(论文)1第一章第一章 绪绪 论论1.1 本课题研究的意义本课题研究的意义随着电子科技的迅速发展,需要相互通信及与外界通信的IC电路变得越来越复杂。为了简化电路设计,Philips公司开发了一种双向二线的串行I2C总线(Intel Integrated Circuit Bus)。该总线具有通讯效率高、传输线少等特点。因为其简单的接口、控制简便,使用I2C总线的电子电路设计工程师日益增多。I2C总线只提供两根线进行通信,所有具有I2C接口的器件都可以挂在这两根线上直接通信。目前,IC制造商提供的I
14、2C总线应用芯片的功能越来越强大。I2C总线由主器件控制,增加额外的I2C控制器需要额外的印制板面积,增加了成本。因此,在一些特殊应用条件下,使用一种利用应用广泛的现场可编程门阵列(FPGA)实现与I2C总线器件无缝连接的方法,将是更为经济的解决方案。根据I2C总线的通讯协议,在Altera 公司的EP2C35F672C6型号的FPGA上实现与具有I2C接口的外围芯片进行通信,具有易调试、灵活配置、高速传输等优点,这样大大地缩减了电路系统的开发时间。1.2 研究领域现状研究领域现状单片机应用系统正向小型化、高可靠性、低功耗等方向发展。在一些功能较多的电路系统中,经常需扩展多个外围接口器件。如果
15、采用传统的并行传输方式,传输时间是缩短了,但也增加了系统资源的消耗和系统的复杂度,关键是功耗的增大和成本的增加。现在,许多公司采用了 Philips 公司开发的 I2C 总线,使单片机系统电路结构的复杂度大大减小,并且增加了硬件的灵活性,缩短了产品开发周期,降低了成本。自从I2C总线成为国际通用的总线标准后,I2C总线因为具有扩展方便、协议完善、支持芯片多和连线少等优点,已经被很多集成电路厂商集成到微控制器集成电路中。I2C总线的应用涉及通信、控制、家电、消费电子等众多领域,在很多器件上都配备有I2C 总线接口,而且功能日益强大。1.3 发展趋势发展趋势I2C总线以其结构简单、通信功能可制定、
16、高抗干扰性、传输速度快等特点获得了广泛的应用。I2C总线控制器是MPU与I2C器件之间的桥梁,它负责接收处理器的数据、地址以及控制信号,而且反馈I2C器件的状态和数据给处理器,实现处理器与I2C器件之间的通信。Philips 公司除了生产具有 I2C 总线接口的单片机外,还推出了许多具备 I2C 总线的外部南通大学毕业设计(论文)2接口芯片,如 AT24CXX 系列的 EEPROM、128 字节的 SRAM 芯片 PCF8571、日历时钟芯片 PCF8563、4 位 LED 驱动芯片 SAA1064、160 段 LCD 驱动芯片 PCF8576 等多种类多系列接口芯片。随着可编程器件的飞速发展
17、,用 FPGA 器件实现 I2C 总线控制器接口的设计可以带来很多方面的便利。1.4 所做的主要工作所做的主要工作由于现场可编程逻辑门阵列(FPGA)作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,深受硬件电路设计人员的喜爱,大大缩减了电路开发时间5。本论文要求在 FPGA 上实现I2C 串行总线接口电路,要求实现基本的随机读写功能和显示、编写电路测试模块。全文共分为五章,各章节的主要内容安排如下:第一章为绪论,简要介绍了I2C串行总线接口电路的研究背景、意义和目前国内外研究现状。第二章对硬件描述语言Verilog
18、HDL和现场可编程逻辑门阵列FPGA的综述,其中包括硬件描述语言Verilog HDL及FPGA的起源、发展、应用等;Verilog HDL语言与FPGA的开发板的结合在现在的半定制电路中应用很广泛,这样可以省去不少开发全定制的时间和成本等。第三章对I2C串行总线接口电路进行了介绍,了解I2C串行总线的概念和其工作时序协议,其中包括I2C串行总线接口的内部结构。第四章阐述了 I2C 随机读/写串行接口电路设计,首先说明了 I2C 随机读/写串行接口电路的设计框图,同时对这个电路进行分模块设计。遵循自顶向下(Top_Down)设计理念,将复杂的时序电路分解成几个简单的小模块,使设计流程清晰化,这
19、样也便于测试。第五章为 I2C 随机读/写串行接口电路的仿真和测试,分别用软件对电路进行功能、时序仿真和在 FPGA 开发板上测试。最后,把测试结果与实际值进行比较,进一步地确认电路的正确性。南通大学毕业设计(论文)3第二章第二章 Verilog HDL 和和 FPGA 的综述的综述2.1 硬件描述语硬件描述语-Verilog HDL2.1.1 Verilog HDL 简介简介Verilog HDL 是一种描述硬件的语言,可以用文本编程的形式来描述硬件的内部结构和行为。它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL 由 Gateway Desi
20、gn Automation 公司开发的。现在,Verilog HDL 和 VHDL 一样也是世界上最流行的两种硬件描述语言之一,已经成为为 IEEE 标准。2.1.2 Verilog HDL 的发展的发展Verilog HDL 语言原来是由 Gateway Design Automation 公司于 1983 年为其模拟器产品开发的硬件建模语言,它还只是一种专用语言2。随着他们的模拟、仿真器产品被电子业界广泛使用,Verilog HDL 作为一种便于使用而且实用的语言开始被越来越多的电路设计者所接受2。Verilog HDL 语言在一次增加语言普及性的活动中被推向公众领域。1992 年,Ope
21、n Verilog International 决定推广 Verilog OVI 标准成为 IEEE 标准,这一推广最终获得了成功。于 1995 年,Verilog 语言成为 IEEE 标准,称为 IEEE Std 136419952。2.1.3 Verilog HDL 用途用途Verilog HDL 是目前应用最为广泛的硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模14。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间14。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模14。Verilog HDL 可以用来进行各种层次的逻辑设计,也可
22、以进行数字系统的逻辑综合,仿真验证和时序分析等14。2.2 现场可编程门阵列现场可编程门阵列-FPGA现场可编程门阵列(Field Programmable Gate Array:FPGA),它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点5。2.2.1 FPGA 的概要的概要目前以硬件描述语言(Verilog 或 VHDL)描述的逻辑电路,可以利用逻辑综合和布线工具软件,快速地烧录至 FPGA 上进行测试,这一过程是现代 集成电路设计验证的技术
23、主南通大学毕业设计(论文)4流5。这些可编程逻辑元件可以被用来实现一些基本的逻辑门数字电路(比如与门、或门、异或门、非门)或者更复杂一些的组合逻辑功能,比如译码器等19。大多数的 FPGA 里面包含记忆元件,例如触发器(Flipflop)或者其他更加完整的记忆块,从而构成时序逻辑电路19。电路系统设计人员可以根据需要,通过编程下载的方式,把 FPGA 内部的逻辑块连接起来,这样就完成了在 FPGA 芯片里构建你所要的电路。FPGA 内部的逻辑块和连接可以随着设计者的需要而改变,所以 FPGA 能够成为数字电路设计人员在半定制电路中的第一选择。一般来说,FPGA 比专用集成电路(ASIC)的速度
24、要慢一点,无法完成更复杂的设计,并且能耗也大。但是,FPGA 具有可以快速成品,而且其内部逻辑可以被设计者反复修改的优点。此外,用 FPGA 调试的成本较低。2.2.2 FPGA 的基本组成的基本组成静态随机存取存储器(SRAM):基于静态内存 Static memory 技术,系统内可编程化和再程序化(Re-programmable),须要外部启动元件(External boot devices)CMOS。Antifuse:可烧录一次。通常为 CMOS。PROM(一次性可编程 EPROM):可编程化只读存储器技术,可烧录一次。使用塑料封装,无窗,不能清除内容。EPROM:可清除可编程化只读存
25、储器技术,有窗,经紫外线照射可清除内容。EEPROM:可电气清除可编程化只读存储器技术,可用电气信号清除内容。闪存:一种特殊的 EEPROM。熔丝:可烧录一次。通常为双极性的。2.2.3 FPGA 的基本特点的基本特点采用 FPGA 设计 ASIC 电路,用户无需投片生产,就能得到组合的芯片。做半定制电路的样品。内部有大量的触发器和 I/O 引脚。电路设计周期短、开发成本低、风险小。采用高速、功耗低的 CHMOS 工艺,兼容 CMOS、TTL 电平。能提高系统集成度和可靠性。FPGA 内部 RAM 中的程序控制其工作过程。工作时,只需对片内的 RAM 进行编程,就可以实现不同的功能。南通大学毕
26、业设计(论文)5加电时,FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,完成配置后,FPGA 进入工作状态3。掉电后,FPGA 恢复成空白片,内部逻辑关系消失3。因此,FPGA 能够反复使用。FPGA 的编程无须专用的 FPGA 编程器,只须用通用的 EPROM、PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可3。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能3。因此,FPGA 的使用非常灵活。南通大学毕业设计(论文)6第三章第三章 I2C 串行总线简介串行总线简介3.1 I2C 串行总线的概述串行总线的概述I2C(Inter In
27、tegrated Circuit)总线是由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线8。I2C 总线也是微电子通信控制领域广泛采用的一种总线标准。它不同于普通的同步通信,具有输出线少,容易控制,传输速率快,抗干扰强等优点。I2C总线定义了两根线:串行数据线SDA和串行时钟线SCL。如图3.1是I2C总线系统的示意图。图中的单片机、SRAM或E2PROM、A/D或D/A转换器以及其他I2C外围设备都有它们各自的地址。在数据传输过程中,通信双方分别称为I2C主控(I2C_Master)和I2C从设
28、(I2C_Slave),都可以作数据发送端和接收端。图3.1 带有微控制器的I2C总线配置迄今为止,飞利浦已开发出 150 余种,包括 CMOS 和双极型 I2C 总线兼容 IC,所有符合标准的 I2C 总线接口的设备,通过简单的双向两线总线,以实现有效的控制和 IC 之间的通信。3.2 I2C 总线特征总线特征I2C总线是通过双向串行时钟线SCL和双向串行数据线SDA在器件之间传递信息的。SDA、SCL的输出级必须是开漏或者开集电极输出,并在两根线上分别通过上拉电阻接到正电源,以实现“线与”功能。如图3.2.当总线处于空闲状态,SDA、SCL均保持为高电平。挂在总线上每个器件都有自己对应的唯
29、一地址,用来发送数据或接收数据。当主器件掌控总线时,为实现数据的传输,主器件需要产生传输所需的时钟;被寻址的器件只能作为从器件。在标准模式下,I2C总线上数据的传输速率可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s7。总线电容(400pF)及地址的寻址范围决定连接到总线的器件数量。南通大学毕业设计(论文)7 图3.2 I2C标准模式器件和快速模式器件连接到I2C总线在复杂的系统中,可能有多台主机同时启动总线,进行传输数据。通过总线仲裁,就可以很好地控制哪一台主机来控制总线。3.3 I2C 总线的数据位传输总线的数据位传输3.3.1 有效数据位的规
30、定有效数据位的规定I2C总线进行数据传输时,串行时钟为高电平期间,数据线上的数据必须保持稳定,只有在串行时钟为低电平期间,才允许数据线上的数据进行变化(即:高电平变低电平状态或者低电平变高电平状态),如图3.3。图3.3 I2C总线的数据位传输3.3.2 起始和终止信号起始和终止信号串行时钟SCL为高电平期间,串行数据SDA出现下降沿,则表示本次传输的起始信号;SCL线为高电平期间,SDA线出现上升沿,则表示本次传输的终止信号,如图3.4。 主机负责向从设发送启动和停止信号,产生启动信号后,SDA总线被占用;产生停止信号后,总线就释放总线。(即:处于空闲状态)。南通大学毕业设计(论文)8图3.
31、4 启动和停止信号3.4 I2C 总线上的数据传输总线上的数据传输3.4.1 数据字节格式数据字节格式发送至SDA线上的每个字节必须为8位,每次传输的字节数不受限制,每个字节后必须跟一位响应。被发送的数据第一位就是最高有效的数据位(MSB)。如图3.5。如果接收器在传输途中去做其他事(比如:做一些中断程序),接收器将把SCL拉低,直到处理好它的事情后才释放SCL,继续接收数据,在SCL被拉低的期间,主器件处于等待状态。图3.5 数据字节格式3.4.2 应答确认应答确认每次发送的 8 位数据必须跟一位应答,此应答对应的时钟周期还是由主器件来产生。在这个时钟周期里,主器件要释放 SDA,由从器件控
32、制,主器件在这个期间需要检测从器件有没有发送应答信号。从器件必须在这个时钟周期的低电平期间拉低 SDA,这样主器件才能在时钟高电平期间检测到应答信号。当然,SDA 的建立时间和保持时间也要考虑在内。产生起始位后,总线就处于忙碌状态,产生停止位后,总线就进入空闲状态。在读数据时,主机接收到最后一个字节就不产生响应位(SDA=1),以此告知从设不要再发送数据,等待结束信号。如果不是最后一个数据字节,则主机发出的响应位为0(SDA=0)。当从设响应南通大学毕业设计(论文)9了主机,在传输了一段时间后不能接收更多的数据字节,此时从机可以通过产生非响应来告知主机终止当前传输,于是主机产生一个停止信号终止
33、本次传输,或者产生重复起始信号开始新的传输13。3.4.3 I2C 总线的工作模式总线的工作模式(1)主器件发送从器件接收(写操作)主器件发送开始信号之后,紧接着发送的第一个字节是控制字节。高七位为从器件的地址片选信号。最低位为数据传输方向标示位 (1表示读从器件,0代表写从器件),如下图3.6。应答后再发送从器件的片内地址。应答后,接着发送的是数据字节,数据可以是单个字节,也可以是多个字节,取决于主器件。图3.6 第一个字节格式从器件每收到一个字节之后,在第九个SCL周期要反馈一个应答信号(SDA=0)。在应答周期,主器件释放SDA线,从器件把SDA拉成低电平,作为对主器件的应答。(2)从器
34、件发送主器件接收(读操作)发送开始信号之后,主器件发送写控制字节给从器件。如果从器件检测到这个控制字节中的从器件地址与自身地址相一致,并且方向位为1(R/W=1),则表示此次操作是读操作,由从器件反馈主器件一个应答。然后,从器件把数据发送给主器件。若主器件在之前给从器件发过片内地址,则从器件就从这个地址开始发送数据;若从器件没有收到片内地址,则从器件就从当前地址开始向主器件发送数据。从器件在发送一个字节数据后,若收到主器件的应答信号则继续发送下一个字节数据;若没收到主器件的应答信号,从器件将停止发送数据,等待主器件的停止信号。从器件的发送地址和字节数都由主器件决定。3.5 I2C 总线的工作流
35、程总线的工作流程3.5.1 I2C 总线的写操作总线的写操作写操作的步骤:1. 向从器件发启动信号2. 向从器件发 I2C 器件特征码、页地址(3bit)和读写控制位(R/W=0)南通大学毕业设计(论文)103. 从器件发应答信号(低)4. 向从器件发 8 位片内地址5. 从器件发应答信号(低)6. 向从器件发 8 位数据7. 从器件发应答信号(低)8. 若主器件仍需发送数据,就继续发,直到从器件没有应答信号(高)9. 向从器件发停止信号3.5.2 I2C 总线的读操作总线的读操作读操作的步骤(读随机地址单元):1. 向从器件发启动信号2. 向从器件发 I2C 器件特征码、页地址(3bit)和
36、读写控制位(R/W=0)3. 从器件发应答信号(低)4. 向从器件发 8 位地址5. 从器件发应答信号(低)6. 向从器件发启动信号7. 向从器件发 I2C 器件特征码、页地址(3bit)和读写控制位(R/W=1)8. 从器件发应答信号(低)9. 从器件发数据(8 位)10. 若主器件读单字节数据,则不给从器件应答(SDA=1)。若主器件需读多字节数据,则给从器件发应答(SDA=0),直到读最后一个字节数据,才向从器件发应答(SDA=1)。11. 向从器件发停止信号3.6 仲裁和时钟同步仲裁和时钟同步3.6.1 时钟同步时钟同步在 I2C 总线上,所有的主器件产生他们自己的传输时钟来传输数据。
37、数据只在串行时钟的高电平器件有效。要得到一个确定的串行时钟就需要一位一位进行仲裁7。时钟的同步就是利用 I2C 总线的线与功能。当有多个主机同时在 SCL 线上产生自己的时钟信号时,这些时钟信号通过线与的方式来同步。如图 3.7,主器件 l 产生的串行时钟CLK1 先变低,同步后的 SCL 线随之被拉低,主器件 2 内部的计数器被 SCL 的下降沿复位,同时输出端导通,两个主器件都对 SCL 的低电平开始计时。主器件 1 首先计数完成并关闭南通大学毕业设计(论文)11输出端,而主器件 2 没有完成计,输出端仍是导通,此时 SCL 仍为低电平,这时主器件 1进入高电平等待状态,直到主器件 2 完
38、成计数并释放 SCL 线,SCL 变为高电平7。当SCL变高时,两个主器件同时把计数器清0,然后开始对SCL线高电平计时,在图3.7中,主器件l首先完成SCL线高电平计数并拉低SCL线,检测到SCL线下降沿后,两个主器件的计数器同时清0,准备开始低电平的计时13。综上所述,同步后SCL线低电平时间取决于时钟低电平时间最长的主机,高电平时间取决于时钟高电平时间最短的主机7。图3.7 时钟同步图3.6.2 数据仲裁数据仲裁主机只会在I2C总线空闲时产生起始位,但是在起始位的保持时间tHD:STA内可能有多个主机产生起始位,最终,总线上的起始位由它们之间的线与运算决定,仲裁只是对SDA线上传输的数据
39、进行仲裁。SCL为高时,在SDA线上发送低电平的主器件将会赢得仲裁,发送高电平的主器件将会仲裁失败,并对SDA置高阻。如图3.8,两个主器件产生起始位后就开始对传输的数据进行仲裁,第一个数据位,SCL为高时,两个主器件都输出高电平,继续仲裁,第二个数据位,两个主器件都输出低电平,继续仲裁,到第三个数据位时,主器件l的SDA输出高电平,而主器件2的SDA线输出低电平,于是,主器件2赢得仲裁,主器件l呈现高阻状态7。仲裁可以持续几个数据位,若两个主器件传输的数据都是一样的,那么仲裁也会持续到结束信号。在实际通信中,第一个进行仲裁往往是控制字字节部分(即:器件地址和传输方向标示位),如果一个从器件被
40、多个主器件寻找,那么比较数据位进行仲裁,直到传输结束。赢得总线仲裁的主器件决定I2C总线上的地址和数据,因此传输的数据信息不会丢失7。南通大学毕业设计(论文)12图 3.8 数据仲裁图南通大学毕业设计(论文)13第四章第四章 I2C 串行总线接口电路设计串行总线接口电路设计4.1 I2C 串行总线接口电路的性能指标串行总线接口电路的性能指标本文设计要求实现一个严格遵循 I2C 协议的接口电路,传输速率最高为 1MHz,向下兼容低速的 I2C 接口的设备,输入的数据是 8 位的,输入地址是 15 位的(高 7 位是器件地址,低 8 位是器件内地址),另外器件地址为 7 位,可以对 128 个有
41、I2C 接口的器件进行寻址,能与 I2C 接口的 E2PROM 进行数据传输,并支持对从设进行随机读、写。4.2 I2C 串行总线接口电路的设计平台串行总线接口电路的设计平台Altera 公司的 Quartus 软件是电路设计所用到的平台。Altera 公司的 Quartus II 集成PLD/FPGA 开发软件,支持原理图,VHDL,Verilog HDL 的 AHDL(Altera Hardware Description Language)和其他设计输入表单,以及嵌入式自身合成模拟器的硬件配置,可以完成从设计输入完整的 PLD 设计过程。除了使用 Tcl 脚本完成设计流程外,Quartu
42、s II 还提供了一个完善的图形用户界面设计,具有编译速度快,界面功能多样,容易上手等优点。Altera 的 Quartus II 支持的 IP 内核,包括 LPM/宏功能块库,使用户能够充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。第三方 EDA 工具的良好支持也使得用户在设计过程中的各个阶段可以使用熟悉的第三方 EDA 工具。其可编程逻辑设计环境,由于其强大的设计能力和直观的界面,越来越多的数字系统设计人员的欢迎8。4.3 I2C 串行总线接口电路的设计方案串行总线接口电路的设计方案4.3.1 I2C 串行总线接口电路的框图设计串行总线接口电路的框图设计图 4.1 I2C 接口电
43、路的框图设计在电路设计中,电路的整体外部框图的设计对整个电路设计起到了决定性作用。拥有一个完整的、清晰的电路外廓对之后电路的各个部分的设计就有了清晰的把握。本次 I2C 接口电路需要一边要与 MPU 进行通信,另一边要与带有 I2C 接口的设备进行数据传输,这样就RDRSTCLKDATA7:0ADDR14:0WRACKDATA7:0MPUI2C串串行行接接口口I2C 设备设备 1I2C 设备设备 2VCC VCC南通大学毕业设计(论文)14构成了一个简单的电路系统。电路框图设计如图 4.1。4.3.2 I2C 串行总线接口电路的内部模块设计串行总线接口电路的内部模块设计I2C 串行接口电路的外
44、部框图只是给出一个电路系统的轮廓图,接口电路的内部结构如何还要根据内部框图的设计。内部框图的设计将会决定接口电路的具体实现。I2C 串行接口电路的程序设计是遵循了“自顶向下”的设计理念。利用层次化,结构化的设计方法,使电路设计变得层次清晰,结构简单。这个电路设计被分为 7 个子模块,分别是:I2C 接口顶层模块、输入时钟分频模块、串行时钟产生模块、输入数据寄存器模块、地址寄存器模块、控制寄存器模块和时序主状态控制模块。其中时序主状态控制模块是接口电路中核心部分,它控制着电路有序的运作。每个模块实现各自的功能,把每个模块按照逻辑相连就组成了一个电路整体。I2C 串行接口内部模块设计如图 4.2。
45、图 4.2 I2C 接口电路的内部模块设计4.3.3 I2C 串行总线接口电路各模块的程序设计方法串行总线接口电路各模块的程序设计方法I2C 串行接口电路的程序设计利用层次化,模块化的设计方法,使电路设计变得层次清晰,结构简单。这个电路设计被分为 7 个子模块,下面详细说一下各模块的设计方法。I2C 接口顶层模块主要是用来对下一层子模块的实例调用,要求子模块每个功能都能正确地实现,并且子模块之间的输入/输出也要满足时序要求。它是整个设计流程中最高层次的一个模块。I I2 2C C接接口口顶顶层层模模块块接接口口顶顶层层模模块块SCL 产生模块产生模块时时序序主主状状态态机机控控制制输入地址锁存
46、输入地址锁存控制锁存器控制锁存器输入数据锁存输入数据锁存分频器分频器ACKDATAOUT7:0CLK_50RSTWRRDDATA7:0WR/RDADDR14:0ACKCLKSDACLK_50RSTCLK_2MSCLSCL_ENDATA7:0ADDR14:0DATA7:0ADDR14:0WR_FLAGRD_FLAGDATAOUT7:0南通大学毕业设计(论文)15输入数据锁存器、地址锁存器、控制锁存器模块都属于输入锁存模块。它们的作用就是用来协调设备与 CPU 之间的通信。由于 CPU 工作速度快,数据信号、地址信号、控制信号只能保持一段时间有效。接口电路的输入锁存器就能很好地解决这个问题,当控制
47、信号出现时,其就把数据信号和地址信号锁入相应的锁存器。这块程序是采用组合逻辑来编写的。输入时钟分频模块用来协调接口输入的时钟与 I2C 总线传输时序之间的不匹配的,加个分频就能很好地解决这个问题。输入时钟为 50MHz,经过分频后输出的时钟频率是 2MHz。这块程序是采用时序计数来分频的。图 4.3 状态转移图串行时钟产生模块就是使 I2C 总线的串行数据线 SDA 在串行时钟线 SCL 的配合下把数据按照传输协议一位一位地传出去7。这块程序也是采用时序来分频的,在 CLK 的下降沿SCL 翻转,前提是要在 SCL 时钟产生信号有效。时序主状态控制模块是时序电路,也是整个电路的核心电路。它直接
48、控制着并行数据的装载、状态位标志和时序发送/接收的控制。整个电路在它的控制下有条不紊地进行数据通信。这块程序采用同步有限状态机(FSM)的设计方法。程序实际上就是一个主控状态机,在主状态不同的状态下都控制着不同的任务和控制信号,在不同的输入信号与当前状态的情南通大学毕业设计(论文)16况下构成复杂的有限状态机1。这个有限状态机的驱动时钟是频率为 2MHz 的 CLK。由于读写操作的状态中有几个状态是一致的,用到了嵌套状态机。状态转移如下图 4.3。为了避免代码重复,程序由一个发送的大任务和接收的大任务组成,状态编码采用独热码。4.4 I2C 串行总线接口电路程序的综合串行总线接口电路程序的综合
49、I2C 串行总线接口电路程序的综合是采用 Quartus自带的综合器进行综合的。各个模块的程序均已通过了综合器的综合,也给出了整个电路程序的综合报告及综合出来的原理图。综合报告如图 4.4。综合生成的原理图如图 4.5图 4.4 电路的综合报告图 4.5 综合生成的原理图南通大学毕业设计(论文)17第五章第五章 I2C 串行接口电路仿真与串行接口电路仿真与 FPGA 开发板测试开发板测试5.1 电路仿真测试平台电路仿真测试平台5.1.1 电路仿真工具电路仿真工具Mentor 公司的 ModelSim SE 10.1a 是本次 I2C 串行接口电路的仿真软件。ModelSim 是业界最优秀的 H
50、DL 语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL 和 Verilog 混合仿真的仿真器6。它采用直接优化的编译技术、Tcl/Tk 技术、和单一内核仿真技术,编译的代码与软件平台没有关系,编译和仿真速度快,便于保护 IP 核6。用户接口和个性化的图形界面加快了用户的调错进程,ModelSim 是 FPGA/ASIC 设计的首选仿真软件6。主要特点:1. 本地编译结构,RTL 和门级优化,编译和仿真速度快,能够跨版本甚至跨平台仿真6;2. 单内核支持 Verilog 和 VHDL 的混合仿真;3. 直接支持 System C,可以任意混合 HDL;4. 支持 System
51、 Verilog 的设计功能;5. 全面支持系统级描述语言:SystemVerilog、SystemC、PSL;6. 可以单独或同时进行行为(Behavioral)、RTL 级、和门级(Gate-level)的代码6。5.1.2 电路开发板测试仪器电路开发板测试仪器电路开发板测试的仪器是 Altera 公司的 DE2 教学开发板。DE2 开发板是以 672 针引脚的包装的 Cyclone II EP2C35F672C6 为核心。板上所有重要的部件都与板上的芯片相连,使用户能够控制板上各种的操作。DE2 板包括了很多开关(兼有拨动开关和按键),发光二极管和七段数码管3。在更多进一步的实验中还用到
52、了 SRAM,SDRAM,Flash 以及 162 的字符液晶。需要进行处理器和 I/O 接口试验时,可以简单的用 Altera NiosII 处理器和象 RS-232 和 PS/2 标准接口。进行涉及音频和视频的实验时,也有标准 MIC、line-in、line-out 接口(24 位音频解编码器),Video-in(TV Decoder)和 VGA(10-bit DAC),这些特点都能够被用来制作 CD 质量的音频应用程序和专业的视频图象3。为了能够设计更强大的项目,DE2 还提供了 USB2.0 接口(包括主、从 USB),10/100M 自适应以太网,红外(IRDA)接口,以及 SD
53、卡接口3。最后,可以通过两排扩展 I/O 口与其它用户自定义的板子相连。如图 5.1.南通大学毕业设计(论文)18图 5.1 Altera DE2 教学开发板5.1.3 外部测试芯片外部测试芯片外部测试芯片使用的是 Ateml 公司的 AT24C04 芯片。AT24C04 是 Atmel 公司生产的4Kbit(512Bytes)E2PROM 芯片,该芯片采用 I2C 总线设计,主要性能指标为:容量为 4Kbit(512Bytes),分为两部分存储空间,每部分 256bytes。有 2 个器件地址选择脚,最多能够挂接 4 个 AT24C04 器件。32 页,每页 16 字节,每次可连续写入 16
54、 字节数据。WP 引脚为高电平时,AT24C04 的 0255 地址空间的数据被写保护。需要 9 位的地址进行数据寻址。最高支持 1MBps,还向下兼容 100KBps 和 400KBps 两种传输速率。器件地址高 4 位固定为“1010”,低 3 位为 A2,A1,P0。A0 为空引脚,A1,A2 口为器件地址设定口,通过 A1,A2 口来设定 AT24C04 的器件地址WP 口接低电平时,可以对整个 AT24C04 器件的 512 个字节进行读写操作。当 WP 口接高电平后,器件前 256 个地址的数据被保护,只能读,不可写入,后 256 个字节数据可进行读写操作。AT24C04 的数据空
55、间由 P0 位决定,当 P0 为“0”时,将对 AT24C04 的 0255 空间的数据进行操作;当 P0 为“1”时,将对 AT24C04 的 256511 空间的数据进行操作。南通大学毕业设计(论文)19AT24C04 的引脚定义,如图 5.2 及表 5.1。 表 5.1 AT24C02 引脚定义图 5.2 AT24C04 的引脚图 (1)写操作:AT24C04 的写操作有字节写和页写两种模式,可以一次写入一个字节或是一页(16 个字节)。两种操作模式的时序如图 5.3、5.4 所示。在字节写中,Master 向 AT24C04 写数据,AT24C04 响应 Master 的寻址后,Mas
56、ter 发送片内字节地址,AT24C04 响应后,Master 发送数据;若 AT24C04 接收数据,则会反馈响应,Master 检测到后产生停止位,结束写操作。此时,AT24C04 开始擦写内部数据,不再响应外部信号。在页写中,AT24C04 可一次写入 16 个字节:页写也是先发送从器件地址,然后送片内字节地址;发送了一字节数据后检测到从器件的响应,主器件继续发送 15 个字节数据。AT24C04 每收到 8 位数据后给主器件一位应答,片内地址自动加一,不然主器件将会停止传输。如果主器件发了超过 16 个字节的数据,地址计数器将会指向当前页的开头继续加,覆盖先前写入的数据。发送完 16
57、字节数据后,主器件产生停止位,AT24C04 接收到停止位后,不再响应外部信号,启动内部擦写操作,如图 5.4 所示。图 5.3 字节写时序图引脚定义引脚定义说明1. A0空引脚。2. A1,A2器件地址设定引脚。3. GND电源地。4. SDA数据口。5. SCL同步时钟口。6. WP写保护口。7. VCC电源。南通大学毕业设计(论文)20图 5.4 页写时序图此时,主器件可以通过发送特定的 AT24C04 器件地址查询 AT24C04 内部擦写是否结束,如果有应答,则说明 AT24C04 内部擦写已经结束,主器件可以进行下一步操作,否则应继续等待。(2)读操作:AT24C04 的读模式分为
58、 CurrentAddress Read(当前地址读)、RandomRead(随机读)和Sequential Read(顺序读)三种,时序如图 5.5 所示。读操作的初始化方式和写操作一样,也是先发送 Slave 地址,不同之处在于 R/W 位等于 l。在顺序读中,读地址是上次的读写操作地址加 1。AT24C04 输出一个字节的数据后,主器件不应答,AT24C04 结束发送,主器件产生停止位。随机读操作是主器件可以随意读取 AT24C04 任意地址的内容。主器件发送起始位后、继续发从器件地址(R/W=0),AT24C04 应答,再发从器件片内地址,AT24C04 应答后,主器件重新发送起始位和
59、从器件地址(R/W=1),AT24C04 应答,然后输出一个字节数据,主器件收到后不应答,产生停止信号结束传输,如图 5.6 所示。图 5.5 当前地址读时序图南通大学毕业设计(论文)21图 5.6 随机读时序图顺序读可以由当前地址读或随机地址读操作启动,主器件收到一个字节后,要应答从器件,AT24C04 收到响应后将继续发送下一个地址的数据,直到主器件不应答,并产生停止位结束传输。读完最高地址的字节数据后,AT24C04 内部的地址计数器翻转,下一次读本页的开头地址中的内容,如图 5.7 所示。图 5.7 顺序读时序图5.2 外围电路的构建外围电路的构建5.2.1 E2PROM 电路构建电路
60、构建AT24C04 型号 E2PROM 的 SCL、SDA 是漏极开路的,需要外接上拉电阻到 VCC。本次需要用到两片 E2PROM,它们的器件地址不一样。如图 5.8、5.9 所示,E2PROM 1 的A2,A1,A0 均接地,WP 接地,没写保护;E2PROM 2 的 A2 接 VCC,A1,A0 均接地,WP 接地,没写保护。图中 SCLK,SDA 接到所设计的接口芯片的 SCL 和 SDA 输出端。南通大学毕业设计(论文)22图 5.8 E2PROM 1 外围电路图 5.9 E2PROM 2 外围电路5.2.2 完整的测试电路完整的测试电路经过上面的外围电路的搭建,这节可以完成整个测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑室内设计师技术能力考核试题及答案解析
- 2025年建筑规划师综合素质检测试卷及答案解析
- 2025年田长制助理笔试重点题库
- 2025年会展策划师资格认证考试试题及答案解析
- 2025年航空安全管理员资格考试试题及答案解析
- 2025年水上安全知识测试题库含答案
- 2025年公共卫生专家资格考试试题及答案解析
- 2025年运行中心招聘笔试高频题集
- 2025年动车乘务安全知识测试题集
- 儿童美术课件中段教学
- 附件 大型机设备安全检查表
- 2023《个人信息保护法》实务解读PPT
- 结核病筛查结果报告单
- GB/T 3799.1-2005商用汽车发动机大修竣工出厂技术条件第1部分:汽油发动机
- 小学音乐《村晚》优质课件设计
- 东锅300MW锅炉说明书
- 咯血(课件幻灯)
- 部门会签单模板
- 上海市环卫作业养护预算定额经费
- 宫颈环扎术护理常规
- G12《贷款质量迁徙情况表》填报说明
评论
0/150
提交评论