基于ARM的图像采集处理系统设计_第1页
基于ARM的图像采集处理系统设计_第2页
基于ARM的图像采集处理系统设计_第3页
基于ARM的图像采集处理系统设计_第4页
基于ARM的图像采集处理系统设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于ARM的图像采集处理系统设计摘 要随着现代制造工业中微细加工技术的不断发展,对微细零件表面形貌测量的要求越来越高,具有较高横向及纵向分辨率的激光并行共焦显微系统可以突破光学衍射的极限要求,对物体表面进行无损检测及三维形貌重构。为了进一步实现光学系统的便携化、智能化需求,具有体积小、成本低、专用性强等一系列独特优点的嵌入式系统,无疑有着极好的应用前景。本文主要研制了一种基于ARM的便携式图像采集处理系统。论文主要以硬件设计和软件设计两大部分完成对系统的论述:硬件设计中,通过分析实际图像采集需求后总结设计的主要性能指标,确定了采集系统的主要控制平台和图像传感芯片,给出了总体的硬件设计方案,并在

2、此基础上完成了SCCB控制模块、图像数据捕获模块、串口调试模块等硬件接口模块的设计;软件设计中,完成了CMOS的驱动程序、图像数据采集的驱动程序、Bayer图像数据转换算法等软件设计工作,最后论述了静态图像采集系统相关调试、实验工作,结果表明此嵌入式图像采集系统基本达到预期目标,证明了设计的合理性和正确性。本系统一定程度上提高了低功耗微控制器图像采集的效率,将图像采集系统对硬件的依赖转化为设计人员的软件设计工作,相对于传统PC机+CCD的方案,不仅在体积、成本上具有明显优势,更体现出良好的柔性,便于今后的维护、优化。关键词:ARM,LPC2478,图像采集,便携式第一章 绪论1.1 嵌入式系统

3、概述1.1.1 嵌入式系统嵌入式系统被IEEE(国际电气和电子工程师协会)定义为“是一种用来控制、监视或者辅助仪器、机械操作的装置”。无论嵌入式计算机技术如何发展,都改变不了其“内含计算机”、“嵌入到对象体系中”、“满足对象智能化控制要求”的技术本质,因此可以将嵌入式系统定义为:“嵌入到对象体系中的专用计算机应用系统”。嵌入式系统具有3个基本特点,即“计算机性”、“嵌入性”及“专用性”:l “计算机性”是目标系统智能化、自动化控制的根本保证,内含微处理器的现代电子系统,方才能实现目标系统的计算机智能化控制能力;l “嵌入性”则是专指起源于微型机、嵌入到目标对象系统进而实现对象体系智能控制的特性

4、;l “专用性”是指为了贴合对象控制需求或特定环境要求下的软硬件的裁剪性。嵌入式系统在很多产业中都得到了广泛的应用,包括消费电子、国防军事、工业控制等领域应用的越来越广泛,从军用的导弹系统到民用的消费电子、智能家电、汽车,嵌入式系统无处不在。1.1.2 嵌入式处理器通用计算机处理器的系统拥有大量的应用编程资源、外设接口总线及先进的高速缓存逻辑,但也具有能源消耗大、产生热量高、成本尺寸大等不可回避的问题,因此诞生了为各种专用应用而设计的特殊目的处理器嵌入式处理器,主要分为以下四类:l 嵌入式微处理器:在应用中将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能而换来系统体积和功耗

5、的大幅减小,在功能上保留和标准微处理器一致的同时更在工作温度、抗电磁干扰、可靠性等方面得到增强。l 嵌入式微控制器:即单片机,就是将整个计算机系统集成到一块芯片中,一般以某一微处理器内核为核心,芯片内部集成ROM、RAM、总线等必要功能和外设,是目前嵌入式系统工业的主流。l 嵌入式DSP处理器:对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度快,在数字滤波、FFT、谱分析等方面DSP算法大量进入嵌入式领域。l 嵌入式片上系统:将通用处理器内核作为SOC设计公司的标准库,用标准的VHDL等语言描述存储在器件库中,在定义出其整个应用系统并仿真通过后即可制作样品,

