首页 理论教育 视频捕获寄存器详解

视频捕获寄存器详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:表6-5列举了视频捕获模式的控制寄存器。图6-8视频捕获通道x状态寄存器在BT.656捕获模式中,VCXPOS和VCYPOS位分别表示HCOUNT和VCOUNT的值,这两个计数器用于记录最近接收到的像素。图6-11视频捕获通道x区域1终止寄存器在原始捕获模式中,把水平和垂直计数器合并为一个计数器,用于记录所有接收到的采样的数量。

视频捕获寄存器详解

表6-5列举了视频捕获模式的控制寄存器。TMS320DM642有3个视频端口外围设备,分别为VP0、VP1和VP2,基准地址分别为01C40000、01C44000和01C48000,表6-5中缩写名称最后的x表示VP0~VP2中的一个,该寄存器的绝对地址=基准地址+地址偏移量。例如,VC_STAT0、VC_STAT1和VC_STAT2的绝对地址分别为01C40100、01C44100和01C48100。

表6-5 视频捕获模式的控制寄存器

978-7-111-37346-9-Chapter06-17.jpg

1.视频捕获通道x状态(VCASTAT、VCBSTAT)寄存器

视频捕获通道x状态(VCASTAT、VCBSTAT)寄存器如图6-8所示,该寄存器表示视频捕获通道的当前显示状态,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-18.jpg

图6-8 视频捕获通道x状态寄存器

在BT.656捕获模式中,VCXPOS和VCYPOS位分别表示HCOUNT和VCOUNT的值,这两个计数器用于记录最近接收到的像素。F1C、F2C和FRMC表示区域或帧捕获完成,为了继续捕获,DSP就要根据选择的帧捕获方式把这些位清除。

在原始数据和TSI模式中,VCXPOS和VCYPOS位分别对应于24位数据计数器的低12位和高12位,该计数器用于记录接收到的数据采样的数量。FRMC位表示已经接收到一个完整的数据包,为了继续捕获,DSP就要根据选择的帧捕获方式把FRMC位清除。

2.视频捕获通道A控制(VCACTL)寄存器

视频捕获通道A控制(VCACTL)寄存器如图6-9所示,该寄存器实现对视频捕获通道A控制,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-19.jpg

图6-9 视频捕获通道A控制寄存器

3.视频捕获通道x区域1起始(VCASTRT1、VCBSTRT1)寄存器

捕获到的图像其实是输入图像的子集。视频捕获通道x区域1起始寄存器(VCAS-TRT1、VCBSTRT1)定义在区域1中捕获到图像的起始。VCxSTRT1如图6-10所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-20.jpg

图6-10 视频捕获通道x区域1起始寄存器

在BT.656或Y/C模式中,利用水平事件(通过VCxCTL中的HRST位选择)复位(置0)水平(像素)计数器,利用垂直事件(通过VCxCTL中的VRST位选择)复位(置1)垂直(行)计数器。当HCOUNT=VCXSTART和VCOUNT=VCYSTART时,区域1捕获开始。

在原始捕获模式中,VCVBLNKP位定义最小的垂直消隐周期。如果CAPEN的值比VCVBLNKP时钟周期长,就认为出现了一个垂直消隐期。当第一次捕获开始(在VCxCTL中设置VCEN位)时,如果设置了SSE位,那么直到对两个时间间隔计数之后才会开始捕获。这样在第一次捕获开始时,视频端口就可以与帧的顶点同步。

在TSI捕获模式中,当满足如下3个条件时,捕获就会开始:声明了CAPEN信号,清除FRMC位(在VCxSTAT中),探测到一个SYNC字节。

4.视频捕获通道x区域1终止(VCASTOP1、VCBSTOP1)寄存器

视频捕获通道x区域1终止(VCASTOP1、VCBSTOP1)寄存器分别定义在区域1中捕获到图像的终止、原始数据的终止或TSI数据包的终止。VCxSTOP1寄存器如图6-11所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-21.jpg

