首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于DM642的视频处理系统设计与实现
来源:本站整理  作者:佚名  2009-03-10 09:12:02




2.5 I2C总线
    I2C总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和器件引脚的数量,降低了互联成本。它支持多主控,其中任何能够进行发送和接收的设备都可以成为主控端。
    I2C总线由数据线SDA和时钟SCL构成串行总线,可发送和接收数据,在CPU与被控IC之间、IC与IC之间双向传送。在数据传送过程中共有3种信号,分别是开始信号、结束信号和应答信号。其中,开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据;应答信号:接收数据的IC在接收到8 bit数据后,向发送数据的IC发出特定的低电平脉冲。表示己收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况判断是否继续传输信号。若未收到应答信号,则认为受控单元出现故障。
    DM642集成有一条I2C总线.DM642为总线的主设备。系统用I2C总线连接了以下从设备:2路视频解码器SAA7113H的控制口、1路视频编码器SAA7105H的控制口和1路实时时钟RTC。每个I2C总线的从设备均对应一个从设备地址,I2C总线以此从设备地址区分所访问的是哪个从设备。DM642通过I2C总线配置上述器件的寄存器。
2.6 网络接口
    DM642的网络接口由EMAC与MDIO两部分组成的。其主要功能有:符合IEEE802.3协议;支持传媒无关接口(MII);8个独立的发送与接收通路;同步的10/100 Mbit的数据操作;广播及多帧的传送。
    系统选用LXT971ALC作为10/100Base一TX以太网收发器。LXT971ALC的MII接口与DM642的MII接口对接。DM642的MII不支持TXER,它通过求反发送帧CRC来指出网络错误,所以LXT971ALC上的TXER引脚直接接为无效。系统只采用10/lOOBase-TX方式,信号经Hll02 1:1变压器变换成TX+、TX一、RX+和RX一信号,连接到RJ45连接器上。RJ45连接器选用406549一l,其上带2个LED指示灯,绿色LED,用作指示连接状态;黄色LED正常情况下用于指示数据传输。

3 系统调试
3.1 视频通道的驱动
   
系统中视频解码通道使用SAA7113,编码通道使用SAA7105H。这2个器件需要经过寄存器配置才能正常工作,因为寄存器数量众多,直接逐个配置寄存器相当复杂。系统开发了基于DSP/BIOS的应用程序,可以调用FWID API函数,实现对视频通道的驱动。以下是几个接口函数的使用说明:
    (1)初始化工作 FVID_croat(name,mode,*status,
optArgs,*attm)参数说明:String name:device driver的名字,该device driver在DSP/BIOS中定义;Int mode:指定设备的打开模式为输入/输出;Int*status:该参数是application送给mini—driver的一个状态指针,由mini—dIiver来返回状态的;PtroptArgs:用于初始化FVID channel的具体参数,用结构体的形式打包,并将指向该结构体的指针传送给mini—driver进行处理;FVID_Attrs *attrs:FVID_Attrs结构参数为空,表示FVID_alloc,FVID_free,FVID_exchange calls为非block形式,无论成功与否,立刻返回。
    (2)发送控制命令到mini—driver FVID_control(disChan,VPORT_CMD_START, NULL)参数说明:FVID_HandlevidChan:fvid通道句柄;Int cmd:cmd命令;Ptr args:cmd命令附带的信息。该函数发送一个控制命令给mini—dTiver,将由mini—driver做相应的响应,在这里通知vport端口开始工作。
    (3)给VP口分配缓冲区FVID_alloc(fvidChan,bufp)参数说明:FVID_handle fvidChan:fvid通道句柄;Ptr bafp:分配的缓冲区指针。该函数从mini—ditver获取缓冲区指针。
    (4)FVID_exchange(fvidChan,bufp) 参数说明:FVID_handle fvidChan:fvid通道句柄;Ptr butp:交换的缓冲区指针。该函数将转换好的图像数据发送给mini—driver处理,并传回空缓冲区指针,FVID_exchange函数相当于顺序执行FVID_free和FVID_alloc函数。利用FVID的API函数可方便配置和驱动视频通道,实现视频的采集和输出。
3.2 VGA输出
    VGA(VideoGraphic Array)接口,即视频图形阵列,也叫DSub接口。VGA接口采用非对称分布的15针连接方式,其工作原理是将显存内以数字格式存储的图像信号在RAMDAC里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。视频编码器SAA7105H支持VGA输出,SAA7105H被配置为VGA输出时,送输出缓冲区的数据必须为RGB格式,而非YUV4:2:2。用户可以自行编写相应的转换函数,或者调用TI img64.lib库中的IMG_ycbcr422p_rgb565函数实现视频格式的转换。SAA7105H最高可实现XGA输出,即1 024x768分辨率。
3.3 程序从Flash的引导
   
在系统上调试程序时,利用仿真器把程序下载到SDRAM内执行。当程序调试完毕应用时,应该把程序烧写到外部Flash里,实现系统每次上电后程序从Flash引导加载自动运行,省去每次利用仿真器下载程序。
    DM642是以ROM方式引导系统的,当DSP上电或复位时,内核处于复位状态,并自动以ROM的读写时序从Flash的第0页起始地址开始复制lK字节的代码到DSP的片内内存起始地址为O的地址空间。然后释放CPU,使其从0地址开始运行程序。即第一次引导只能引导1K字节的程序。执行第一步引导的程序,将用户自己的程序从Flash中搬到运行的地址中,然后进入c_int00,完成整个BOOT过程。
    Flash烧写根据不同的硬件设计,烧写步骤略有不同,但基本过程相同。系统Flash的烧写过程:①把引导程序文件boot.asm添加到要烧写的工程中,在BIOS中添加BOOT段,修改相应的CMD文件,编译原工程生成新的.out文件;②使用hex6x工具把生成的COFF格式的.out文件转化为.hex文件;③用FlashBurn建立.ccd文件;④用FlashBurn打开建立的.ccd文件,先擦除Flash,然后烧写Flash。
    按照上述步骤烧写程序到Flash,在系统上电后程序将自动执行。应该注意的是,烧写程序后的系统仿真环境将难以进去,解决的办法是一边反复按复位键,一边打开仿真环境则可进去。DM642有多种引导,本系统默认方式为EMIFA通过8-bit Flash引导。

4 结语
   
系统研究并实现了一个通用的基于DM642的视频处理系统。采用了针对多媒体应用开发的专用媒体处理芯片DM642,该芯片配有丰富的外设接口,减小了系统硬件设计的复杂度,提高了系统的性价比;通过外接的SDRAM编程实现MPEG一2、MPEG-4、H.264等多种视频压缩编解码算法,灵活性大,实用性强,优于专用的视频编解码系统;由于DM642的高速运算能力,实时性强也是系统的一大优点。该系统作为视频处理的通用平台,在此基础上增加一些其他功能即可应用于交通、监控等诸多领域。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:183,445.30000 毫秒