6、大大优化了系统电路板体积、功耗和可靠性。1.2 图像采集技术的研究现状1.2.1 图像采集系统简介图像采集是将图像信息光电转化成便于计算机传输、存储的数字信号的过程。图像采集术在现今应用最广泛的方向是视频应用,早在上世纪无声电影的出现便开启了视频应用的时代,近年来随着计算机技术、网络技术及图像处理、视频压缩等技术的不断发展很大程度上扩展了图像采集术在各种产业领域使用,并且面对多样化的应用方面出现了基于多种处理平台的图像采集系统。总的来说图像采集系统由光电转换和信号处理两大模块组成:l 光电转换模块:用来完成对成像光信号到电信号的转换,其中的主要转换器件从最早的光电二极管到现在的CCD、CMOS

7、传感器的时代;Ø CCD(电荷耦合器件)图像传感器,具有较高的信噪比和敏感度,功耗相对CMOS较大(3个以上电源电压),主要应用于消费级数码产品;Ø CMOS(互补金属氧化物半导体)图像传感器,原本是计算机系统内一种重要芯片,用来保存系统引导最基本的资料,后来被人们应用于影像传感器领域。前期无论在信噪比、动态范围等方面均不如CCD,主要应用于消费电子产业及高端图像传感领域。l 信号处理模块:根据系统应用级别、领域的不同而呈现多样化的趋势,如在工业检测方面多用AVR单片机,在民用级生产生活中多用图像采集卡和PC机,介于近年来嵌入式技术的快速发展,在工业领域、民生生活方面都有了

8、广泛应用:Ø DSP:高工作频率(500Mhz以上)、内含乘法器、在系统结构及指令进行特殊设计的DSP处理器在视频系统的应用尤其深入,不足之处则是相对较高的成本投入及较少的外设接口;Ø FPGA:在ASIC(特定用途集成电路)领域现今发展最为充分的平台,用标准VHDL硬件设计语言便可实现对任何芯片的仿真制造,特别善于对数字信号的逻辑处理;Ø ARM:近年来随着工作频率和功能模块嵌入种类的不断提升,及特有的小体积、低功耗、接口丰富的特点在图像采集乃至视频监控领域崭露头角。1.2.2 嵌入式图像采集系统CMOS图像传感器内部集成了A/D,且随着近几年的不断发展,分辨率

9、也不断提高,集成化程度高、功耗低、体积小的特点更使得CMOS模块在消费电子产业中的手机、数码相机等大放异彩。结合了图像采集系统及嵌入式系统的利弊特点,人们逐渐将嵌入式技术应用于图像采集领域,充分将嵌入式技术的专用性、便携性等特征在图像采集方面得到体现,也带来了图像采集技术在工业计量、生物医学、多媒体等多领域上的飞速发展。现今较为常用的嵌入式图像采集方案主要有以下3种:1、图像传感器 + FPGA + SRAM2、图像传感器 + DSP + SRAM3、图像传感器 + ARM + SRAM方案1利用FPGA(现场可编程门阵列)可以较为方便的实现图像采集中多种同步信号的逻辑处理;方案2中的DSP(

10、数字信号微处理器)所具有的高运行速度、强大数据处理能力使之在图像采集领域最先得到发展;而相对于前面两个方案,ARM开始在图像采集领域并未得到很好的运用,但近几年尤其在工业检测、便携图像采集等方向越来越得到人们的重视,随着嵌入式制造工艺的飞速发展,ARM的工作频率、数据处理能力也得到大幅提高,加上其含有丰富的接口模块,非常适合用于在工业监控、检测方面。第二章 系统硬件电路设计光学系统CMOSARM开发板2.1 图像采集系统硬件总体架构图2- 1 系统工作流程图图2-1为本图像采集系统的工作流程图。并行共焦光学系统为系统光学成像源,图像捕获模块选用CMOS图像传感器OV7620,控制、处理显示模块

11、选用ARM7开发板SMART2400,软件开发、实验调试平台用PC机完成。CMOS上位机调试模块SCCB总线控制数据采集模块存储显示模块ARM7TDMI由图可以初步了解嵌入式图像采集处理系统的整个流程:当光学系统成像完成,用CMOS图像传感器完成对图样的获取,图像数据经过缓冲后进入ARM开发板进行差值处理,进而直接在内部存储、显示。期间可通过串口连接到PC机进行调试、处理。系统总体结构框图如图2-2。图2- 2 系统总体结构框图2.2 系统核心器件概述2.2.1 LPC2400结构特性1 LPC2400系列ARM概述LPC2400系列ARM为多种类型的通信应用提供了一个理想的解决方案。它包括1

