《i2c串行总线的模拟与仿真.ppt》由会员分享,可在线阅读,更多相关《i2c串行总线的模拟与仿真.ppt(19页珍藏版)》请在优知文库上搜索。
1、LOGOI2C串行总线的模拟与仿真串行总线的模拟与仿真u 本论文主要研究的是本论文主要研究的是I2C串行总线的模拟与仿真。首先,在论文的串行总线的模拟与仿真。首先,在论文的开始介绍了数字电子设计的发展过程,表明了数字电子设计在现开始介绍了数字电子设计的发展过程,表明了数字电子设计在现在的生活中占有十分重要的地位。其次,介绍了在的生活中占有十分重要的地位。其次,介绍了I2C串行总线协议串行总线协议相关概念等内容,为总体的设计理清思路做铺垫,防止由于概念相关概念等内容,为总体的设计理清思路做铺垫,防止由于概念混淆而引起的不必要的麻烦。然后,介绍了整体设计的一个设计混淆而引起的不必要的麻烦。然后,介
2、绍了整体设计的一个设计流程,防止在设计时陷入死循环的误区,此流程为设计提供了一流程,防止在设计时陷入死循环的误区,此流程为设计提供了一个向导作用。最后,通过个向导作用。最后,通过Xilinx公司开发的公司开发的Xilinx ISE 10.1软软件进行程序的模拟过程,同时在件进行程序的模拟过程,同时在Xilinx ISE 10.1软件中调用软件中调用Modelsim SE 6.5软件,观察仿真结果图。软件,观察仿真结果图。u 通过观察串行数据线通过观察串行数据线(SDA)和串行时钟线和串行时钟线(SCL)在仿真软件在仿真软件Modelsim SE 6.5中波形图的高低电平变化并读出数据,判断中波
3、形图的高低电平变化并读出数据,判断本论文的设计是否满足最初的设计初衷,是否符合设计要求。本论文的设计是否满足最初的设计初衷,是否符合设计要求。论文的摘要简介论文的摘要简介论文的章节结构及基本内容论文的章节结构及基本内容u第一第一章章 数字电子设计概述数字电子设计概述 本章主要介绍了数字电子设计的发展概况的相关内容。在数字电子设计中本章主要介绍了数字电子设计的发展概况的相关内容。在数字电子设计中主要应用的语言是硬件描述语言主要应用的语言是硬件描述语言VHDL和和Verilog HDL语言,本章节中对这语言,本章节中对这两种语言在程序编写上的差异和优点进行了对比性的总结介绍。最后讲述应用两种语言在
4、程序编写上的差异和优点进行了对比性的总结介绍。最后讲述应用Xilinx公司的公司的ISE Series软件对软件对FPGA器件的设计开发流程的一些综述性问器件的设计开发流程的一些综述性问题。题。u第二第二章章 I2C总线的解析总线的解析 本章主要是针对本章主要是针对I2C总线协议的相关概念进行讲解。首先是对总线进行综总线协议的相关概念进行讲解。首先是对总线进行综述,其次重点描述了数据传递时序和时序信号的相关内容。通过数据传递时序述,其次重点描述了数据传递时序和时序信号的相关内容。通过数据传递时序和时序信号的介绍来理清设计思路,从发出起始信号到接收终止信号,中间包和时序信号的介绍来理清设计思路,
5、从发出起始信号到接收终止信号,中间包括应答信号和位传输信号的过程就是括应答信号和位传输信号的过程就是I2C总线上数据传递时序的过程。总线上数据传递时序的过程。论文的章节结构及基本内容论文的章节结构及基本内容u第第三章三章 模拟模拟I2C接口程序的基本框架接口程序的基本框架 本章中主要讲述了我对本章中主要讲述了我对I2C串行总线的模拟与仿真的设计流程。首先编写串行总线的模拟与仿真的设计流程。首先编写了设计流程图,为设计理清思路。其次对流程图中涉及的各个模块和寄存器进了设计流程图,为设计理清思路。其次对流程图中涉及的各个模块和寄存器进行定义,并且对所定义的端口进行解释说明。行定义,并且对所定义的端
6、口进行解释说明。u第第四章四章 I2C总线协议的代码实现与仿真总线协议的代码实现与仿真 本章主要是通过编写程序代码进行本章主要是通过编写程序代码进行I2C串行总线的模拟与仿真过程,通过串行总线的模拟与仿真过程,通过软件检测查看编写的程序是否存在语法问题,是否能运行成功,是否能生产综软件检测查看编写的程序是否存在语法问题,是否能运行成功,是否能生产综合验证文件和合验证文件和RTL验证文件等测试来检测程序是否编写正确。最后通过发送数验证文件等测试来检测程序是否编写正确。最后通过发送数据,观察据,观察ModelSim SE 6.5软件中的仿真图,检测软件中的仿真图,检测SCL和和SDA的上升沿和的上
7、升沿和下降沿的变化是满足设计要求的,因此仿真成功。下降沿的变化是满足设计要求的,因此仿真成功。第一第一章章 数字电子设计概述数字电子设计概述u1.1数字电子设计发展概况数字电子设计发展概况 主要讲述了由传统电子电路设计到数字电子设计的发展过程,以及数字电主要讲述了由传统电子电路设计到数字电子设计的发展过程,以及数字电子设计工业的三个重要动向,说明现在数字电子设计具有十分重要的作用。子设计工业的三个重要动向,说明现在数字电子设计具有十分重要的作用。u1.2硬件描述语言硬件描述语言 介绍了随着集成电路设计规模和难度的日益增大而产生的一种新型描述方介绍了随着集成电路设计规模和难度的日益增大而产生的一
8、种新型描述方法,就是硬件描述语言。同时,说明了硬件描述语言与传统电子电路的本质区法,就是硬件描述语言。同时,说明了硬件描述语言与传统电子电路的本质区别,以及别,以及HDL的优点。的优点。u1.3 Verilog HDL的发展与特点的发展与特点 介绍了介绍了Verilog HDL是在是在C语言的基础上发展起来的以及语言的基础上发展起来的以及Verilog HDL和和HDL的对比,并说明了的对比,并说明了Verilog HDL的优点。的优点。u1.4可编程逻辑器件综述可编程逻辑器件综述 介绍了可编程逻辑器件的发展以及介绍了可编程逻辑器件的发展以及FPGA的概念和设计流程等相关知识。的概念和设计流程
9、等相关知识。u1.5 Xilinx ISE开发系统简介开发系统简介 第二章第二章 I2C总线的解析总线的解析u2.1 I2C总线的概述总线的概述 主要讲述了主要讲述了I2C总线协议的特点和广泛的应用,说明了它在应用时的间接总线协议的特点和广泛的应用,说明了它在应用时的间接性。性。u2.2 I2C协议的基本概念协议的基本概念 在说明了在说明了I2C协议的广泛应用基础上,介绍了主节点和从节点,总线上节协议的广泛应用基础上,介绍了主节点和从节点,总线上节点的寻址方式的概念。点的寻址方式的概念。u2.3 I2C协议的时序要求协议的时序要求 介绍了介绍了 I2C总线上数据传输的时序和总线上时序信号的相关
10、概念。总线上数据传输的时序和总线上时序信号的相关概念。 第三章第三章 模拟模拟I2C接口程序的基本框架接口程序的基本框架u 本章主要介绍了设计模拟本章主要介绍了设计模拟I2C接口的基本框架,以及对框架中设计接口的基本框架,以及对框架中设计的模块进行定义。的模块进行定义。第三章第三章 模拟模拟I2C接口程序的基本框架接口程序的基本框架u 本章主要介绍了设计模拟本章主要介绍了设计模拟I2C接口的基本框架,以及对框架中设计接口的基本框架,以及对框架中设计的模块进行定义。的模块进行定义。第四章第四章 I2C总线协议的代码实现与仿真总线协议的代码实现与仿真 第一节中介绍了第一节中介绍了I2C总线协议的代
11、码实现的相关内容,包括四个总线协议的代码实现的相关内容,包括四个小节:位传输的代码实现,字节传输的代码实现、程序主体的代码实小节:位传输的代码实现,字节传输的代码实现、程序主体的代码实现和综合结果四个小节。现和综合结果四个小节。第一小节第一小节 位传输的代码实现位传输的代码实现位传输的循环过程如右图所示,位传输的循环过程如右图所示,其中包括其中包括5个过程:开始、重复个过程:开始、重复开始、停止、读和写。其中开始开始、停止、读和写。其中开始和重复开始命令产生和重复开始命令产生5个阶段:个阶段:A、B、C、D和和idle。第四章第四章 I2C总线协议的代码实现与仿真总线协议的代码实现与仿真第二小
12、节第二小节 字节传输的实现字节传输的实现字节传输的具体实现流程如右图所示。字节传输的具体实现流程如右图所示。其中,字节传输包括的模块有:其中,字节传输包括的模块有:idel状状态模块,读态模块,读/写位是否设置模块,开始写位是否设置模块,开始位是否设置模块,开始状态模块,开始位是否设置模块,开始状态模块,开始是否产生模块,读位是否设置模块,读是否产生模块,读位是否设置模块,读状态模块,写状态模块,是否按字节读状态模块,写状态模块,是否按字节读模块,是否按字节写模块,应答状态模模块,是否按字节写模块,应答状态模块和应答是否完成读块和应答是否完成读/写模块。写模块。第四章第四章 I2C总线协议的代
13、码实现与仿真总线协议的代码实现与仿真第三小节第三小节 程序主体的代码实现程序主体的代码实现u 程序主体部分是完成程序与外部程序的接口通信的部分。首先,完成与总线上程序主体部分是完成程序与外部程序的接口通信的部分。首先,完成与总线上外部节点的连线,是指在外部节点的连线,是指在I2C总线与外部器件连接时所产生的接触点的连接。总线与外部器件连接时所产生的接触点的连接。其次,完成程序内部各个寄存器的构建,包括时钟寄存器,命令寄存器,状态其次,完成程序内部各个寄存器的构建,包括时钟寄存器,命令寄存器,状态寄存器,数据传输寄存器,数据接收寄存器和数据移位寄存器的构建。最后,寄存器,数据传输寄存器,数据接收
14、寄存器和数据移位寄存器的构建。最后,完成各个模块的构建,包括字节传输模块,时钟产生模块和位传输控制模块。完成各个模块的构建,包括字节传输模块,时钟产生模块和位传输控制模块。其中通过位传输控制模块实现对串行数据线其中通过位传输控制模块实现对串行数据线(SDA)和串行时钟线和串行时钟线(SCL)的双的双向控制。向控制。u 而且程序主体部分涉及到了位传输和字节传输这两个部分。在进行编译时会再而且程序主体部分涉及到了位传输和字节传输这两个部分。在进行编译时会再次对位传输程序和字节传输程序进行编译,编译成功显示如下图。次对位传输程序和字节传输程序进行编译,编译成功显示如下图。第四章第四章 I2C总线协议
15、的代码实现与仿真总线协议的代码实现与仿真第四小节第四小节 综合结果综合结果第四章第四章 I2C总线协议的代码实现与仿真总线协议的代码实现与仿真第四小节第四小节 综合结果综合结果第四章第四章 I2C总线协议的代码实现与仿真总线协议的代码实现与仿真 第二节中介绍了程序的仿真代码的实现的相关内容,包括四个第二节中介绍了程序的仿真代码的实现的相关内容,包括四个小节:主节点的仿真代码实现,从节点的仿真代码实现,仿真主程序小节:主节点的仿真代码实现,从节点的仿真代码实现,仿真主程序代码实现和仿真结果。代码实现和仿真结果。第一小节第一小节 主节点的仿真代码实现主节点的仿真代码实现 主节点仿真代码的内容包括主
16、节点仿真代码的内容包括3个部分:读数据周期、写数据周期和比较数据。代个部分:读数据周期、写数据周期和比较数据。代码编写思路:首先,定义模块、参数、输入、输出、码编写思路:首先,定义模块、参数、输入、输出、WIRE和存储逻辑;其次,进行和存储逻辑;其次,进行程序的初始化工作;再次,编写读数据周期和写数据周期的代码,其中包括延迟、设程序的初始化工作;再次,编写读数据周期和写数据周期的代码,其中包括延迟、设置信号量和等待从点应答信号几个小模块;最后,进行比较数据的编写,对数据进行置信号量和等待从点应答信号几个小模块;最后,进行比较数据的编写,对数据进行比较,从而得到想要的数据。比较,从而得到想要的数据。第二小节第二小节 从节点的仿真代码实现从节点的仿真代码实现 从节点仿真程序需要模拟从主节点接收的数据,并需要发出应答信号。从节点仿真程序需要模拟从主节点接收的数据,并需要发出应答信号。在程序编写的过程中应注意检测访问地址和从节点是否一致,检测开始状,在程序编写的过程中应注意检测访问地址和从节点是否一致,检测开始状,检测停止状态信号,检测时序等代码的编写。检测停止状态信号,检测时序等代码的编写。