基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx

上传人:龙*** 文档编号:1008965 上传时间:2018-11-15 格式:DOCX 页数:21 大小:1.75MB
下载 相关 举报
基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx_第1页
第1页 / 共21页
基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx_第2页
第2页 / 共21页
基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx_第3页
第3页 / 共21页
基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx_第4页
第4页 / 共21页
基于CCD的FPGA图像采集控制系统设计--IIC从设备接口协议的Verilog HDL模拟.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、基于 CCD的 FPGA图像采集控制系统设计-IIC从设备接口协议的 Verilog HDL 模拟摘要:标准 CCD图像采集系统除了标准图像输出端口外还需预留与后端数字图像处理控制器之间通讯接口。目前常见的通讯接口有串口、SPI、IIC 等通信接口。本文采用通过 FPGA设计一个以 IIC协议通讯的从设备接口,以便实现 CCD图像采集器与图像处理器之间的通信。本课题采用 Verilog HDL硬件描述语言,以 FPGA为载体来实现 IIC总线控制器的设计。课题组首先研究了 IIC总线的规范,针对传统 IIC总线接口的 FPGA设计可重用性不高的问题,设计了一种基于 FPGA的可配置 IIC总线

2、接口设计方案。该方案采用同步有限状态机设计方法和硬件描述语言 Verilog HDL,对 IIC总线的数据传输时序进行模块化设计。重点介绍了 IIC控制器的总体设计方案,详细描述了时序状态机的工作原理和 Verilog HDL语言的实现。采用了自顶向下的设计方法,利用了 Verilog HDL语言的结构描述风格,把整个设计拆分为 6个模块,时钟分频模块,寄存器组模块,数据接收模块,数据发送模块,缓冲输出模块,时序控制模块,顶层模块也采用硬件描述语言设计。因此,基于 FPGA的 I2C总线设计为数字图像处理电路设计硬软件方面打下了坚实的基础。关键词:CCD 采集;FPGA;IIC 总线接口;Ve

3、rilog HDL;设计1.前言常见的视频采集系统主要有两种,一种是基于微处理器如单片机、ARM 等的视频采集卡,其特点是结构简单,易于实现。缺点是,无法实时地对视频数据完成处理,需要使用外部处理器来完成特定的视频处理算法,因而成本高,升级维护难度大;另一种是基于主从处理器FPGA+CCD或者 CMOS等的嵌入式视频采集卡,特点是系统高度集成,易于维护升级,可以满足视频采集的需求,同时可以完成特定的视频算法,成本较低。目前市场上主流的嵌入式设备主要有单片机微处理器、DSP 等,但 FPGA以其独有的高抗干扰性、高安全性正在逐步取得开发公司的青睐,在 FPGA平台开发 I2C势在必行。并且利用E

4、DA工具设计芯片实现系统的功能,已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视。I2C 总线是 Philips 公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。此外,在嵌入式系统开发中越来越多的应用到 FPGA,而一些嵌入式 CPU,比如 STM32为了降低成本,减小封装尺寸,没有外接专门的 CPU读写总线,而只提供了一些如 SPI和 I2C的接口。而且在应用中经常有数据要配置到 FPGA中,如 FPGA中的应用配置寄存器,和配置表项,图像传感器中对比度、亮度的设置、白平衡等的设置,都需要 CPU配置。这些数据的数

5、据量不大,速度也不要求很高,很适合用 I2C总线来配置。IIC总线的连线少,具有结构简单,可不用专门的母板和插座直接用导线互连各个设备,因而可大大简化系统的硬件设计。许多半导体厂商都引进了此项总线技术,并推出了不少带 IIC总线接口的芯片。已有不少文献讨论了 IIC总线接口的单片机编程技术,本文着眼于基于 CCD的 FPGA图像采集系统中 IIC用户交互接口的设计,介绍了一种基于 FPGA的 IIC总线接口驱动的实现方法。通常,从图像传感器的制作工艺上分,图像采集主要有两种工艺,一种是 CCD,另一种是 CMOS。CCD 是集成在半导体单晶硅材料上,而 CMOS是集成在互补金属氧化物半导体材料