12、个10/100以太网媒体访问控制器(MAC)、1个带4KB终端RAM的USB全速设备/主机/OTG控制器、4个UART、2路CAN通道、1个SPI接口、2个同步串行端口(SSP)、3个IIC接口和1个IIS接口。同时还带有1个4MHz的片内振荡器、98KB RAM(包括64KB局部SRAM、16KB以太网SRAM、16KB GPDMA SRAM和2KB电池供电SRAM)以及1个外部存储器控制器(EMC)来支持上述的各种串行通信接口。这些特性使得本设备非常适用于通信网关和协议转换器。除此以外,还有许多串行通信控制器、多用途的时钟功能和存储器特性,包括有不同的32位定时器、增强型告诉GPIO。LP

13、C2400系列ARM链接64个GPIO管脚到基于硬件的向量中断控制器(VIC),这表示了这些外部输入可产生边沿触发终端。所有的这些特性使LPC2400系列ARM特别适用于工业控制和医疗系统。LPC2400系列的主要特性有:l ARM7TDMI-S处理器,运行频率高达72MHZ。l 512KB片上Flash程序存储器,具有在系统编程(ISP)和在应用编程(IAP)功能。Flash程序存储器位于ARM局部总线,可用于高性能的CPU访问。l 有双AHB总线系统(Dual AHB System)。这使得某一外设资源的存取操作、程序执行操作可以和另一外设资源的存取操作和程序执行操作并行不悖,从而使得各高

14、频外设能同时运转而不引起总线堵塞。l EMC支持诸如RAM、ROM和Flash的异步静态存储器设备以及动态存储器设备(例如SDRAM)。l 先进的向量中断控制器(VIC),支持多达32个向量中断。l 仅LPC2470/78:LCD控制器,支持STN和TFT显示屏的显示Ø 有专用的DMA控制器Ø 可选择显示分辨率(最高可达1024×768像素)。Ø 支持高达24位的真彩色模式l 串行接口:Ø Ethernet MAC带有MII/RMII接口和相关的DMA控制器,这些功能位于独立的AHB总线上Ø USB2.0全速双端口设备/主机/OTG控

15、制器,带有片内PHY和相关的DMA控制器Ø 4个带小数波特率发生功能的UART。其中1个带有Modem控制I/O,还有一个带有IrDA。除此之外,全部UART都带有FIFOØ 3个I2C总线接口(1个开漏管脚,另外2个为标准输出管脚)Ø CAN控制器,带有两个通道l 其他外设,包括10位AD、2个PWM模块、RTC等。2 LPC2400系列ARM体系架构LPC2400系列ARM是由支持仿真的ARM7TDMI-S CPU、用于紧密耦合并高速访问片内主要存储器的ARM7局部总线、连接到高速片内外设和外部存储器的AMBA(Advanced Microcontroller

16、 Bus Architecture) AHB以及连接到其他片内外设功能的AMBA APB构成的.LPC2400系列ARM始终按照小端字节顺序进行配置。LPC2400系列ARM具有两个AHB总线,这使得以太网模块的操作不受其它系统操作的干涉:图2- 3 LPC2400开发板功能模块图高速GPIO160引脚SRAMJTAGARM7TDMIAHB桥AHB桥PLL系统功能内部RC振荡器系统时钟VICSRAMEMCAHB2AHB1AHB到APB桥LCD外部中断定时器IICAHBAPBl 第一个AHB成为AHB1,包含VIC(中断向量控制器)、GPDMA控制器和EMC;l 第二个AHB成为AHB2,它只包

17、含以太网模块和一个相关的16KB SRAM。另外,该处理器还提供一个总线桥接器,允许第二个AHB作为AHB1的总线主机,还允许把以太网缓冲区的扩展空间延伸到片外存储器、或者是AHB1所在的未使用存储空间。LPC2400系列ARM的结构框图见图2-3,由于开发板所含模块较多,只列出与本系统相关的模块。2.2.2 OV7620图像传感器OV7620是一款具有较高分辨率(640*480)、逐行/隔行扫描模式可选的CMOS彩色/黑白数字图像传感芯片。数字输出端口支持RGB RAW/YUV的8/16bpp数字格式输出。其中的SCCB编程模式可以实现对摄像头功能寄存器的控制。1. OV7620内部结构OV