图6-11 视频捕获通道x区域1终止寄存器

在原始捕获模式中,把水平和垂直计数器合并为一个计数器,用于记录所有接收到的采样的数量。

在TSI捕获模式中,把水平和垂直计数器合并为一个数据计数器,用于记录所有接收到的字节的数量。当探测到一个字节时,捕获开始。数据计数器对接收的字节进行计数。每接收到一个数据包,都要设置(在VCxSTAT中)FRMC位。

5.视频捕获通道x区域2起始(VCASTRT2、VCBSTRT2)寄存器

捕获到的图像其实是输入图像的子集。视频捕获通道x区域2起始寄存器(VCAS-TRT2、VCBSTRT2)定义在区域2中捕获到图像的起始,这样适用于每个区域不同的窗口队列或大小。VCxSTRT2寄存器如图6-12所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-22.jpg

图6-12 视频捕获通道x区域2起始寄存器

在BT.656或Y/C模式中,利用水平事件(通过VCxCTL中的HRST位选择)复位水平(像素)计数器,利用垂直事件(通过VCxCTL中的VRST位选择)复位垂直(行)计数器。当HCOUNT=VCXSTART和VCOUNT=VCYSTART时,区域2捕获开始。

因为在原始数据模式或TSI模式中,可以完全利用区域1起始和终止寄存器定义它们的捕获大小,所以不使用这两个寄存器。

6.视频捕获通道x区域2终止(VCASTOP2、VCBSTOP2)寄存器

视频捕获通道x区域2终止寄存器(VCASTOP2、VCBSTOP2)定义在区域2中捕获到图像的终止。VCxSTOP2寄存器如图6-13所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-23.jpg

图6-13 视频捕获通道x区域2终止寄存器

因为在原始数据模式或TSI模式中,可以完全利用区域1起始和终止寄存器定义它们的捕获大小,所以不使用这两个寄存器。

7.视频捕获通道x垂直中断(VCAVINT、VCBVINT)寄存器

视频捕获通道x垂直中断(VCAVINT、VCBVINT)寄存器控制每个区域中垂直中断的产生。视频捕获通道x垂直中断寄存器如图6-14所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-24.jpg

图6-14 视频捕获通道x垂直中断寄存器

在BT.656或Y/C模式中,区域中特定的某一行的完成(当VCOUNT=VINTn时,行的终止)就可以导致产生一个中断,这样软件就可以与帧或区域进行同步。通过编程设置VIF1和VIF2位,在任意一个或两个区域(或两者都不允许)中都可以出现中断。当清除VCxSTAT中的FSYNC位时,也可以确定VINTn位。如果FSCL2为0,那么当VCOUNT=VINT1时将会清除区域1中的FSYNC位;如果FSCL2为1,那么当VCOUNT=VINT2时将会清除区域2中的FSYNC位。

8.视频捕获通道x阈值寄存器

视频捕获通道x阈值寄存器决定何时发送DMA请求。视频捕获通道x阈值寄存器如图6-15所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-25.jpg

图6-15 视频捕获通道x阈值寄存器

9.视频捕获通道x事件计数(VCAEVTCT、VCBEVTCT)寄存器

利用每个捕获区域产生的DMA事件数量,可以对视频捕获通道x事件计数(VCAE-VTCT、VCBEVTCT)寄存器进行编程设置。VCxEVTCT寄存器如图6-16所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-26.jpg

图6-16 视频捕获通道x事件计数寄存器

事件计数器记录已产生了多少事件,并且表示在事件产生和输出数据计数器中使用哪个阈值(VCxTHRLD中的VCTHRLD1或VCTHRLD2)。只要产生了事件数量,DMA逻辑就会切换到另一个阈值。

10.视频捕获通道B控制(VCBCTL)寄存器

视频捕获通道B控制(VCBCTL)寄存器如图6-17所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-27.jpg

图6-17 视频捕获通道B控制寄存器(www.xing528.com)

11.TSI捕获控制(TSICTL)寄存器

