基于USB2460数字相机的设计毕业设计.docx
《基于USB2460数字相机的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于USB2460数字相机的设计毕业设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于USB2460数字相机的设计毕业设计
(此文档为word格式,下载后您可任意编辑修改!
)
编号
本科生毕业论文
基于USB2.0数字相机的设计
TheSubjectofUSB2.0basedonthedesignofdigitalcamera
2009年6月
摘要
随着电脑外设和数码产品的不断发展,各种设备与PC机之间的接口成为当前需要解决的难题。
USB是由Intel,Compaq,Microsoft等七家着名的计算机和通信公司于1994年推出的通用串行总线,它的出现大大简化了PC机和外设的连接过程,使PC机接口的扩展变得更加容易。
USB具备其它总线无法比拟的优点,比如支持热插拔、传输速度快且稳定、低耗能等等。
目前,USB己成为微机与外围设备通信的首选接口。
尤其是USB2.0协议的发布,是USB技术发展史上的里程碑,它在USB1.0的基础上有了质的提高,其理论传输速度可达到480Mbs,为计算机与外设的高速数据交换提供了可能。
本文对USB接口技术的基本原理进行了较详尽的研究,详细介绍了基于USB2.0的应用系统的基本组成框架。
考虑到数字成像和USB技术都是近些年来的热点技术,本文以一种USB2.0的图像采集系统为实例,给出了该系统的解决方案。
文章首先概括的介绍了USB形成的背景、USB接口的优点、USB层次结构、USB的通信协议、USB的数据传输方式等等。
然后,重点论述了基于USB2.0技术的图像采集系统的设备端和主机端软、硬件的设计与实现方法。
在硬件方面,在对USB接口芯片CY7C68013和CMOS图像传感器芯片OV7620的功能结构进行分析的基础上,提出了系统硬件电路的设计方案,就主要功能模块的实现进行了论述。
在本设计中,选用OV7620实现视频图像的采集,选用Cypress公司的USB接口芯片CY7C68013实现图像采集系统中的接口功能,完成图像数据的传输;在软件方面,详细地介绍了USB接口芯片的固件程序、驱动程序的开发流程。
关键词:
USB2.0,OV7620,CY7C68013,固件,驱动程序
Abstract
WiththedevelopmentofPCperipheralsanddigitalproducts,theinterfaceand
connectionbetweenthemandPCwasproposedbyIntel,ComPaq,MicrosotfnadohtereomPnaiesin1994,itsemergencesimplifiedtheconnectionbetweenPCandPCperipherals,andmadePCinterfaceextensiontobecomemoreeasier.Itotherbus,suchassupportingofspeedandlowexpense.NowUSBwidelyusedinPCperipheralsanditmanybuses.Especiallythe2.0revisionoftheUSBspecificationisissued,whichisthelandmakintheUSBspeedIs480Mbs.Soit'sPossibletorealizethespeedbewteenPCandthePeripherals.
ThispaperresearchedthebasicprincipleofUSBtechnologyindetail,andintroducedthebasicframeofanapplicationsystembasedonUSB2.0indetail.InconsiderationofthedigitalimagingandUSBtechnologyarerecentyears,weselectaUSB2.0imageacquisitionsystemtobeexample,andgivethesolutionofthatsystem.Thepapergeneralizedthedevelopingbackgroundandthe
advantagesofUSB,themeansofdataetcbriefly.Thenthedesignandimplementationofthebothimageacquisitionsystembasedon
USB2.0aredemonstratedindetail.Inandtheimplementationofthemainfunctionalmodulesisintroducedindetail,Inthisdesign,weselectCMOSimagesensorOV7620tocompletetheimageacquisition,andselectUSBinterfacechipCY7C68013tocompletetheimagetransmission.Insoftwaresegmentfirmwaredesignanddevicedriverareintroducedindetail.
KeyWords:
USB2.0,OV7620,CY7C68013,Firmware,Drvier
目录
第一章:
绪论1
1.1USB总线技术发展过程及现状1
1.2USB总线的优势1
1.3图像采集系统的概述1
1.4论文主要研究内容和主要工作2
第二章:
系统框架3
2.1USB2.0规范概述3
2.2系统的硬件构成8
第三章系统硬件设计12
3.1系统总体方案与基本原理12
3.2图像采集电路设计12
3.3EEPROM电路设计13
3.4CY7C68013与0V7620连接14
3.5电源设计15
3.6电源转换电路设计15
3.7时钟电路的设计16
①使用外部晶体振荡电路和内部振荡器。
晶体连接到单片机芯片的X1和16
3.8SRAM电路的设计17
第四章系统软件设计19
4.1图像采集系统设计19
4.2USB接口芯片的初始化程序设计21
SYNCDELAY;21
SYNCDELAY;22
SYNCDELAY;22
4.3USB设备请求的处理程序22
4.4CY7C68013的I2C子程设计23
4.5GPIF接口编程25
4.6批量传输的实现26
SYNCDELAY;27
SYNCDELAY;27
SYNCDELAY;27
4.7USB设备描述符27
第五章结论30
第六章参考文献31
致谢32
第一章:
绪论
1.1USB总线技术发展过程及现状
作为计算机外设接口技术的重要变革,USB在传统计算机组织结构的基础上,引入了网络的拓扑结构及其设计思想[1]。
USB具有终端用户的易用性、广泛的应用性、带宽的动态分配、优越的容错性能、较高的性能价格比等特点,方便了外设的增添,适应了现代计算机多媒体的功能拓展,己逐步成为计算机的主流接口。
USB总线从诞生起便引发了一场产业革命。
它以灵活、方便、应用范围广、通信稳定、成本低廉等优点,使得PC的接口纷纷从串行口和并行口转到USB总线上来。
SB2.0标准于2000年4月提出[2],它的传输速率达到了480Mbs,比它之前的USB1.1标准的12Mbs快了40倍。
速率瓶颈的突破使USB的应用领域得到了很大的拓展,原来由于速率限制而不适合用USB的大容量硬盘、高品质摄像头、高分辨率扫描仪等设备都可以使用USB2.0接口。
1.2USB总线的优势
USB[3](UniversalSerialBus)通用串行总线由Intel提出,它是一种快速的、双向的、同步传输的、廉价的并支持热拔插的串行接口。
USB技术的应用是计算机接口技术的重大变革,同以上两种接口总线相比,USB具有不可比拟的优点:
1.USB可连接多达127个外设,简单方便的扩大了PC机接口能力。
2.对于PC用户来说,USB实现了真正的即插即用和热插拔,当用户需要将外设连接到PC机上进行功能扩展时,只需要将外设的连线插入PC机的USB接口上就可以了,其余由操作系统来完成。
3.USB规范具有良好的向下兼容性,如USB2.0的主机控制器就能很好地兼容USB1.1的产品。
4.USB技术具有开放性,是非营利性的规范,得到了广泛的工业支持。
5.不管是硬件设计或是数据传输的协议,USB都很稳定。
USB驱动程序、接收器以及电缆的硬件规范,都会尽量减少噪声干扰产生的错误数据。
随着USB2.0版本的发布,USB越来越流行,它己经成为一个标准接口。
目前市场上出售的所有PC机都支持USB,而且很多外设只推出了USB版本,如移动硬盘等。
可以预见,USB的应用肯定会越来越广泛,其传输速率也会越来越高。
1.3图像采集系统的概述
随着数码产品的不断普及,摄像头的应用范围在不断的扩大,摄像头中的核
心部件---图像传感器的用量也在日益增长,由于CCD图像传感器成本等因素的限制,近几年CMOS图像传感器的用量急剧上升,特别在手机、数码照相机的应用。
与CCD相比,CMOS器件则是一种可大规模生产的集成电路,具有成品率高、价格低等特点。
相对于CCD而言,CMOS器件技术有一些明显的特点[4]:
其一,集成度高;其二,价格低廉,CMOS器件结构简单,从而成品率高,制造成本低。
因此,大量的摄像头生产商都选用了CMOS图像传感器作为其摄像头的传感器。
随着CMOS摄像头的图像象素增加,对传输摄像头数字图像的通道速度要求越来越高。
对百万象素以上的摄像头,就要求几十兆的传输速度。
因此,研究高速的数字图像传输接口对CMOS数字图像摄像头的生产和应用有着很重要的意义。
1.4论文主要研究内容和主要工作
本论文主要研究了USB总线技术,包括USB形成的背景、USB接口的优点、USB层次结构、USB的通信协议、USB的数据传输方式等等。
在充分研究了USB2.0协议的基础上,总结出基于USB2.0的应用系统的基本组成框架。
并以此为依据,提出了一种USB2.0的图像数据采集系统实现方法。
整个系统在功能上分为采集、传输和显示三个部分。
利用嵌入式CPU采集CMOS图像传感器芯片输出的数字图像信号,然后把数据传输到主计算机(PC机),最后PC机将重建图像在屏幕上显示出来。
第2章:
系统框架
2.1USB2.0规范概述
2.1.1USB的特性
(1)USB的即插即用。
USB实现了自动配置,它不需要用户手工配置IO地址和中断请求(IRQ)。
当USB设备连接到计算机上时,操作系统会自动检测该设备,并加载适合的驱动程序。
(2)支持热插拔。
用户可以把USB设备连接到一台正在运行的计算机上。
(3)最大支持127个物理设备(包括根集线器)的连接。
用USB连接的外围设备数目最多达127个,共7层。
在这7层中,除根集线器外,最多支持5个集线器的级连,即一个USB设备最多可以经过5个集线器连接至主机。
(4)灵活供电,USB电缆具有传送电源的功能,支持节约能源模式,耗电低,能够采用总线供电。
USB总线提供最大为5V,500mA电流,对于功耗较小的设备来说这是非常有效的。
另外,USB支持低功耗模式,如果连续3ms没有总线活动,USB就会自动进入挂起状态,以节省电能消耗。
(5)支持主机和外围设备之间多个数据和信息流的传输。
UBS支持三种类型的传输速率:
1.5Mbs的低速传输、12Mbs的全速传输和480Mbs的高速传输;USB共有4种传输方式:
控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。
(6)USB规范具有良好的向下兼容性,如USB2.0的主机控制器就能很好地兼容USB1.1的产品,操作系统在检测到全速USB设备接入时,会自动按照12Mbs的速率进行传输,而其他高速USB设备,并不会因为全速设备的连接而减慢它们的传输速率。
[5]
2.1.2应用范围分类
USB支持三种类型的传输速率:
1.5Mbs的低速传输、12Mbs的全速传输和480Mbs的高速传输;4种传输类型:
控制传输、中断传输、批量传输和同步传输,这使其能适合多种外设的需要。
表2-l[5]按照数据传输速率对USB设备进行了分类,可以看出480Mbs可以包括高速、全速、低速的情况。
表2-1USB应用范围分类
2.1.3USB系统构成
USB系统可以从三个方面进行描述:
三个逻辑层:
USB互连、USB主机和USB设备。
USB系统分为三个逻辑层[6]:
功能层、USB设备层和USB总线接口层,且每一层都由主机和UBS设备的不同功能模块组成[9],如图2-1所示。
主机互连物理设备
客户软件功能层
USB设备层
USB总线接口层
实际通信流逻辑通信流
图2-1USB系统的分层
2.1.3.1USB总线拓扑结构
USB总线的物理连接是一种分层的星型拓扑结构[9],如图2-2所示。
集线器(:
远程唤醒功能使能的标志。
这个标志说明了设备能够由PC机来唤醒。
(3)Selfwr:
自我供电模式的标志。
这个标志表示这个设备是自我供电,而非总线供电。
(4)GotSUD:
端点0是否收到SETUP封包的检测标志。
当主机检测到该标志位为真时,就会调用专门的命令处理函数进行分析和处理。
(5)configuration:
表示当前所选择的设备配置。
主机可以通过发送set_configuration()请求进行设置。
(6)AlternateSetting:
表示当前所选择的替换值。
全局变量的初始化完成后,主程序调用TD-Init函数。
在该函数中对USB接口芯片中各种寄存器进行设置,以使CY7C68013工作在用户要求的状态。
其主要实现代码如下:
voidTD-Init(void)
{
CPUCS=0x10;使CPU工作于48MHz,不驱动CLKUOT输出
GpifInit();初始化GPIF接口
EP2CFG=oxE0;配置EPZ为四缓冲的批量输入端点,其最大包为512
字节EP4,EP6和EPS未被使用
SYNCDELAY;
EP4CFG=0x20;清除有效位
SYNCDELAY;
EP6CFG=0x62;清除有效位
SYNCDELAY;
EP8CFG=0x60;清除有效位
SYNCDELAY;
FIF0RESET=0x80;
SYNCDELAY;
FIF0RESET=0x02;重置FIF02
SYNCDELAY;
FIF0RESET=0x04;重置FIF04
SYNCDELAY;
FIF0RESET=0x06;重置FIF06
SYNCDELAY;
FIF0RESET=0x08;重置FIF08
SNYCDELAY;
FIF0RESET=0x00;
SYNCDELAY;
EP2FIF0CFG=0x0c;配置FIF0为8位数据总线,自动传输
SYNCDELAY;
EIE|=0x01;使能I2C中断
SYNCDELAY;
EP2AUT0INLENH=0x02;设置自动提交数据包大小,512字节
SYNCDELAY;
EP2AUT0INLENL=0x00;
}
4.3USB设备请求的处理程序
设备请求类型是长度为1字节的类型码,包含传输方向、类型、接收方等信息,可以防止传输数据是发生堵塞现象。
如图4-2所示:
图4-2设备请求处理流程图
4.4CY7C68013的I2C子程设计
CY7C68013中有三个I2C总线寄存器[2],用来管理I2C总线的工作,见表4-l[14]。
其中I2DAT为8位数据寄存器,负责数据的读入或送出;I2TCL为配置寄存器,负责配置总或;I2C为控制状态寄存器,负责控制传输和报告各种状态。
1表4-1I2C总线控制器寄存器
开始控制位TSART:
当TSART位被配置为1,写入数据到工ZADT,开启I2C总线数据传输。
此位在接收器的应答信号期间自动清零。
停止控制位STOP:
当STOP位被配置为1,当前总线数据传输完后,停止I2C总线数据传输。
此位在总线停止传输数据后自动清零。
错误状态位BERR:
当总线上出现错误时,BERR位被置为1。
此位也可自动清零。
应答信号状态位ACK:
ACK位为1时,表示接收器成功接受数据;反之,表示数据传输失败。
此位在读传输时被忽略。
状态位DONE:
当完成1个字节数据传输后,CY7C68013设置DONE位,并产生中断。
当读或写I2ADT寄存器时,此位自动清零。
图4-2I2C程序的流程图
在接口电路中,CY7C68013是通过I2C总线对图像传感器OV7620内部寄存器进行配置,因此I2C子程序的功能就是完成CY7C68013对OV7620配置操作。
配置的方法采用I2C总线接口的写入操作,先发送所使用的OV762O的SCCBDI写地址42H,紧接着发送需要写的寄存器的地址,再发送数据。
在固件设计中,使用了I2C中断,对OV7620的配置操作由I2C中断服务程序完成。
I2C中断是FX2中断系统中13种中断之一。
当I2C总线上传输完1B数据且DONE位被置为1时,产生该中断。
USB设备完成枚举后,用户通过主机应用程序发出配置OV7620的请求,该厂商请求激活设备请求分析函数SetupCommand(),从而进入用户自定义命令函数DR_vendorCommand(),在该函数中开启I2C总线并将从机地址写入I2DAT中,一个字节数据传输完毕后产生I2C中断,进入I2C中断服务程序i2c_isr(),完成对OV7620中寄
存器的配置。
图4-2为I2C子程序的流程图。
4.5GPIF接口编程
GPIF允许CY7C68013和外部设备的8位或16位并行接口直接连接。
这种连接是通过以下的外部引脚实现的,即6个可编程控制输出引脚CTL[5:
0],5个准备输入引脚RDY[5:
0],8位16位的双向数据总线DF[15:
0]和9位的地址总线GPIFADR[8:
0]。
下面是初始化GPIF引擎的代码:
VoidGpifInit(void)
{
BYTEi;
IFCONFIG=0x42;设置CY7C680131作在GPIF接口模式下
GPIFABORT=0xFF;终止任何未定波形
初始化GPIF配置寄存器
GPIFREADYCFG=InitData[0];
GPIFCTLCFG=InitData[1];
GPIFIDLECS=InitData[2];
GPIFIDLECTL=InitData[3];
GPIFWFSELECT=InitData[5]:
GPIFREADYSTAT=InitData[6];
AUTOPTRSETUP=0x07;
波形描述符存放到GPIF波形寄存器中
APTR1H=MSB(&WaveData);
APTR1L=LSB(&WaveData);
AUTOPTRH2=0xE4;
AUTOPTRL2=0x00;
for(i=0x00;i<128;i++)
{EXTAUTODAT2=EXTUATODAT1;}
...............
}
4.6批量传输的实现
对图像数据的传输使用的GPIF的FIF0读来完成的,在主程序的用户函数TD_Po11()中进行处理。
为了最大限度的增大USB2.0的带宽,端点2设置为自动传输方式((AUTOIN=1),自动传输计数器为512字((EP2AUTOINLENH=0x02,EPZAUTOINLENL=0x00),在图像数据传输允许后,数据传输之前需检测GPIF接口是否处于空闲状态,当条件满足后,再判断端点2缓冲区是否有足够空间接收最大数据包长度的字节,这是因为每次传输总是传输最大数据包长度的数据(512字节)。
在启动GPIF传输后,数据读入端点2缓冲区,由于端点2设置为自动传输模式,不需要每包数据都指明传输到主机的字节数,即微处理器在启动GPIF传输后完全不干预整个传输过程。
FIF0读传输开始后,FIF0读波形会被反复的调用,每次波形触发都会传输一个字节字,直到事务计数器GPIFTCB3:
0到期,即GPIF将自动传送事务计数器中指定数量的字节字。
之后,GPITFRIG寄存器的DONE位被置1,表明GPIF数据传输事务结束,GPIF处于空闲状态。
执行一个FIF0读的过程如下:
(1)设置事务计数器的初值。
事务计数器的最大值为4G字节字,将要传送的字节字数写入事务计数器中。
然后设置GPITFRGI寄存器的RW位为1并在EP1:
0中写入接收数据的端点号EP2,以触发FIFO读波形。
(2)检查GPIFTRIG寄存器的DONE位是否为1,为1表示GPIF空闲,此时如果RDY0、RDY1输入信号满足数据传输条件且FIF0缓冲区不满,就可以触发FIF0读波形。
之后,在波形的每个idle状态检查事务计数器的状态,以确定波形是否结束。
(3)添加将数据从FIF0传送到USB的代码,自动方式:
8051不参与数据的传输,仅需要将要传送的字节数写入寄存器EPxAUTOINLENH:
L中,FX2就会自动地将数据从FIF0传送到USB。
其主要代码如下:
if(GPIFTRIG&0x80)GPIF是否空闲
{
if(EP24FIF0FLGS&0x01)FIF0缓冲区是否
{
EP2FF=1,表示FIF0满
}
e1se
{
EP2FF=0,表示FIF0不满,缓冲区可用
SYNCDELAY;
GPIFTCB3=0x00;设置GPIF事务计数器初值
SYNCDELAY;
GPIFTCB2=0x04;
SYNCDELAY;
GPIFTCB1=0xB0;
SYNCDELAY;
GPIFTCB0=0x00;
SYNCDELAY;
GPIFTRIG=GPIFTRIGRD|GPIF_EP2;触发EP2FIF0读传输
}
}
4.7USB设备描述符
在dscr.a51文件中,定义了系统所使用的各种USB描述符。
包括设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。
而且,这些描述符表要按照一定的顺序存放,以便于寻址。
一般按照下面的顺序进行列表:
设备描述符
配置1描述符
接口1描述符
端点1描述符
端点2描述符
............
接口2描述符
端点1描述符
...........
配置2描述符
字符串描述符1
字符串描述符2
..........
群组描述符1
群组描述符2
............
Null描述符
下面是本设计中的几个描述符:
(1)设备描述符
dbDSCR_DEVICE_LEN;;设备描述符长度18字节
dbDSCR_DEVICE;;描述符类型,1代表设备
dw0002H;;规范版本USB2.0
db00H;;设备类
db00H;;设备子类
db00H;;设备协议
db64;;最大信息包大小
d