一种终端的控制方法、系统和设备
技术领域
本发明涉及通信技术领域,尤其涉及一种终端的控制方法、系统和设备。
背景技术
目前,AP(Application Program,应用程序)对移动电视解调器的控制以及状态的获取,完全通过读写终端设备寄存器的方式进行。AP将需要执行的命令逐条写入终端设备的寄存器,并由终端设备执行。
该方式至少存在以下缺点:
终端硬件对于AP端不透明,AP端在需要向终端设备发送需要执行的命令时,需要了解终端设备硬件的细节。在终端设备硬件更新或版本升级后,都需要重新修改AP驱动程序。另外,对于比较复杂的操作,AP采取逐条写入命令并直接操作终端设备寄存器的方式,难以保证实时性的要求。
发明内容
本发明的实施例提供一种终端的控制方法、系统和设备,用于简化AP与设备之间的操作复杂度,提高操作的实时性。
为达到上述目的,本发明的实施例提供一种终端的控制方法,包括以下步骤:
判断需要向终端发送控制命令,生成携带命令代码的命令帧;
发送所述携带命令代码的命令帧至所述终端。
其中,所述判断需要向终端发送控制命令前,还包括步骤:
预设与终端间的命令代码与操作功能的对应关系。
其中,所述命令帧中还包括命令数据,所述命令数据携带与所述命令代码对应的操作功能的参数。
其中,所述将携带命令代码的命令帧向终端发送前,还包括步骤:
检测所述终端的命令状态寄存器的状态位是否为空,为空时则继续,否则继续检测;
所述将携带命令代码的命令帧向终端发送具体为:
确认所述终端的命令状态寄存器的状态位为空时,将所述命令帧存储到所述终端的命令数据寄存器,并将所述命令状态寄存器的状态位置为非空。
其中,所述将携带命令代码的命令帧向终端发送后,还包括步骤:
检测所述终端的应答状态寄存器的状态位是否为空,为空时则继续检测,非空时从所述终端的应答数据寄存器获取所述终端生成的应答帧,并将所述终端的应答状态寄存器的状态位设置为空。
本发明还提供一种终端的控制方法,包括以下步骤:
接收应用程序AP发送的命令帧,获取所述命令帧中携带的命令代码;
执行所述命令代码并生成携带应答代码的应答帧;
将所述携带应答代码的应答帧提供给所述AP。
其中,所述接收AP发送的命令帧前,还包括步骤:
与AP约定命令代码与操作功能的对应关系。
其中,所述接收AP发送的命令帧具体为:
检测本地的命令状态寄存器的状态位是否为空,为空时则继续检测;非空时从本地的命令数据寄存器中获取所述AP发送的命令帧,并将所述命令状态寄存器的状态位置为空。
其中,所述应答帧中还包括应答数据,所述应答数据携带与所述应答代码对应的应答参数。
其中,所述将携带应答代码的应答帧提供给AP前,还包括步骤:
检测本地的应答状态寄存器的状态位是否为空,为空时则继续,否则继续检测;
所述将携带命令代码的命令帧向终端发送具体为:
确认本地的应答状态寄存器的状态位为空时,将所述应答帧存储到本地的应答数据寄存器,并将所述应答状态寄存器的状态位置为非空。
本发明还提供一种AP设备,用于对终端的控制,包括:
控制发起单元,用于判断需要对终端进行控制时,指示命令帧生成单元所需要进行的操作;
命令帧生成单元,用于根据所述控制发起单元的指示,生成携带命令代码的命令帧;
命令帧发送单元,用于将所述命令帧生成单元生成的命令帧向所述终端发送。
其中,还包括:
对应关系存储单元,用于存储与所述终端约定的命令代码与操作功能的对应关系,并提供给所述命令生成单元用于生成所述携带命令代码的命令帧。
其中,所述命令帧发送单元进一步包括:
命令状态寄存器检测子单元,用于检测所述终端的命令状态寄存器的状态位是否为空;
命令帧发送子单元,用于在所述命令状态寄存器检测子单元检测到终端的命令状态寄存器的状态位为空时,将所述命令帧发送到所述终端的命令数据寄存器;
命令状态寄存器设置子单元,用于在所述命令帧发送子单元将命令帧发送到所述终端的命令数据寄存器后,将所述终端的命令状态寄存器的状态位设置为非空。
其中,还包括:应答帧获取单元,用于从所述终端获取所述终端生成的应答帧。
其中,所述应答帧获取单元进一步包括:
应答状态寄存器检测子单元,用于检测所述终端的应答状态寄存器的状态位是否为空;
应答帧获取子单元,用于在所述应答状态寄存器子检测单元检测到终端的应答状态寄存器的状态位为非空时,获取所述终端的应答数据寄存器中的应答帧;
应答状态寄存器设置子单元,用于在所述应答帧获取子单元从所述终端的应答数据寄存器获取应答帧后,将所述终端的应答状态寄存器的状态位设置为空。
本发明还提供一种终端,用于接受AP的控制,包括:
控制接收单元,用于接收所述AP发送的命令帧,获取所述命令帧中携带的命令代码;
应答帧生成单元,用于执行所述控制接收单元获取的命令代码,并生成携带应答代码的应答帧;
应答帧提供单元,用于将所述应答帧生成单元生成的携带应答代码的应答帧提供给所述AP。
其中,还包括:
终端对应关系存储单元,用于存储与所述AP约定的命令代码与操作功能的对应关系,并提供给所述应答帧生成单元用于生成所述携带应答代码的应答帧。
其中,所述控制接收单元进一步包括:
本地命令状态寄存器检测子单元,用于检测本地的命令状态寄存器的状态位是否为空;
命令帧获取子单元,用于在所述本地命令状态寄存器检测子单元检测到本地的命令状态寄存器的状态位为非空时,获取所述命令数据寄存器中所述AP发送的携带命令代码的命令帧;
本地命令状态寄存器设置子单元,用于在所述命令帧获取子单元从所述命令数据寄存器获取所述命令帧后,将所述命令状态寄存器的状态位设置为空。
其中,所述应答帧提供单元进一步包括:
本地应答状态寄存器检测子单元,用于检测本地的应答状态寄存器的状态位是否为空;
应答帧提供子单元,用于在所述本地应答状态寄存器子检测单元检测到所述应答状态寄存器的状态位为空时,将所述应答帧存储到所述应答数据寄存器;
本地应答状态寄存器设置子单元,用于在所述应答帧提供子单元将应答帧存储到所述应答数据寄存器后,将本地的应答状态寄存器的状态位设置为非空。
本发明还提供一种终端控制系统,包括AP和终端,包括:
AP,用于判断需要向终端发送控制命令时,生成携带命令代码的命令帧并向所述终端发送;
终端,用于接收所述AP发送的携带命令代码的命令帧,执行后生成携带应答代码的应答帧并提供给所述AP。
其中,所述终端进一步包括:
控制接收单元,用于接收所述AP发送的命令帧,获取所述命令帧中携带的命令代码;
应答帧生成单元,用于执行所述控制接收单元获取的命令代码,并生成携带应答代码的应答帧;
应答帧提供单元,用于将所述应答帧生成单元生成的携带应答代码的应答帧提供给所述AP。
其中,所述终端还包括:
终端对应关系存储单元,用于存储与所述AP约定的命令代码与操作功能的对应关系,并提供给所述应答帧生成单元用于生成所述携带应答代码的应答帧。
其中,所述AP设备进一步包括:
控制发起单元,用于判断需要对终端进行控制时,指示命令帧生成单元所需要进行的操作;
命令帧生成单元,用于根据所述控制发起单元的指示,生成携带命令代码的命令帧;
命令帧发送单元,用于将所述命令帧生成单元生成的命令帧向所述终端发送。
其中,所述AP设备还包括:
对应关系存储单元,用于存储与所述终端约定的命令代码与操作功能的对应关系,并提供给所述命令生成单元用于生成所述携带命令代码的命令帧。
与现有技术相比,本发明的实施例具有以下优点:
在AP与终端之间建立了标准的通讯协议,该协议定义了终端设备所支持的多种操作功能,通过不同的命令代码区分不同类型的操作,通过命令数据将参数传递给目标设备,使得AP可以只将命令代码向终端发送即可,而不必关心终端对需要执行的操作的具体实现,简化了AP对终端的操作复杂度,提高了命令的下发和处理速度,保证了操作的实时性。
附图说明
图1是本发明中一种终端控制方法的流程图;
图2是本发明中一种终端控制方法的另一流程图;
图3是本发明中AP与终端的交互过程示意图;
图4是本发明中终端控制系统的结构示意图。
具体实施方式
本发明一种终端的控制方法如图1所示,包括以下步骤:
步骤s101、AP判断需要向终端发送控制命令,生成携带命令代码的命令帧。
步骤s102、将该携带命令代码的命令帧向终端发送。
步骤s103、终端接收发送的命令帧,获取该命令帧中携带的命令代码。
步骤s104、终端执行该命令代码并生成携带应答代码的应答帧。
步骤s105、终端将携带应答代码的应答帧提供给AP。
以下结合具体的应用场景,说明本发明中一种终端控制方法的具体实施方法。如图2所示,包括以下步骤:
步骤s201、AP与终端间约定命令代码与操作功能的对应关系。
在AP与终端之间,建立标准的通讯协议,该协议定义了设备所支持的多种操作功能,通过不同的命令代码(CMD CODE)区分不同类型的操作。例如,本实施例中采用的命令代码与操作功能的对应关系如下表1所示:
表1:命令代码与操作功能的对应关系
1 |
00h |
空操作命令 |
2 |
01h |
读取当前设置 |
3 |
02h |
电源管理命令 |
4 |
03h |
AGC命令 |
5 |
04h |
读取版本命令 |
6 |
05h |
设置逻辑通道 |
7 |
06h |
TUNER设置频道 |
8 |
07h |
读取绝对时间命令 |
9 |
08h |
设置调谐器命令 |
10 |
09h |
TS0自动搜索命令 |
11 |
0Ah |
获取系统状态 |
12 |
81h |
更新内部软件命令 |
13 |
82h-8fh |
调试命令 |
约定了命令代码对应的操作功能之后,实现了为各种操作功能的编号。例如,如果AP向终端发送的命令代码为“01h”,则表示要求终端读取当前设置。
步骤s202、AP判断需要对终端进行控制时,生成携带命令代码的命令帧。
根据需要,该命令帧中除包括命令代码之外,还可能包括命令数据。其中,命令代码用于操作不同的操作,命令数据用于携带执行该操作的参数。以每个命令帧为8个字节为例,命令帧的格式如表2所示:
表2:命令帧的格式
字节号 |
内容 |
1 |
命令代码(CMD CODE) |
2 |
命令数据(CMD Data)byte1 |
3 |
命令数据(CMD Data)byte2 |
4 |
命令数据(CMD Data)byte3 |
5 |
命令数据(CMD Data)byte4 |
6 |
命令数据(CMD Data)byte5 |
7 |
命令数据(CMD Data)byte6 |
8 |
命令校验和(CMD Check Sum) |
如表2所示,8个字节的命令帧中,第一个字节为命令代码(CMD CODE),携带如表1中所描述的命令代码;中间六个字节为命令数据(CMD Data),携带执行第一个字节表示的命令代码所需的参数;最后一个字节为命令校验和(CMD Check Sum),根据前面各字节的内容计算得到,终端根据该命令校验和的内容对该命令帧的完整性和正确性进行验证。
以命令帧为读取当前设置为例,参照表1,CMD CODE=01h。命令帧的格式如表3所示:
表3:读取当前设置的命令帧格式
|
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
CMDCODE |
01h |
Byte1 |
|
|
|
|
CFGTYPE |
Byte2 |
|
Byte3 |
|
Byte4 |
|
Byte5 |
|
Byte6 |
|
Byte7 |
CMD Check Sum |
其中,CFGTYPE表示读取设置类型,
0:读取通道0当前TS配置;
1:读取通道1当前TS配置;
2:读取通道0当前信道配置;
3:读取通道1当前信道配置;
4-7:保留。
对于表1中描述的其他操作对应的命令帧格式,参考表2和表3,具有类似的格式,在此不做重复介绍。
步骤s203、AP将该携带命令代码的命令帧向终端发送。
本实施例中,AP与终端通过终端上的4个寄存器进行通讯,AP与终端均可对该寄存器进行读写操作。其中2个寄存器为AP向终端发送命令的命令寄存器,命令寄存器包括一个命令数据寄存器和一个命令状态寄存器。另外2个寄存器为终端应答寄存器,应答寄存器包括一个应答数据寄存器和一个应答状态寄存器。其中数据寄存器用于数据传输,状态寄存器用于通讯握手。
AP首先查询终端上的命令状态寄存器,确认该状态寄存器被清空后,将要发送的数据存储到命令数据寄存器,然后将命令状态寄存器置位,表明数据就绪。该过程如图3的上半部分所示。
步骤s204、终端解析命令帧,并执行其中携带的命令代码和命令数据,生成应答帧。
终端需要监视命令状态寄存器,当检测到命令状态寄存器被置位后,读取命令数据寄存器中的命令代码和命令数据,然后清除命令状态寄存器。以上操作即可完成一个命令帧的传输。
终端执行读取到的命令代码和命令数据,得到应答数据并生成应答帧。本实施例中,同样以应答帧为8个字节为例,应答帧的结构如表4所示:
表4:应答帧的格式
字节号 |
应答 |
1 |
应答代码(SENSE CODE) |
2 |
应答数据(SENSE Data)byte1 |
3 |
应答数据(SENSE Data)byte2 |
4 |
应答数据(SENSE Data)byte3 |
5 |
应答数据(SENSE Data)byte4 |
6 |
应答数据(SENSE Data)byte5 |
7 |
应答数据(SENSE Data)byte6 |
8 |
应答校验和(SENSE Check Sum) |
其中,如表4所示,8个字节的应答帧中,第一个字节为应答代码(CMDCODE),携带如表1中所描述的命令代码的操作结果,表示对该命令帧的应答;中间六个字节为应答数据(CMD Data),携带第一个字节表示的应答代码所表示的应答参数;最后一个字节为应答校验和(CMD Check Sum),根据前面各字节的内容计算得到,AP根据该命令校验和的内容对该应答帧的完整性和正确性进行验证。
本实施例中,可以使用的应答代与应答描述的对应关系列表可以如表5所示:
表5:应答代码与应答描述的对应关系
|
应答代码 |
应答描述 |
1 |
00h |
无应答信息 |
2 |
01h |
设备硬件错误 |
3 |
02h |
当前配置数据 |
4 |
03h |
系统当前状态 |
5 |
04h |
所选频道非法 |
6 |
05h |
|
7 |
06h |
|
8 |
07h |
|
9 |
08h |
|
10 |
09h |
TSO搜索结果 |
11 |
80h-8fh |
调试信息 |
以应答帧为应答当前设置为例,参照表5,CMD CODE=02h。应答帧的格式如表6所示:
|
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
SenseCODE |
02h |
Byte1 |
|
CFGTYPE |
Byte2 |
CFGDATA1 |
Byte3 |
CFGDATA2 |
Byte4 |
CFGDATA3 |
Byte5 |
CFGDATA4 |
Byte6 |
CFGDATA5 |
Byte7 |
SENSE Check Sum |
步骤s205、终端将该携带应答代码的应答帧存储到寄存器。
终端生成应答帧后,首先查询应答状态寄存器,确认应答状态寄存器被清空后,将要发送的应答帧存储到应答数据寄存器,然后将应答状态寄存器置位,表明应答帧就绪。
对于表5中描述的其他应答代码对应格式,参考表4和表6,具有类似的格式,在此不做重复介绍。
步骤s206、AP从终端的寄存器上获取该应答帧。
AP需要监视应答状态寄存器,当检测到应答状态寄存器被置位后,读取应答数据寄存器,得到应答数据,然后清除应答状态寄存器。以上操作即可完成一个应答字节的传输。该过程如图3的下半部分所示。
通过使用本发明提供的上述方法,在AP与终端之间建立了标准的通讯协议,该协议定义了终端设备所支持的多种操作功能,通过不同的命令代码区分不同类型的操作,通过命令数据将参数传递给目标设备,使得AP可以只将命令代码向终端发送即可,而不必关心终端对需要执行的操作的具体实现,简化了AP对终端的操作复杂度,提高了命令的下发和处理速度,保证了操作的事实性。
本发明还提供了一种控制终端的系统,如图4所示,包括AP 10以及终端20。其中:AP 10,用于判断需要向终端20发送控制命令时,生成携带命令代码的命令帧并向终端20发送。终端20,用于接收AP 10发送的携带命令代码的命令帧,执行后生成携带应答代码的应答帧并提供给AP 10。
其中,如图4所示,AP 10进一步包括:
控制发起单元11,用于判断需要对终端20进行控制时,指示命令帧生成单元12所需要进行的操作。命令帧生成单元12,用于根据控制发起单元11的指示,生成携带命令代码的命令帧。命令帧发送单元13,用于将命令帧生成单元12生成的命令帧向终端20发送。对应关系存储单元14,用于存储与终端20约定的命令代码与操作功能的对应关系,并提供给命令生成单元12用于生成携带命令代码的命令帧。应答帧获取单元15,用于从终端20获取终端20生成的应答帧。
具体的,命令帧发送单元13进一步包括:
命令状态寄存器检测子单元131,用于检测终端20的命令状态寄存器的状态位是否为空。命令帧发送子单元132,用于在命令状态寄存器检测子单元131检测到终端20的命令状态寄存器的状态位为空时,将命令帧发送到终端20的命令数据寄存器。命令状态寄存器设置子单元133,用于在命令帧发送子单元132将命令帧发送到终端20的命令数据寄存器后,将终端20的命令状态寄存器的状态位设置为非空。
具体的,应答帧获取单元15进一步包括:
应答状态寄存器检测子单元151,用于检测终端20的应答状态寄存器的状态位是否为空。应答帧获取子单元152,用于在应答状态寄存器子检测单元151检测到终端20的应答状态寄存器的状态位为非空时,获取终端20的应答数据寄存器中的应答帧。应答状态寄存器设置子单元153,用于在应答帧获取子单元152从终端20的应答数据寄存器获取应答帧后,将终端20的应答状态寄存器的状态位设置为空。
其中,如图4所示,终端20进一步包括:
控制接收单元21,用于接收AP 10发送的命令帧,获取命令帧中携带的命令代码。应答帧生成单元22,用于执行控制接收单元21获取的命令代码,并生成携带应答代码的应答帧。应答帧提供单元23,用于将应答帧生成单元22生成的携带应答代码的应答帧提供给AP 10。终端对应关系存储单元24,用于存储与AP 10约定的命令代码与操作功能的对应关系,并提供给应答帧生成单元22用于生成携带应答代码的应答帧。
具体的,控制接收单元21进一步包括:
本地命令状态寄存器检测子单元211,用于检测本地的命令状态寄存器的状态位是否为空。命令帧获取子单元212,用于在本地命令状态寄存器检测子单元211检测到本地的命令状态寄存器的状态位为非空时,获取命令数据寄存器中AP 10发送的携带命令代码的命令帧。本地命令状态寄存器设置子单元213,用于在命令帧获取子单元212从命令数据寄存器获取命令帧后,将命令状态寄存器的状态位设置为空。
应答帧提供单元23进一步包括:
本地应答状态寄存器检测子单元231,用于检测本地的应答状态寄存器的状态位是否为空。应答帧提供子单元232,用于在本地应答状态寄存器子检测单元231检测到应答状态寄存器的状态位为空时,将应答帧存储到应答数据寄存器。本地应答状态寄存器设置子单元233,用于在应答帧提供子单元232将应答帧存储到应答数据寄存器后,将本地的应答状态寄存器的状态位设置为非空。
通过使用本发明提供的上述系统和设备,在AP与终端之间建立了标准的通讯协议,该协议定义了终端设备所支持的多种操作功能,通过不同的命令代码区分不同类型的操作,通过命令数据将参数传递给目标设备,使得AP可以只将命令代码向终端发送即可,而不必关心终端对需要执行的操作的具体实现,简化了AP对终端的操作复杂度,提高了命令的下发和处理速度,保证了操作的事实性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。