传输流接口(TSI)捕获控制(TSICTL)寄存器负责控制TSI捕获方式。TSICTL寄存器如图6-18所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-28.jpg

图6-18 TSI捕获控制寄存器

任何时间都可以对ERRFILT、STEN和TCKEN位进行写操作。为了保证计数器操作的稳定,直到系统时间计数器关闭时(ENSTC=0)才能对CTMODE位进行写操作。

12.TSI时钟初始化LSB(TSICLKINITL)寄存器

TSI时钟初始化LSB(TSICLKINITL)寄存器用于初始化硬件计数器,使其与系统时间同步。TSICLKINITL寄存器如图6-19所示。

978-7-111-37346-9-Chapter06-29.jpg

图6-19 TSI时钟初始化LSB寄存器

如果第一个接收到的数据包中有编程时钟基准(PCR)和PCR扩展值,DSP就会把PCR的32个最低有效位写入TSICLKINITL寄存器。这样就利用系统时钟对计数器完成了初始化。只要DSP在PCR区域中探测到一个中断,也会更新TSICLKINITL寄存器。

为了确保同步并防止错误比较探测,软件应该关闭系统时钟中断(通过清除TSICTL中的STEN位实现)对TSICLKINITL寄存器进行写操作的优先权。无论对TSICLKINITL寄存器还是对TSICLKINITM寄存器执行写操作,都会对系统时间计数器的所有位进行初始化。

13.TSI时钟初始化MSB(TSICLKINITM)寄存器

TSI时钟初始化MSB(TSICLKINITM)寄存器用于初始化硬件计数器,使其与系统时钟同步。TSICLKINITM寄存器如图6-20所示,各字位描述可参考相关手册。

978-7-111-37346-9-Chapter06-30.jpg

图6-20 TSI时钟初始化MSB寄存器

如果第一个接收到的数据包中有编程时钟基准(PCR)头部,DSP就会把PCR的最高有效位(MSB)和9位PCR扩展写入TSICLKINITM寄存器,这样就完成了利用系统时钟对计数器初始化。如果DSP在PCR区域中探测到一个中断,也会更新TSICL- KINITM寄存器。

为了确保同步并防止错误比较探测,软件应该关闭系统时钟中断(清除TSICTL中的STEN位)对TSICLKINITM寄存器进行写操作的优先权。无论对TSICLKINITL寄存器还是对TSICLKINITM寄存器执行写操作,都会对系统时间计数器的所有位进行初始化。

14.TSI系统时钟LSB(TSISTCLKL)寄存器

TSI系统时钟LSB(TSISTCLKL)寄存器包含编程时钟基准(PCR)的32位最低有效位(LSB)。通过读取TSISTCLKL寄存器和TSISTCLKM寄存器可以获得系统时钟值。TSIST-CLKL寄存器如图6-21所示。

978-7-111-37346-9-Chapter06-31.jpg

图6-21 TSI系统时钟LSB寄存器

TSISTCLKL寄存器代表基本PCR当前的32位LSB值,通常以90kHz的频率计数。因为系统时钟计数器是连续计数的,所以为了确保正确的值,DSP可能需要在一列中两次读取TSISTCLKL寄存器。

15.TSI系统时钟MSB(TSISTCLKM)寄存器

TSI系统时钟MSB(TSISTCLKM)寄存器包含编程时钟基准(PCR)的最高有效位(MSB)和9位PCR扩展。通过读取TSISTCLKM寄存器和TSISTCLKL寄存器可以获得系统时钟值。TSISTCLKM寄存器如图6-22所示。

978-7-111-37346-9-Chapter06-32.jpg

图6-22 TSI系统时钟MSB寄存器

PCRE值的变化频率为27MHz,DSP可能会读取不可靠的值。PCRM位通常的变化频率为10.5μHz。

16.TSI系统时钟比较LSB(TSISTCMPL)寄存器

