文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA视频采集中的I2C总线设计与实现

基于FPGA视频采集中的I2C总线设计与实现

基于FPGA视频采集中的I2C总线设计与实现
基于FPGA视频采集中的I2C总线设计与实现

基于FPGA视频采集中的I2C总线设计与实现

时间:2010-06-03 13:42:11 来源:现代电子技术作者:潘利明王惠平刘春风随着科学技术的发展和现代战争条件的变化,传统图像信号提供的单一服务已远远不能满足现代战争的需要。图像信号由于包含有极其丰富的信息,具有通信效率高、便于记录、形象逼真、临场感强等特点,所传送的信息量远远超过其他通信手段,所以得到越来越多的重视。在JPEG2000系统下,视频采集系统是视频采集功能的FPGA(现场可编程门阵列)前端系统,是视频图像处理、应用的前项通道。作为视频采集系统的重要组成部分I2C(Inter Integrated Circuit)总线,早在20世纪80年代由荷兰Philips公司研制开发成功。它是一种简单、双向二线制同步串行总线硬件接口。

l I2C总线的特点和协议

I2C总线协议作为一个串行总线标准,尽管没有并行总线的数据吞吐能力,但是它的特点和协议使其有着广泛的应用。其特点和协议主要有:

只需两条总线即串行时钟线(SCL)和串行数据线(SDA),使得IC引脚数目降低;且连接到总线的器件都是惟一地址、从节点关系软件设定地址,主节点可以发送或者接收数据。是真正的多主总线,当两个或更多主节点同时初始化数据传输时,可以通过冲突检测和仲裁防止数据被破坏。串行的8位双向数据传输速率在标准模式下可达100 Kb/s,快速模式下达400 Kb/s,高速模式下达3.4 Mb/s,连接到相同总线的IC数量只受到总线的最大电容(400 pF)限制。片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整。

一般在总线不忙的情况下,数据传送才能开始,在数据传送期间,无论何时时钟线为高,数据线必须保持稳定,而且数据线和时钟都必须保持为高电平。当时钟线为高时,数据线的变化将认为是传送的开始或停止,在这里,数据线由高到低的变化决定开始条件。而且数据线由低到高的变化决定停止条件。在满足开始条件后,串行时钟线(SCL)为低电平期间,串行数据线(SDA)允许发生变化,但每位数据需一个时钟脉冲,当串行时钟线(SCL)为高电平时,串行数据线(SDA)必须稳定,不能发生任何变化。主控器在应答时钟脉冲高电平期间释放串行数据线(SDA)线高,转由接收器控制。受控器在应答时钟脉冲高电平期间必须拉低串行数据线(SDA)线,使稳定的低电平作为有效应答。

2 系统结构设计

现有一些可编程视频输入处理芯片,如:SAA7111,它的配置是通过I2C总线实现的,这种总线接口协议解决了设计数字控制电路时所遇到的许多接口问题,大大降低了视频输入处理部分的设计难度。因此,它被广泛应用于视频桌面系统、图像多媒体、数字电视、图像处理、视频电话和音频等领域。SAA7111芯片作为视频的输入处理部分,用来实现模拟输入视频信号的数字化。系统上电时,FPGA首先从外部配置芯片中读取配置数据,进入工作模式状态。随后I2C配置模块完成对SAA7111的初始化。初始化结束后,FPGA等待采集图像的命令,FPGA收到采集命令后,视频信号将进入视频解码器SAA7111进行A/D转换,以将模拟信息变成标准的YUV数字图像信息。系统功能框图如图1所示。

3 I2C总线的实现方法

在对I2C总线设计中,通过SAA7111上的I2C接口对其工作方式寄存器进行设置实现其功能。SAA7111是一款功能强大的模拟前端和数字视频译码器,常应用在嵌入式视频应用的高度集成的电路中。内部包含两路模拟处理通道,能实现视频源的选择、抗混叠滤波、A/D转换、自动嵌位、自动增益控制、时钟产生、多制式解码以及亮度、对比度和饱和度的控制,从而将PAL,NTSC等不同制式的模拟复合视频数据解码成亮度、色度和相关同步的数字信号。SAA7111内有32个寄存器(SLLbaddress00~1FH),其中22个是可编程的。其中,OOH,1A~lCH,lFH是只读寄存器。00H描述的是芯片版本信息;1A~1CH是文本信息检测和解码寄存器,一般很少用到;lFH用来描述芯片的状态。02H~12H是可读/写寄存器,其中:02H~05H是模拟输入控制寄存器,02H用于设置模拟视频信号输入方式(共8种);03H~05H用于设置增益控制方式;06H~12H主要用于设置解码方式,通过配置这些寄存器可以设置行同步信号的开始和结束位置,并可确定亮度、色度、饱和度的大小以及输出图像数据信号的格式。01H,13H~19H,1DH~1EH寄存器保留使用。

