当前位置:文档之家› 基于FPGA的图像采集系统设计毕业论文

基于FPGA的图像采集系统设计毕业论文

基于FPGA的图像采集系统设计毕业论文
基于FPGA的图像采集系统设计毕业论文

基于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主要内容

◆根据设计任务,制定实现方案

◆应用VHDL完成对系统中各个功能模块的描述

◆完成顶层设计文件,并调试仿真系统

◆下载程序代码到FPGA,在实验平台上验证VGA是否正常显示

撰写设计报告书

1.3 研究条件和可能存在的问题

1.3.1研究条件

会使用EDA开发工具软件Quartus II ,能熟练使用VHDL语言编写时序电路,需要有相应的实验开发平台。

1.3.2可能存在的问题:

◆VGA时序控制不正确,无法正常显示相应的图形

◆VGA硬件接口电路PCB设计不能实现其功能

◆FPGA内部ROM存储空间太小,不能存储大容量的图片数据

1.4 拟解决的主要问题和预期的结果

1.4.1拟解决的主要问题

◆VGA时序控制问题

◆PROTEL绘制VGA电阻分压网络电路设计问题

◆调试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彩色液晶显示屏上显示。

图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端口设置

由此可见,若输入变量在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个信号:

●R、G、B:三基色信号

●HS: 行同步信号

●VS:场同步信号

图3.5-1 VGA行扫描时序

图3.5-2 VGA场扫描时序

表3.5-1 行扫描时序时间(单位:像素,即输出一个像素Pixel的时间间隔)

表3.5-2 场扫描时序时间(单位:行,即输出一行Line的时间间隔)

系统原理图

系统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

附录:源程序

`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]; 6'd37 : I2C_BIT<= I2C_WDATA[18]; 6'd38 : I2C_BIT<= I2C_WDATA[17]; 6'd39 : I2C_BIT <= 1'b1; 6'd40 : I2C_BIT <= 0; 6'd41 : ACKR3 <= I2C_SDAT; 6'd42 : I2C_BIT <= 0; 6'd43 : I2C_BIT <= 0;

6'd44 : I2C_RDATA[7] <= I2C_SDAT; 6'd45 : I2C_RDATA[6] <= I2C_SDAT; 6'd46 : I2C_RDATA[5] <= I2C_SDAT; 6'd47 : I2C_RDATA[4] <= I2C_SDAT; 6'd48 : I2C_RDATA[3] <= I2C_SDAT; 6'd49 : I2C_RDATA[2] <= I2C_SDAT; 6'd50 : I2C_RDATA[1] <= I2C_SDAT; 6'd51 : I2C_RDATA[0] <= I2C_SDAT; 6'd52 : I2C_BIT <= 1; 6'd53 : I2C_BIT <= 0; 6'd54 : begin SCLK<= 0; I2C_BIT<= 0; end

6'd55 : SCLK <= 1;

6'd56 : begin I2C_BIT<= 1; END <= 1; end

endcase

end

end

else

begin

SCLK <= 1;

I2C_BIT <= 1;

ACKW1<= 1; ACKW2<= 1; ACKW3<= 1;

ACKR1<= 1; ACKR2<= 1; ACKR3<= 1;

END <= 0; I2C_RDATA <= I2C_RDATA;

end

end

end

endmodule

`timescale 1ns/1ns

module I2C_AV_Config

(

input iCLK,

input iRST_N,

output I2C_SCLK,

inout I2C_SDAT,

output reg Config_Done); parameter LUT_SIZE = 168;

parameter CLK_Freq = 25_000000; parameter I2C_Freq = 10_000;

reg [15:0] mI2C_CLK_DIV;

reg mI2C_CTRL_CLK; always@(posedge iCLK or negedge iRST_N) begin

if(!iRST_N)

begin

mI2C_CLK_DIV <= 0;

mI2C_CTRL_CLK <= 0;

end

else

begin

if( mI2C_CLK_DIV <

(CLK_Freq/I2C_Freq)/2)

mI2C_CLK_DIV <= mI2C_CLK_DIV+ 1'd1;

else

begin

mI2C_CLK_DIV <= 0;

mI2C_CTRL_CLK <= ~mI2C_CTRL_CLK;

end

end

end

reg i2c_en_r0, i2c_en_r1;

always@(posedge iCLK or negedge iRST_N) begin

if(!iRST_N)

begin

i2c_en_r0 <= 0;

i2c_en_r1 <= 0;

end

else

begin

i2c_en_r0 <= mI2C_CTRL_CLK;

i2c_en_r1 <= i2c_en_r0;

end

end

wire i2c_negclk = (i2c_en_r1 &

~i2c_en_r0) ? 1'b1 : 1'b0;

wire mI2C_END;

wire mI2C_ACK;

reg [7:0] LUT_INDEX;

reg [1:0] mSetup_ST;

reg mI2C_GO;

reg mI2C_WR;

reg [15:0] LUT_DATA;

always@(posedge iCLK or negedge iRST_N) begin

if(!iRST_N)

begin

Config_Done <= 0; LUT_INDEX <= 0; mSetup_ST<=0; mI2C_GO<= 0; mI2C_WR<= 0;

end

else if(i2c_negclk)

begin

if(LUT_INDEX < LUT_SIZE)

begin

Config_Done <= 0;

case(mSetup_ST)

0: begin

if(~mI2C_END)

mSetup_ST <= 1;

else

mSetup_ST <= 0;

mI2C_GO <= 1;

