




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CCD的FPGA图像采集控制系统设计-IIC从设备接口协议的 Verilog HDL 模拟摘要:标准CCD图像采集系统除了标准图像输出端口外还需预留与后端数字图像处理控制器之间通讯接口。目前常见的通讯接口有串口、SPI、IIC等通信接口。本文采用通过FPGA设计一个以IIC协议通讯的从设备接口,以便实现CCD图像采集器与图像处理器之间的通信。本课题采用Verilog HDL硬件描述语言,以FPGA为载体来实现IIC总线控制器的设计。课题组首先研究了IIC总线的规范,针对传统IIC总线接口的FPGA设计可重用性不高的问题,设计了一种基于FPGA的可配置IIC总线接口设计方案。该方案采用同步有限状态机设计方法和硬件描述语言Verilog HDL,对IIC总线的数据传输时序进行模块化设计。重点介绍了IIC控制器的总体设计方案,详细描述了时序状态机的工作原理和Verilog HDL语言的实现。采用了自顶向下的设计方法,利用了Verilog HDL语言的结构描述风格,把整个设计拆分为6个模块,时钟分频模块,寄存器组模块,数据接收模块,数据发送模块,缓冲输出模块,时序控制模块,顶层模块也采用硬件描述语言设计。因此,基于FPGA的I2C总线设计为数字图像处理电路设计硬软件方面打下了坚实的基础。关键词:CCD采集;FPGA;IIC总线接口;Verilog HDL;设计1.前言常见的视频采集系统主要有两种,一种是基于微处理器如单片机、ARM等的视频采集卡,其特点是结构简单,易于实现。缺点是,无法实时地对视频数据完成处理,需要使用外部处理器来完成特定的视频处理算法,因而成本高,升级维护难度大;另一种是基于主从处理器FPGA+CCD或者CMOS等的嵌入式视频采集卡,特点是系统高度集成,易于维护升级,可以满足视频采集的需求,同时可以完成特定的视频算法,成本较低。目前市场上主流的嵌入式设备主要有单片机微处理器、DSP等,但FPGA以其独有的高抗干扰性、高安全性正在逐步取得开发公司的青睐,在FPGA平台开发I2C势在必行。并且利用EDA工具设计芯片实现系统的功能,已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视。I2C总线是Philips 公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。此外,在嵌入式系统开发中越来越多的应用到FPGA,而一些嵌入式CPU,比如STM32为了降低成本,减小封装尺寸,没有外接专门的CPU读写总线,而只提供了一些如SPI和I2C的接口。而且在应用中经常有数据要配置到FPGA中,如FPGA中的应用配置寄存器,和配置表项,图像传感器中对比度、亮度的设置、白平衡等的设置,都需要CPU配置。这些数据的数据量不大,速度也不要求很高,很适合用I2C总线来配置。IIC总线的连线少,具有结构简单,可不用专门的母板和插座直接用导线互连各个设备,因而可大大简化系统的硬件设计。许多半导体厂商都引进了此项总线技术,并推出了不少带IIC总线接口的芯片。已有不少文献讨论了IIC总线接口的单片机编程技术,本文着眼于基于CCD的FPGA图像采集系统中IIC用户交互接口的设计,介绍了一种基于FPGA的IIC总线接口驱动的实现方法。通常,从图像传感器的制作工艺上分,图像采集主要有两种工艺,一种是CCD,另一种是CMOS。CCD是集成在半导体单晶硅材料上,而CMOS是集成在互补金属氧化物半导体材料上。从图像传感器的架构上分:CCD的曝光由XSG1、XSG2及XSUB控制,读出由XH1、XH2、XV1、XV2、XV3、XV4控制,这些信号都来自DSP,因此CCD是被动器件;而CMOS的曝光及读出,都来自于芯片内部的时基生成模块,因此CMOS是主动器件。从彩色滤光阵列来看,一般的CCD使用互补色CMYG的滤光阵列,而CMOS使用原色RGB的滤光阵列。CMYG阵列对光线的衰减少,但是色彩延时不如RGB的阵列丰富,因此更加适合于对光灵敏度要求高的安防行业。然而近年来出现的MCCD既不是CMOS又不是CCD,它汲取了CMOS与CCD的特点,MCCD使用CMYG互补色滤光阵列,具有如CCD一样的画质,比CCD高的可见光灵敏度及超高的红外光灵敏度、更大的动态范围。MCCD使用与CCD兼容的曝光、读出控制方式(使用XSUB、XSG1、XH1、XH2、XV2、XV4信号),因此MCCD是与CCD相同的被动器件。MCCD利用CMOS工艺集成度高的特点,将先进的图像信号处理器及AFE的功能集成到芯片中,有效提高了图像质量。图 1 基于DSP的CCD驱动器设计图由于CIS集成度优势,使得CIS相比于CCD拥有更丰富的接口种类。目前监控用CIS不仅能够输出RGB,YUV,CCIR656等数字信号,而且可以输出PAL/NTSC制式的模拟电视信号,既满足传统的CCTV应用,也能满足诸如IP Camera等数字应用。此外CIS还提供I2C控制接口,便于外部MCU对CIS的控制。CCD图像传感器本身只能输出模拟电信号,如果要增加各种接口,就需要“套片”(FPGA)配合使用。现在大多数监控专用CIS产品在现有接口基础上,创新性提供了Master I2C接口和模拟差分电视信号接口。Master I2C接口使客户将调试最佳图像效果参数存于I2C接口EEROM中,等CIS上电则读取EEROM中的参数并自行配置到最佳效果,可见如图2所示,基于PFGA的IIC驱动的设计在工程实践中具有极大的指导意义,在工程实际应用和CCD驱动电路设计方面打下了坚实的基础。图 2 基于FPGA的CCD驱动器设计图2. IIC通讯总线基础理论2.1 IIC总线的基本原理IIC总线的系统结构如图3所示。IIC总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IIC总线上并接的每一模块电路既是主控器,又是发送器,这取决于它所要完成的功能1。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别如对比度、亮度等及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。图 3 IIC总线的系统结构图IIC(Inter-Integrated Circuit)总线最早是由PHILIPS公司开发的两线式串行通信总线,主要用于连接微控制器及其外围设备。IIC总线的最主要的优点是其简单性和有效性2。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。另外,IIC总线支持线与逻辑,即支持多个从设备同时挂在同一总线上,主设备根据不同的从设备地址可实现对不同从设备的访问。IIC总线在传送数据过程中共有三种类型信号,它们分别是开始信号、结束信号和应答信号。开始信号的特点是SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号的标志是SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据为应答信号。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。目前有很多半导体集成电路上都集成了IIC接口。常见带有IIC接口的单片机有C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列AVR等3。很多外围器件如存储器、监控芯片等也提供IIC接口。IIC规程运用主或从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件,通常为微控制器控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件,参见图4。图 4 串行总线上的数据传送顺序图在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010,接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作,如图5所示。1010A2A1A0W/R图 5 控制字节配置图IIC总线共有两根信号线,数据线SDA及时钟线SCL,两根信号线都是双向线路,其中SDA线上的数据方向可为主设备到从设备,也可为从从设备到主设备,SCL通常由主设备产生,但从设备在忙状态时可将SCL拉低,从而使主机保持等待状态,等从设备忙完时再释放SCL。由于IIC设备的接口电路通常都是集电极开路或漏极开路(OC/OD)门电路,所以一般都通过一个电流源或上拉电阻连接到正的电源电压上。IIC总线上的数据传输速率在标准模式下可达100Kbit/s,在快速模式下可达400Kbit/s,在高速模式下可达3.4Mbit/s。连接到总线的接口数量只受总线电容最大400pF的限制4。在IIC总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号变为低电平,将使SCL线上所有器件开始并保护低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不影响SCL线的状态,这些器件将进入高电平等待的状态。当所有器件的时钟信号都变为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件决定,而时钟高电平时间由时钟高电平期最短的器件决定5。IIC总线时序如图6所示,IIC数据传输时关键是有一个 START条件和一个STOP条件,并且每来一个时钟传输一个数据。主机产生一个START条件启动一次新的与从机之间的数据传输。SCL保持高电平期间,SDA由高电平到低电平的跳变将产生一个START条件,实际时序如 图6所示。主机产生一个STOP条件以终止与从机之间的数据传输。SCL保持高电平期间,SDA由低电平到高电平的跳变将产生一个STOP条件,实际时序如图6所示。重复START条件同普通START条件一样,该条件通常表示对一个特定的存储地址反复读写。写位时SDA的跳变只能发生在SCL的低平期间,在整个SCL脉冲为高电平以及所要求的建立、保持时间内,SDA上的数据必须保持有效且不变,如图6所示。读位时主机应在读数期间释放SDA总线,并在SCL的下一个上升沿之前保持适当的建立时间,在前一个SCL脉冲的下降沿,器件将每一位数据通过SDA移出,并在当前SCL脉冲的上升沿保持数据位有效6。图 6 IIC数据传输时序图图6中的ACK为应答信号,接收数据的器件在第9位期间发送0表示正确接收到数据,读操作期间的主机或者是写操作期间的从机,同时主机应在读取最后一个字节后发送NACK,终止通信,使从机将SDA的控制权交还给主机。2.2 IIC 模块设计与实现图 7 IIC模块结构IIC模块结构如图7虚线框内所示,主要包括以下三个部分。分频:IIC通信的最大工作频率为400kHz,而FPGA锁相环输出时钟一般较大,因此需要分频到较低工作时钟。数据寄存器:本模块主要是对读到的和需要写入的时间信息进行整合,使得该信息按规定格式传输。IIC总线接口控制模块:本模块是设计的核心,实现IIC通信协议,产生读写时序,完成数据交互功能。介绍下硬件模块总体设计思想:本IIC模块实现的主要功能是完成并行数据与串行数据的转换,在转换过程中串行数据的输入与输出必须满足IIC总线规范7。图7为IIC总线接口框图,主要包括以下几个单元。分频器:由FPGA的锁相环输出的稳定时钟信号,由于频率很高所以必须经过分频模块输出满足IIC总线要求的数据传输速率。IIC总线接口控制时序逻辑块:IIC总线数据传输的所有时序控制逻辑都由它产生,是这个IIC模块的核心。数据锁存器:根据读写使能信号(r/w)存储IIC己接收的或待发送的数据8。移位寄存器:在时序控制逻辑模块的控制下根据读写使能信号(r/w)对数据进行正确地处理。2.3 IIC 总线的读写操作IIC总线的写操作如图8所示。S:STARTA条件;A:ACKNOWLEDGE;P:STOP条件;word Address(n):即为存储地址,该地址为首地址,当器件收到该地址后,依次往后写数据。图 8 IIC总线的写操作IIC总线的读操作如图9所示。S:STARTA条件;Sr:重复START条件;A:ACKNOWLEDGE;A:NOT ACKNOWLEDGE;P:STOP条件;word Address(n):即存储地址,该地址为首地址,当器件收到该地址后,地址依次往后自加1。图 9 IIC总线的读操作2.4 Verilog HDL语言Verilog HDL(Hard Description Language)是硬件描述语言的一种,用于数字电子系统设计,该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA已经采用Verilog硬件描述语言方法进行设计。在进行FPGA的开发时,利用EDA工具设计芯片实现系统的功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视9。目前针对IIC总线的相关开发的资料都是利用VHDL语言或AHDL语言实现的。由于Verilog相比VHDL等其它硬件描述语言具有代码量少、支持自动类型转换、对于初学者来说比较容易入门等优点,故本文选择Verilog语言作为基于FPGA的IIC通讯总线的驱动设计语言。3. 基于FPGA的IIC通讯总线驱动设计3.1 IIC总线接口模块结构设计IIC总线接口结构设计如图10所示,主要包括内部分频器和IIC总线接口控制时序逻辑模块两部分。内部分频器:通常FPGA的外部输入时钟频率比较高,例如50MHz,所以必须经过内部的分频器输出符合I2C总线要求的数据传输速率标准模式100kbit/s,快速模式400kbit/s,才能满足IIC总线数据传输的时序要求10。图 10 IIC总线接口模块结构框图IIC总线接口控制时序逻辑模块:此部分是IIC总线接口模块的控制核心,IIC总线数据传输的所有时序控制逻辑都由它产生,例如,启动信号和停止信号的产生,对从器件的寻址,总线上数据的发送和接收。同时,其内部集成数据锁存器和移位寄存器,其中,数据锁存器主要用于暂存发送的数据、地址和控制信息和接收数据,移位寄存器主要用于对发送的数据进行并/串转换,然后发送到数据线SDA上,或者从数据线SDA上接收的数据进行串/并转换,然后由主机进行接收11。3.2 IIC总线端口映射及功能说明 IIC总线端口映射及功能如表1所示。由图10和表1可知,本文设计的IIC总线接口模块能够实现数据传输的两种基本数据操作模式即单字节数写模式和单字节数据读模式12。表格 1 IIC总线端口映射及功能说明端口名功能说明端口功能说明ClkFPGA外部输入时钟Rst总线接口模块复位信号, 0为有效Clk_TypeSCL输出时钟模式:0为标准模式,1为快速模式Done当主机对从机完成一次读写操作时,该信号出现下降沿,否则为高电平Rd/Wr读写控制信号,1为主机从从机读取数据,0为主机向从机写入数据Ack从机对主机的回应信号Machine_Addr6:0从机器件的唯一地址标识符AckCounter2:0主机接收从机应答信号计数器Inter_Addr7:0从机器件要进行操作的存储单元地址SDAIIC总线接口数据线SCLIIC总线接口时钟线Data_Send7:0主机向从机发送的字节数据Start接口模块读写操作启动信号,下降沿有效Data_Rece7:0主机接收从机的字节数据由于该模块提供读写前、读写过程中和完成后的相应的标志信息(Start、 Inter_Addr,Done、Ack、AckCounter),所以,主机能够根据这些信息判断是否进行下一字节数据的读写操作,从而实现从机内部连续存储单元的读写操作,最终实现IIC总线数据传输的4种操作模式,分别为单字节数据写、单字节数据读、多字节数据连续写、多字节数据连续读13。例如,多字节数据连续写模式,当主机通过该总线接口对从机成功完成一次写操作后,Done端口会现下降沿脉冲,主机检测到该信号后,这时只要配置好Clk_Type、Rd/Wr、Start、Ma chine_Addr6:0、Inter_Addr7:0、Data7:0这些信号,即可进行相邻地址单元的数据存储,直到写入 完指定数据长度的字节数据为止。至于连续读写多少数据,由主机控制程序决定,从而避免了从器件连续读写操作传统模式数据长度的限制。3.3 IIC总线接口模块的Verilog HDL设计 IIC总线接口时钟SCL信号产生,本系统设计的时钟信号SCL有两种输出频率100kHz和400kHz,通过主机输入信号Clk_Type进行选择确定,当其为1时,SCL输出频率为100kHz,当其为0时,SCL输出频率为400kHz。时钟信号SCL的产生是将FPGA外部输入时钟信号经过分频计数器而得到所需要的信号。系统产生100kHz的时钟信号所用的分频计数器常数为249,而400kHz 的时钟信号所用的分频计数器常数为62。此外,对IIC总线接口控制时序逻辑模块进行设计时,需要对时钟线SCL一个完整周期内的上升沿SCL_POS、下降沿SCL_NEG、时钟周期高电平部分的中间时刻SCL_HIGH、时钟周期低电平部分的中间时刻SCL_LOW这些信号进行正确检测,才能设计出符合IIC总线协议规范的逻辑控制时序。所以,还要利用本分频计数器产生SCL_POS、SCL_HIGH、SCL_NEG、SCL_LOW这4种脉冲信号14。本系统在FPGA外部始终为25MHz时,用Verilog HDL对时钟分频计数器进行设计工作。其产生100kHz的SCL信号的主要Verilog HDL代码如下: /*-100kHz_Counter-*/always(posedge clk or negedge rst_n) if(!rst_n)cnt2=8d0; else if(cnt2=8d249) cnt2=8d0; else cnt2=cnt2+8d1;/cnt2为分频得到100kHz计数 /-IIC_SCL-/ always(posedge clk or negedge rst_n)if(!rst_n) beginscl_r=1b0;SCL_NEG=1b0; SCL_LOW=1b0; SCL_POS=1b0; SCL_HIG=1b0; /复位值 end else if(cnt2=8d62)/SCL高电平中间时刻,用于数据采样 SCL_HIG=1b1; /持续一个时钟周期的高电平 Else if(cnt2=8d124)/SCL下降沿 scl_r=1b0; else if(cnt2=8d128)/SCL下降沿滞后稍许时刻 SCL_NEG=1b1; /持续一个时钟周期的高电平 Else if(cnt2=8d186)/SCL低电平中间时刻,用于数据发送SCL_LOW=1b1; /持续一个时钟周期的高电平Else if(cnt2=8d245)/SCL上升沿提前稍许时刻 SCL_POS=1b1; /持续一个时钟周期的高电平 Else if(cnt2=8d249)/SCL上升沿 scl_r=1b1; else begin scl_r=scl_r; /保持占空比为1/2的方波 SCL_HIG=1b0; /持续一个时钟周期的高电平,然后为0 SCL_NEG=1b0; /持续一个时钟周期的高电平,然后为0 SCL_LOW=1b0; /持续一个时钟周期的高电平,然后为0 SCL_POS=1b0; /持续一个时钟周期的高电平,然后为0 end assign scl=scl_r;/SCL为IIC的时钟 /*/3.4 IIC总线接口数据传输中的基本功能模块设计3.4.1主机产生启动信号设计当IIC接口模块检测到主机发送过来的有效START信号后,该模块由空闲状态转入到产生IIC接口模块启动信号状态,然后检测SCL是否处于高电平状态,如是,则置SDA由高电平转为低电平状态,即可产生该模块的启动信号。该模块的主要设计代码如下:If(SCL_HIG) Begin /sc为高电平期间,拉低数据线 sda,产生启动信号 sda_link=1b1; /数据线sda为output sda_r=1b0; /拉低数据线sda,产生启动信号 cstate=ADD1; /转入ADD1工作状态 end else cstate=START1; /等待scl高电平中间位置到来 3.4.2主机产生停止信号设计 当主机不需要向从机发送数据或从从机接收数据时,在应答信号产生后,即可转到终止数据传输状态,然后检测SCL是否处于高电平状态,如是,则置SDA由低电平转为高电平状态,即可产生该模块的停止信号。该模块的主要Verilog HDL代码如下:sda_link=1b1; if(SCL_LOW) begin sda_r=1b0;/scl为低时,置sda为低电平状态 cstate=STOP1; /转入工作状态STOP1 end else if(SCL_HIG) begin sda_r=1b1;/scl为高时,sda产生上升沿(结束信号) cstate=IDLE; /转入工作状态IDLE end 3.4.3主机发送和接收一个字节数据设计 由于IIC是串行数据传输总线,主机要发送个字节的数据,必须将字节数据经过并串转换,然后在时钟线SCL的作用下将每一个BIT位发送到数据线SDA上。主机要接收一个字节的数据,必须将数据线SDA上每个数据位经过串并转换,组合成一个字节的数据,供主机进行接收和处理。该模块的Verilog HDL主要代码如下(以写操作为例):/主机进行单字节写操作或读操作 if(Byte_Write) begin/写操作 sda_link=1b1; if(num=4d7) begin cstate=DATA; if(SCL_LOW) /当检测到SCL_LOW有效时,向SDA上发送数据位 begin sda_link=1b1; /数据线sda作为output num=num+1b1; /发送数据位计数 case(num) 4d0:sda_r=db_r7; /先发数据位次序: D7, D6, , D04d1:sda_r=db_r6; 4d2:sda_r=db_r5; 4d3:sda_r=db_r4; 4d4:sda_r=db_r3; 4d5:sda_r=db_r2; 4d6:sda_r=db_r1; 4d7:sda_r=db_r0; default:; endcase end end elseif(SCL_LOW)&(num=4d8) /数据发送完后,置SDA为输入,转ACK4begin num=4d0; sda_r=1b1; sda_link=1b0;/sda置为高阻态 cstate=ACK4; end end 3.4.4主机接收从机应答信号和主机向从机产生非应答号设计 当主机向从机写入器件地址、字节地址及数据时,从机会产生相应的应答信号,拉低SDA信号,主机检测到此信号后,才能下一数据传输过程。当主机不需要再向从机接收数据时,主机此时可以向从机发送非应答号(拉高SDA信号),然后产生停止信号,从而结束整个数据传输过程。主机接收从机应答信号的主要Verilog HDL代码如下:if(SCL_HIG) /高电平时接收应答信号 if(SDA_In_r=1b0) /从机发送应答信号0begin cstate=nextstatus; /从机响应信号 end else begin cstate=STOP1; /若从机未应答,则转到停止状态 end else cstate=ACK1; /等待高电平到来,对从机应答信号进行检测通过上述基本功能模块的组合,就可以实现一次完整的IIC总线数据传输过程中的单字节写、单字节读操作模式,通过设计主机读写从机数据控制电路模块,实例化IIC总线接口读写基本操作模块,从 而间接实现多字节连续写、多字节连续读操作模式。图 11 Quartus 11.0基于Verilog的IIC驱动模块拓展图图 12 Quartus 11.0基于Verilog的IIC驱动程序图 13 FPGA开发板IIC测试图图 14 IIC总线仿真图4. 讨论与总结本文介绍了一种简易的基于FPGA的IIC总线接口板的设计方法。Verilog HDL语言的可移植性和不依赖器件的特性,较之传统的总线接口设计方法,设计者能在更抽象的层次上把握和描述系统电路的设计结构和功能特性,使设计更具灵活性。以存储器为测试对象,又因24C02器件可以不考虑应答位,所以本次设计中没有设定应答接口,所编写的IIC接口模块的Verilog HDL代码是可综合的,仅仅是将此代码直接下载到Altera公司EP2C5Q208C8器件中后,进行了实物模拟IIC总线接口功能,基本实现项目要求。为此我将IIC模块设计进行改进,可以达到直观地利用时序图和数码管来观察IIC总线接口信号的变换和数据的传输,可以形象的观察到IIC总线数据的变化。具体的操作包括,实例化了两个模块Master(主机)和Slave(从机),并设计了顶层模块调用Master和Slave,使用了QuartusII 11.0进行了仿真。从图14可知,当Master的Drive线置高电平且r/w线为低电平时,IIC模块运作,产生起始信号Start,且在Sda线发送8位数据,且在Scl线发送9个时钟脉冲信号,等待相应信号mcf,若slave 响应,则mcf为高电平,继续发送下一字节数据,直到产生终止信号Stop,Sda线和Scl线置高电平,发送数据终止,等待下一个起始信号Start。同样的,当slave的drive线置高电平时,IIC模块运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 用户体验设计原则总结
- 婚内财富约定协议书怎么写5篇
- 财会模拟面试试题及答案
- 2025年律师考试面试试题及答案
- 拜城民警考试题目及答案
- 2025年莘县社工考试题目及答案
- 今天初级考试试题及答案
- 疫情期间考试试题及答案
- 2025年五官科常见疾病诊疗方案设计模拟考试卷答案及解析
- 2025年神经科癫痫病例分析与治疗模拟试卷答案及解析
- 2025年4月自考00840第二外语(日语)试题
- 锻造工理论知识考试题(附答案)
- 妇科手术麻醉出科
- 公司人员来访管理制度
- 2025至2030MCU行业市场发展分析及竞争形势与投资机会报告
- 2025年植物保护专业考试试题及答案
- 防水工程质量保证书
- 大额资金使用管理办法
- 业务激励方案61170
- 家电行业售后维修服务管理流程
- 2024年煤炭工业矿井设计规范
评论
0/150
提交评论