s3c2440的摄像接口应用

s3c2440的摄像接口应用

ID:22888744

大小:82.51 KB

页数:20页

时间:2018-11-01

s3c2440的摄像接口应用_第1页
s3c2440的摄像接口应用_第2页
s3c2440的摄像接口应用_第3页
s3c2440的摄像接口应用_第4页
s3c2440的摄像接口应用_第5页
资源描述:

《s3c2440的摄像接口应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、s3c2440提供了一个摄像接口,使开发人员很容易地实现摄像、照相等功能。摄像接口包括8位来自摄像头的输入数据信号,一个输出主时钟信号,三个来自摄像头的输入同步时钟信号和一个输出复位信号。摄像接口的主时钟信号由USBPLL产生,它的频率为96MHz,再经过分频处理后输出给摄像头,摄像头再根据该时钟信号产生三个同步时钟信号(像素时钟、帧同步时钟和行同步时钟),反过来再输入回s3c2440。        s3c2440仅仅提供了一个摄像接口,因此要实现其功能,还需要摄像头。在这里,我们使用OV9650。OV9650内部

2、有大量的寄存器需要配置,这就需要另外的数据接口。OV9650的数据接口称为SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的SIO_C,另一个是用于传输数据信号的SIO_D。SCCB的传输协议与IIC的极其相似,只不过IIC在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而SCCB一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是Don’t-Care位(即不必关心位),在读周期中是NA位。SCCB定义数据传输的基本单元为相(phase),即一个相传输一个字节数据。SCCB

3、只包括三种传输周期,即3相写传输周期(三个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。当需要写操作时,应用3相写传输周期,当需要读操作时,依次应用2相写传输周期和2相读传输周期。因此SCCB一次只能读或写一个字节。下面我们就用s3c2440的IIC总线接口分别与OV9650的SIO_C和SIO_D相连接来实现SCCB的功能。具体的读、写函数为: //配置IIC接口rGPEUP=0xc000;             

4、  //上拉无效rGPECON=0xa0000000;            //GPE15:IICSDA,GPE14:IICSCL  //IIC中断void__irqIicISR(void){       rSRCPND

5、=0x1<<27;       rINTPND

6、=0x1<<27;       flag=0; } //写操作//输入参数分别为要写入的内存地址和数据voidWr_SCCB(unsignedcharwordAddr,unsignedchardata){       //3相写传输周期       

7、//写OV9650设备从地址字节flag=1;       rIICDS=0x60;              //OV9650设备从地址为0x60       rIICSTAT=0xf0;       rIICCON&=~0x10;             while(flag==1)              delay(100);             //写OV9650内存地址字节       flag=1;       rIICDS=wordAddr;       rIICCON&=~0x10;     

8、  while(flag)              delay(100);             //写具体的数据字节       flag=1;       rIICDS=data;       rIICCON&=~0x10;       while(flag)              delay(100);                           rIICSTAT=0xd0;         //停止位       rIICCON=0xe3;          //为下一次数据传输做准备    

9、         delay(100);                  } //读操作//参数分别为要读取的内存地址和数据voidRd_SCCB(unsignedcharwordAddr,unsignedchar*data){       unsignedchartemp;             //2相写传输周期       //写入OV9650设备从地址字节       flag=1;       rIICDS=0x60;       rIICSTAT=0xf0;       rIICCON&=~0x10;

10、       while(flag)              delay(100);             //写入内存地址字节       flag=1;       rIICDS=wordAddr;       rIICCON&=~0x10;       while(flag)              delay(100);     

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。