sc网卡接口扩展.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sc网卡接口扩展

s3c2440提供了一个摄像接口,使开发人员很容易地实现摄像、照相等功能。摄像接口包括8位来自摄像头的输入数据信号,一个输出主时钟信号,三个来自摄像头的输入同步时钟信号和一个输出复位信号。摄像接口的主时钟信号由USB PLL产生,它的频率为96MHz,再经过分频处理后输出给摄像头,摄像头再根据该时钟信号产生三个同步时钟信号(像素时钟、帧同步时钟和行同步时钟),反过来再输入回s3c2440。 ? ???????s3c2440仅仅提供了一个摄像接口,因此要实现其功能,还需要摄像头。在这里,我们使用OV9650。OV9650内部有大量的寄存器需要配置,这就需要另外的数据接口。OV9650的数据接口称为SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的SIO_C,另一个是用于传输数据信号的SIO_D。SCCB的传输协议与IIC的极其相似,只不过IIC在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而SCCB一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是Don’t-Care位(即不必关心位),在读周期中是NA位。SCCB定义数据传输的基本单元为相(phase),即一个相传输一个字节数据。SCCB只包括三种传输周期,即3相写传输周期(三个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。当需要写操作时,应用3相写传输周期,当需要读操作时,依次应用2相写传输周期和2相读传输周期。因此SCCB一次只能读或写一个字节。下面我们就用s3c2440的IIC总线接口分别与OV9650的SIO_C和SIO_D相连接来实现SCCB的功能。具体的读、写函数为: ? //配置IIC接口 rGPEUP = 0xc000;???????????????//上拉无效 rGPECON = 0xa0000000;????????????//GPE15:IICSDA,GPE14:IICSCL? ? //IIC中断 void __irq IicISR(void) { ???????rSRCPND |= 0x127; ???????rINTPND |= 0x127; ???????flag = 0;? } ? //写操作 //输入参数分别为要写入的内存地址和数据 void Wr_SCCB(unsigned char wordAddr, unsigned char data) { ???????//3相写传输周期 ???????//写OV9650设备从地址字节 flag =1; ???????rIICDS =0x60;??????????????//OV9650设备从地址为0x60 ???????rIICSTAT = 0xf0; ???????rIICCON = ~0x10; ?????? ???????while(flag == 1) ??????????????delay(100); ?????? ???????//写OV9650内存地址字节 ???????flag = 1; ???????rIICDS = wordAddr; ???????rIICCON = ~0x10; ???????while(flag) ??????????????delay(100); ?????? ???????//写具体的数据字节 ???????flag = 1; ???????rIICDS = data; ???????rIICCON = ~0x10; ???????while(flag) ??????????????delay(100); ???????????????????? ???????rIICSTAT = 0xd0;?????????//停止位 ???????rIICCON = 0xe3;??????????//为下一次数据传输做准备 ?????? ???????delay(100);?????????????????? } ? //读操作 //参数分别为要读取的内存地址和数据 void Rd_SCCB (unsigned char wordAddr,unsigned char *data) { ???????unsigned char temp; ?????? ???????//2相写传输周期 ???????//写入OV9650设备从地址字节 ???????flag =1; ???????rIICDS = 0x60; ???????rIICSTAT = 0xf0; ???????rIICCON = ~0x10; ???????while(flag) ??????????????delay(100); ?????? ???????//

文档评论(0)

penlai + 关注
实名认证
文档贡献者

会计从业资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月12日上传了会计从业资格证

1亿VIP精品文档

相关文档