18、7620内部集成一个664*492分辨率的图像阵列,一个模拟信号处理器(mux),双10bit的A/D转换器,模拟视频多路复用器(analog processing),数字格式器(digital data formatter)及视频端口,SCCB接口及其寄存器。其中数字控制包括时序模块、曝光模块和白平衡。图像传感芯片OV7620的内部功能模块图如图2-6。图2- 4 OV7620内部原理框图OV7620正常工作时,图像的光电转化在1/3英寸的感光元件上完成,同时在图2-6左下方的视频时序发生模块包含的各种同步信号(如VSYNC、HREF、PCLK)控制模拟信号处理器,定时的对感光阵列下方的感应

19、电路行列像素点进行捕获,与此同时框图右下方的受SCCB接口编程控制的寄存器模块对模拟信号处理器的数据格式控制,可选进入不同数据输出格式的多路复用器(mx),进而通过数字端口(Y/UV通道)或模拟测试端口(VTO)输出。2. OV7620图像采集方法CMOS图像阵列的设计是建立在逐行传送的扫描场读出系统和带同步像素读出电路的电子快门之上。电子曝光控制算法规范则是建立在目标图像亮度基础上,即当背景光线在图像传感器正常范围内时,一般结果会比较理想;而当景象光线接近极限值甚至超出,则应该通过AEC自动曝光控制器的黑白比调节并使之满足应用要求。OV7620与输出图像数据相关的有4路同步信号:垂直同步信号

20、VSYNC、水平参考同步信号HREF、像素时钟信号PCLK、奇偶场同步信号FODD。其中FODD一般用于隔行扫描中,二分频即为VSYNC,在本设计中不予考虑。各同步信号时序如图2-7。一般的图像采集方法是依靠VSYNC、HREF和PCLK3个同步信号来提示MCU捕获有效的图像数据,大致的流程为:VSYNC用来判断一帧图像数据的开始,其上升沿表示为一帧图像的到来,之后的下降沿则提示外部电路一帧有效图像数据开始;HREF是判断一行有效像素数据的依据,高电平时Y和UV通道才输出有效数据,通过示波器观察,HREF与HSYNC(水平同步信号)频率及波形几近相同,选用HREF而非HSYNC来判断一行有效数

21、据,是考虑到对OV7620修改HREF,还可更改OV7620输出图像的开窗大小,使采集系统具有更大的灵活性和适用性;PCLK则是判断一个像素数据有效的信号,其每个负跳沿驱动图像传感器更新图像数据并在正跳沿时稳定。图2- 5 OV7620同步信号时序图2.3 图像采集系统硬件模块设计系统硬件设计分为以下模块进行:l SCCB控制模块l 图像数据采集模块Ø 数据缓冲Ø 同步信号捕获l 存储显示模块Ø FLASH和SDRAM的存储接口Ø LCD显示l 上位机串口调试模块以下便分别对各个硬件模块进行论述。2.3.1 SCCB控制模块图2- 8 SCCB总线接口电

22、路图LPC2478开发板内部有IIC模块及高速GPIO引脚模块,完成对OV7620的控制有两种方式:一是直接用IIC模块接口来实现控制;二是将两个GPIO引脚连接SCCB总线,用软件模拟总线协议的方式完成对图像传感器的寄存器配置。由于SCCB与IIC的微细区别,即在读数据时SCCB多了一个总线停止的条件,直接用IIC模块读数据会出现谬误,所以选用第二中方法,即用GPIO软件模拟控制SCCB。设计虽然摒弃了LPC2478的IIC模块控制的方法,但可以利用其中的IIC0接口(P0.27、P0.28引脚),因为LPC2478的GPIO只有这两个端口是开漏输出,符合整个IIC规范及SCCB协议。值得注

