基于fpga的图像采集系统设计本科论文.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 fpga 图像 采集 系统 设计 本科 论文
- 资源描述:
-
四川师范大学成都学院EDA实训报告书 基于FPGA的图像采集系统设计 前言 随着科技社会的发展,图像采集系统在日常生活、工业生产、国家安全等众多领域得到广泛的应用,具有广阔的应用前景和研究价值。采用FPGA进行设计的图像采集系统有良好的扩展性能和相对稳定的硬件结构。主要工作如下: 1)分析图像采集和图像处理的原理和特点,设计硬件电路的原理图,完成系统PCB板图的设计。 2)针对FPGA进行内部功能模块的划分,使用Verilog HDL硬件描述语言进行设计。 3)利用SOPC Builder完成NIOS处理器软核及其外设的创建和配置。 4)根据FPGA内部硬件电路的特点,选择适合FPGA的算法,并对算法进行优化。 5)在NIOS II IDE环境下用Verilog HDL语言编写图像传感器控制、图像采集、SRAM读写控制、图像显示等程序,实现完整的图像采集系统功能。 1课题分析 1.1 选题背景(含国内外相关研究综述及评价)与意义 EDA技术的发展和应用普及性越来越高,已经涉及到现代电子产品设计的各个系统、各个领域中。之所以有这样的广泛应用,主要得益于可编程逻辑器件的长足发展和日益成熟,可编程逻辑器件(Programmable Logic Device, PLD)是一种半定制集成电路,在其内部集成了大量的门和触发器等基本逻辑单元电路,通过用户编程来改变PLD内部电路的逻辑关系或连线,从而得到所需要的电路设计功能。这种新型逻辑器件,不仅速度快、集成度高,能够完成用户定义的逻辑功能,还可以加密和重新定义编程,其允许编程次数可以达到上万次。可编程逻辑器件的出现,大大改变了传统数字系统设计方法,简化了硬件系统、降低成本、提高系统的可靠性、灵活性。因此,自20世纪70年代问世以后,PLD受到广大工程师的青睐,被广泛应用于工业控制、通信设备、仪器仪表和医疗电子仪器等众多领域,为EDA技术开创了广阔的发展空间。 VGA作为一种标准的显示接口,在视频和计算机领域得到了广泛的应用。VGA图像信号发生器是电视台、电视机生产企业、电视维修人员常用的仪器,其主要功能就是产生标准的图像测试信号。对VGA而言,其主要应用在工业控制领域,通过VGA接口实现将信息、图像、文字等内容显示各种VGA显示器上,为客户提供一种完美的显示界面,也是目前重要的显示终端。本次实验设计主要是基于FPGA芯片为处理器,利用硬件描述语言完成VGA的时序控制,并利用相应的实验平台,进行设计验证,基本实现了VGA的彩条信号和图像显示效果,达到了整个设计目标和要求。 1.2 选题研究的方法与主要内容 1.2.1研究方法 通过查阅资料,学习VGA工作原理和控制方法,掌握EDA技术应用基本技巧,运用FPGA为设计实现的处理器,完成VHDL对各个模块的功能描述,在实验平台上完成整个系统设计实现。 1.2.2主要内容 u 根据设计任务,制定实现方案 u 应用VHDL完成对系统中各个功能模块的描述 u 完成顶层设计文件,并调试仿真系统 u 下载程序代码到FPGA,在实验平台上验证VGA是否正常显示 撰写设计报告书 1.3 研究条件和可能存在的问题 1.3.1研究条件 会使用EDA开发工具软件Quartus II ,能熟练使用VHDL语言编写时序电路,需要有相应的实验开发平台。 1.3.2可能存在的问题: u VGA时序控制不正确,无法正常显示相应的图形 u VGA硬件接口电路PCB设计不能实现其功能 u FPGA内部ROM存储空间太小,不能存储大容量的图片数据 1.4 拟解决的主要问题和预期的结果 1.4.1拟解决的主要问题 u VGA时序控制问题 u PROTEL绘制VGA电阻分压网络电路设计问题 u 调试VHDL程序代码常见错误 1.4.2预期的结果 通过完成整个系统的电路设计,实现各个功能模块和顶层设计电路,能在显示器上正确看到横竖彩条、棋盘格图形和图片显示等效果。 2 图像采集系统介绍 2.1 图像采集系统功能分析 这部分阐述了图像采集系统的各种动作功能和控制要求,给出了完整的图像采集系统操作规程,并介绍了图像采集运行系统中所包括的人工操作步骤。 2.1.1 图像采集系统的基本功能 在进行上、下位机程序编写之前,首先要做的工作是确定图像采集系统本身所具备的功能及在进行某种操作后所具有的状态。 在实际生活中,我们见到的图像采集系统可以采集一些简单的图像,如书本、人物和植物等。图像采例集系统的基本功能就是对图像进行采集,并进行简单的处理。举一个简单的例子来说明: 采集一本书的图像,系统会根据书的颜色大小自动调整,使采集的图像清晰,尽量减小失真。当图像达到最佳状态时,系统等待外部命令,如继续采集,则同上,如果此时不再采集而按下退出按钮,系统则要进行退出操作,并提示你是否保存所采集的图像,完成此次操作。由此看来,系统一次采集要涉及摄像头、VGA以及FPGA等,这是它的内部功能。基于FPGA实现的图像采集系统的整体结构框图如图1.1.1-1所示: 系统主要分为:图像采集模块、PLL锁相环时钟管理模块、I2C总线模块、FIFO图像数据处理模块、Nios II 显示控制模块。系统中PLL负责为Nios II嵌入式内核、外部SDRAM和OV7670摄像头提供时钟,系统通电后,FPGA首先从EPCS中读取配置数据,完成自身程序加载,随后对系统时钟分频为摄像头提供系统时钟,然后通过I2C总线完成对OV7670摄像头的配置。 配置完成后,OV7670将采集到的图像数据输出格式转换为标准的图像数据及图像时钟送入FPGA进行处理,并将处理后的图像数据通过FIFO模块暂时存储在SDRAM中进行缓冲,同时Nios II模块读取存放在SDRAM中的图像数据,按照TFT液晶显示的时序、数据要求将图像数据送到TFT彩色液晶显示屏上显示。 彩色LCD显示 SDRAM控制模块 液晶显示控制模块 FIFO数据缓存模块 PLL 视频采集模块 I2C模块 OV7670摄像头 EPCS16配置芯片 SDRAM 图1.1.1-1 图像采集系统结构 3 系统硬件设计 3.1 FPGA选型 FPGA是该系统的核心,由于系统目前只是完成简单的图像处理,故FPGA选用Altera公司的低成本FPGA Cyclone II系列器件简介如表所示。 Cyclone II器件采用90nm工艺制造,它延续Cyclone的低成本定位,在逻辑容量、PLL、乘法器和I/O数量上都比Cyclone有了较大提高,应用Cyclone II进行图像处理开发有如下优点:(1)低成本高性能,适应图像处理要求较高的需要。(2)丰富的内嵌存储器资源,适应大量图像数据存取的需要。(3)丰富的硬件乘法器,适应图像处理算法的需要。系统的FPGA选用开发板自带的EP2CS5Q208C8芯片。 Cyclone II系列FPGA参数对比 器件 EP2C5 EP2C8 EP2C15 EP2C20 EP2C35 EP2C50 EP2C70 逻辑单元 4608 8256 14448 18752 33216 50528 68416 M4K RAM块 26 36 52 52 105 129 250 总比特数 119808 165888 239616 239616 483840 594432 1152000 嵌入式乘法器 13 18 26 26 35 86 150 PLL个数 2 2 4 4 4 4 4 最多用户I/O管脚 158 182 315 315 475 450 622 3.2 图像采集模块选择 图像采集采用OV7670图像传感器,OV7670图像传感器体积小、工作电压低。OV7670摄影头的VGA图像最高达到30帧/秒。通过SCCB总线控制内部寄存器,可以是OV7670输出整帧、子采样、取窗口等方式的各种分辨率的图像数据。用户还可以完全控制图像质量、数据格式和传输方式。OV7670与FPGA硬件连接如图所示。 3.3 图像显示模块 图像显示通过在FPGA中构建的Nios II嵌入式内核实现,Nios II系统可以在设计阶段根据实际的需求来增减外设的数量和种类。可以使用Altera提供的开发工具SOPC Builder,在FPGA器件上创建软硬件开发的基础平台,即用SOPC Builder创建嵌入式内核CPU和参数化的接口总线Avalon。在此基础上,可以快速地将硬件系统与常规软件集成在单一可编程芯片中。而且SOPC Builder还提供标准的接口方式,以便用户将外围电路做成Nios II嵌入式内核可以添加的外设模块。这种设计方式,方便了各类系统的调试。 3.4 PLC的选型与工作原理 当某一个控制任务决定由PLC来完成后,选择PLC就成为最重要的事情。一方面要选择多大容量的PLC ,另一方面是选择什么公司的PLC及外设。 对第一个问题,首先要对控制任务进行详细的分析,把所有的I/O点找出来,包括开关量I/O和模拟量I/O以及输出是用继电器还是晶体管或是可控硅型。 3.4.1 PLC的硬件结构图: 图2.4.1-1 PLC硬件结构图 3.4.2 PLC各部分的作用与工作原理 3.4.2.1 中央处理器 CPU是由控制器和运算器组成的。运算器也称为算术逻辑单元,它的功能就是进行算术运算和逻辑运算。控制器的作用是控制整个计算机的各个部件有条不紊地工作,其基本功能是从内存中取指令和执行指令。他的重要功能如下: ★ 诊断PLC电源、内部电路的工作状态及编制程序中的语法错误。 ★ 采集由现场输入装置送来的状态或数据,并送入PLC的寄存器中。 ★ 按用户程序存储器中存放的先后顺序逐条读取指令,进行编译解释后,按指令规定的任务完成各种运算和操作。 ★ 将存于寄存器中的处理结果送至输出端。 ★ 应各种外部设备的工作请求。 3.4.2.2 存储器 PLC的存储器分为两大部分: 一大部分是系统存储器,用来存放系统管理程序、监控程序及其系统内部数据;二大部分是用户存储器,包括用户程序存储区及工作数据存储区。 3.4.2.3 PLC的基本工作原理 PLC采用的是循环扫描工作方式。对每个程序,CPU从第一条指令开始执行,按指令步序号做周期性的程序循环扫描,如果无跳转指令,则从则从第一条指令开始逐条顺序执行用户程序,直至遇到结束符后又返回第一条指令,如此周而复始不断循环,每一个循环称为一个扫描周期。PLC的扫描全过程如图2.4.2.3-1所示。 图3.4.2.3-1 PLC的扫描全过程 3.4.2.3.1 输入刷新阶段 在输入刷新阶段,CPU扫描全部输入端口,读取其状态并写入输入状态寄存器。完成后关闭输入端口,转入程序执行阶段。 3.4.2.3.2 程序执行阶段 在程序执行阶段,根据用户输入的控制程序,从第一条开始逐条执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器和输出状态寄存器。 3.4.2.3.3 输出刷新阶段 当所有指令执行完毕后,将输出状态寄存器中的内容,依次送到输出锁存电路,并通过一定输出方式输出,驱动外部相应执行元件工作,这才形成PLC的实际输出。显然扫描周期的长短主要取决与程序的长短。扫描周期越长,响应速度越慢。 由于每一个扫描周期只进行一次I/O刷新,即每一个扫描周期PLC只对输入、输出状态寄存器更新一次,故使系统存在输入、输出滞后现象,这在一定程度上降低了系统的响应速度。I/O端口设置见表3.4.2.3.3-1: 表3.4.2.3.3-1 I/O端口设置 Dir Attrib Data 功能 唤醒功能 功能描述 0 0 0 下拉 是 带下拉电阻的输入管脚 0 0 1 上拉 是 带上拉电阻的输入管脚 0 1 0 悬浮 是 悬浮式输入管脚 0 1 1 悬浮 否 悬浮式输入管脚 1 0 反相输出 否 Data数据位反相输出 1 1 同相输出 否 Data数据位同相输出 由此可见,若输入变量在I/O刷新期间状态发生变化,则本次扫描期间输出会相应地发生变化。反之,若在本次刷新之后输入变量才发生变化,则本次扫描输出不变,而要到下一次扫描的I/O刷新期间输出才会发生变化。这对于一般的开关量控制系统来说是完全允许的,不但不会造成不利影响,反而可以增强系统的抗干扰能力。这是因为输入采样仅在输入刷新阶段进行,PLC在一个工作周期的大部分时间里实际上是外设隔离的。而工业现场的干扰常常是脉冲式的、短时的,由于系统响应较慢,往往要几个扫描周期才响应一次,而多次扫描后,因瞬间干扰而引起的误操作将会大大减少,从而提高了系统的抗干扰能力。但是对于控制时间要求较严格、响应速度要求较快的系统,就需要精心编制程序,必要时采用一些特殊功能,以减少因扫描周期造成的响应滞后等不良影响。 3.5 VGA的概述 VGA(Video Graphics Array)是IBM公司在1987年推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用,VGA最早是指分辨率为640*480的一种显示模式。下面就VGA相关的工作原理及时序要求进行简单介绍。 3.5.1 CRT的工作原理 VGA接口技术应用最多的就是CRT显示器,这种显示器的信号接口采用的就是标准的VGA接口。常见的彩色显示器,一般由 CRT (阴极射线管)构成,彩色是由 R、G、B 三原色按不同比例组成。显示过程中,HS和VS的极性可正可负,显示器内可自动转换为正极性逻辑。 3.5.2 VGA工作时序 对于普通的VGA显示器,主要包含5个信号: l R、G、B:三基色信号 l HS: 行同步信号 l VS:场同步信号 图3.5-1 VGA行扫描时序 图3.5-2 VGA场扫描时序 表3.5-1 行扫描时序时间(单位:像素,即输出一个像素Pixel的时间间隔) 行同步头 行图像 行周期 对应位置 Tf Ta Tb Tc Td Te Tg 时间 Pixels 8 96 40 8 640 8 800 表3.5-2 场扫描时序时间(单位:行,即输出一行Line的时间间隔) 场同步头 场图像 场周期 对应位置 Tf Ta Tb Tc Td Te Tg 时间 Lines 2 2 25 8 480 8 525 系统原理图 系统PCB图 4 系统软件设计 4.1软件模块介绍 系统软件总设计模块如图所示,在 pll 中建立PLL锁相环对时钟倍频、分频产生系统各模块所需时钟与系统复位信号,ov7670-data_receive 模块负责OV7670摄像头的初始化与图像数据的采集, 模块配合Nios II负责对ov7670-data_receive 采集的图像数据的缓存,以防止数据时钟不匹配而出现数据紊乱,而 模块主要负责产生读取 中的数据域实现数据的VGA显示产生相应的RGB数据与行、场同步信号,再将采集数据送到Nios II中,在Nios II中用Verilog语言驱动TFT液晶,实现图像数据的显示。 系统总设计框图 4.2 Nios II嵌入式内核程序设计 Nios II嵌入式内核主要任务是将采集到的数据送入SDRAM暂存,然后再根据显示需要将暂存的数据读取出来送到LCD显示,为了确保显示图像与采集图像的一致,在送LCD显示数据时要注意以下几点: (1) 根据实际情况去除行、场消隐数据,再根据显示内容的多少对数据进行裁剪,裁剪到适合LCD显示的大小,从而避免显示时图像的错位以及乱码等情况。 (2) 由于嵌入式内核时钟频率相对于摄像头的大量数据来说速度还是难以做到摄像头采集的每副图像都能完全显示,所以在设计中采用隔场采集处理的方式,这样避免SDRAM中数据过多以至于被填满的情况,也解决了嵌入式内核采集的出现的卡屏的情况。 5 测试结果 电路板成品: 测试结果如图所示: 由上图可以看出,显示的图像清晰,色彩与实际相符,失真较少。测试结果基本达到预期。 6 结束语 采用FPGA设计并实现了一种图像采集系统,大幅减少了电路板的尺寸,节约了成本,同时增加了设计的灵活性和系统的可靠性,充分应用FPGA快速并行处理数据的特性,在产生同步信号的同时送出像素数据。嵌入式内核Nios II的使用,解决了其他系统实时图像显示的体积与速度问题,扩展了应用范围。 (全文完) 参考文献: [1] 潘 松、黄继业: EDA技术实用教程,科学出版社,2003.5,P23-P28 [2] 杨 静: 电子设计自动化,高等教育出版社,2004.7,P32-P36 [3] 张文爱:EDA技术与FPGA应用设计,电子工业出版社,2012.1,P25-P48 [4] 杨立英:电子电路EDA技术与应用,清华大学出版社,2011.1,P43-P86 [5] 徐志军、徐光辉:VGA在CPLD/FPGA的开发与应用,电子工业出版社,2002.4,P12-P16 [6] 黄智伟: FPGA系统设计与实践,电子工业出版社,2005.1,P66-P69 [7] 潘 松、王国栋:VHDL实用教材(修订版),电子科技大学出版社,2001.7,P48-P52 [8] 孟宪元:FPGA嵌入式系统设计,电子工业出版社,2007.10,P56-P64 [9] 褚振勇、齐 亮、田红心:FPGA设计及应用,高等教育出版社,2006.12,P36-P41 附录:源程序 5 `timescale 1ns/1ns module I2C_Controller ( input iCLK, input iRST_N, input I2C_CLK, input I2C_EN, input [23:0] I2C_WDATA, output I2C_SCLK, inout I2C_SDAT, input WR, input GO, output ACK, output reg END, output reg [7:0] I2C_RDATA ); reg I2C_BIT; reg SCLK; reg [5:0] SD_COUNTER; wire I2C_SCLK1 = (GO == 1 && ((SD_COUNTER >= 5 && SD_COUNTER <=12 || SD_COUNTER == 14) || (SD_COUNTER >= 16 && SD_COUNTER <=23 || SD_COUNTER == 25) || (SD_COUNTER >= 27 && SD_COUNTER <=34 || SD_COUNTER == 36))) ? I2C_CLK : SCLK; wire I2C_SCLK2 = (GO == 1 && ((SD_COUNTER >= 5 && SD_COUNTER <=12 || SD_COUNTER == 14) || (SD_COUNTER >= 16 && SD_COUNTER <=23 || SD_COUNTER == 25) || (SD_COUNTER >= 33 && SD_COUNTER <=40 || SD_COUNTER == 42) || (SD_COUNTER >= 44 && SD_COUNTER <=51 || SD_COUNTER == 53))) ? I2C_CLK : SCLK; assign I2C_SCLK = WR ? I2C_SCLK1 : I2C_SCLK2; wire SDO1 = ((SD_COUNTER == 13 || SD_COUNTER == 14)|| (SD_COUNTER == 24 || SD_COUNTER == 25) || (SD_COUNTER == 35 || SD_COUNTER == 36)) ? 1'b0 : 1'b1; wire SDO2 = ((SD_COUNTER == 13 || SD_COUNTER == 14)|| (SD_COUNTER == 24 || SD_COUNTER == 25) || (SD_COUNTER == 41 || SD_COUNTER == 42) || (SD_COUNTER >= 43 && SD_COUNTER <= 51)) ? 1'b0 : 1'b1; wire SDO = WR ? SDO1 : SDO2; assign I2C_SDAT = SDO ? I2C_BIT : 1'bz; reg ACKW1, ACKW2, ACKW3; reg ACKR1, ACKR2, ACKR3; assign ACK = WR ? (ACKW1 | ACKW2 | ACKW3) : (ACKR1 | ACKR2 | ACKR3); always @(posedge iCLK or negedge iRST_N) begin if (!iRST_N) SD_COUNTER <= 6'b0; else if(I2C_EN) begin if (GO == 0 || END == 1) SD_COUNTER <= 6'b0; else if (SD_COUNTER < 6'd63) SD_COUNTER <= SD_COUNTER + 6'd1; end else SD_COUNTER <= SD_COUNTER; end always @(posedge iCLK or negedge iRST_N) begin if(!iRST_N) begin SCLK <= 1; I2C_BIT <= 1; ACKW1 <= 1; ACKW2 <= 1; ACKW3 <= 1; ACKR1 <= 1; ACKR2 <= 1; ACKR3 <= 1; END <= 0; I2C_RDATA <= 8'h0; end else if(I2C_EN) begin if(GO) begin if(WR) begin case(SD_COUNTER) 6'd0 : begin SCLK <= 1; I2C_BIT <= 1; ACKW1 <= 1; ACKW2 <= 1; ACKW3 <= 1; ACKR1 <= 1; ACKR2 <= 1; ACKR3 <= 1; END <= 0; end 6'd1 : begin SCLK <= 1; I2C_BIT <= 1; ACKW1 <= 1; ACKW2 <= 1; ACKW3 <= 1; END <= 0; end 6'd2 : I2C_BIT <= 0; 6'd3 : SCLK <= 0; 6'd4 : I2C_BIT <= I2C_WDATA[23]; 6'd5 : I2C_BIT <= I2C_WDATA[22]; 6'd6 : I2C_BIT <= I2C_WDATA[21]; 6'd7 : I2C_BIT <= I2C_WDATA[20]; 6'd8 : I2C_BIT <= I2C_WDATA[19]; 6'd9 : I2C_BIT <= I2C_WDATA[18]; 6'd10 : I2C_BIT <= I2C_WDATA[17]; 6'd11 : I2C_BIT <= I2C_WDATA[16]; 6'd12 : I2C_BIT <= 0; 6'd13 : ACKW1 <= I2C_SDAT; 6'd14 : I2C_BIT <= 0; 6'd15 : I2C_BIT <= I2C_WDATA[15]; 6'd16 : I2C_BIT <= I2C_WDATA[14]; 6'd17 : I2C_BIT <= I2C_WDATA[13]; 6'd18 : I2C_BIT <= I2C_WDATA[12]; 6'd19 : I2C_BIT <= I2C_WDATA[11]; 6'd20 : I2C_BIT <= I2C_WDATA[10]; 6'd21 : I2C_BIT <= I2C_WDATA[9]; 6'd22 : I2C_BIT <= I2C_WDATA[8]; 6'd23 : I2C_BIT <= 0; 6'd24 : ACKW2 <= I2C_SDAT; 6'd25 : I2C_BIT <= 0; 6'd26 : I2C_BIT <= I2C_WDATA[7]; 6'd27 : I2C_BIT <= I2C_WDATA[6]; 6'd28 : I2C_BIT <= I2C_WDATA[5]; 6'd29 : I2C_BIT <= I2C_WDATA[4]; 6'd30 : I2C_BIT <= I2C_WDATA[3]; 6'd31 : I2C_BIT <= I2C_WDATA[2]; 6'd32 : I2C_BIT <= I2C_WDATA[1]; 6'd33 : I2C_BIT <= I2C_WDATA[0]; 6'd34 : I2C_BIT <= 0; 6'd35 : ACKW3 <= I2C_SDAT; 6'd36 : I2C_BIT <= 0; 6'd37 : begin SCLK <= 0; I2C_BIT <= 0; end 6'd38 : SCLK <= 1; 6'd39 : begin I2C_BIT <= 1; END <= 1; end default : begin I2C_BIT <= 1; SCLK <= 1; end endcase end else begin case(SD_COUNTER) 6'd0 : begin SCLK <= 1; I2C_BIT <= 1; ACKW1 <= 1; ACKW2 <= 1; ACKW3 <= 1; ACKR1 <= 1; ACKR2 <= 1; ACKR3 <= 1; END <= 0; end 6'd1 : begin SCLK <= 1; I2C_BIT <= 1; ACKR1 <= 1; ACKR2 <= 1; ACKR3 <= 1; END <= 0; end 6'd2 : I2C_BIT <= 0; 6'd3 : SCLK <= 0; 6'd4 : I2C_BIT <= I2C_WDATA[23]; 6'd5 : I2C_BIT <= I2C_WDATA[22]; 6'd6 : I2C_BIT <= I2C_WDATA[21]; 6'd7 : I2C_BIT <= I2C_WDATA[20]; 6'd8 : I2C_BIT <= I2C_WDATA[19]; 6'd9 : I2C_BIT <= I2C_WDATA[18]; 6'd10 : I2C_BIT <= I2C_WDATA[17]; 6'd11 : I2C_BIT <= I2C_WDATA[16]; 6'd12 : I2C_BIT <= 0; 6'd13 : ACKR1 <= I2C_SDAT; 6'd14 : I2C_BIT <= 0; 6'd15 : I2C_BIT <= I2C_WDATA[15]; 6'd16 : I2C_BIT <= I2C_WDATA[14]; 6'd17 : I2C_BIT <= I2C_WDATA[13]; 6'd18 : I2C_BIT <= I2C_WDATA[12]; 6'd19 : I2C_BIT <= I2C_WDATA[11]; 6'd20 : I2C_BIT <= I2C_WDATA[10]; 6'd21 : I2C_BIT <= I2C_WDATA[9]; 6'd22 : I2C_BIT <= I2C_WDATA[8]; 6'd23 : I2C_BIT <= 0; 6'd24 : ACKR2 <= I2C_SDAT; 6'd25 : I2C_BIT <= 0; 6'd26 : begin SCLK <= 0; I2C_BIT <= 0; end 6'd27 : SCLK <= 1; 6'd28 : begin I2C_BIT <= 1; end 6'd29 : begin SCLK <= 1; I2C_BIT <= 1; end 6'd30 : I2C_BIT <= 0; 6'd31 : SCLK <= 0; 6'd32 : I2C_BIT <= I2C_WDATA[23]; 6'd33 : I2C_BIT <= I2C_WDATA[22]; 6'd34 : I2C_BIT <= I2C_WDATA[21]; 6'd35 : I2C_BIT <= I2C_WDATA[20]; 6'd36 : I2C_BIT <= I2C_WDATA[19];展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




基于fpga的图像采集系统设计本科论文.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2175754.html