具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的扩展坞10包括:连接主体设备的第一协议/第二协议复用接口15;连接第一协议外接设备的至少一个第一协议设备接口11;连接第二协议外接设备的至少一个第二协议设备接口13。进一步地,本实施例中的扩展坞10还包括:
第一协议设备接口控制模块12,与第一协议设备接口11连接,用于通过第一协议设备接口11接收第一协议外接设备发送的第一协议数据。
第二协议设备接口控制模块14,与第二协议设备接口13连接,用于通过第二协议设备接口13接收第二协议外接设备发送的第二协议数据。
协议转换控制模块17,与第一协议设备接口控制模块12、第二协议设备接口控制模块14、复用接口控制模块16连接,用于将第一协议设备接口控制模块12接收到的第一协数据转换为第二协议数据,并发送到复用接口控制模块16。
复用接口控制模块16,与协议转换控制模块17、第一协议/第二协议复用接口15连接,用于将协议转换控制模块17发送的第二协议数据通过第一协议/第二协议复用接口15发送至主体设备。
进一步地,如图2所示,协议转换控制模块17可以包括:
协议转换子模块171,与第一协议设备接口控制模块、主控子模块连接,用于将第一协议设备接口控制模块接收到的第一协议数据转换为第二协议数据,并将转换后的第二协议数据发送至主控子模块。
主控子模块172,与第二协议设备接口控制模块、协议转换子模块、复用接口控制模块连接,用于将第二协议设备接口控制模块接收到的第二协议数据发送至复用接口控制模块;将协议转换子模块转换后得到的第二协议数据发送至复用接口控制模块。
本发明实施例提供的扩展坞,将第一协议设备接口接收到的第一协议数据转换为第二协议数据,并利用第一协议/第二协议复用接口发送至主体设备。这样,即使第一协议接口设备和第二协议接口设备同时接入该扩展坞,由于经过了协议转换,从扩展坞向主体设备输出的只有一种协议数据,从而实现了第一协议接口设备、第二协议接口设备共用一个复用接口,也即实现了同一复用端口上的两种协议设备的同时工作。
如图3所示,本发明另一实施例提供的扩展坞30,以一端设有连接手机(主体设备)的USB/MHL复用接口35,另一端设有连接USB接口设备的USB接口31和连接HDMI接口设备的HDMI接口33为例进行说明。需要说明的是,在本实施例中,USB接口31和HDMI接口33均为一个,只是举例,其个数还可以是多个。
将扩展坞30的USB/MHL复用接口35***手机的USB/MHL复用接口上,之后在USB接口31上接入USB设备,如USB键盘;在HDMI接口33上接入HDMI接口设备。
此时,与USB接口31连接的USB接口控制模块32,通过USB接口31接收USB键盘发送的USB协议数据。
与HDMI接口33连接的HDMI接口控制模块34,通过HDMI接口33接收HDMI接口设备发送的CEC协议数据。
与USB接口控制模块32、HDMI接口控制模块34、USB/CEC复用接口控制模块36连接的USB/CEC协议转换控制模块37,将USB接口控制模块32接收到的USB协议数据转换为CEC协议数据,并发送至USB/CEC复用接口控制模块36。
具体的,USB/CEC协议转换控制模块37中包括相互连接的USB/CEC协议转换子模块371和主控子模块372。其中,USB/CEC协议转换子模块371,与USB接口控制模块32、主控子模块372连接,用于将USB接口控制模块32接收到的USB协议数据转换为CEC协议数据,并将转换后的CEC协议数据发送至主控子模块372;主控子模块372,与HDMI接口控制模块34、USB/CEC协议转换子模块371、USB/CEC复用接口控制模块36连接,用于将HDMI接口控制模块34接收到的CEC协议数据发送至USB/CEC复用接口控制模块36;将USB/CEC协议转换子模块371转换后得到的CEC协议数据发送至USB/CEC复用接口控制模块36。
USB/CEC复用接口控制模块36,与USB/CEC协议转换控制模块37的主控子模块372、USB/MHL复用接口35连接,用于将USB/CEC协议转换控制模块37的USB/CEC协议转换子模块371发送的CEC协议数据通过USB/MHL复用接口36发送至手机。
下面具体对将USB协议数据转换成CEC协议数据进行说明。
USB协议为USB设备定义的一套描述设备功能和属性的有固定结构的描述符,包括标准的描述符(即设备描述符)、配置描述符、接口描述符、端点描述符和字符串描述符等。USB设备通过这些描述符向USB主机汇报设备的各种各样属性,主机通过对这些描述符的访问对设备进行类型识别、配置并为其提供相应的客户端驱动程序。
USB设备通过描述符反映自己的设备特性。USB描述符是由特定格式排列的一组数据结构组成。
每个USB设备只有一个设备描述符,而一个设备中可包含一个或多个配置描述符,即USB设备可以有多种配置。设备的每一个配置中又可以包含一个或多个接口描述符,即USB设备可以支持多种接口,接口的特性通过描述符提供。
设备描述符给出了USB设备的一般信息,包括对设备及在设备配置中起全程作用的信息,包括制造商标识号ID、产品序列号、所属设备类号、默认端点的最大包长度和配置描述符的个数等。一个USB设备必须有且仅有一个设备描述符。设备描述符是设备连接到总线上时USB主机所读取的第一个描述符,它包含了14个字段,结构可以如表1所示:
表1、USB设备描述符的结构
其中bDescriptorType为描述符的类型,其含义可查表2(此表也适用于标准命令Get_Descriptor中wValue域高字节的取值含义):
表2、USB描述符的类型
设备类代码bDeviceClass可查表3:
值(十进制) |
值(十六进制) |
说明 |
0 |
0x 00 |
接口描述符中提供类的值 |
2 |
0x 02 |
通信类 |
9 |
0x 09 |
集线器类 |
220 |
0xDC |
用于诊断用途的设备类 |
224 |
0xE 0 |
无线通信设备类 |
255 |
0xFF |
厂商定义的设备类 |
表3、USB设备的类别
当USB键盘连接到扩展坞30上,并有按键按下时,扩展坞30的USB接口控制模块32会收到如下数据:
0x05,0x01,//USAGE_PAGE(Generic Desktop)
0x09,0x06,//USAGE(Keyboard)
0xa 1,0x01,//COLLECTION(Application)
0x05,0x07,//USAGE_PAGE(Keyboard)
0x19,0xe0,//USAGE_MINIMUM(Keyboard LeftControl)
0x29,0xe7,//USAGE_MAXIMUM(Keyboard Right GUI)
0x15,0x00,//LOGICAL_MINIMUM(0)
0x25,0x01,//LOGICAL_MAXIMUM(1)
0x75,0x01,//REPORT_SIZE(1)
0x95,0x08,//REPORT_COUNT(8)
0x81,0x02,//INPUT(Data,Var,Abs)
0x95,0x01,//REPORT_COUNT(1)
0x75,0x08,//REPORT_SIZE(8)
0x81,0x03,//INPUT(Cnst,Var,Abs)
0x95,0x05,//REPORT_COUNT (5)
0x75,0x01,//REPORT_SIZE (1)
0x05,0x08,//USAGE_PAGE (LEDs)
0x19,0x01,//USAGE_MINIMUM (Num Lock)
0x29,0x05,//USAGE_MAXIMUM (Kana)
0x91,0x02,//OUTPUT(Data,Var,Abs)
0x95,0x01,//REPORT_COUNT (1)
0x75,0x03,//REPORT_SIZE (3)
0x91,0x03,//OUTPUT(Cnst,Var,Abs)
0x95,0x06,//REPORT_COUNT (6)
0x75,0x08,//REPORT_IZE (8)
0x15,0x00,//LOGICAL_MINIMUM (0)
0x25,0xFF,//LOGICAL_MAXIMUM (255)
0x05,0x07,//USAGE_PAGE (Keyboard)
0x19,0x00,//USAGE_MINIMUM(Reserved(no event indicated))
0x29,0x65,//USAGE_MAXIMUM(Keyboard Application)
0x81,0x00,//INPUT(Data,Ary,Abs)
0xc0//END_COLLECTION
具体的,该数据的对应关系可以参考表4
USB键值对应的表格可以参考USB协议中HID部分表4
表4、USB键值对应的USB协议数值
具体的,当USB键盘的数字“1”按下后,USB接口控制模块32解析对应的USB协议数据为:
00001E 0000000000//1E表明是数字1按下
示例性的,当表4中的USB协议中键值对应表的Hex文件格式中的数值为1E时表示数字1按下,当Hex文件格式中的数值为1F是表示数字2按下,其他数值可以参考表4进行相应的解析,在此不再赘述。
在此,CEC数据包格式协议可以如表5所示:
CEC表的框架说明
表5、CEC数据包格式协议
USB/CEC协议转换子模块371将USB键盘上报的键值数据重新打包后将其转换为CEC协议数据,并发送至USB/CEC复用接口控制模块36。
USB/CEC复用接口控制模块36,通过USB/MHL复用接口35将转换后的CEC协议数据,通过CEC协议中的遥控命令协议发送至手机,对应的协议如下:
CEC 13.13Remote Control Pass Through
CEC 13.13.1Messages
The following messages are used for the Remote Control Pass
Through feature:
<User Control Pressed>,<User Control Released>
针对按键,该协议格的式为:
<Start><HEADER Block><User Control Pressed>[key]
数字“1”按下的数据包转换为:
<Start>0.0.0.00x440x21
0x21就是CEC命令表中的命令值。
参考CEC的命令表6,USB简单常用键值的对应表对应如下
表6、USB键值对应的USB协议数据及CEC数据包格式协议
手机接收到数据后,从CEC命令中解析出对应的键值。
具体的,可以在手机中增加一个CEC虚拟键盘设备,并配置对应的虚拟键盘映射表。
static unsigned short keypad_keymap_cec[KEYMAP_SIZE]={
[KEYMAP_CEC(0x00)]=KEY_SELECT,
[KEYMAP_CEC(0x01)]=KEY_UP,
[KEYMAP_CEC(0x02)]=KEY_DOWN,
[KEYMAP_CEC(0x03)]=KEY_LEFT,
[KEYMAP_CEC(0x04)]=KEY_RIGHT,
[KEYMAP_CEC(0x20)]=KEY_0,
[KEYMAP_CEC(0x21)]=KEY_1,
[KEYMAP_CEC(0x22)]=KEY_2,
[KEYMAP_CEC(0x23)]=KEY_3,
[KEYMAP_CEC(0x24)]=KEY_4,
[KEYMAP_CEC(0x25)]=KEY_5,
[KEYMAP_CEC(0x26)]=KEY_6,
[KEYMAP_CEC(0x27)]=KEY_7,
[KEYMAP_CEC(0x28)]=KEY_8,
[KEYMAP_CEC(0x29)]=KEY_9,
[KEYMAP_CEC(0x2A)]=KEY_DOT,
[KEYMAP_CEC(0x2B)]=KEY_ENTER,
... ... ... ...
};
手机调用键值上报函数,将接收到的数据包“<Start>0.0.0.00x440x21”通过对应虚拟键盘映射表确定为“KEY 1”按键“1”信息,进而在屏幕上显示按键“1”对应的内容。
其中,本发明实施例中的协议转换过程为当USB键值按下数字1时利用表4解析出相应的USB协议数据中的Hex值1E,将USB协议数据通过USB/CEC协议转换子模块371转换成相应的CEC协议数值0x21,通过表6及手机上报函数将相应的CEC数据包转换成虚拟键盘映射表对应的“KEY 1”按键“1”信息,进而在屏幕上显示按键“1”对应的内容。
在本实施例中,USB接口设备是以USB键盘为例进行的说明,但本发明实施例并不限于此,还可以是其他USB接口设备。
例如,当扩展坞中***一个USB鼠标时,扩展坞识别出鼠标***后,通过CEC命令通知手机,此时手机可以将当前的焦点指示切换为鼠标的形状,将应用场景切换到跟适合使用鼠标的状态。
或者,可以接入USB指纹识别设备,USB画板或USB画笔,识别对应的轨迹,通过扩展坞和手机显示在HDMI接口高清多媒体显示器上。在手机上配合绘图应用,实现对应的绘图功能。
或者,还可以接入USB游戏控制器,通过USB游戏控制器控制手机中的游戏。
本发明实施例提供的扩展坞,将USB设备接口接收到的USB协议数据转换为CEC协议数据,并利用USB/HML复用接口发送至手机。这样,即使USB协议接口设备和HDMI协议接口设备同时接入该扩展坞,由于经过了协议转换,从扩展坞向主体设备输出的只有一种协议数据,从而实现了USB接口设备、HDMI接口设备共用一个复用接口,也即实现了同一复用端口上的两种协议设备的同时工作。
本发明又一实施例提供的扩展坞40,如图4所示,以一端设有连接手机(主体设备)的USB/MHL复用接口45,另一端设有连接USB接口设备的USB接口41和连接HDMI接口设备的HDMI接口43为例进行说明。需要说明的是,在本实施例中,USB接口41和HDMI接口43均为一个,只是举例,其个数还可以是多个。
本实施例提供的扩展坞40与上一实施例提供的扩展坞30结构基本相同,只是本实施例提供的扩展坞30中是将HDMI接口设备的CEC协议数据转换为USB协议数据,因此其内部构造为:
如图4所示,还包括:
USB接口控制模块42,与USB接口41连接,用于通过USB接口41接收USB接口设备发送的USB协议数据。
HDMI接口控制模块44,与HDMI接口43连接,用于通过HDMI接口43接收HDMI接口设备发送的CEC协议数据。
CEC/USB协议转换控制模块47,与USB接口控制模块42、HDMI接口控制模块44、USB/CEC复用接口控制模块46连接,用于将HDMI接口控制模块44接收到的CEC协议数据转换为USB协议数据,并发送至USB/CEC复用接口控制模块46。具体的,该CEC/USB协议转换控制模块47可以包括:与HDMI接口控制模块44、主控子模块472连接的CEC/USB协议转换子模块471,用于将HDMI接口控制模块44接收到的CEC协议数据转换为USB协议数据,并将转换后的USB协议数据发送至主控子模块472;,与USB接口控制模块42、CEC/USB协议转换子模块471、USB/MHL复用接口控制模块连接的主控子模块472,用于将USB接口控制模块42接收到的USB协议数据发送至USB/CEC复用接口控制模块46;将CEC/USB协议转换子模块471转换后得到的USB协议数据发送至USB/CEC复用接口控制模块46。
USB/CEC复用接口控制模块46,与CEC/USB协议转换控制模块47、USB/MHL复用接口45连接,用于将CEC/USB协议转换控制模块47发送的USB协议数据通过USB/MHL复用接口45发送至主体设备。
本发明实施例提供的扩展坞,将HDMI设备接口接收到的CEC协议数据转换为USB协议数据,并利用USB/HML复用接口发送至手机。这样,即使USB协议接口设备和HDMI协议接口设备同时接入该扩展坞,由于经过了协议转换,从扩展坞向主体设备输出的只有一种协议数据,从而实现了USB接口设备、HDMI接口设备共用一个复用接口,也即实现了同一复用端口上的两种协议设备的同时工作。
在实际生产的扩展坞50产品中,可以如图5所示,将上述实施例中的USB接口控制模块、HDMI接口控制模块、CEC/USB协议转换子模块、主控子模块和USB/CEC复用接口控制模块的功能用CPU54实现。此外CPU 54还连接有向其供电的电源55、与其进行数据交互的USB/HML复用接口56、USB接口52和HDMI接口51,以及播放连接主体音频的音频输出模块53。
如图6所示,本发明实施例提供的主体设备60包括:连接扩展坞的第一协议/第二协议复用接口61,进一步地,本实施例中的主体设备60还包括:
复用接口控制模块62,与所述解析模块63、所述第一协议/第二协议复用接口61连接,用于通过所述第一协议/第二协议复用接口61接收所述扩展坞发送的第二协议数据。
解析模块63,与所述复用接口控制模块62连接,用于解析通过所述复用接口控制模块62获得的第二协议数据。
键值转换模块64,用于将解析的所述第二协议数据,转换成相应的键值。
主控模块65,与所述解析模块63、键值转换模块64连接,用于将所述解析模块63解析后的第二协议数据发送至所述键值转换控制模块64。
本发明实施例提供的主体设备,将第一协议/第二协议复用接口接收的转换后的第二协议数据,经解析模块解析出来,并转换成相应的键值,实现了对协议数据的解析及显示。
如图7所示,本发明另一实施例提供的主体设备70包括:连接扩展坞的USB/MHL复用接口71,进一步地,本实施例中的主体设备70还包括:
USB/MHL复用接口控制模块72,与所述解析模块73、所述USB/MHL复用接口71连接,用于通过所述USB/MHL复用接口71接收所述扩展坞发送的第二协议数据。
解析模块73,与所述USB/MHL复用接口控制模块72连接,用于解析通过所述USB/MHL复用接口控制模块72获得的第二协议数据。
键值转换模块74,用于将解析的所述第二协议数据,转换成相应的键值。
主控模块75,与所述解析模块73、键值转换模块74连接,用于将所述解析模块73解析后的第二协议数据发送至所述键值转换控制模块74。
本发明实施例提供的主体设备,将第一协议/第二协议复用接口接收的转换后的第二协议数据,经解析模块解析出来,并转换成相应的键值,实现了对协议数据的解析及处理。
本发明实施例提供的外接设备控制方法,利用图1所示的扩展坞10,该扩展坞10包括:连接主体设备的第一协议/第二协议复用接口15;连接第一协议外接设备的至少一个第一协议设备接口11;连接第二协议外接设备的至少一个第二协议设备接口13,如图8所示,该方法步骤包括:
S801、通过第一协议设备接口11接收第一协议外接设备发送的第一协议数据。
S802、将第一协数据转换为第二协议数据,通过第一协议/第二协议复用接口15发送至主体设备。
进一步地,以图3所示的扩展坞30为例,该扩展坞30具体包括:连接主体设备的USB/MHL复用接口35;连接USB接口设备的至少一个USB接口31;连接HDMI接口设备的至少一个HDMI接口33;则该方法具体包括:
S801′、通过USB接口31接收USB接口设备发送的USB协议数据。
S802′、将USB协议数据转换为CEC协议数据,通过USB/MHL复用接口35发送至主体设备。
或者,以图4所示的扩展坞40为例,该扩展坞40具体包括:连接主体设备的USB/MHL复用接口45;连接USB接口设备的至少一个USB接口41;连接HDMI接口设备的至少一个HDMI接口43。则该方法具体包括:
S80″、通过HDMI接口43接收HDMI接口设备发送的CEC协议数据。
S802″、将CEC协议数据转换为USB协议数据,通过USB/MHL复用接口45发送至主体设备。
本发明实施例提供的利用扩展坞进行的外接设备控制方法,利用扩展坞将第一协议设备接口接收到的第一协议数据转换为第二协议数据,并利用第一协议/第二协议复用接口发送至主体设备。这样,即使第一协议接口设备和第二协议接口设备同时接入该扩展坞,由于经过了协议转换,从扩展坞向主体设备输出的只有一种协议数据,从而实现了第一协议接口设备、第二协议接口设备共用一个复用接口,也即实现了同一复用端口上的两种协议设备的同时工作。
本发明实施例提供的外接设备控制方法,利用图6所示的主体设备60,该主体设备60包括:连接扩展坞的第一协议/第二协议复用接口61,如图9所示,该方法步骤包括:
S901、通过第一协议/第二协议复用接口61接收所述扩展坞发送的第二协议数据。
S902、解析所述第二协议数据。
进一步地,以图7所示的主体设备70为例,该主体设备70具体包括:连接扩展坞的USB/MHL复用接口71;则该方法包括:
S901′、通过第一协议/第二协议复用接口接收所述扩展坞发送的第二协议数据。
S902′、解析所述第二协议数据。
本发明实施例提供的外接设备控制方法,将第一协议/第二协议复用接口接收的转换后的第二协议数据,经解析模块解析出来,并转换成相应的键值,实现了对协议数据的解析及处理。
本发明实施例提供的***,对应上述方法实施例、扩展坞及主体设备实施例,该***各个扩展坞及主体设备的各个功能单元均可以用于上述方法步骤。如图10所示,包括以下扩展坞及主体设备:
扩展坞101、主体设备102,其中,扩展坞101可以为图1中所示的扩展坞,并可以执行图8所述方法实施例的技术方案,主体设备102可以为图6中所示的主体设备,并可以执行图9所述方法实施例的技术方案,其实现原理类似在此不再赘述。
本发明实施例提供的利用扩展坞进行的外接设备控制***,利用扩展坞将第一协议设备接口接收到的第一协议数据转换为第二协议数据,并利用第一协议/第二协议复用接口发送至主体设备。这样,即使第一协议接口设备和第二协议接口设备同时接入该扩展坞,由于经过了协议转换,从扩展坞向主体设备输出的只有一种协议数据,从而实现了第一协议接口设备、第二协议接口设备共用一个复用接口,也即实现了同一复用端口上的两种协议设备的同时工作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。