23、意的是驱动SCCB的SCL、SDA应上拉2K5K的电阻,SCCB总线接口电路如图2-8。2.3.2 图像数据采集模块当ARM完成了对CMOS的寄存器配置后,正常上电的情况下,OV7620的同步信号端口VSYNC、HREF、PCLK及数据通道Y、UV便会连续不断的输出各种同步信号和图像数据,如果直接用ARM的GPIO口对Y、UV通道采集数据效率会非常低,采集一个像素点数据(8/16bit)会让ARM浪费许多等待时间,因此还需要缓冲器件的帮助。由于一般的MCU工作频率不会高于图像传感器太多,取得一个像素点数据这一线程算上中断响应、中断延时、程序执行的时间很难在兼顾采集时间的同时采满一帧图像,所以通

24、常会采取一定的方法使CMOS与MCU相互匹配起来,达到最好的采集效率。根据系统设计目的,权衡采集速率及图像清晰度(与有效像素点个数成正比关系),本设计中选用专门用于图像数据缓冲的FIFO芯片AL422作为图像数据的缓冲,配合适当配置图像传感器的时钟控制模块,结合起来使图像像素点个数与采集时间达到最好的平衡。1 缓冲电路设计图像数据缓冲部分的核心芯片AL422缓冲芯片是一款缓存容量大小为393,216字*8 bit的FIFO,内部集成的3M-bit的DRAM附带相应的控制器,使之具有友好的硬件接口。器件特点:l 384K(393,216)*8 bits FIFO结构l 支持VGA,CCIR,NT

25、SC,PAL和HDTV图像分辨率缓冲l 独立的读/写操作(高速I/O数据传输速率)l 高速一部串行通道l 读/写周期:20nsl 数据存取时间:15nsl 输出使能控制l 自刷新l 5V或3.3V电源供电图2- 6 缓冲电路原理图缓冲电路原理图如图2-9所示,AL422缓冲器件接受和释放数据靠WCK、/WE、/WRST、RCK、/RE、/RRST引脚的相互配合完成。考虑图像采集系统可以对静态黑白、彩色图像均可进行采集,用两片AL422搭建成缓冲模块。其中WCK写周期引脚与OV7620的PCLK相连(此做法可以规避用效率不高的中断嵌套方式捕获高频PCLK而采集图像的方法,直接用PCLK触发FIF

26、O锁存数据的方式很快采集到一个像素数据),TST测试引脚外接下拉电阻下拉,DEC脚接104pF的退耦电容。2 同步信号捕获电路设计由上文可知对一帧有效图像的获取质量好坏直接与MCU捕获三个同步信号VSYNC、HREF和PCLK的效率,在硬件本身的限制范围内尽可能用合适的软硬件设计方法来完成。VSYNC垂直同步信号为表征一帧图像数据的到来,且低电平有效,可以直接与ARM的一个外部中断引脚相接(LPC2400的向量中断控制器VIC有32个中断源,其中外部中断EINT0T3占据1417通道),此处选择与EINT0的p2.10连接;HREF水平参考同步信号用来表征一行有效图像数据的到来。图2- 10

27、同步信号捕获原理图为了避免使用采集效率较低的中断嵌套的方法,在充分了解同步信号捕获关系及缓冲芯片AL422读写触发时序端口的基础上,直接将HREF同步引脚取反输出给缓冲FIFO的/WE写使能脚(为了方面软件控制,设计将LPC2478一个GPIO P3.25和HREF相与后取反接FIFO),如此既使得ARM可以软件编程控制FIFO的写入数据使能端口,又可以在极短的时间(50ns内)内完成对HREF的触发响应;同样的,将PCLK像素时钟同步引脚与FIFO的WCK写使能端口,当PCLK高电平时则拉高WCK将有效图像数据写入FIFO。值得注意的是,OV7620为5V/3.3V可选电源系统,为了与LPC

28、2400的3.3V接口电压匹配应把DOVDD跳线跳在3.3V且在外部供给DOVDD3.3V电压。同步信号接口电路如图2-10。2.3.3 存储、显示模块1 存储模块程序在嵌入式设备中一般有两种加载(load)模式:一种是在配套软件开发平台的程序直接下载目标板的ROM或FLASH存储器中进行;另一种则是加载到目标板外接的SDRAM中运行。在本文的软件开发平台ADS(Arm Development Suit)中均是可选的,一般来说都是加载到LPC2478内部的Flash中。Flash主要分为NOR Flash和NAND Flash两个类别。l 从擦写速度上来看,NAND Flash的读写编程操作是