if(LUT_INDEX < 8'd2)

mI2C_WR <= 0;

else

mI2C_WR <= 1;

end

1: begin

if(mI2C_END)

begin

mI2C_WR <= 0;

mI2C_GO <= 0;

if(~mI2C_ACK)

mSetup_ST <= 2;

else

mSetup_ST <= 0;

end end

2: begin

LUT_INDEX <= LUT_INDEX+ 8'd1;

mSetup_ST <= 0; mI2C_GO <= 0; mI2C_WR <= 0;

end

endcase

end

else

begin

Config_Done <= 1'b1;

LUT_INDEX <= LUT_INDEX;

mSetup_ST <= 0;

mI2C_GO <= 0;

mI2C_WR <= 0;

end

end

end

I2C_Controller u_I2C_Controller

(

.iCLK (iCLK),

.iRST_N (iRST_N),

.I2C_CLK (mI2C_CTRL_CLK),

.I2C_EN (i2c_negclk),

.I2C_WDATA ({8'h42, LUT_DATA}),

.I2C_SCLK (I2C_SCLK),

.I2C_SDAT (I2C_SDAT),

.GO (mI2C_GO),

.WR (mI2C_WR),

.ACK (mI2C_ACK),

.END (mI2C_END),

.I2C_RDATA (I2C_RDATA)

);

parameter Read_DATA = 0; parameter SET_OV7670 = 2; always@(*)

begin

case(LUT_INDEX)

SET_OV7670 + 0 : LUT_DATA =

16'h3a04;

SET_OV7670 + 1 : LUT_DATA =

16'h40d0;

SET_OV7670 + 2 : LUT_DATA =

16'h1204;

SET_OV7670 + 3 : LUT_DATA =

16'h32b6;

SET_OV7670 + 5 : LUT_DATA = 16'h1801;

SET_OV7670 + 6 : LUT_DATA = 16'h1902;

SET_OV7670 + 7 : LUT_DATA = 16'h1a7a;

SET_OV7670 + 8 : LUT_DATA = 16'h030a;

SET_OV7670 + 9 : LUT_DATA = 16'h0c00;

SET_OV7670 + 10 : LUT_DATA = 16'h3e00;

SET_OV7670 + 11 : LUT_DATA = 16'h7000;

SET_OV7670 + 12 : LUT_DATA = 16'h7100;

SET_OV7670 + 13 : LUT_DATA = 16'h7211;

SET_OV7670 + 14 : LUT_DATA = 16'h7300;

SET_OV7670 + 15 : LUT_DATA = 16'ha202;

SET_OV7670 + 16 : LUT_DATA = 16'h1180;

SET_OV7670 + 17 : LUT_DATA = 16'h7a20;

SET_OV7670 + 18 : LUT_DATA = 16'h7b1c;

SET_OV7670 + 19 : LUT_DATA = 16'h7c28;

SET_OV7670 + 20 : LUT_DATA = 16'h7d3c;

SET_OV7670 + 21 : LUT_DATA = 16'h7e55;

SET_OV7670 + 22 : LUT_DATA = 16'h7f68;

SET_OV7670 + 23 : LUT_DATA = 16'h8076;

SET_OV7670 + 24 : LUT_DATA = 16'h8180;

SET_OV7670 + 25 : LUT_DATA = 16'h8288;

SET_OV7670 + 26 : LUT_DATA = 16'h838f;

SET_OV7670 + 27 : LUT_DATA = 16'h85a3;

SET_OV7670 + 29 : LUT_DATA = 16'h86af;

SET_OV7670 + 30 : LUT_DATA = 16'h87c4;

SET_OV7670 + 31 : LUT_DATA = 16'h88d7;

SET_OV7670 + 32 : LUT_DATA = 16'h89e8;

SET_OV7670 + 33 : LUT_DATA = 16'h13e0;

SET_OV7670 + 34 : LUT_DATA = 16'h0000;

SET_OV7670 + 35 : LUT_DATA = 16'h1000;

SET_OV7670 + 36 : LUT_DATA = 16'h0d00;

SET_OV7670 + 37 : LUT_DATA = 16'h1428;

SET_OV7670 + 38 : LUT_DATA = 16'ha505;

SET_OV7670 + 39 : LUT_DATA = 16'hab07;

SET_OV7670 + 40 : LUT_DATA = 16'h2475;

SET_OV7670 + 41 : LUT_DATA = 16'h2563;

SET_OV7670 + 42 : LUT_DATA = 16'h26a5;

SET_OV7670 + 43 : LUT_DATA = 16'h9f78;

SET_OV7670 + 44 : LUT_DATA = 16'ha068;

SET_OV7670 + 45 : LUT_DATA = 16'ha103;

SET_OV7670 + 46 : LUT_DATA = 16'ha6df;

SET_OV7670 + 47 : LUT_DATA = 16'ha7df;

SET_OV7670 + 48 : LUT_DATA = 16'ha8f0;

SET_OV7670 + 49 : LUT_DATA = 16'ha990;

SET_OV7670 + 50 : LUT_DATA = 16'haa94;

SET_OV7670 + 52 : LUT_DATA = 16'h0e61;

SET_OV7670 + 53 : LUT_DATA = 16'h0f4b;

SET_OV7670 + 54 : LUT_DATA = 16'h1602;

SET_OV7670 + 55 : LUT_DATA = 16'h1e30;

SET_OV7670 + 56 : LUT_DATA = 16'h2102;

SET_OV7670 + 57 : LUT_DATA = 16'h2291;

SET_OV7670 + 58 : LUT_DATA = 16'h2907;

SET_OV7670 + 59 : LUT_DATA = 16'h330b;

SET_OV7670 + 60 : LUT_DATA = 16'h350b;

SET_OV7670 + 61 : LUT_DATA = 16'h371d;

SET_OV7670 + 62 : LUT_DATA = 16'h3871;

SET_OV7670 + 63 : LUT_DATA = 16'h392a;

SET_OV7670 + 64 : LUT_DATA = 16'h3c78;

SET_OV7670 + 65 : LUT_DATA = 16'h4d40;

SET_OV7670 + 66 : LUT_DATA = 16'h4e20;

SET_OV7670 + 67 : LUT_DATA = 16'h6900;

SET_OV7670 + 68 : LUT_DATA = 16'h6b00;

SET_OV7670 + 69 : LUT_DATA = 16'h7419;

SET_OV7670 + 70 : LUT_DATA = 16'h8d4f;

SET_OV7670 + 71 : LUT_DATA = 16'h8e00;

SET_OV7670 + 72 : LUT_DATA = 16'h8f00;

SET_OV7670 + 73 : LUT_DATA = 16'h9000;

SET_OV7670 + 74 : LUT_DATA = 16'h9200;

SET_OV7670 + 76 : LUT_DATA = 16'h9600;

SET_OV7670 + 77 : LUT_DATA = 16'h9a80;

SET_OV7670 + 78 : LUT_DATA = 16'hb084;

SET_OV7670 + 79 : LUT_DATA = 16'hb10c;

SET_OV7670 + 80 : LUT_DATA = 16'hb20e;

SET_OV7670 + 81 : LUT_DATA = 16'hb382;

SET_OV7670 + 82 : LUT_DATA = 16'hb80a;

SET_OV7670 + 83 : LUT_DATA = 16'h4314;

SET_OV7670 + 84 : LUT_DATA = 16'h44f0;

SET_OV7670 + 85 : LUT_DATA = 16'h4534;

SET_OV7670 + 86 : LUT_DATA = 16'h4658;

SET_OV7670 + 87 : LUT_DATA = 16'h4728;

SET_OV7670 + 88 : LUT_DATA = 16'h483a;

SET_OV7670 + 89 : LUT_DATA = 16'h5988;

SET_OV7670 + 90 : LUT_DATA = 16'h5a88;

SET_OV7670 + 91 : LUT_DATA = 16'h5b44;

SET_OV7670 + 92 : LUT_DATA = 16'h5c67;

SET_OV7670 + 93 : LUT_DATA = 16'h5d49;

SET_OV7670 + 94 : LUT_DATA = 16'h5e0e;

SET_OV7670 + 95 : LUT_DATA = 16'h6404;

SET_OV7670 + 96 : LUT_DATA = 16'h6520;

SET_OV7670 + 97 : LUT_DATA =

16'h6605;

SET_OV7670 + 98 : LUT_DATA = 16'h9404;

SET_OV7670 + 99 : LUT_DATA = 16'h9508;

SET_OV7670 + 100 : LUT_DATA = 16'h6c0a;

SET_OV7670 + 101 : LUT_DATA = 16'h6d55;

SET_OV7670 + 102 : LUT_DATA = 16'h6e11;

SET_OV7670 + 103 : LUT_DATA = 16'h6f9f;

SET_OV7670 + 104 : LUT_DATA = 16'h6a40;

SET_OV7670 + 105 : LUT_DATA = 16'h0140;

SET_OV7670 + 106 : LUT_DATA = 16'h0240;

SET_OV7670 + 107 : LUT_DATA = 16'h13e7;

SET_OV7670 + 108 : LUT_DATA = 16'h1500;

SET_OV7670 + 109 : LUT_DATA = 16'h4f80;

SET_OV7670 + 110 : LUT_DATA = 16'h5080;

SET_OV7670 + 111 : LUT_DATA = 16'h5100;

SET_OV7670 + 112 : LUT_DATA = 16'h5222;

SET_OV7670 + 113 : LUT_DATA = 16'h535e;

SET_OV7670 + 114 : LUT_DATA = 16'h5480;

SET_OV7670 + 115 : LUT_DATA = 16'h589e;

SET_OV7670 + 116 : LUT_DATA = 16'h4108;

SET_OV7670 + 117 : LUT_DATA = 16'h3f00;

SET_OV7670 + 118 : LUT_DATA = 16'h7505;

SET_OV7670 + 119 : LUT_DATA = 16'h76e1;

SET_OV7670 + 120 : LUT_DATA = 16'h4c00;

SET_OV7670 + 121 : LUT_DATA = 16'h7701;

SET_OV7670 + 122 : LUT_DATA = 16'h3dc2;

SET_OV7670 + 123 : LUT_DATA = 16'h4b09;

SET_OV7670 + 124 : LUT_DATA = 16'hc960;

SET_OV7670 + 125 : LUT_DATA = 16'h4138;

SET_OV7670 + 126 : LUT_DATA = 16'h5640;

SET_OV7670 + 127 : LUT_DATA = 16'h3411;

SET_OV7670 + 128 : LUT_DATA = 16'h3b02;

SET_OV7670 + 129 : LUT_DATA = 16'ha489;

SET_OV7670 + 130 : LUT_DATA = 16'h9600;

SET_OV7670 + 131 : LUT_DATA = 16'h9730;

SET_OV7670 + 132 : LUT_DATA = 16'h9820;

SET_OV7670 + 133 : LUT_DATA = 16'h9930;

SET_OV7670 + 134 : LUT_DATA = 16'h9a84;

SET_OV7670 + 135 : LUT_DATA = 16'h9b29;

SET_OV7670 + 136 : LUT_DATA = 16'h9c03;

SET_OV7670 + 137 : LUT_DATA = 16'h9d4c;

SET_OV7670 + 138 : LUT_DATA = 16'h9e3f;

SET_OV7670 + 139 : LUT_DATA = 16'h7804;

SET_OV7670 + 140 : LUT_DATA = 16'h7901;

SET_OV7670 + 141 : LUT_DATA = 16'hc8f0;

SET_OV7670 + 142 : LUT_DATA = 16'h790f;

SET_OV7670 + 143 : LUT_DATA =

毕业论文管理系统设计研究.doc

毕业论文管理系统设计研究 2020年4月

毕业论文管理系统设计研究本文关键词:管理系统,毕业论文,研究,设计 毕业论文管理系统设计研究本文简介:毕业论文管理工作现状当前,大多数的高校的毕业论文管理状况如下。(1)学生无法及时准确选题选题初期的大多数学生不能在前期及时、清晰且全面的了解导师的课题研究方向,也不能准确的选择合适的题目,导致了学生在选题时仅考虑到个人兴趣,盲目的进行选题,未根据自己个人能力做出正确的选择,一些学生可能会错失选题的时 毕业论文管理系统设计研究本文内容: 毕业论文管理工作现状 当前,大多数的高校的毕业论文管理状况如下。(1)学生无法及时准确选题选题初期的大多数学生不能在前期及时、清晰且全面的了解导师的课题研究方向,也不能准确的选择合适的题目,导致了学生在选题时仅考虑到个人兴趣,盲目的进行选题,未根据自己个人能力做出正确的选择,一些学生可能会错失选题的时间和机会。(2)论文各阶段需要提交大量文件,师生无法及时交流首先,学生必须先提交论

文开题报告,指导教师同意开题后,方可继续完成论文。然后,需要在一段时间内将完成论文的阶段性成果提交给导师,方便导师及时了解学生论文完成的进度,以便导师督促学生及时完成论文。如今,很多大学的论文指导方式仍旧以纸质文件进行师生之间的交流,在这种情况下,一会导致资源浪费,也会由于时间和空间限制,导致沟通不畅。(3)统计论文选题工作复杂在毕业论文管理工作中,教师的工作量较大,其中,有很多重复的工作量,处于管理工作的各级人员需要统计学生选题状况、毕业论文完成状态以及答辩成绩等信息,在这样大量的工作状态下,就会产生失误。而毕业论文对于学生来也十分重要,关系能否毕业问题,责任巨大,不容有失。毕业论文管理系统设计意义毕业论文管理系统的最大优势就是学生可以远程在陷上选题,将复杂的工作流程简单化,也会减轻毕业论文指导教师工作中不必要的压力,具有很强的现实意义,具体可以表现为以下功能。(1)缩短毕业论文题目审核时间审核毕业论文题目是为了防止出现选题过大、不切实际或与专业特点不相关的现象。各教学单位在前期的主要任务就是审核已提交的论文题目,若论文题目不合条例,审核不通过,需要单位给指导教师反馈是否通过的信息,之后审核过的信息,需要由教师通知给学生,学生需要结合实际情况以及自身的兴趣选择毕设题目,督促学生积极与指导教师沟通。通过系统可以在线随时随地审核,

自动排课系统设计与实现论文

摘要:制定一个学校的排课计划是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好。在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘,即便你的输入数据量并不是实际意义上的大批量。 课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动课程编排系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 本系统经过测试,运行稳定,可投入使用。 关键字:排课管理,VB,数据库

Abstract:Formulates a school platoon class plan is an item consumes extremely when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a difficult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity is not in the practical significance mass. The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this management way has many shortcomings, For example: The efficiency low, the secrecy is bad, Moreover the time one is long, Will produce the massive documents and the data, This regarding the search, the renewal and the maintenance has all brought many difficulties. Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable function had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role. This system after the test, the movement is stable, may put into the use. Key words: Curriculum management, VB, database

图像采集通用控制系统的设计与实现

图像采集通用控制系统的设计与实现 张超,古乐野,徐晓,乔忠慧 (中国科学院成都计算机应用研究所,四川 成都610041) 摘要:本文介绍了一种基于ARM的实时图像采集通用控制系统的设计与实现。在设计中主要采用了LPC2132微控制器芯片和四相步进电机正弦波驱动器STK672—080芯片。文中主要介绍了该控制系统的工作原理、系统组成、硬件设计以及软件设计中的关键问题。 关键词:ARM;图像采集;人机交互;步进电机 中图分类号:TP368.1文献标志码:B Design and Implementation of Universal Control System in Image Collection ZHANG Chao, GU Le-ye, XU Xiao, QIAO Zhong-hui (Chengdu Institute of Computer Application, Chinese Academy of Sciences, Chengdu, Sichuan 610041, China) Abstract:This paper introduced the design and implementation of real-time image collection’s control system based on ARM. LPC2132 microcontroller and the sine wave stepping motor driver were adopted in the system. This paper also described the construct of the system, design of hardware, several critical techniques in the development of software of the control system. Key words: ARM; image collection; human-computer interaction; stepping motor 0 引言 OCR(Optical Character Recognition)阅读机是以实时图像采集和图像处理为核心技术的, 主要由送纸机构、扫描主体和接纸机构三部分组成。送纸机构主要功能是搓动纸张,并将纸张传送到扫描主体中;扫描主体的主要功能是采集图像,并将纸张传送到接纸机构中;接纸机构主要功能是装载已经扫描过的纸张。在OCR阅读机中,控制系统的性能直接决定图像采集的速度。本文介绍了一种基于ARM的图像采集通用控制系统的设计方案,这种方案比较稳定、可靠,还大大提高了图像采集的速度。 1 系统结构设计和工作原理 图1 OCR阅读机的控制系统部分组成框图 本控制系统主要有ARM主控模块、电源模块、信号检测模块、电机驱动模块和显示驱动及按键模块五个部分;ARM控制模块是主控模块;电源模块提供系统中各芯片所需的电

(完整版)个人博客系统毕业设计论文

编号: 审定成绩:先锋软件学院2011届 毕业设计(论文) 题目:个人博客系统 分院:软件工程分院 学生姓名:________ 印聪___________ _ __ 专业:软件设计与开发 班级:0805 学号: 指导教师:魏伟华

填表时间:2011年6月

先锋软件学院 学生毕业设计(论文)工作自查表 学生姓名印聪专业软件设计与开发学号 导师姓名魏伟华职称导师每周指导次数每次:小时题目名称个人博客系统 作息时间上午8时~ 12 时下午 1时~ 5 时 晚间 6时~ 9 时 个人精力实际投入日均工 作小时 10 周均工 作小时 缺席天数出勤率% 毕业设计(论文)工作进度已完成主要内容% 待完成主要内容% 自己写好自己写好

存在问题 自己写好 工作措施 指导教师(签字):日期:年月日

(上面要不要空行啊?)摘要 随着Internet的广泛应用,动态网页技术也应运而生。本文介绍了应用ASP动态网页技术开发博客系统的设计与实现。 博客系统主要为用户提供发表文章、浏览文章等功能,用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流。博客系统主要实现了文章管理的数字化、信息化、智能化,是打破传统报刊、杂志发表文章方式的新尝试。 本系统的开发设计实现采用ASP技术,系统后台使用Microsoft的Access 2000数据库,并通过使用ODBC技术访问。 本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。最后,对系统作以客观、全面的评价,并对进一步改进提出了建议。 关键字:博客;ASP ;Access 2000 ;ODBC

无线图像采集系统的设计与实现

0引言 视频监控目前已得到广泛的应用,一般采用如下方案:使用具有较高成像质量的CCD(charge-coupled device)传感器摄像头,通过S-VIDEO端子实时传送数据,这种方案需要摄像头与采集端设备连线,同时监控中心需要有较大的存储空间来存储图像与视频片段,还需要电视墙来对不同地点的目标进行实时监控,此方案适合于公共场所的安防和监控,实时性高,但能耗大,成本昂贵。对于需要远程监控的生产环境,例如农业、种植业、畜牧业以及工业厂房的监控,包括动物的异常举动,种植现场环境的突然变化,厂房可疑人员的入侵监控等,上述方案难以满足图像与视频中信息智能处理的需要,而基于嵌入式ARM-Linux的无线图像采集系统成为合适的选择。在802.11无线协议应用经已成熟的前提下,研究的重点在于传感器节点所采用的硬件平台和数据流格式,当前的主流方案包括:①ARM+DSP(digital signal processing)[1]:由ARM 架构CPU(central processing unit)担任传感器节点的总控制角色,利用DSP信号处理芯片的高速处理能力对图像数据进行压缩和相关预处理,该方案适合需要较多数值运算的JPEG (joint photographic experts group)数据流。②FPGA(field-progra-mmable gate array)+视频编解码芯片[2]:利用FPGA的并行处理能力同时传送和处理多组图像与视频数据,由于FPGA的硬件可重写性,该方案适合于在实验阶段进行设计上的查错和优化。③ARM:使用高主频的ARM架构CPU,同时担任中央控制和图像处理的角色。ARM为通用精简指令集架构,具有足够的流水线来应对复杂的逻辑运算,适用于处理逻辑运算量较大的压缩算法,例如PNG格式所采用的Deflate压缩算法,同时,ARM-Linux架构具有成熟的工作基础,固采用方案3设 收稿日期:2010-01-10;修订日期:2010-03-09。

高校自动排课系统毕业设计

自动排课系统 摘要:制定一个学校的排课计划是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好。在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘,即便你的输入数据量并不是实际意义上的大批量。 课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动课程编排系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 本系统经过测试,运行稳定,可投入使用。 关键字:排课管理,VB,数据库

Abstract:Formulates a school platoon class plan is an item consumes extremely when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a difficult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity is not in the practical significance mass. The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this management way has many shortcomings, For example: The efficiency low, the secrecy is bad, Moreover the time one is long, Will produce the massive documents and the data, This regarding the search, the renewal and the maintenance has all brought many difficulties. Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable function had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role. This system after the test, the movement is stable, may put into the use. Key words: Curriculum management, VB, database

(完整版)个人博客系统毕业设计论文40121149

人生最大的幸福,是发现自己爱的人正好也爱着自己。 摘要 随着Internet的广泛应用 动态网页技术也应运而生 本文介绍了应用ASP动态网页技术开发博客系统的设计与实现 博客系统主要为用户提供发表文章、浏览文章等功能 用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流 博客系统主要实现了文章管理的数字化、信息化、智能化 是打破传统报刊、杂志发表文章方式的新尝试 本系统的开发设计实现采用ASP技术 系统后台使用SQL Server 2008数据库 并通过使用ODBC技术访问 本文对博客系统进行整体分析 明确了系统的可行性和用户需求;根据模块化原理 规划设计了系统功能模块;在数据库设计部分 详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想 提出系统的程序设计思路 对前台与后台功能的程序实现进行了详细论述;系统测试部分 具体分析测试过程中出现的主要问题 并提出了解决方案

实现系统功能 最后 对系统作以客观、全面的评价 并对进一步改进提出了建议 关键字:博客ASP SQL Server 2008 ODBC 目录 1 系统概述 3 1.1项目背景3 1.2系统开发的意义 4 1.2.1发布想法 4 1.2.2博客的用途4 1.3 系统开发的目标 5 1.3.1任何拥有博客的人都可以做到5 1.3.2 访问博客系统的人 可以做到 5 1.4系统概述5 1.5 系统的开发方法 6 2 系统分析8 2.1 可行性分析8 2.2 需求分析8 2.2.1 管理员登录8 2.2.2 文章管理9

2.2.3 系统信息管理9 2.3 系统的主要技术分析9 2.3.1 ASP技术概论9 2.3.2 ASP工作原理10 2.3.3 ODBC技术10 2.3.4 硬件设备及操作系统11 2.3.5 系统开发平台11 2.4 数据分析11 2.5 数据流图12 3 数据库设计13 3.1 数据库技术概述13 3.2 数据库选择13 3.3数据库逻辑结构设计13 3.4 数据库的完整性和安全性15 3. 4.1 数据库的完整性约束15 3.4.2 数据库的安全性16 4 系统设计17 4.1系统总体设计17 4.2公用模块的编写17 4.2.1数据库连接文件17 4.2.2用户登录和注销17 4.3客户界面的设计与实现17 4.3.1 界面头设计17 4.3.2 界面尾设计18 4.3.3首页设计与实现18

LabVIEW应用于实时图像采集及处理系统

LabVIEW应用于实时图像采集及处理系统 2008-7-29 9:35:00于子江娄洪伟于晓闫丰隋永新杨怀江供稿 摘要:本文在LabVIEW和NI-IMAQ Vision软件平台下,利用通用图像采集卡开发一种图像实时采集处理虚拟仪器系统。通过调用动态链接库驱动通用图像采集卡完成图像采集,采集图像的帧速率达到25帧每秒。利用NI-IMAQ Vision视频处理模块,进行图像处理,以完成光电探测器的标定。该系统具有灵活性强、可靠性高、性价比高等优点。 主题词:虚拟仪器;图像处理;LabVIEW;动态链接库 1.引言 美国国家仪器(NI)公司的虚拟仪器开发平台LabVIEW,使用图形化编程语言编程,界面友好,简单易学,配套的图像处理软件包能提供丰富的图像处理与分析算法函数,极大地方便了用户,使构建图像处理与分析系统容易、灵活、程序移植性好,大大缩短了系统开发周期。在推出应用软件的基础上,NI公司又推出了图像采集卡,对于NI公司的图像采集卡,可以直接使用采集卡自带的驱动以及LabVIEW中的DAQ库直接对端口进行操作。 但由于NI公司的图像采集卡成本很高,大多用户难以接受,因此硬件平台往往采用通用图像采集卡,软件方面的图像处理程序仍采用LabVIEW以及视频处理模块编写。本文正是基于这样的目的,提出了一种在LabVIEW环境下驱动通用图像采集卡的方案,在TDS642EVM高速DSP视频处理板卡的平台下,完成实时图像采集及处理。 在图象处理的工作中主要完成对CCD光电探测器的辐射标定。由于探测器在自然环境下获取图像时,会受到来自大气干扰,自身暗电流,热噪声等影响,使CCD像元所输出信号的数值量化值与实际探测目标辐射亮度之间存在差异,所以要得到目标的精确图像就必须对探测器进行辐射标定。 2.图像采集卡简介 闻亭公司TDS642EVM(简称642)多路实时视频处理板卡是基于DSP TMS320DM642芯片设计的评估开发板。计算能力可达到4Gips,板上的视频接口和视频编解码芯片Philips SAA7115H相连,实现实时多路视频图像采集功能,支持多种PAL,NTSC和SECAM视频标准。本系统通过642的PCI接口与主机进行数据交换。PCI支持“即插即用(PnP)”自动配置功能,使图像采集板的配置变得更加方便,其一切资源需求的设置工作在系统初启时交由BIOS处理,无需用户进行繁琐的开关与跳线操作。PCI接口的海量数据吞吐,为其完成实时图像采集和处理提供保证。 3.系统组成及工作原理

基于遗传算法的自动排课系统毕业设计

摘要 随着科学技术和社会信息技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它在人类社会的各个领域发挥着越来越重要的作用,给人们的生活带来了极大的便利,成为推动社会发展的首要技术动力。排课是学校教学管理中十分重要、又相当复杂的工作之一。解决好教学工作中的排课问题对整个教学计划的进行,有着十分重要的意义。首先对排课的已有算法作了相关的调查研究,决定采用遗传算法。通过设计实现基于遗传算法的自动排课系统,研究了遗传算法在排课系统中的应用。 关键词:遗传算法、自动排课、Java。

Abstract Along with science technical and community information technical increases continuously, calculator science is gradually mature, its mighty function has behaved deep cognition, and it has entered the human social each realm erupts to flick the more and more important function, bringing our life biggest of convenience. Curriculum arrangement is an important and complicated working in school,so solving the problem is of great importance for teaching programming.Investigated and studied the algorithm existed, determine that adoptgenetic algorithm. ThroughDesign Implementation theAuto CourseArrangementManagement System Base onGenetic Algorithm, researched the application of genetic algorithmin theCourseArrangementManagement System. Keywords: Genetic Algorithm Auto Course Arrangement ManagementJava.

图像采集系统设计

DSP实习报告 题目:图像采集系统的设计 班级:xxx 姓名:xxx 学号:xxx 指导老师:xxxx

目录 一.实习题目 (3) 二.实习背景知识 (3) 三.实习内容 (5) 四.实习程序功能与结构说明 (8) 六.实习心得 (19)

一、实习题目 图像采集系统的设计 二、实习目的: 1、熟练掌握数字信号处理的典型设计方法与技术手段; 2、熟悉D6437视频输入,输出端的操作及编程。; 3、掌握常用电子仪器设备的使用方法; 4、熟悉锐化变换算法。 三、实习背景知识 1、计算机 2、CCS3.3.软件 3、DSP仿真器 4、EL_DM6437平台 EL-DM6437EVM是低成本,高度集成的高性能视频信号处理开发平台,可以开发仿真达芬奇系列DSP应用程序,同时也可以将该产品集成到用户的具体应用系统中。方便灵活的接口为用户提供良好的开放平台。采用该系列板卡进行产品开发或系统集成可以大大减少用户的产品开发时间。板卡结构框图如图所示:

板卡硬件资源: TMS320DM6437 DSP ,可工作在400/600 MHz; 2 路视频输入,包括一个复合视频输入及一个S端子视频输入; 保留了视频输入接口,可以方便与CMOS影像传感器连接; 3 路视频输出,包括2路复合视频,一路S端子输出; 128MByte 的DDR2 SDRAM存储器,256MBit的Nor Flash存储器;用户可选的NAND Flash接口; 可选的256K字节的I2C E2PROM; 1个10M/100Mbps自适应以太网接口; 1 路立体声音频输入、1路麦克风输入,1路立体声音频输出; USB2.0高速接口,方便与PC连接; 1个CAN总线、1个UART接口、实时时钟(带256Byte的电池保持RAM);4个DIP开关,4个状态指示LED; 可配置的BOOT模式; 10层板制作工艺,稳定可靠; 标准外部信号扩展接口; JTAG仿真器接口; 单电源+5V供电; 板卡软件资源:

自动排课系统的设计与实现毕业论文_设计说明

目录 摘要 (1) 第1章绪论 (1) 1.1系统开发背景 (1) 1.2国内外的研究现状 (1) 1.3系统解决的主要问题 (3) 1.4本文的主要工作 (3) 1.5本文的组织结构 (4) 第2章需求分析 (5) 2.1系统概述 (5) 2.1.1总体业务描述 (5) 2.1.2系统的目标和解决的问题 (6) 2.1.3系统的开发模式 (7) 2.2系统需求问题描述 (10) 2.2.1功能性需求 (10) 2.3.2系统非功能性需求 (13) 第3章系统构架设计 (15) 3.1构架的目标和约束 (15) 3.2构架设计 (16) 3.2.1系统总体架构 (16) 3.2.2系统功能构架 (17) 3.2.3系统技术构架 (19) 3.2.4系统安全构架 (20) 第4章系统详细设计 (22) 4.1 系统建模 (22) 4.2 系统数据库设计 (26) 4.2.1生成数据库表 (26) 4.2.2数据分析 (36) 4.2.3数据库管理技术 (37) 第5章计算机排课系统的实现 (38) 5.1系统总体实现 (38) 5.1.1数据录入模块的设计与实现 (43) 5.1.2报表模块的设计与实现 (48) 5.1.3用户管理模块的设计与实现 (52)

5.2教学计划的关键实现 (55) 5.2.1算法描述 (55) 5.2.2教学计划算法过程 (56) 5.3排课算法的关键实现 (58) 第6章总结与展望 (74) 参考文献 (75) 致谢 (77)

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

网上信息管理系统设计毕业论文

网上信息管理系统设计毕业论文1.1 项目开发背景 近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校的教学管理都受到了极大的挑战。Internet技术持续迅猛的发展,也给传统的办学提出了新的模式。通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。作为新型的办学模式,它们具有对于教育、教学过程来说极为宝贵的特性,可以为新型办学模式的建构提供理想的环境。在此开发的大学信息学院管理信息系统,旨在探索一种以互联网为基础的办学模式。通过这种新的模式,为信息学院营造一种新的办学环境,使管理突破时空限制,扩大教学规模,提高工作效率和办学水平,使学校管理者、教师和学生可以在任何时候、任何地点通过网络进行学习与交流。基于这些优点,信息学院委托计算机系统研究所以及计算机软件与理论研究所共同开发“大学信息学院管理信息系统”。 1.2 项目开发的目的 为了适应信息时代发展,提高考试工作效率和办学水平,实现现代化大学的运行机制和高水平的管理,体现大学计算机学院自己的特色,使数字化学院建设成为一流信息学院建设的重要组成部分。用“数字化校园”的整体概念来统一规划、组织和建设学院的办公自动化系统、数字化教学系统、系统、图书资料管理系统和数字化校园体验系统。在这个概念下,统一设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理等。 开发后的数字化学院管理系统包括学院概况、组织机构、师资队伍、学科与专业、招生与就业、数字化教学、数字图书馆、数字化校园体验和办公自动化九部分。

高校排课系统开题报告

青岛农业大学 毕业论文(设计)开题报告 题目:青岛农业大学排课系统的设计与实现 姓名: 学院:理学与信息科学学院 专业:计算机科学与技术 班级: 学号: 指导教师: 2013 年 3 月 18 日

说明 一、有关说明 毕业论文(设计)题目确定后,学生应尽快征求导师意见,讨论题意与整个毕业论文(或设计)的工作计划,然后根据课题要求查阅、收集有关资料并编写研究提纲,主要由以下几个部分构成: 1.研究(或设计)的目的与意义。应说明此项研究(或设计)在生产实践上或对某些技术进行改革带来的经济、生态与社会效益。有的课题过去曾进行过,但缺乏研究,现在可以在理论上做些探讨,说明其对科学发展的意义。 2.国内外同类研究(或同类设计)的概况综述。在广泛查阅有关文献后,对该类课题研究(或设计)已取得的成就与尚存在的问题进行简要综述,只对本人所承担的课题或设计部分的已有成果与存在问题有条理地进行阐述,并提出自己对一些问题的看法。 3.课题研究(或设计)的内容。要具体写出将在哪些方面开展研究,要重点突出。研究的主要内容应是物所能及、力所能及、能按时完成的,并要考虑与其它同学的互助、合作。 4.研究(或设计)方法。科学的研究方法或切合实际的具有新意的设计方法,是获得高质量研究成果或高水平设计成就的关键。因此,在开始实践前,学生必须熟悉研究(或设计)方法,以避免蛮干造成返工,或得不到成果,甚至于写不出毕业论文或完不成设计任务。 5.实施计划。要在研究提纲中按研究(或设计)内容落实具体时间与地点,有计划地进行工作。 二、注意事项 1.开题报告的撰写完成,意味着毕业论文(设计)工作已经开始,学生已对整个毕业论文(设计)工作有了周密的思考,是完成毕业论文(设计)关键的环节。在开题报告的编写中指导教师只可提示,不可包办代替。 2.无开题报告者,不准申请答辩。 3.本表要用计算机填写,签字要手写,一式三份,本人、导师、所在学院(要原件)各一份。 4.学生可根据内容的多少调整表格的大小。

毕业论文管理信息系统课程设计

课程设计 题目:毕业论文管理系统设计

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于Labview的图像采集与处理

目前工作成果: 一、USB图像获取 USB设备在正常工作以前,第一件要做的事就是枚举,所以在USB摄像头进行初始化之前,需要先枚举系统中的USB设备。 (1)基于USB的Snap采集图像 程序运行结果: 此程序只能采集一帧图像,不能连续采集。将采集图像函数放入循环中就可连续采集。

循环中的可以计算循环一次所用的时间,运行发现用Snap采集图像时它的采集速率比较低。运行程序时移动摄像头可以清楚的看到所采集的图像有时比较模糊。 (2)基于USB的Grab采集图像 运行程序之后发现摄像头采集图像的速率明显提高。

二、图像处理 1、图像灰度处理 (1)基本原理 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。 第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。 第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。 (2)labview中图像灰度处理程序框图 处理结果:

课程管理系统设计毕业论文

课程管理系统设计毕业论文 目录 第一章引言 (1) 1.1 Java语言简介 (1) 1.2 Java 语言在网络上的应用 (1) 1.3 JSP 技术简介 (1) 1.4 Servlet技术简介 (2) 1.5 JavaBean技术简介 (3) 1.6 Tomcat 简介 (4) 第二章系统需求分析 (4) 2.1 设计目标 (4) 2.2 功能简介 (5) 2.3 运行环境 (6) 2.4 性能需求 (6) 2.5 数据需求 (7) 第三章系统概要设计 (7) 3.1 系统开发环境及工具 (7) 3.2 系统体系结构设计 (8) 3.3 系统功能划分 (9) 第四章系统数据库设计 (10) 4.1数据库的需求分析 (10) 4.2 数据库的逻辑设计 (10) 4.2.1 实体与属性之间的关系 (10) 4.2.2 数据库的E-R图 (11) 4.3 数据库的物理结构 (11) 4.3.1 班级信息表 (11) 4.3.2 课程信息表 (11) 4.3.3 学生信息表 (11) 4.3.4 教师信息表 (12) 4.3.5 管理员信息表 (12) 4.3.6 选课信息表 (12) 4.4 数据库的完整性和安全性 (12) 4.4.1 数据库的完整性 (12) 4.4.2 数据库的安全性 (12) 第五章功能模块设计 (13) 5.1 用户登录模块 (13)

5.2 学生功能模块 (13) 5.2.1 选修课程 (13) 5.2.2 查看成绩 (13) 5.2.3 更改信息 (13) 5.2.4 下载资料 (13) 5.3 教师功能模块 (14) 5.3.1 挑选学生 (14)

实时图像采集系统的设计与实现

实时图像采集系统的设计与实现 引言 随着数字多媒体技术的不断发展,数字图像处理技术被广泛应用于身份识别、电视会议、监控系统、工业检测等各种商用、民用及工业生产领域中。这些数字图像处理系统中,一个共同的特点的就是数据量庞大,尤其是在图像帧率及分辨率要求比较高的场合下,以指纹识别系统为例,图像分辨率的高低直接影响系统的鲁棒性,一般来说,为了能够清晰的辨别指纹中的特征结构,指纹图像需要达到至少500DPI的分辨率。通常,为了能够满足各类手指大小以及采集方式的要求,图像采集系统的尺寸都不可能做得太小(一般在2英寸以上),这就要求图像解析度至少达到1024×768,最好是1280×1024(1.3M),如果要做到实时采集和处理(30F/s),数据量将达到1280×1024×30×8=300Mbit/s。 伴随着超大规模集成电路和DSP处理技术的飞速发展,新的高速CPU和高性能DSP处理芯片不断推出市场,在这些技术的有力支持下,复杂的图像处理算法往往容易实现。与此同时,图像数据采集部分由于缺乏专用芯片的支持,而且受限于系统总线带宽,已经成为数字图像系统中的主要瓶颈所在。 主流的图像采集方式 目前数字图像采集主要采用两种方式: 一种是以专用的数据采集卡,配合PC机的各种高速数据总线如PCI,USB2.0,firewire1394等采集数据。 PC机的优势是拥有大量的高速内存可以用作数据采集时的缓存,而且它的各种数据总线具有比较高的数据传输率,PCI总线的速率为32(Bit)×66=2112Mbit/s,USB2.0的数据传输峰值可以达到480 Mbit/s,firewire也可以达到400Mbit/s的传输速率。问题在于,PC机的体系结构决定了任何外设都只可能是从设备,只能请求总线资源,而不能主动占有。在Windows(或是Linux)这些实时多任务操作系统的调度下,即使在系统不运行其它应用程序的情况下,系统时间片和系统资源也会被操作系统内核和各类外设分享。尤其是PCI总线,包括内存、硬盘在内的很多PC内置设备都会用到PCI,实际留给采集程序的总线带宽将大打折扣。正因为如此,现在基于PC的数据采集设备性能都不太理想,采集1.3M象素图像时只能达到每秒7、8帧的帧率,达不到实时性要求。 另外,对PC机的依赖直接限制了这类系统的应用范围,也间接提高了系统成本。 另一种方法是基于嵌入式DSP和FPGA的采集方法。通过FPGA或CPLD 的控制和调度,利用DSP的数据通道来采集数据。嵌入式平台具有便携性好,成本较低的优势,越来越多的应用到数字图像处理的各个领域。 一个成熟的系统体系结构要求系统内各部分分工明确,同时又具有一定的通用性和可移植性。嵌入式平台上的DSP芯片在数字信号处理方面有着独到的优势,但是通用性能无法和PC机上的CPU相比,通常主要用来处理复杂的运算。实时数据采集属于简单而繁琐的任务,用DSP完成可谓大材小用,势必影响整个系统的性能。即使是某些DSP可以用DMA方式采集数据,但是由于图像的

相关主题
文本预览
相关文档 最新文档