当前位置:首页 > 通信技术 > 通信技术
[导读]随着编码理论和多媒体网络应用的发展,图像和视频压缩编码JPEG2000系统应用得到逐步推广。在此从视频采集中I2C总线的特点、协议入手,着重对I2C总线设计及实现方法进行介绍。基于视频采集芯片SAA7111,提出采用VHDL语言来模拟实现I2C总线接口的方法,并将其嵌入到FPGA中。实验仿真结果证明数据是正确、稳定、可靠的,具有一定的可借鉴性。

 随着科学技术的发展和现代战争条件的变化,传统图像信号提供的单一服务已远远不能满足现代战争的需要。图像信号由于包含有极其丰富的信息,具有通信效率高、便于记录、形象逼真、临场感强等特点,所传送的信息量远远超过其他通信手段,所以得到越来越多的重视。在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。


    I2C总线控制读/写操作过程如表2、表3所示(S:开始,Sr:重开始,P:停止,-S:从设备,-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作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

通信技术

120685 篇文章

关注

发布文章

编辑精选

技术子站

关闭