6、上。从图像传感器的架构上分: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使用 C

7、MYG互补色滤光阵列,具有如 CCD一样的画质,比 CCD高的可见光灵敏度及超高的红外光灵敏度、更大的动态范围。MCCD 使用与 CCD兼容的曝光、读出控制方式(使用XSUB、XSG1、XH1、XH2、XV2、XV4 信号) ,因此 MCCD是与 CCD相同的被动器件。MCCD 利用CMOS工艺集成度高的特点,将先进的图像信号处理器及 AFE的功能集成到芯片中,有效提高了图像质量。C C D 应 用C C DD S P模拟信号驱动信号C V B S视频输出A F E数字信号高压驱动高压驱动信号I I C图 1 基于 DSP的 CCD驱动器设计图由于 CIS集成度优势,使得 CIS相比于 CCD

8、拥有更丰富的接口种类。目前监控用 CIS不仅能够输出 RGB,YUV,CCIR656 等数字信号,而且可以输出 PAL/NTSC制式的模拟电视信号,既满足传统的 CCTV应用,也能满足诸如 IP Camera等数字应用。此外 CIS还提供 I2C控制接口,便于外部 MCU对 CIS的控制。CCD 图像传感器本身只能输出模拟电信号,如果要增加各种接口,就需要“套片” (FPGA)配合使用。现在大多数监控专用 CIS产品在现有接口基础上,创新性提供了 Master I2C接口和模拟差分电视信号接口。Master I2C接口使客户将调试最佳图像效果参数存于 I2C接口 EEROM中,等 CIS上电则

9、读取EEROM中的参数并自行配置到最佳效果,可见如图 2所示,基于 PFGA的 IIC驱动的设计在工程实践中具有极大的指导意义,在工程实际应用和 CCD驱动电路设计方面打下了坚实的基础。C C D 应 用C C DF P G A模拟信号驱动信号C V B S视频输出A F E数字信号高压驱动高压驱动信号I I C图 2 基于 FPGA的 CCD驱动器设计图2. IIC通讯总线基础理论2.1 IIC 总线的基本原理IIC总线的系统结构如图 3所示。IIC 总线是由数据线 SDA和时钟 SCL构成的串行总线,可发送和接收数据。在 CPU与被控 IC之间、IC 与 IC之间进行双向传送,最高传送速率

10、100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IIC 总线上并接的每一模块电路既是主控器,又是发送器,这取决于它所要完成的功能 1。CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别如对比度、亮度等及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。图 3 IIC 总线的系统结构图IIC(Inter-Integrated Circuit)总线最早是由 PHILIPS公司开发的两线式串行通信总线,主

11、要用于连接微控制器及其外围设备。IIC 总线的最主要的优点是其简单性和有效性 2。由于接口直接在组件之上,因此 IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。另外,IIC 总线支持线与逻辑,即支持多个从设备同时挂在同一总线上,主设备根据不同的从设备地址可实现对不同从设备的访问。IIC总线在传送数据过程中共有三种类型信号,它们分别是开始信号、结束信号和应答信号。开始信号的特点是 SCL为高电平时,SDA 由高电平向低电平跳变,开始传送数据。结束信号的标志是 SCL为高电平时,SDA 由低电平向高电平跳变,结束传送数据。接收数据的IC在接收到 8bit数据后,向发

12、送数据的 IC发出特定的低电平脉冲,表示已收到数据为应答信号。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。目前有很多半导体集成电路上都集成了 IIC接口。常见带有 IIC接口的单片机有C8051F0XX系列,PHILIPSP87LPC7XX 系列,MICROCHIP 的 PIC16C6XX系列 AVR等 3。很多外围器件如存储器、监控芯片等也提供 IIC接口。IIC规程运用主或从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器

