关于stm32摄像头ov7670的例程,里面有摄像头的驱动文件。
上传时间: 2016-07-22
上传用户:congcong123
嵌入式图像采集系统具有体积小、成本低、稳定性高等优点,在远程监控、可视电话、计算机视觉、网络会议等领域应用广泛。为克服传统基于单片机的图像采集系统的种种不足,本文提出了一种新的解决方案,利用高速的ARM9嵌入式微处理器S3C2410A为硬件核心,搭配USB摄像头,结合Linux构建了一套嵌入式的图像采集系统。USB摄像头有着容易购买、性价比高等优点,但长期以来将其直接应用于嵌入式系统却很困难。随着ARM微处理器的广泛应用,嵌入式系统的性能得到了极大的提升。人们逐渐将操作系统引入其中,方便系统的管理和简化应用程序的开发。Linux是一个免费开源的优秀操作系统,将其移植到嵌入式系统中能够对系统进行高效地管理、极大地方便应用程序的开发。嵌入式的Linux操作系统继承了Linux的优良特性,还有着节约资源,实时性强等优点。在本方案中以嵌入式Linux操作系统为基础,借助其对USB、网络等的强大支持能力来构建高度灵活的图像采集系统。通过利用Linux操作系统内建的video4Linux对摄像头进行编程,实现了将USB摄像头采集到的视频数据进行显示和存为图片的功能。本文中具体讲述了嵌入式的软硬件平台的构建,USB摄像头的驱动开发,图像采集应用程序的实现等。本文提出的嵌入式图像采集方案适用于市面上绝大多数流行的USB摄像头,还能把得到的图像通过以太网传输以实现远程的监控。这套方案利用应用程序编程接口video4linux所提供的数据结构、应用函数等,实现了在Linux环境下采集USB摄像头图像数据的功能,并运用嵌入式的GUI开发工具Qt/Embedded来编写最终的应用程序实现了美观的用户界面。充分运用Linux操作系统和其工具的强大功能来实现图像采集, 对基于Linux内核的后续图像应用开发具有实用意义。本系统完全基于开放的平台和模块化的实现方法,具有良好的可移植性,可方便地进行各种扩展。这种方案所实现的图像采集系统成本低,灵活性高,性能好,是一种优良的解决方案。本文详细介绍了这种基于Linux系统和S3C2410A平台的嵌入式图像采集系统。关键词:嵌入式,ARM,USB,图像采集,Linux
上传时间: 2013-06-05
上传用户:bangbangbang
嵌入式图像采集系统具有体积小、成本低、稳定性高等优点,在远程监控、可视电话、计算机视觉、网络会议等领域应用广泛。为克服传统基于单片机的图像采集系统的种种不足,本文提出了一种新的解决方案,利用高速的ARM9嵌入式微处理器S3C2410A为硬件核心,搭配USB摄像头,结合Linux构建了一套嵌入式的图像采集系统。USB摄像头有着容易购买、性价比高等优点,但长期以来将其直接应用于嵌入式系统却很困难。随着ARM微处理器的广泛应用,嵌入式系统的性能得到了极大的提升。人们逐渐将操作系统引入其中,方便系统的管理和简化应用程序的开发。Linux是一个免费开源的优秀操作系统,将其移植到嵌入式系统中能够对系统进行高效地管理、极大地方便应用程序的开发。嵌入式的Linux操作系统继承了Linux的优良特性,还有着节约资源,实时性强等优点。在本方案中以嵌入式Linux操作系统为基础,借助其对USB、网络等的强大支持能力来构建高度灵活的图像采集系统。通过利用Linux操作系统内建的video4Linux对摄像头进行编程,实现了将USB摄像头采集到的视频数据进行显示和存为图片的功能。本文中具体讲述了嵌入式的软硬件平台的构建,USB摄像头的驱动开发,图像采集应用程序的实现等。本文提出的嵌入式图像采集方案适用于市面上绝大多数流行的USB摄像头,还能把得到的图像通过以太网传输以实现远程的监控。这套方案利用应用程序编程接口video4linux所提供的数据结构、应用函数等,实现了在Linux环境下采集USB摄像头图像数据的功能,并运用嵌入式的GUI开发工具Qt/Embedded来编写最终的应用程序实现了美观的用户界面。充分运用Linux操作系统和其工具的强大功能来实现图像采集,对基于Linux内核的后续图像应用开发具有实用意义。本系统完全基于开放的平台和模块化的实现方法,具有良好的可移植性,可方便地进行各种扩展。这种方案所实现的图像采集系统成本低,灵活性高,性能好,是一种优良的解决方案。本文详细介绍了这种基于Linux系统和S3C2410A平台的嵌入式图像采集系统。
上传时间: 2013-04-24
上传用户:再见大盘鸡
数字视频监控系统是一门集计算机技术、通信技术和数字视频技术于一体的综合系统,它充分利用大规模集成电路和网络的科技成果,体积小巧、性能稳定、通讯便利,被广泛应用于交通、银行、医院、视频会议、无人监控等诸多领域。 本系统基于ARM微处理器平台,移植嵌入式Linux操作系统,并完成视频采集、压缩、传输等任务。为降低产品成本,系统采用ARM9微处理器S3C2410作为主处理器,以USB摄像头作为视频采集设备,用软件对视频数据进行MPEG—4压缩。 论文首先从整体上分析了嵌入式数字视频监控系统的总体设计方案,给出了硬件框架和软件体系。其次在ARM硬件平台成功构建了armlinux嵌入式系统,包括引导程序Bootloader的设计、修改配置Linux内核以及制作JFFS2文件系统,完成USB数码摄像头的驱动。在应用程序开发过程中,设计了基于Video4Linux的视频采集程序,采用mmap(内存映射)方式截取图片,分析了MPEG—4编码模型XVID程序中的运动估计部分,研究了半像素快速搜索算法,从而减少了搜索点数提高了运算速度。最后利用开源JRTPLIB库实现视频数据流的RTP传送。 整个设计是在S3C2410硬件平台上进行的,采用2.4.18版本的Linux内核。其中MPEG—4编码优化测试是在ARMDeveloperSuite(ADS)version1.2中完成的。 本课题为在ARM平台实现数字视频监控的设计做了有益的探索性尝试,对今后进一步完成远程嵌入式视频监控系统的设计有着积极的意义。
上传时间: 2013-06-10
上传用户:shawvi
随着经济的快速发展,人们生活节奏的提高,照顾家庭的时间越来越少。人们越来越感觉时间的紧张,不但要周旋在繁杂的工作之中,同时也要兼顾自己的家。而现有的嵌入式硬盘录像机虽然功能丰富,产品日益成熟,但在家用系统中应用成本太高。因此本文设计了一款高性能、低成本的实时图像监控系统,能让人们在繁忙的工作之余实时了解住所的安全情况。 本文首先提出了该图像监控系统的总体设计方案,并就系统硬件平台的设计进行了详细的论述。硬件部分主要包括主控芯片$3C2410与Flash、SDRAM存储器接口电路,USB接口电路,以太网接口电路,UART串行接口电路,JTAG接口电路以及电源电路。 其次,本文研究了嵌入式IAnux移植的关键技术,包括交叉编译环境的建立、Bootloader 的设计、内核移植以及文件系统加载的方法,并通过裁剪Linux内核将标准Linux 2.4.18移植到目标平台。同时分析了现有文件系统的优、缺点,在目标平台上移植了快速、高效的YAFFS文件系统,增强了系统的健壮性和高效性。 再者,本文修改并移植了LJSB摄像头的驱动程序。研究了基于Vide041inux技术的图像采集的数据结构和原理,详细地阐述了图像采集实现的过程和关键步骤,利用Vide04Linux API函数完成了图像采集程序的设计,使用内存映射方式实现了图像的快速采集,并对图像数据进行了JPEG压缩,提高了图像采集的效率。研究了Web Server和Java Applet技术,实现了远程图像监控。通过重新编译移植Webcam Server应用程序实现了网络摄像机的功能。 最后,本文给出了系统的测试方法及运行结果,并总结了所做的工作和存在的问题,提出了系统改进的意见。 本文设计的图像监控系统具有高性能、低成本、小体积等特点,采用开源的Linux作为软件平台,保证了系统的稳定性、安全性,具有较高的性价比和较强的适用性。
上传时间: 2013-07-28
上传用户:pei5
视频监控系统是一门集计算机技术、通信技术和数字视频技术于一体的综合系统。目前视频监控正向着数字化、网络化的方向发展。实现基于网络的视频监控系统的关键是一种嵌入式设备,它应该能够采集压缩视频数据并通过网络进行传输。 本文介绍了一种基于嵌入式Linux的网络视频监控系统的设计和实现方法。首先从整体上分析了网络视频监控系统的总体设计方案,给出了视频服务器的硬件框架和软件体系,并重点讨论了在ARM处理器上实现MPEG-4压缩编码的方法。其次在ARM硬件平台成功构建了armlinux嵌入式系统:包括引导程序Bootloader的设计、修改配置linux内核以及制作JFFS2文件系统。其中创新地提出了从nandflash启动U-BOOT具体设计方法。为了完成系统进一步的视频采集工作,系统实现了USB数码摄像头的驱动。在应用程序开发过程中,首先设计了基于Vide04Linux的视频采集程序,并采用mmap(内存映射)方式截取图片。其次重点分析了MPEG-4编码模型XVID程序中的运动估计部分,并研究了半像素快速搜索算法,从而减少了搜索点数提高了运算速度。最后利用开源JRTPLIB库实现视频数据流的RTP传送。 整个设计都是在深圳旋极公司研制的SUPER-ARM硬件平台上进行的,linux内核采用2.4.18。其中MPEG-4编码优化测试是在ARM DeveloperSuite(ADS)version 1.2中完成。 本课题为在ARM平台实现网络视频监控的设计做了有益的探索性尝试,对今后进一步完成远程嵌入式视频监控系统的设计有着积极的意义。
上传时间: 2013-07-21
上传用户:Altman
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230