29、以“页”为单位进行,擦出操作以“块”为单位,且擦除的单元面积小、擦除电路少,因此拥有较快的编程、擦出能力;l 从执行代码效率来看,NOR芯片内部执行应用程序可以直接在闪存中进行而不必将代码读入系统RAM中,且传输效率高,在14MB应用很高的成本效益;l 从容量和成本的角度来看,NAND Flash的单元尺寸将近是NOR的一半,生产过程的简化更使其具有更高的性价比;图2-11为SST39VF1601和HY57V561620CLT-HI与LPC2478的接口硬件图。图2- 11 NOR Flash、NANDFlash与LPC2478接口将LPC2478的EMC(片外存储器控制器)A12:0与SDR

30、AM地址线A0A12相连,A14:13与SDRAM的Bank选择信号BA0、BA1连接用以对SDRAM的4个存储阵列进行选择,16位半字数据线与输出数据线DQ0DQ15相连,片选位LnSDCS0、行列选通位LnSDRAS、CAS分别与SDRAM的nSCS、nSRAS、nSCAS连接,剩下的时钟信号位CLKOUT等也分别连好,如此便完成了ARM与SDRAM的硬件连接,可将SDRAM当做ARM的一个SRAM来适用,值得注意的是LPC2478的只有最多256MB的片外存储空间,不可超出。2 显示模块设计选用了与LPC2478的LCD控制器适配的320*240 LCD屏,屏内集成了TFT液晶显示控制芯

31、片SSD1289的。SSD1289是一款包含电源管理、液晶驱动、显示缓冲区等诸多功能于一身的单芯片液晶控制器,内部显示缓冲区拥有高速读写能力。图2- 12 LCD模块与LPC2478接口电路图图2-12接口电路采用的是RGB色彩空间5:6:5的接法。LPC2478的P1.26P1.29、P2.13接SSD1289的数据线D11D15,作为B(蓝)分量数据通道;P1.20P1.25接D5D10作为G(绿)分量数据通道;P2.6P2.9、P4.29接D0D4作为R(红)分量通道;剩下的控制信号LCDPWR、LCDM及同步信号LCDFP、LCDLE、LCDFP对应的与SSD1289相连。2.3.4

32、UART串口通讯模块为了实现图像采集系统与ARM及上位机的数据通讯,需要一种通用的总线接口实现,设计了UART串行通讯模块模块。针对PC机典型的9针RS-232C电平串行接口,模块选用了MAX232CWE芯片进行电平转换。MAX232CWE芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+3.3V单电源供电,芯片分为三个部分:l 第一部分是电荷泵电路,由1、3、4、5脚及电容C12、C13构成,功能是产生正负12V两个电源提供给RS-232电平需要;l 第二部分是两组数据转换通道用以串口总线数据的输入输出,710脚为第一组数据转换通道,1114为第二组通道,此处只用

33、第二组。l 第三部分是供电部分。图2- 13 串行接口硬件电路图RS-232C串口的接线方式有全串口连接(带Modem接口)和3线连接等方式,此调试通讯模块只需完成对所采集的图像帧数据传输到PC机上,只需采用较简洁的3线连接方式,硬件电路图如图2-13。第三章 系统软件程序设计3.1 系统总体软件设计嵌入式图像采集处理系统是一个集合软硬件的嵌入式便携系统,对静态图像信息进行相对快速的捕获、存储和显示以及利用PC对数字图像进行分析处理是我们的目标。前一章节主要论述了系统的硬件芯片选择及外围接口电路设计,本章将对驱动这些硬件设施的软件设计做详细阐述。为了方便系统的调试与维护,对应于硬件的模块设计,

34、系统软件的设计按照模块化进行,总体的软件框图如图3-1:图像采集模块存储显示模块上位机调试模块初始化模块图3- 1 系统总体软件功能框图由图可以看出系统软件设计分为以下模块进行:l 初始化模块Ø 嵌入式ARM驱动bootloader的设计Ø CMOS驱动程序设计l 图像采集模块Ø CMOS与ARM工作匹配Ø 同步信号捕获的软件设计l 处理显示模块Ø 片外存储SDRAM驱动设计Ø Bayer图像数据的差值算法Ø 数字图像的LCD显示l 上位机调试模块以下各小节将分别对上述模块的软件设计工作进行论述。3.2 系统初始化模块的软件