由于SAA7111加电复位之后,各寄存器处于不确定状态,因此需要采用I2C总线协议由FPGA作为主方对SAA7111的相关寄存器进行设置。从SAA7111的四个模拟输入端AIll,AI12,AI21,AI22的某一引脚输入的视频图像信号经模拟处理后,一路可通过缓冲器输出到AOUT端用于监视,另一路经A/D转换器后则产生数字色度信号和亮度信号。在分别进行亮度信号处理和色度信号处理后,其亮度信号处理结果的一路将送到色度信号处理器进行综合处理,产生的Y和UV信号经格式化后从VPO(16位)输出;另一路则进入同步分离器,并经数字PLL产生相应的行和场同步信号HS和VS。同时,PLL将驱动时钟发生器,以产生HS锁定的时钟信号LLC和LLC2,SAA7111的所有功能均是在I2C总线控制下完成的。SA-A7111相应的寄存器初始化值见表1。

从设备,-M:主设备,W:写位,R:读位):

条件功能。四种功能信号的时序和数据总线传递如图2、图3所示。

为了完成上述要求和功能,本文采用VHDL语言编写逻辑的方法来模拟I2C总线接口时序逻辑,配置数据可以由主机发送,也可以预先存放,同时用VHDL编写时序逻辑对SAA7111进行初始化配置。根据设计要求,在不同的进程下对串行时钟线(SCL)和串行数据线(SDA)进行设计。时钟信号源采用10 MHz的晶振,分频后作为进程激励信号,基本能够满足SAA7111芯片的数据率要求。但如果在一些更高速的情况下,需要快速通过I2C总线对被控器件进行设置,这里只需将行时钟线(SCL)和串行数据线(SDA)的频率进行修改即可,其接

口控制如图4所示。

4 设计仿真结果

设计中利用QuartusⅡ集成环境采用VHDL语言实现了I2C总线对SAA7111中集成的symbol进行实验仿真。reset信号为外接复位信号,时钟信号根据需要外接所需频率时钟信号(clk),并根据要求对信号进行16分频作为进程激励信号(clkin)。对于上述初始化数据,仿真波形如图5所示仿真结果输出正确后,配置与电路设计相符的入/输出引脚。根据测试结果,该设计可以稳定可靠地对SAA7111进行参量控制,如果需要修改只需更换程序中参

量,再次编译下载即可。

5 结语

该设计在视频采集处理系统中已得到应用,I2C总线接口数据采集正确、稳定,并且在实现过程中,占用资源少,仅为总资源的40 %。核心器件与图像数据采集芯片配合使用,节省核心处理芯片的通用I/O接口,使系统整体电路十分简洁、可靠性高、集成度高、接口方便等优点。

基于FPGA的模拟IIC接口设计与实现

研究生课程论文 课程名称基于FPGA的模拟IIC接口设计与实现授课学期2012 学年至2013 学年第一学期学院电子工程学院 专业电子与通信工程 学号2012011603 姓名 任课教师 交稿日期2013.01.10 成绩 阅读教师签名 日期 广西师范大学研究生学院制

基于FPGA的模拟I2C接口设计与实现 摘要:本文论述了I2C总线的基本协议,以及基于FPGA 的模拟I2C 总线接口模块的设计,在QuartusII软件中用Verilog HDL语言编写了部分I2C总线接口功能的程序代码,生成原理图模块。并连接好各个模块,进行了时序仿真。最后,下载到FPGA的板运行测试。 关键词:I2C 接口FPGA Verilog 1课题研究意义、现状及应用分析 目前市场上主流的嵌入式设备主要是微处理器、DSP等,但FPGA 以其独有的高抗干扰性、高安全性正在逐步取得开发公司的青睐,在FPGA上开发I2C势在必行。并且利用EDA 工具设计芯片实现系统的功能,已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视。I2C总线是Philips 公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。因此,基于FPGA的I2C总线设计有着广泛的应用前景。

