基于电脑视窗的数字电视接收机模拟系统的制作方法

文档序号:6559550阅读:106来源:国知局
专利名称:基于电脑视窗的数字电视接收机模拟系统的制作方法
技术领域
本发明是关于基于PC视窗能够模拟(Simulation)高清晰数字电视接收机(HDTV)软件工作的基于PC视窗的HDTV模拟系统的。
背景技术
在软件开发环境中,为了提高生产率,在将已开发的软件搭载在装置上之前,必须确保对软件的工作稳定性的信赖。
对于搭载在HDTV上的软件,也是为了确认开发的软件的工作,将最终结果代码(Object Code)下载在Flash ROM上,然后在TV装置上进行试验。
但是,用这种方法验证软件工作在软件下载上耗费了不少的时间,因此当然是没有效率的。对于实际工作,拿通信接口来说,例如只提供了使用RS-232C接口的简单调试功能,所以出现了发现问题、修正、措施、综合判断、建立计划等诸多不便和没有效率。
对此,实现以pSOS作为模拟器,从而使HDTV源(source)C程序能够在视窗平台(windows platform)的Visual C++IDE环境下驱动,提供进行IIC总线控制的接口(interface)硬件,从而能够进行基于模拟器的HDTV源程序的测试和调试。
pSOS模拟器的最大目的是在基于视窗的PC系统中制作DTV程序,并在相同的系统中实施DTV程序,同时能够模拟系统的多种方面,从而能够有效地执行调试。
与在PC中与DTV硬件无关地独立执行工作相比,模拟器好比使用远程调试器(Remote Debugger),在模拟中能够实际读取DTV的所有硬件IO寄存器的值,从而能够确认当前硬件IO寄存器中有什么样的值,而且为了控制DTV的工作,将值直接输入DTV硬件IO寄存器,从而能够确认DTV实际怎样工作,那么调试就能够取得明显的效果。
远程调试器(Remote Debugger)在目标(Target)系统中在使用目标OS的状态下运行软件并能够查找出问题,因此能够对调试过程有很大帮助。为了使用远程调试器(Remote Debugger),目标代码(Target Code)要下载(Load)在目标系统的RAM中。目标代码存放在闪存(Flash Memory)中时,为了设定断点(Break Point),一个闪存整体要经过擦掉(Erase)、记录(Write)的过程,因此在使用闪存的系统中使用远程调试器实际上有很大困难。
而且,使用远程调试器时,如果没有ROM仿真器,在程序修正后,每次再次下载目标代码的过程中就消耗大量时间。实际上,像包括使用并行端口的ROM ICE的硬件开发工具一样远程调试器正在被使用。
初期DTV软件开发结束后,正在已开发的DTV装置中实现软件修正和补充工作。在这样的开发环境下,将目标代码下载在目标系统中之后,在设定断点方面存在问题,因此在使用远程调试器上存在困难。