35、设计图像采集系统的核心器件是控制芯片LPC2478及CMOS图像传感器OV7620,其中以FIFO缓冲芯片AL422及串口通信UART辅助图像的采集及调试。由于LPC2478开发板和OV7620本身具有极高的集成度,各自都可以视为一个小型系统,因此想让它们互相匹配工作的前提便是让其自身先“做好准备”,即初始化。3.2.1 LPC2400的bootloader软件设计人们在使用PC机时,开机后的一系列画面比如处理器、各种外围硬件设备的初始化操作由BIOS(Basic Input/Output System)来完成,同样的对于嵌入式系统,需要相似的软件驱动来在开始任务前对所配备的硬件设施进行准备,

36、但考虑成本、MCU性能等方面因素不能直接用像BIOS那种固件程序,而是用一种简化的代码来实现相似功能操作,成为Bootloader,即系统的引导加载程序。Bootloader的作用主要包括以下7条:l 分配中断向量表l 初始化存储器系统l 初始化堆栈l 初始化有特殊要求的硬件模块l 初始化用户程序执行环境l 切换处理器工作模式l 调用主应用程序3.2.2 CMOS驱动程序设计考虑到图像采集现场光线明暗变化、后续处理平台的可移植性等现实因素,需要对OV7620的内部寄存器参数进行修改,因此必须通过SCCB总线对其进行寄存器初始化。1 SCCB总线的数据传输SCCB总线上传输一个数据位需要遵循以下

37、规范:l 数据的有效性:SIO_D线上的数据必须在SIO_C高电平器件保持稳定l 起始和停止信号:在SCCB协议中,唯一违反上述数据有效规范的是起始、停止信号Ø 起始:SIO_C高电平时,SIO_D从高电平变为低电平Ø 停止:SIO_C高电平时,SIO_D从低电平变为高电平应答:发送到SIO_D线上的每个字节必须是八位,每个字节后必须跟一个应答位。应答的时间脉冲器件,发送器释放SIO_D(高),之后接收器必须将SIO_D拉低。SCCB总线上每传输一个位数据必须产生一个时钟脉冲。主机产生起始信号后,发送的第一个字节为寻址字节,从最高位(MSB)到最低位开始传输,且寻址字节的最

38、低位(LSB)为报文方向位,“0”表示主机写从机,“1”表示读,如图3-2所示:从地址LSBMSBR/W图3- 2 首字节的位数据格式SCCB总线中一个基本的数据传输单元称为“相”(phaes)。下面列出数据读写时的三种基本单元:l 三相写周期l 两相写周期l 两相读周期这三种基本读写单元其实很相像,两相写为三相写周期的子集,两相读则一般跟在写周期后紧接着进行,图3-3给出三相写周期的示意图。图3- 3 三相写周期数位图不难看出,首字节的17位为从机ID号,具体不同器件可在OV公司官网上查看得知(OV7620的ID号“写”为0x42,“读”为0x43),0位为读写控制位,此时为0(写);第二字

39、节是子地址,即目标寄存器地址;第三字节为修改目标的8位寄存器的值。如此便可以对的在SCCB总线上找到目标从机中目标寄存器的值进行配置。值得注意的是:l 两相读之前一定要进行一次三相或两相写的操作,否则读操作找寻不到目标寄存器l 每位字节后都有一个数据应答位NA,NA是此次传输数据的接收机给予发送机的应答,一般为发送机将SIO_D线闲置(拉高),在应答的时间脉冲里,总线会判断接收机是否拉低SIO_D线,是则为应答成功继续传输,否则总线停止。l SCCB没有重复起始概念,一次操作(写或读)后一定要加总线停止指令。图3-4、3-5分别是对从机ID号为X、目标寄存器号为Y分别进行读写操作的软件流程图。