13、件都可以工作于接收和发送状态。总线必须由主器件,通常为微控制器控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA 线上的数据状态仅在 SCL为低电平的期间才能改变,SCL 为高电平的期间,SDA 状态的改变被用来表示起始和停止条件,参见图 4。图 4 串行总线上的数据传送顺序图在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM 一般应为 1010,接着三位为片选,最后一位为读写位,当为 1时为读操作,为 0时为写操作,如图 5所示。1 0 1 0 A2 A1 A0 W/R图 5 控制字节配置图IIC总线共有

14、两根信号线,数据线 SDA及时钟线 SCL,两根信号线都是双向线路,其中SDA线上的数据方向可为主设备到从设备,也可为从从设备到主设备,SCL 通常由主设备产生,但从设备在忙状态时可将 SCL拉低,从而使主机保持等待状态,等从设备忙完时再释放SCL。由于 IIC设备的接口电路通常都是集电极开路或漏极开路(OC/OD)门电路,所以一般都通过一个电流源或上拉电阻连接到正的电源电压上。IIC 总线上的数据传输速率在标准模式下可达 100Kbit/s,在快速模式下可达 400Kbit/s,在高速模式下可达 3.4Mbit/s。连接到总线的接口数量只受总线电容最大 400pF的限制 4。在 IIC总线上

15、传送信息时的时钟同步信号是由挂接在 SCL时钟线上的所有器件的逻辑“与”完成的。SCL 线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号变为低电平,将使 SCL线上所有器件开始并保护低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不影响 SCL线的状态,这些器件将进入高电平等待的状态。当所有器件的时钟信号都变为高电平时,低电平期结束,SCL 线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将 SCL线拉成低电平。这样就在 SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件决定,而时钟高电平时间由时钟高电平

16、期最短的器件决定 5。IIC总线时序如图 6所示,IIC 数据传输时关键是有一个 START条件和一个 STOP条件,并且每来一个时钟传输一个数据。主机产生一个 START条件启动一次新的与从机之间的数据传输。SCL 保持高电平期间,SDA 由高电平到低电平的跳变将产生一个 START条件,实际时序如 图 6所示。主机产生一个 STOP条件以终止与从机之间的数据传输。SCL 保持高电平期间,SDA由低电平到高电平的跳变将产生一个 STOP条件,实际时序如图 6所示。重复 START条件同普通 START条件一样,该条件通常表示对一个特定的存储地址反复读写。写位时 SDA的跳变只能发生在 SCL

17、的低平期间,在整个 SCL脉冲为高电平以及所要求的建立、保持时间内,SDA上的数据必须保持有效且不变,如图 6所示。读位时主机应在读数期间释放 SDA总线,并在 SCL的下一个上升沿之前保持适当的建立时间,在前一个 SCL脉冲的下降沿,器件将每一位数据通过 SDA移出,并在当前 SCL脉冲的上升沿保持数据位有效 6。图 6 IIC 数据传输时序图图 6中的 ACK为应答信号,接收数据的器件在第 9位期间发送 0表示正确接收到数据,读操作期间的主机或者是写操作期间的从机,同时主机应在读取最后一个字节后发送 NACK,终止通信,使从机将 SDA的控制权交还给主机。2.2 IIC 模块设计与实现图

18、7 IIC 模块结构IIC模块结构如图 7虚线框内所示,主要包括以下三个部分。分频:IIC 通信的最大工作频率为 400kHz,而 FPGA锁相环输出时钟一般较大,因此需要分频到较低工作时钟。数据寄存器:本模块主要是对读到的和需要写入的时间信息进行整合,使得该信息按规定格式传输。IIC总线接口控制模块:本模块是设计的核心,实现 IIC通信协议,产生读写时序,完成数据交互功能。介绍下硬件模块总体设计思想:本 IIC模块实现的主要功能是完成并行数据与串行数据的转换,在转换过程中串行数据的输入与输出必须满足 IIC总线规范 7。图 7为 IIC总线接口框图,主要包括以下几个单元。分频器:由 FPGA