发明内容
本发明的目的在于通过提供PC视窗环境的用户接口(UI)以及行调试器(Debugger)开发环境,从而提供一个提高已开发软件的工作验证效率并且能够提高软件开发、试验、修正、判断以及计划的效率的基于PC视窗的HDTV软件模拟系统。
本发明的另一目的在于在基于视窗的PC系统中,制作DTV程序并在相同的系统中运行DTV程序,同时模拟系统的多种方面,从而有效地执行调试。
本发明的目的是通过以下技术方案来实现的一种基于电脑视窗的数字电视接收机模拟系统,其特征在于它包括为了模拟基于PC视窗的DTV软件;基于视窗的PC包括使用DTV的OS的pSOS模拟器、DTV源代码、OSD模拟器以及通信接口DTV包括DTV源代码、硬件接口以及通信接口;基于视窗的PC和DTV基于通信接口进行连接,在PC中基于视窗执行DTV软件的模拟。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征在上述模拟中,利用DTV内部的处理器,以选取硬件;在PC和DTV中包括I/O选取、仿真函数、对串行接口函数的对等层(peerlayer),同时构成PC和DTV间的物理通信层,从而使模拟上的DTV硬件选取函数在DTV原样运行。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征为了进行上述DTV软件模拟,包括以一个序列号控制上述包括内存印象图I/O函数、IIC总线选取函数、进行中断处理的仿真函数、大量包括非单一硬件控制的I/O选取函数的函数调用仿真函数,从而执行模拟控制。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下的特征对于编译上述DTV源代码,用Visual C++编译时,GPIO选取函数由仿真函数代替,用isiarm编译程序编译时,GPIO选取函数使用内存印象图I/O地址,由直接选取的文字代替。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征通过内存印象图I/O选取函数控制连接在IIC总线的硬件。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征进行PC和DTV间的串行通信的通信数据格式作为反映传递数据的开始和结束的控制字符、数据包的类型,包括反映仿真函数的种类的命令代码、各个仿真函数使用的参数、参数个数、校验信息。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征上述PC和DTV之间进行数据传递时,作为使用的特别字符;它包括反映数据包的开始和结束的控制字符、反映反复数据的开始的字符,PC视窗系统自身用于定义而使用的字符。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征为了压缩上述反复的数据,执行运转周期编码。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征如果在上述PC中开始模拟,就在模拟初始过程中试图和DTV连接,如果实现上述连接,就将DTV的“keyboard task”的状态(state)由调试命令输入模式转入模拟模式,从而DTV的“keyboard task”执行进行模拟的远程代理(remote agent)。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征上述DTV的“keyboard task”接到命令数据包,解读命令并执行,然后将结果反馈给PC。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征上述PC在模拟初始过程中,生成运行中断操作的“INTO”任务,由此引导DTV的中断模拟启动,PC中的模拟器程序结束时,运行Exit()函数以引导DTV的中断模拟启动,从而进行控制使DTV中的中断处理能够正常处理。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征为了OSD模拟,进行OSD表示的函数“drawing primitive”在函数中被“redirec”,并显示在PC视窗上,从而实现依靠视频处理器的OSD模拟。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征为了模拟搭载在DTV上的软件;PC基于视窗,包括DTV的模拟器,包括进行源程序转换的编译器,包括进行DTV硬件选取的工具以及通信接口工具DTV接收PC的控制,包括向PC传递对其控制的应答的通信接口工具、处理器以及存储资源;PC基于视窗执行DTV软件的模拟。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征上述通信接口工具由基于IIC总线的第1通信接口和基于RS232C的第2通信接口构成。
而且,依据本发明的基于PC视窗的DTV模拟系统具有以下特征上述模拟器包括使用DTV的OS的pSOS模拟器和OSD模拟器。
发明的有益效果是本发明提供基于PC视窗能够执行DTV的软件模拟的基础。因此,在软件开发环境中能够实现更加便利有效的工作验证、资料收集、分析、修正等。特别是通过缩短软件验证所必须的时间并且提高效率,从而能够更加有效地执行调试。