TSI系统时钟比较LSB(TSISTCMPL)寄存器可以在基于STC的某个绝对时间产生中断。TSISTCMPL寄存器保存绝对时间比较(ATC)的32个最低有效位(LSB)。TSISTCMPL和TSISTCMPM寄存器中的值始终与STC硬件计数器中保存的非屏蔽位相匹配,并且设置TSICTL中的STEN位和VPIS中的STC位。TSISTCMPL寄存器如图6-23所示。

978-7-111-37346-9-Chapter06-33.jpg

图6-23 TSI系统时钟比较LSB寄存器

为了防止错误比较造成寄存器位的改动,软件应该关闭系统时钟中断(清除TSICTL中的STEN位)对TSISTCMPL寄存器进行写操作的优先权。

17.TSI系统时钟比较MSB(TSISTCMPM)寄存器

TSI系统时钟比较MSB(TSISTCMPM)寄存器可以在基于STC的某个绝对时间产生中断。TSISTCMPM寄存器保存绝对时间比较(ATC)的最高有效位(MSB)。TSISTCMPM和TSISTCMPL寄存器中的值始终与STC硬件计数器中保存的非屏蔽位相匹配,并且设置TSICTL中的STEN位和VPIS中的STC位。TSISTCMPM寄存器如图6-24所示。

978-7-111-37346-9-Chapter06-34.jpg

图6-24 TSI系统时钟比较MSB寄存器

为了防止错误比较造成寄存器位的改动,软件应该关闭系统时钟中断(清除TSICTL中的STEN位)对TSISTCMPM寄存器进行写操作的优先权。

18.TSI系统时钟比较LSB屏蔽TSISTMSKL)寄存器

TSI系统时钟比较LSB屏蔽(TSISTMSKL)寄存器保存绝对时间比较屏蔽(ATCM)的32个最低有效位(LSB)。在ATC和系统时钟的绝对时间进行比较时,TSISTMSKM寄存器的值用于屏蔽输出的位。在比较期间,这些最低有效位要对相应的ATC位设置屏蔽。TSISTMSKL寄存器如图6-25所示。

978-7-111-37346-9-Chapter06-35.jpg

图6-25 TSI系统时钟比较LSB屏蔽寄存器

为了防止错误比较造成寄存器位的改动,软件应该关闭系统时钟中断(清除TSICTL中的STEN位)对TSISTMSKL寄存器进行写操作的优先权。

19.TSI系统时钟比较MSB屏蔽(TSISTMSKM)寄存器

TSI系统时钟比较MSB屏蔽(TSISTMSKM)寄存器保存绝对时间比较屏蔽(ATCM)的最高有效位(MSB)。在ATC和系统时钟的绝对时间进行比较时,TSISTMSKM寄存器的值用于屏蔽输出的位。在比较期间,这些最低有效位要对相应的ATC位设置屏蔽。TSISTM-SKM寄存器如图6-26所示。

978-7-111-37346-9-Chapter06-36.jpg

图6-26 TSI系统时钟比较MSB屏蔽寄存器

为了防止错误比较造成寄存器位的改动,软件应该关闭系统时钟中断(清除TSICTL中的STEN位)对TSISTMSKM寄存器进行写操作的优先权。

20.TSI系统时钟标记中断(TSITICKS)寄存器

TSI系统时钟标记中断(TSITICKS)寄存器可以在某个27MHz系统时钟标记数之后产生一个中断。当把TICKCT值设置为X并设置TSICTL中的TCKEN位时,每隔X+1个STCLK周期就要设置VPIS中的TICK位。TSITICKS寄存器如图6-27所示。

978-7-111-37346-9-Chapter06-37.jpg

图6-27 TSI系统时钟标记中断寄存器

对TSITICKS寄存器的写操作,会把标记计数器复位为0。只要标记计数器达到TICKCT的值,就要设置VPIS中的TICK位,并把计数器复位为0。

为了防止错误比较造成寄存器位的改动,软件应该关闭标记计数中断(清除TSICTL中的TCKEN位)对TSITICKS寄存器进行写操作的优先权。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