19、的锁相环输出的稳定时钟信号,由于频率很高所以必须经过分频模块输出满足 IIC总线要求的数据传输速率。IIC 总线接口控制时序逻辑块:IIC 总线数据传输的所有时序控制逻辑都由它产生,是这个 IIC模块的核心。数据锁存器:根据读写使能信号(r/w)存储 IIC己接收的或待发送的数据 8。移位寄存器:在时序控制逻辑模块的控制下根据读写使能信号(r/w)对数据进行正确地处理。2.3 IIC 总线的读写操作IIC总线的写操作如图 8所示。S:STARTA 条件;A:ACKNOWLEDGE;P:STOP 条件;word Address(n):即为存储地址,该地址为首地址,当器件收到该地址后,依次往后写数

20、据。图 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)是硬件描述语言的一种,用于数字电子系统设计,该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。据统计,目前在美国硅谷约有

21、 90%以上的 ASIC和 FPGA已经采用 Verilog硬件描述语言方法进行设计。在进行 FPGA的开发时,利用 EDA工具设计芯片实现系统的功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视 9。目前针对 IIC总线的相关开发的资料都是利用 VHDL语言或 AHDL语言实现的。由于 Verilog相比 VHDL等其它硬件描述语言具有代码量少、支持自动类型转换、对于初学者来说比较容易入门等优点,故本文选择 Verilog语言作为基于 FPGA的 IIC通讯总线的驱动设计语言。3. 基于 FPGA的 IIC通讯总线驱动设计3.1

22、 IIC 总线接口模块结构设计IIC总线接口结构设计如图 10所示,主要包括内部分频器和 IIC总线接口控制时序逻辑模块两部分。内部分频器:通常 FPGA的外部输入时钟频率比较高,例如 50MHz,所以必须经过内部的分频器输出符合 I2C总线要求的数据传输速率标准模式 100kbit/s,快速模式400kbit/s,才能满足 IIC总线数据传输的时序要求 10。图 10 IIC 总线接口模块结构框图IIC总线接口控制时序逻辑模块:此部分是 IIC总线接口模块的控制核心,IIC 总线数据传输的所有时序控制逻辑都由它产生,例如,启动信号和停止信号的产生,对从器件的寻址,总线上数据的发送和接收。同时

23、,其内部集成数据锁存器和移位寄存器,其中,数据锁存器主要用于暂存发送的数据、地址和控制信息和接收数据,移位寄存器主要用于对发送的数据进行并/串转换,然后发送到数据线 SDA上,或者从数据线 SDA上接收的数据进行串/并转换,然后由主机进行接收 11。3.2 IIC 总线端口映射及功能说明 IIC总线端口映射及功能如表 1所示。由图 10和表 1可知,本文设计的 IIC总线接口模块能够实现数据传输的两种基本数据操作模式即单字节数写模式和单字节数据读模式 12。表格 1 IIC 总线端口映射及功能说明端口名 功能说明 端口 功能说明Clk FPGA外部输入时钟 Rst 总线接口模块复位信号, 0

24、为有效Clk_Type SCL输出时钟模式:0 为标准模式,1 为快速模式Done 当主机对从机完成一次读写操作时,该信号出现下降沿,否则为高电平Rd/Wr 读写控制信号,1 为主机从从机读取数据,0为主机向从机写入数据Ack 从机对主机的回应信号Machine_Addr6:0 从机器件的唯一地址标识符 AckCounter2:0 主机接收从机应答信号计数器Inter_Addr7:0 从机器件要进行操作的存储单元地址 SDA IIC总线接口数据线SCL IIC总线接口时钟线 Data_Send7:0 主机向从机发送的字节数据Start 接口模块读写操作启动信号,下降沿有效 Data_Rece7:0 主机接收从机的字节数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。