图1是依据本发明的基于PC视窗的DTV模拟系统结构的示意图。
图2是依据本发明的基于PC视窗的DTV模拟系统构成的分块示意图。
图3是在依据本发明的模拟中,利用搭载在DTV上的arm处理器选取硬件的通信层次图。
图4及图5是本发明中内存印象图I/O的选取函数的转向方法的示意图。
图6是在依据本发明的模拟中,选取连接在IIC总线的硬件的方法的示意图。
图7是本发明中串行通信数据格式的例子的示意图。
图8是本发明中PC和DTV之间的数据传递方法的例子的示意图。
图9是本发明中运转周期符号化格式的例子的示意图。
图10是说明本发明中为进行模拟的DTV的“keyboard task”的状态转移的示意图。
图11是说明本发明中DTV的”keyboard task”接收并处理命令数据包的过程的示意图。
图12是本发明中进行中断模拟的外部中断操作函数的例子的示意图。
图13是本发明中进行中断模拟的初始以及结束过程的示意图。
图14是本发明中中断模拟处理(Transaction)过程的示意图。
图15是在依据本发明的OSD模拟中代码修正的例子的示意图。
具体实施例方式
下面,参照附图和实施例对本发明进行说明。
本发明是要在软件开发环境中构筑能够有助于调试阶段的模拟环境,用于实际软件开发并评价模拟器。
本发明中,将远程调试器等概念的远程代理(Remote Agent)植入目标系统中,使所有软件的工作依靠PC上的模拟器运行,并且实现使连接在DTV上的IO设备的控制部分通过植入DTV的代理来形成的方法。
而且,要将这一模拟器用于运用新UI系统的软件开发过程,以寻找问题分析和解决方案。
图1显示的是在PC上模拟DTV软件,PC上的模拟中包括DTV硬件控制的系统结构。PC110包括DTV源代码111、pSOS模拟器112、OSD模拟器113、串行接口114。DTV120包括DTV源代码121、硬件接口122、串行接口123。
在这里,模拟器假定以在Visual C++IDE环境下工作。为了在PC中执行DTV软件,必须有使用DTV的OS(Operating System)的pSOS模拟器,为Isiarm编译程序而制作的DTV的C源代码必须能够通过Visual C++编译程序进行编译。
为了使Isiarm用源代码能够通过Visual C++编译器进行编译,DTV源代码要经过制作以便能够通过端口。硬件控制没有必要时,PC和TV的连接就没有必要了,但是,为了将硬件控制包括在模拟中,PC和TV的连接是必要的。
现在,TV提供的外部通信方法是具有串行端口和IIC端口。通过IIC端口进行的硬件控制局限于连接在IIC的硬件装置。而且,连接在TV外部的IIC端口由于是TV上的3个IIC频道中的一个,所以不能接近其他的IIC频道。
为了将对DTV硬件所有部分的控制包含在模拟中,预计利用DTV内部的Arm处理器是最好的方法。如图1所示,为了利用DTV内部的Arm处理器,要有在Arm处理器中驱动的代理软件。
为进行模拟而要使用的代理软件能够和PC执行通信,也可以只有执行PC申请的硬件控制命令的功能。
由于DTV软件中已经基本包含有选取(选取)硬件的函数,追加性的必要软件只需要通过串行通信接收来自PC的命令,解读命令并执行相关硬件选取命令,然后将结果发给PC的功能。
现在,为了进行调试,DTV软件包括通过在PC中工作的通信终端视窗能够选取DTV硬件功能。在PC的通信终端视窗中,通过输入测试指南(Manual Text)能够使用这种功能。在模拟中控制硬件的方法虽然和使用这种功能的方法类似,但是硬件选取在更低的阶段中形成,并且依靠不输入测试指南的程序来实现的这一点不同。
图2是依据本发明的基于PC视窗的DTV模拟系统构成的分块图。可以看到,模拟器211、基于视窗的PC210、包括CPU221和HD芯片222的DTV220、接口板230通过基于PPI及RS-232C的通信工具相互连接。
图3显示的是在模拟中利用DTV内部的Arm处理器进行选取硬件的通信层次图。
DTV软件选取硬件时,虽然实际是在DTV内部直接选取硬件,但是由于在模拟中软件在PC中运行,所以能通过图3所示的通信方法选取DTV硬件。
如图3所示,PC和DTV中存在I/O选取310、320、仿真函数311、321、对串行接口函数312、322的对等层(Peer Layer)。物理通信层使用RS232通信。根据图3所示的通信层次图,模拟上的DTV硬件选取函数在DTV中能够原样运行,从而将实际实现DTV硬件323控制。在DTV中驱动的仿真函数和串行接口函数的程序在”/SYSTEM/emulation。h”和”/SYSTEM/emulation。c”文件中。
下面对仿真接口函数进行说明。
在DTV软件模拟中包含硬件仿真的理由是通过模拟直接控制DTV,从而实际验证DTV软件,并且在模拟的调试过程中实际选取硬件,并使用读取的值确认对DTV硬件控制的反应。
控制在Arm处理器中工作的DTV软件硬件的方法是依靠连接在Arm处理器的内存印象图输入输出寄存器(Memory Mapped I/O Register)的读取/写入工作(Read/Write Operation)实现的。所有硬件控制能够通过执行内存印象图I/O读取工作和写入工作的两个仿真函数实现,但是,根据其他各种必要,准备了如表1所示的10个仿真函数。
对表1说明如下内存印象图I/O选取函数根据要选取的数据大小分为1byte、2byte以及4byte函数,包括以一个序列号控制上述包括IIC总线选取函数、进行中断处理的仿真函数、大量包括非单一硬件控制的I/O选取函数的函数调用(Function Call)仿真函数。下面,举例说明这些函数在图3所示的I/O选取层中实际是怎样实现的。
图4所示的是进行内存印象图I/O的1byte选取和2bytes选取的函数的转向(Redirection)方法。以Visual C++进行编译时,由于”PSOS SIM”宏被定义,,所以GPIO选取函数由仿真函数代替,以isiarm编译程序进行编译时,由于”PSOS SIM”宏未被定义,所以GPIO选取函数使用内存印象图I/O地址直接由选取的文字代替。
例如,图4的模拟中,GpioRd8(addr)宏由Emul GpioRd8((UINT32*)addr)函数代替,Emul GpioRd8()函数通过串行通信向DTV传达1byte I/O read命令语,DTV将通过(*(volatile unsigned*)(addr))文字的”direct memory mapped I/O peration”得到的读取值再通过串行通信传达,从而回到Emul GpioRd8((UINT32*)addr)函数的返回(Return)值。通过这样的过程控制硬件的函数执行和在DTV中一样的操作(operation)。
图5显示的是进行内存印象图I/O的4bytes选取的函数的转向(Redirection)方法。以Visual C++进行编译时,由于”PSOS SIM”宏被定义,所以32bit寄存器选取命令由仿真函数代替,以Isiarm编译程序进行编译时,寄存器选取函数作为内存印象图I/O地址由直接选取的文字代替。
万一对所有的内存印象图I/O的选取使用宏进行编码,为了进行对内存印象图I/O的仿真,如图4和图5所示,可以以只对标题(Header)文件的稍微修正执行模拟。
图6是在模拟中连接在IIC总线的硬件选取的方法。连接在IIC总线的硬件也实际上选取IIC控制器寄存器(Controller Register)从而进行控制,所以,没有必要另行制作IIC控制仿真函数,通过内存印象图I/O选取函数也能够实现。
IIC控制过程由于数次读取状态寄存器(Status Register)并数次读取寄存器的过程十分必要,所以万一选择直接选取I/O寄存器方式,PC和DTV之间的通信量将增多,因此模拟可能变慢。
而且,DTV处于模拟模式(Mode)时,存在在DTV中工作的其他任务(Task)选取IIC总线的可能性。因为必须排除两个任务(Task)同时选取IIC总线,所以为了进行IIC总线选取,需要标志(Semaphore)。
现在,IIC选取函数调用层次中,包括标志(Semaphore)的IIC选取函数是上面已出现的I2cCh1Read()函数。因此,IIC选取函数在这种标准在被转向(Redirect)。与选取内存印象图I/O时一样,I2cCh1Read()函数由Emul I2cCh1Read()代替,Emul I2cCh1Read()函数通过串行通信向DTV传达命令使其运行I2cCh1Read()函数。在DTV中,依靠I2cCh1Read()函数读取的值再次通过串行通信传达给PC,并以Emul I2cCh1Read()函数的返回值传递。
Emul中断(unsigned char operationCode)函数是为了进行中断操作(中断Operation)控制而被使用的,并根据Emul中断()函数的参数(Parameter)值反映其他操作(Operation)。
DTV程序中,Adec LoadProgram()函数或Adec UpProgram()函数要大量进行硬件IO选取。如果在模拟器中运行这种函数,那么模拟需要大量时间。甚至,如果这种函数包括在初始过程中,就存在模拟器的启动耗费大量时间的问题。如果假定这种函数的编码上不存在问题,通过在模拟器中部运行这种函数并在DTV中运行整个函数,就能够大大缩短模拟进行时间。Emul FuncCall()函数是能够用于这一用途而准备的函数。根据Emul FuncCall()函数的parameter值,连贯要运行的函数从而像远程程序调用(Remote Procedure Call)那样能够使用。
下面,对串行通信数据格式进行说明。
为了使用串行通信进行PC和DTV之间的通信,必须确定通信协议。图7显示的是各个从PC向DTV、从DTV向PC发送数据包格式。传递的数据由反映数据开始和结束的控制字符包围。
这样被包围的数据包的最前面信息是数据包的类型(Type),即反映仿真函数的种类命令代码。接着是各个仿真函数使用的参数。假定参数的个数、参数的数据类型在PC和DTV的对等层(Peer Layer)是约定的,就部包括反映数据包的长度的信息。
参数包括校验字节(Checksum byte)。校验字节(Checksum byte)包括命令代码字节(命令Code Byte)、参数字节(Parameter Byte)以及校验字节本身,合并的值是0xFF。为了缩短数据传递时间,数据不转换为16进制ASCII数据(HexadecimalCoded ASCII DATA),以二进制数据传递。
表2显示的是PC和DTV之间传递数据时使用的特别字符。
包括有反映数据包的开始和结束的控制字符、反映被反复数据开始的字符以及PC视窗系统自身用于特别用途而使用的字符。
大部分的控制字符被定义为脱离ASCII英文范围的0xA0~0xAA之间的值。CNTRL RESET控制字符被用于使DTV脱离模拟模式,因此在通信终端视窗中通过测试指南输入定义为“Q”,从而使DTV能够脱离模拟模式。
表2中定义的控制字符是作为反映始终各自固有的意义的控制字符而被使用的。但是,CNTRL H0A、CNTRL H11以及CNTRL H13代码实际上不是关于数据传递的控制字符。已将这些字符从DTV向PC传递时,由于不是正常地接受并形成,所以被包含在控制字符组中。
将控制字符各别地作为反映始终固有的意义的控制函数使用时,问题是命令代码、参数、以及校验字节中,包括有像进入控制字符代码组的值这样的二进制值。在这种情况下,如果原样发送它的二进制值,这个二进制值就被看作为控制字符。因此,这种二进制代码不能原样发送。
图8显示的是这种情况下的数据传递方法。首先,发送CNTRL INSERT控制字符,接着发送在原来的二进制值中加入偏移量(offset)值(0x20)的值。在表2所示的特别字符代码值中加入了0x20时,不是和包含在特别字符代码组中的任何特别字符一样的值,所以不被看作是控制字符。如果接收方接收CNTRL INSERT控制字符,就将从之后进入的二进制值中去掉offset值(0x20)的值看作是接收数据。
本发明为了压缩被反复的数据,使用了运转周期-符号化(run length coding)方法。
图9显示的是运转周期符号化格式。由反映重复(Duplication)的控制字符、反映反复次数的重复计算(repeat count)值以及反映反复的字符值本身的3byte字符序列号(3byte字符sequence)构成。但是,存在反映反复次数的重复计算值和进入特别字符组的代码值一样,或者字符本身和进入特别字符组的代码值一样的情况。因此,如表3所示,反映重复的控制字符分为4个种类。
对表3说明如下重复计算值或字符值和特别字符组代码值一样时,接着相关重复控制字符,向重复计算值或者字符代码值加入offset值(0x20)并发送,接收时去掉offset值再处理。
4显示的是仿真函数的执行过程中必要的串行通信处理所必要的通信量。大体上,进行1个仿真的处理中需要约12bytes通信,如果假定串行通信波特率(baudrate)为115200,那么大体上需要12×10/115200=1msec的时间。
下面,由表4对串行通信协议进行说明。
在PC中开始模拟时,在模拟初始过程中试图和DTV连接,如果实现连接,就将DTV的“keyboard task”状态(state)从调试命令输入模式(debug命令input mode)转移到模拟模式(simulation mode)。
DTV的“keyboard task”起着进行模拟的远程代理(remote agent)的作用。
图10显示的是进行模拟的DTV的“keyboard task”的状态转移。
“keyboard task”在DTV初始过程中处于调试命令输入模式(debug命令inputmode),通过PC的终端视窗接受各个种类的输入,并执行依据命令的工作(action)。在这个过程中,“keyboard task”可以转入接受调试命令输入的低阶段的状态。
因此,在PC中开始模拟的时候,不能够明确知道DTV的“keyboard task”处于何种状态。在调试命令输入模式下,如果接到“FF<ret>”串,就直接转至高状态。因此,初始过程中,通过数次发送“FF<ret>”字符串,从而使“keyboard task”无论处于调试命令输入模式的何种状态下都是向着最高状态。
但是,万一DTV的“keyboard task”停在模拟模式,那么即使发送“FF<ret>”字符串也不能从调试命令输入模式中出来,所以发送“Q<ret>”串来确实地使keyboard task处于调试命令输入模式的最高状态。
在这个状态中下,发送“s<ret>”串从而使DTV的“keyboard task”进入模拟模式。DTV的“keyboard task”进入模拟模式时,将“keyboard task”的优先权(priority)提高到250,尽可能快地运行PC发送的命令,从而能够将结果发给PC。接着,中止(suspend)DTV的“micom task”,使始终在PC的模拟器中工作的“micomtask”能够带走外部遥控输入信息,中止(suspend)“refresh task”和“periodictask”,使DTV中除“keyboard task”之外的其他任务(Task)实际没有活力(activate)。
在模拟初始过程中,如果串行端口不打开,就输出合适的消息。例如,显示“RS232 Port Open Errot”的消息箱。这种情况是位于串行cpp文件最前面部分的#define COM端口ID 1文字中COM端口ID值设定错误或者通信终端视窗程序中正在打开使用COM端口。DTV和PC之间没有RS232电缆连接或者DTV的电源断开时,就显示“TV is notresponding”这种例子的消息箱来告知没能够和DTV实现通信。这时,模拟不对硬件进行控制,只在PC中执行模拟。
如果正常结束模拟程序,在模拟程序结束之前,向DTV发送“Q<ret>”串,使“keyboard task”从模拟模式中脱离,回到DTV的正常模式。“keyboard task”从模拟模式出来时,恢复(resume)已被中止(suspend)的任务(Task),“keyboardtask”的优先权(priority)还原为原来值。
如果模拟以不执行正常结束(exit)过程的状态结束,那么在PC中,模拟虽然已经结束,但是DTV仍然原样停留在模拟模式,DTV不正常地工作。DTV处于模拟模式状态时,PC再次开始模拟时,如上述已说明的那样,没有别的问题,能够进入再次进入模拟模式。但是,DTV处于模拟模式状态时,如果PC非正常结束模拟,DTV就不能回到正常的模式。当然,如果断开DTV的电源再次开始,DTV就回到正常模式,但是不断开DTV的电源的同时进入正常模式的方法是在PC的通信终端视窗上手动输入“Q<ret>”测试就可以了。
图11显示的是DTV的“keyboard task”收到命令数据包,解读命令并执行,然后将结果再发送给PC的过程。
除中断申请之外的所有处理总是PC的模拟器开始。
DTV为了接收硬件中断,中断必须是启动的状态。DTV在中断启动状态下,为了通过串行端口能够接收数据,PC必须传递<ret>字符作为结束的串。包括<ret>的最短的串是只包括<ret>字符的串。
如果DTV的“keyboard task”接到<ret>字符,就向PC发送CNTRL ACK控制字符。如果PC接到CNTRL ACK控制字符,就看作是DTV做好了接收数据,然后发送命令数据包。DTV向PC发送了CNTRL ACK控制字符后,为了不发送对于接收的字符的应答字符,停止中断后接收命令数据包。
如果接收命令数据包结束,就启动中断并执行接收的命令的工作(action),然后将结果发送给PC。从DTV向PC发送结果数据包时,启动中断,从而使传递数据包时中间不能参入其他字符数据。传递了结果数据之后,DTV再次启动中断。
下面对中断模拟进行说明。
为了使模拟正常工作,DTV发生的中断处理必须能够包括在模拟中。在DTV的正常工作状态下,DTV发生的所有中断都是依靠DTV执行的中断操作进行处理的,但是,模拟过程中对于DTV发生的中断的操作是依靠模拟器来执行的。现在,Arm处理器发生的中断中,在模拟器中只处理外部(external)中断。
图12显示的是进行中断模拟的外部(external)中断操作函数的修正部分。DTV发生外部(external)中断时,运行HD2IO中断操作()函数。这时,interruptSimEnable flag变数如果是TRUE,IntReq()函数就被调用,并告知PC发生中断,同时,DTV中没有进行实际中断处理,脱离了中断操作。
对表5说明如下为了在模拟器中控制中断,使用Emul Interrupt()函数。表5显示的是依据Emul Interrupt()函数的参数值的工作定义。参数值为“0”时,将DTV的interruptSimEnable flag变数制成FALSE,为“1”时,将interruptSimEnable flag变数制成TRUE。参数值为“2”时,从DTV向PC读取状态(Status)值。
图13显示的是进行中断模拟的模拟器中的初始和结束过程。在PC的模拟初始过程中,生成执行中断操作的“INT0”任务。INT0任务生成的同时运行Emul Interrupt(1)函数,将DTV的interruptSimEnable变数制成TRUE,从而在DTV中使模拟器能够进行中断处理。PC中的模拟器程序结束时,运行Exit()函数,将DTV的interruptSimEnable变数制成FALSE,使DTV中的中断处理能够在DTV中正常处理。
图14显示的是在DTV中发生中断时模拟怎样处理中断。DTV中发生中断时,DTV的中断服务例行程序函数就将运行。中断服务例行程序函数依据interruptSimEnable变数值,如果中断操作在DTV中不执行,就决定是否在PC中执行。万一interruptSimEnable变数值为TRUE,就读取状态(status)值并保存,然后立即向PC传递CNTRL INT REQ control character。如果PC中commThread task收到CNTRL INT REQ control character,就立即向“INT0 task”传递消息。“INT0task”处于等待消息的状态,如果接到消息就读取从保存在DTV中的状态(status)值,然后根据读取的状态(status)值执行相关中断操作。
下面,对Xm OSD模拟器进行说明。
在模拟过程中,为了在DTV屏幕显示生成的OSD,有必要向视频处理器传递大量数据传递。但是,通过仿真函数将进行OSD显示的所有数据向DTV 传递有时间上的制约,所以存在困难。因此,进行OSD显示的函数在“drawing primitive”函数转向(redirect),从而显示在PC视窗上。
表6显示的是为了进行视频处理器的OSD显示,提供的接口函数中只针对正使用的函数而作的模拟函数。
实现向视频处理器提供OSD图形信息的3个函数和1个显示函数。
图15显示的是依据本发明的OSD模拟中进行HD2OSD OSD2 DrawImage()函数转向(redirect)HD BmpCopySelfMasking()函数的代码修正的例子。执行模拟时,不执行HD2OSD OSD2 DrawImage()函数的原来代码,运行HD BmpCopySelfMasking()函数。但是,万一关于SD的代码也包括在模拟中来进行调试,就单纯地返回(return);如果注解(comment)处理文字,就在PC视窗上显示OSD,同时在DTV画面上也能够显示OSD。
权利要求
1.一种基于电脑视窗的数字电视接收机模拟系统,其特征在于它包括为了模拟基于PC视窗的DTV软件;基于视窗的PC包括使用DTV的OS的pSOS模拟器、DTV源代码、OSD模拟器以及通信接口;DTV包括DTV源代码、硬件接口以及通信接口;基于视窗的PC和DTV基于通信接口进行连接,在PC中基于视窗执行DTV软件的模拟。
2.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于在上述模拟中,利用DTV内部的处理器,以选取硬件;在PC和DTV中包括I/O选取、仿真函数、对串行接口函数的对等层,同时构成PC和DTV间的物理通信层,从而使模拟上的DTV硬件选取函数在DTV原样运行。
3.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于为了进行上述DTV软件模拟,包括以一个序列号控制上述包括内存印象图I/O函数、IIC总线选取函数、进行中断处理的仿真函数、大量包括非单一硬件控制的I/O选取函数的函数调用仿真函数,从而执行模拟控制。
4.根据权利要求3所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于对于编译上述DTV源代码,用Visual C++编译时,GPIO选取函数由仿真函数代替,用isiarm编译程序编译时,GPIO选取函数使用内存印象图I/O地址,由直接选取的文字代替。
5.根据权利要求3所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于通过内存印象图I/O选取函数控制连接在IIC总线的硬件。
6.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于进行PC和DTV间的串行通信的通信数据格式作为反映传递数据的开始和结束的控制字符、数据包的类型,包括反映仿真函数的种类的命令代码、各个仿真函数使用的参数、参数个数、校验信息。
7.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于上述PC和DTV之间进行数据传递时,作为使用的特别字符;它包括反映数据包的开始和结束的控制字符、反映反复数据的开始的字符,PC视窗系统自身用于定义而使用的字符。
8.根据权利要求7所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于为了压缩上述反复的数据,执行运转周期编码。
9.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于如果在上述PC中开始模拟,就在模拟初始过程中试图和DTV连接,如果实现上述连接,就将DTV的“keyboard task”的状态由调试命令输入模式转入模拟模式,从而DTV的“keyboard task”执行进行模拟的远程代理。
10.根据权利要求9所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于上述DTV的“keyboard task”接到命令数据包,解读命令并执行,然后将结果反馈给PC。
11.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于上述PC在模拟初始过程中,生成运行中断操作的”INTO”任务,由此引导DTV的中断模拟启动,PC中的模拟器程序结束时,运行Exit()函数以引导DTV的中断模拟启动,从而进行控制使DTV中的中断处理能够正常处理。
12.根据权利要求1所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于为了OSD模拟,进行OSD表示的函数“drawing primitive”在函数中被“redirec”,并显示在PC视窗上,从而实现依靠视频处理器的OSD模拟。
13.一种基于电脑视窗的数字电视接收机模拟系统,其特征在于它包括为了模拟搭载在DTV上的软件;PC基于视窗,包括DTV的模拟器,包括进行源程序转换的编译器,包括进行DTV硬件选取的工具以及通信接口工具;DTV接收PC的控制,包括向PC传递对其控制的应答的通信接口工具、处理器以及存储资源PC基于视窗执行DTV软件的模拟。
14.根据权利要求13所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于上述通信接口工具由基于IIC总线的第1通信接口和基于RS232C的第2通信接口构成。
15.根据权利要求13所述的基于电脑视窗的数字电视接收机模拟系统,其特征在于上述模拟器包括使用DTV的OS的pSOS模拟器和OSD模拟器。
全文摘要
本发明公开了一种基于电脑视窗的数字电视接收机模拟系统,包括为了模拟基于PC视窗的DTV软件;基于视窗的PC包括使用DTV的OS的pSOS模拟器、DTV源代码、OSD模拟器以及通信接口DTV包括DTV源代码、硬件接口以及通信接口基于视窗的PC和DTV基于通信接口进行连接,在PC中基于视窗执行DTV软件的模拟。本发明在软件开发环境中能够实现更加便利有效的工作验证、资料收集、分析、修正等,从而能够更加有效地执行调试。
文档编号G06F11/36GK1967502SQ200610091978
公开日2007年5月23日 申请日期2006年6月21日 优先权日2005年9月7日
发明者裵國鎬, 金周源 申请人:南京Lg同创彩色显示系统有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1