2课题总体方案设计及功能模块介绍 本设计主要分三大模块,分别是I2C 总线接口模块、按键输入控制模块、数码管显示模块。I2C总线模块集成了I2C协议用于和总线相接EEPROM的通信;按键输入控制模块用于控制I2C模块的页读、页写、字节读、字节写功能;数码管显示模块用于显示通过I2C总线读取EEPROM中的数据。 3I2C接口设计原理 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。 3.1总线的构成 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都

基于FPGA的I2C实验Verilog源代码

`timescale 1ns / 1ps module i2c_drive( clk,rst_n, sw1,sw2, scl,sda, dis_data ); input clk; // 50MHz input rst_n; //复位信号,低有效 input sw1,sw2; //按键1、2,(1按下执行写入操作,2按下执行读操作) output scl; // 24C02的时钟端口 inout sda; // 24C02的数据端口 output [7:0] dis_data; //输出指定单元的数据 //-------------------------------------------- //按键检测 reg sw1_r,sw2_r; //键值锁存寄存器,每20ms检测一次键值 reg[19:0] cnt_20ms; //20ms计数寄存器 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt_20ms <= 20'd0; else cnt_20ms <= cnt_20ms+1'b1; //不断计数 always @ (posedge clk or negedge rst_n) if(!rst_n) begin sw1_r <= 1'b1; //键值寄存器复位,没有键盘按下时键值都为1 sw2_r <= 1'b1; end else if(cnt_20ms == 20'hfffff) begin sw1_r <= sw1; //按键1值锁存 sw2_r <= sw2; //按键2值锁存 end //--------------------------------------------- //分频部分 reg[2:0] cnt; // cnt=0:scl上升沿,cnt=1:scl高电平中间,cnt=2:scl下降沿,cnt=3:scl低电平中间 reg[8:0] cnt_delay; //500循环计数,产生iic所需要的时钟

基于FPGA的AT24C32控制电路设计

龙源期刊网 https://www.wendangku.net/doc/7015856464.html, 基于FPGA的AT24C32控制电路设计 作者:龙黔川易润 来源:《科技探索》2012年第12期 中图分类号:TP 文献标识码:A 文章编号:1007-0745(2012)12-0048-02 摘要:本文介绍了现场可编程门阵列FPGA与AT24C32器件的接口设计方法。其特点是用VHDL语言编程,利用FPGA的普通I/O口模拟产生IIC总线协议的接口信号时序,实现FPGA与AT24C32的数据通信。本文给出了FPGA与IIC总线存储器件AT24C32连接的硬件和软件设计的应用实例。 关键词:FPGA IIC总线 VHDL I/O口 1、引言 现场可编程门阵列FPGA(Field Programmable Gate Array)是新一代可编程逻辑器件。FPGA功能强大,可以实现所有数字电路功能,具有结构灵活,设计周期短,密度高,性能好等多种优点,广泛应用于数字设计和电子生产中。 IIC总线(Intel IC Bus)是由Philips公司推出的一种串行扩展总线,它与并行总线相并,有如下突出的优点:规范完整,结构简单,易于实现用户系统软硬件的模块化、标准化等,因此IIC总线在简单的数字通信中应用十分普遍。IIC总线器件必须由一个主器件控制,在传统设计中以单片机或CPU作为主器件,本设计中采用可编程逻辑器件FPGA作为主器件,用FPGA的普通I/O口模拟IIC总线与器件AT24C32直接相连,实现FPGA与IIC总线器件的数据通信。二者实现数据通信的最关键地方是需要严格遵守IIC总线协议来进行设计。 2、IIC总线协议 IIC总线有严格的规范,IIC总线有两条串行接口,即SDA串行数据线和SCL串行时钟线。SDA是一个双向数据端口,用于传输地址和数据进入器件或从器件发出数据。SCL串行 时钟端用于同步进入器件或从器件发出数据。 (1)开始(START)和停止(STOP)数据传送 当时钟线SCL为高,SDA线由高到低变化决定开始条件。所有的命令都必须在开始条件以后进行。当SCL线为高,SDA线由低到高变化决定停止条件。所有的操作都必须在停止条件以前结束。总线开始和停止数据传送的时序见图1。 (2)数据有效

基于FPGA的I2C总线通信验证

基于FPGA的I2C总线通信验证 【摘要】本文首先简单的介绍了I2C总线协议,然后使用Verilog HDL编程,使用FPGA的普通的I/O接口产生I2C总线的接口时序信号,从而实现FPGA 与I2C总线的通信。本文中用到的FPGA芯片是Xilinx公司的Spartan-3E系列的XC3S250E器件。 【关键词】I2C总线;Verilog HDL;FPGA;接口时序 0 引言 I2C总线(Intel IC BUS)是Philps公司开发的一种用于芯片之间通讯的二线制串行传输总线,是基于串行时钟线SCL和串行数据线SDA完成的全双工的数据传送。与其它的并行数据传输线相比有以下几个优点:规范完整,结构独立,易于实现用户系统软硬件的模块化、标准化,同时还具有连线少、允许多主机控制、具有总线仲裁和同步的特点等,因此,已经被广泛用于各个领域,并成为了一种国际的工业标准。本文的宗旨是利用Verilog HDL在FPGA上模拟I2C接口时序,实现与I2C总线的通信。 1 I2C总线系统的工作原理 I2C总线系统有严格的时序规范,由两条串行接口组成,即SCL串行时总钟线和SDA串行数据总线。SDA和SCL都是全双工的串行总线,SDA用于传输地址和数据,SCL为传送数据提供时钟。I2C总线系统中主机和从机之间传送一次数据为一帧,由开始信号、地址,数据字节、应答信号以及停止信号组成。当启动通讯时,主机先发送一个开始信号和从机的地址字节(由7位地址和一位读写信号标志位组成),若某个从机发出响应信号,则主机开始发送数据字节,每一个数据字节完成时,从机必须发出一个响应信号,主机接收到从机响应信号之后,才能发送下一个数据字节。当通讯停止时,主机产生一个停止信号。图1为一次完整的数据传送。 2 I2C模块的设计及其实现 由I2C总线规范可得到I2C的写和读的命令格式如下: (1)I2C总线写命令格式:--- - - - - -…. (2)I2C总线读命令格式:-----------图2 I2C主机的状态转移图 本文中按照以上两个读写过程,用Verilog HDL语言使用状态机的方式实现,如图2所示。状态机的编码方式使用独热码,不仅可以防止毛刺引起状态转移,而且还可以提高电路的速度和可靠性。本文中I2C总线的传输速率为400kbit/s。

I2C总线控制及基于FPGA的实现

I2C总线控制及基于FPGA的实现 [摘要]根据串行扩展的特点,详细描述了12C总线的结构、原理和工作过程,通过举例介绍了通过FPGA设计实现12C总线的基本思想,并给出了xlinx ise 6.1环境下仿真程序部分代码和ModelSim软件下的仿真时序图。 [关键词]12C总线;VHDL;FPGA 引言:在开发FPGA中,利用EDA工具设计芯片实现系统功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展,各分立元件的连接和接口扩展就显得十分重要。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线连线少,结构简单,往往不用专用的母板和插座而直接用导线连接各个设备即可。因此,采用串行总线大大简化了系统硬件设计。尤其是12C串行总线,它是具备多主机系统所需的包括裁决和高低速设备同步等功能的高性能串行总线,以其接口简单、使用灵活等突出优点在数字系统中获得了广泛的应用。 1、几种串行总线 虽然现代的微控制器和FPGA提供了大量的120插脚,并且SMD技术(表面安装器件)也在一块几英寸大小的PCB上提供了尽可能多的插脚,但这并没有影响串行总线连在电路板分立元件连接方面的应用。除传统的总线如12C和SPI(串行外围接口)之外,还有在温度计和智能按键等的灵敏传感器方面广泛应用的Dallas 1-Wire单总线等。 SPI通过快速ADC、DAC、E2PROM设备连接微控制器,分离的输入输出插脚保证了数据高速率。由于协议中并没有内嵌式地址,因此总线上各个设备必须支持片选信号,每个从设备有一个被选输入,主设备必须具有与其从属设备数量一样多的被选输出,或者必须有一个外部解码器。SPI允许简单地连接移位寄存器之类的非智能外围设备,连锁式的移位寄存器可以实现大容量输入输出扩展器。 Dallas单总线上的连接则必须具备高智能水平。在这个协议中,单总线通常要求外接一个4.7kΩ左右的上拉电阻,用持续1到15μs的低电平来传送1,用持续60μs到1201μs的低电平来传输0。指令和数据通过这种方式传输到从设备。控制器为了同步发送一个“1”,从设备将其中一部分转换为“O”,数据通过这种方式从设备传输至控制器。 Philips公司早在1980年开发了I2C标准,I2C总线是关注速度和复杂程度之间的很好的折衷,当时只定义了100kHZt和400kHZ两个传输速率,但并没有规定单个比特的长度,所以在一个没有诸如中断限制的微控制器的系统中用软件

基于fpga的i2c总线通信的实现学习

IIC总线的FPGA实现 一、摘要 DE2_TV中,有关于寄存器的配置的部分,采用的方法是通过IIC的功能,这里对IIC总线的FPGA实现做个说明。 二、实验平台 软件平台:ModelSim-Altera 6.4a (Quartus II 9.0) 硬件平台:DIY_DE2 三、实验原理 1、IIC总线器件工作原理 在IIC总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号变为低电平,将使SCL线上所有器件开始并保护低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不影响SCL线的状态,这些器件将进入高电平等待的状态。 当所有器件的时钟信号都变为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件决定,而时钟高电平时间由时钟高电平期最短的器件决定。 IIC总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s ,连接到总线的接口数量只由总线电容是400pF 的限制决定。 2、IIC总线的传输协议与数据传送时序 (1)起始和停止条件 在数据传送过程中,必须确认数据传送的开始和结束。在IIC总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如图1所示。

图1起始和停止信号图 开始信号:当时钟总线SCL为高电平时,数据线SDA由高电平向低电平跳变,开始传送数据。 结束信号:当SCL线为高电平时,SDA线从低电平向高电平跳变,结束传送数据。 开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态,其它器件不能再产生开始信号。主器件在结束信号以后退出主器件角色,经过一段时间过,总线被认为是空闲的。 (2)数据格式 IIC总线数据传送采用时钟脉冲逐位串行传送方式,在SCL的低电平期间,SDA线上高、低电平能变化,在高电平期间,SDA上数据必须保护稳定,以便接收器采样接收,时序如图2所示。 图2 数据传送时序图 IIC总线发送器送到SDA线上的每个字节必须为8位长,传送时高位在前,低位在后。与之对应,主器件在SCL线上产生8个脉冲;第9个脉冲低电平期间,发送器释放SDA线,接收器把SDA线拉低,以给出一个接收确认位;第9个脉冲高电平期间,发送器收到这个确认位然后开始下一字节的传送,下一个字节的第一个脉冲低电平期间接收器释放SDA。每个字节需要9个脉冲,每次传送的字节数是不受限制的。 IIC总线的数据传送格式是在IIC总线开始信号后,送出的第一字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,即主器件把信息写到所选择的从器件中;方向位为“1”表示主器件将从从器件读信息。格式如下:

基于fpga的嵌入式系统设计——复习题

基于fpga的嵌入式系统设计——复习题

————————————————————————————————作者: ————————————————————————————————日期:

《基于fpga的嵌入式系统设计》复习题 1、名词概念解释: (1)ASIC,FPGA,SOC,SOPC,NIOS II,I/O ,IP ; (2)VHDL,verilog HDL,HDL,EDA ; (3)功能仿真,后仿真,设计综合,设计验证; (4)嵌入式系统的定义: 以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系 统。 (5)嵌入式系统的组成: 嵌入式系统主要由嵌入式处理器、外围设备、嵌入式操作系统及应 用软件等组成,它是集软硬件于一体的可独立工作的“器件”。其中: 嵌入式处理器是嵌入式系统的核心部件,具有小型化、高效率、高 可靠性、高集成度等特点。外围设备是嵌入式系统中用于完成存储、 通信、调试、显示等辅助功能的部件。 2、填空题 (1)NiosII处理器有三种运行模式: ___________ ,___________ ,_____________。 (2)CycloneII FPGA支持串行配置器件的isp编程,该特性是通过_____________利用JTAG接口实现的。 (3)在SOPCBuilder中,复位地址的偏移量是________,异常地址的偏移量是________。 (4)在NiosII的多处理器系统中,最常用的共享资源是____________。 (5)根据Flash是否支持处理器的直接读操作,NiosII处理的bootloader分成两种模式:________________bootloader、________________ bootloader。(6)用uC/OS-II操作系统实现以太网与轻量IP功能的时候,以太网的中断号至少是____________。 (7)Altera公司的FPGA常用的配置方式: JTAG方式、___________、___________。 (8)CycloneII FPGA上面集成的Block RAM为M4K,一个M4K的大小是________。 (9)使用QuartusII进行FPGA设计的开发流程是:设计输入、__________、___________、仿真、_________ 。

相关文档