40、发送起始信号对从机寻址,R/W=0SIO_D是否拉低对从寄存器寻址SIO_D是否拉低NN发送1字节数SIO_D是否拉低N发送停止信号发送起始信号对从机寻址,R/W=1SIO_D是否拉低发送1字节数据SIO_D是否拉低NN发送非应答信号发送停止信号YYYYY主机操作从机操作写操作读操作图3- 4 SCCB读写数据软件流程图2 OV7620的SCCB初始化SCCB总线中的SIO_D的预充电(pre-charge)时间为15ns,充电保持时间为15us,所以延时程序不易设置过长,此处设置7us。在充分遵守SCCB协议的基础上编写配置OV7620目标寄存器的软件代码,图3-5、3-6是写入和读出寄存器

41、值的软件流程图。发送起始信号SIO_C和D电平是否正常发送从机ID号字节从机是否应答发送寄存器号字节从机是否应答发送寄存器值字节从机是否应答总线停止YYYYNNNN图3- 5 对OV7620内寄存器写操作发送起始信号SIO_C和D电平是否正常发送从机ID号字节从机是否应答发送寄存器号字节从机是否应答读一字节总线停止YYNN总线停止发送从机ID号字节拉低SIO_D(确认)读一字节拉高SIO_D(非确认)图3- 6对OV7620内寄存器读操作3.3 图像采集模块的软件设计采集一帧图像数据的一般流程如图3-7。使能VSYNC对应的外部中断0VSYNC负跳沿?使能HREF对应的外部中断1HREF高电平

42、?NYYN使能PCLK对应的定时器捕获脚中断PCLK正跳沿?Y采集一个像素点是否采完一行?N初始化一帧图像采集完N是否采完一帧?YYN图3- 7 一帧图像采集流程图图3- 8 AL422写数据时序图以写入AL422数据为例,如图3-8为ALL422写数据时的时序图,不难看出当/WE正跳沿表征了写入数据的开始,而后每遇到一个WCK正跳沿便出发DI07写入AL422一字节数,二者的逻辑关系与HREF和PCLK几乎相同。如此便利用了AL422高频率响应的写入时序信号WE和WCK完成了对HREF和PCLK的捕获。整个写FIFO的软件流程设计如图3-8。开始VSYNC有效?使能VSYNC对应的外部中断0

43、HREF有效?WEE置位,使能FIFO的写使能WEPCLK有效?WCK有效写入8位数据YYYNNN图3- 9 写入AL422 8位数据将FIFO数据读入LPC2478则较为容易,直接把AL422与读出操作有关的两个时序信号RRST和RCK与GPIO相连,用软件模拟高低电平的方式即可获得缓冲后的图像数据,将8位数据写入AL4228流程如3-9所示。3.4 处理显示模块的软件设计3.4.1 片外SDRAM存储驱动设计由于LPC2400开发板拥有SDRAM控制器,因此硬件电路连接正确后,只需要初始化外部总线和配置好SDRAM控制器各项参数,进行初始化后就可以把SDRAM当做SRAM来适用了操作方法如

44、图3-10:1 配置LPC2400的外部总线由于系统上电后,LPC2400的管脚会恢复默认设置,因此要使用它来控制SDRAM芯片,必须对其管脚进行相应配置,以下是相应程序代码:PINSEL6 = 0x55555555; /D0D15PINSEL8 = 0x15555555; /A0A14PINSEL9 |= 0x00040000; /nWEPINSEL5 = 0x05010115; /配置nCAS,nRAS,nDYS,nCKEOUT0EMCControl |= 0x10; /禁止镜像2 配置SDRAM控制器各种时序参数查看HY57V561620的数据手册,可以清楚看到其各项的动态演示参数要求,

45、在此不再赘述。3 初始化SDRAMSDRAM操作方法配置外部总线根据SDRAM芯片数据手册配置参数SDRAM初始化当做SRAM使用图3- 10 SDRAM操作方法初始化过程主要分为以下几个步骤:l 时钟稳定后,SDRAM要求至少等待100us,期间可以发出NOP命令l 执行一条对所有Bank进预充电的命令l 至少等待tRP个时钟周期l 执行8次自动刷新命令,刷新周期为tRFCl 设置模式寄存器MR(Mode Register)l 设置完MR后,等待tMRD个时钟周期后,SDRAM正常工作代码程序部分如下:/*使能时钟,CLKOUT运行输出控制时钟,发送NOP命令*/EMCDynamicControl = 0x0000083;Dela

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论