RSS

嵌入式多媒体监控系统中压缩/解压卡的设计02

来源:网络 作者:佚名 时间:2008-07-24 Tag:嵌入式   多媒体监控系统   中压缩   解压卡设计   点击:

SM_PC2VW 的格式如表1 所示。表中,CMD 为命令码, 分别是: 读数据(CMD=1) 、发IOCTL 码(CMD=2) 、写数据(CMD=3) 、打开命令(CMD = 4) 和关闭命令(CMD=5) ; Int Flag为中断标识, Int Flag 为1 ,则VW2010 执行完CMD 定义的任务后将产生一个中断,为0 则不产生;Device Handle 由打开命令从firmware 中获得; 当CMD不同时,Parameters 有不同的含义,后面将详细讨论。

 

 

 

 

 

 

 

 

SM_PC2VW 的格式

  SM_VW2PC 的格式如表2 所示。ACK/NACK的含义是:如果SM_PC2VW 中Int Flag 为1 ,且命令CMD 成功执行,则为ACK;如果SM-PC2VW 中Int Flag 为1 ,且执行命令CMD 失败,则为NACK,并将错误码保存在Return Code 字段。

SM_VW2PC 的格式

  在发送其它命令之前必须先发送打开命令,此时,Device Handle 字段为0 ,Parameters 字段为打开类型( TSMUX , PSMUX , TSDEMUX 或PSDE-MUX) 。如果该命令成功执行, 则会在SM_VW2PC 的Device Handle字段返回所分配的Device Handle ;在SM_VW2PC 的Parameters字段返回辅助参数区的首地址(下面简称为X) 。辅助参数区由firmware 在encoder SDRAM 中动态分配,用于传递跟命令相关的参数。在结束使用共享内存区后,必须发送关闭命令以释放辅助参数区。

  3.1.2 信号灯

  由于共享存储区是临界资源,所以必须提供一种机制保证VW2010 和host 互斥地使用它们。为此,VW2010 分别给SM_PC2VW 和SM_VW2PC 提供了两个硬件信号灯, 由寄存器REG_INT1 和REG_INT2 的最低位实现。VW2010 为信号灯定义了两种操作: 写操作:向REG_INT1 或REG_INT2 的最低位写入1 ,释放共享存储区。读操作:返回REG _INT1 或REG_INT2 的最低位的值,同时清该位为0 。

  3.1.3 host 到VW2010 的中断

  host 通过向VW2010发中断的方式通知VW2010 从共享存储区读取主机命令。VW2010用寄存器REG_DHIU5实现host 到VW2010 的中断。REG_DHIU5 的最低四位用于保存中断计数,第五位为中断屏蔽位。host 向REG_DHIU5 每写一次, 中断计数加1 ; VW2010 每读REG_DHIU5 一次,中断计数减1 。只要中断计数不为0 ,则VW2010 内部的中断请求信号一直保持有效。

  3.2 VW2010 数据读写和IOCTL 方法(method) 的实现

  数据读写和IOCTL 的实现依赖于上述的共享存储区机制,在下面的讨论中,我们假设已经通过打开命令(CMD = 4) 从firmware 获取了DeviceHandle 和辅助参数区(首地址为X) 。

  3.2.1 数据读写方法的实现

  VW2010 采用DMA 方式实现与应用空间的数据交换。读/ 写命令用于建立从VW2010 到host 的DMA 通道并启动数据传输,它并不等待数据传输完成, 而是让DMA 传输在后台运行, 当DMA 传输结束后,VW2010 会中断主机。

  当应用程序要读写数据时,它首先会分配一些缓冲区用于保存读写数据。这些缓冲区可以用首地址和长度标识,如可以用(Address ,Len) 代表首地址为Address、长度为Len的缓冲区。在发送读/写数据命令时,SM_PC2VW 的Parameters 字段为X ,辅助参数区的内容为应用空间数据缓冲区的信息,其格式即为上述的首地址和缓冲长度标识对(Address ,Len) 。VW2010 根据这些缓冲区信息建立到应用空间的DMA 通道。读数据方法的程序流程图如图2 所示,其中,左边是系统调用部分的流程图,右边则是中断服务部分的流程图。

读数据方法流程图

图2 读数据方法流程图


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点