一种基于IIC总线的设备优先级控制方法、装置及系统
技术领域
本发明涉及移动终端技术领域,特别涉及一种基于IIC总线的设备优先级控制方法、装置及系统。
背景技术
目前移动终端上的很多外围设备都是通过通用的IIC总线与主控制器相连接,从而使主控制器上一个IIC总线接口连接多个外围设备,达到节省主控制器上的引脚资源的目的;然而这也同时带来一个问题,就是由于IIC总线被多个设备所复用,主控制器与各外围设备之间通过IIC通信时并不区分优先级,从而有可能存在低优先级的设备长期占用IIC总线的情况,使高优先级的设备无法使用IIC总线。例如,主控制器通过一个IIC总线接口连接了NFC芯片与方向传感器,一般而言因为NFC功能用于移动支付,因此对于实时性要求高,故NFC芯片的优先级高于方向传感器,若方向传感器有大量数据传输给主控制器连续占用IIC总线5秒,而在这5秒内用户进行的移动支付功能将无法使用。
因而现有技术还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于IIC总线的设备优先级控制方法、装置及系统,当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器与外围设备之间的通信,从而提升了移动终端的性能。
为了达到上述目的,本发明采取了以下技术方案:
一种基于IIC总线的设备优先级控制方法,其包括如下步骤:
A、由优先级定义模块预先定义IIC总线上连接的所有外围设备的优先级;
B、由存储模块存储所有外围设备的设备号及对应的优先级信息;
C、获取模块在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;
D、由控制模块根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态。
所述的基于IIC总线的设备优先级控制方法中,所述步骤D包括:
D1、由检测单元检测当前IIC总线上外围设备的通信状态;
D2、当IIC总线上进行IIC通信时,获取单元获取正在通信的当前外围设备的设备号及其优先级信息;
D3、由判断单元判断所述当前外围设备的优先级是否高于待通信外围设备的优先级,若是,则执行步骤D4;若否,则执行步骤D5;
D4、由控制单元继续处理当前外围设备的IIC通信,并将待通信外围设备的IIC通信信息存储在存储模块中;
D5、由控制单元停止处理当前外围设备的IIC通信后将其未完成的通信数据存储在存储模块中,并启动对待通信外围设备的IIC通信信息的处理。
所述的基于IIC总线的设备优先级控制方法中,所述步骤D1之后还包括:
D01、当IIC总线上未进行IIC通信时,控制单元启动对待通信外围设备的IIC通信信息的处理。
所述的基于IIC总线的设备优先级控制方法中,所述步骤D之后还包括:
E、当IIC总线上的通信结束时,由待通信检测模块检测存储模块中是否还存储有待通信的IIC通信信息,若是,则执行步骤F;若否,则无动作;
F、控制模块根据所有待通信的IIC通信信息对应的优先级信息,按优先级从高到低排序,依次处理所述待通信的IIC通信信息。
所述的基于IIC总线的设备优先级控制方法中,所述IIC通信信息包括:IIC总线号、设备号和通信数据。
一种基于IIC总线的设备优先级控制装置,其包括:
优先级定义模块,用于预先定义IIC总线上连接的所有外围设备的优先级;
存储模块,用于存储所有外围设备的设备号及对应的优先级信息;
获取模块,用于在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;
控制模块,用于根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态。
所述的基于IIC总线的设备优先级控制装置中,其特征在于,所述控制模块包括:
检测单元,用于检测当前IIC总线上外围设备的通信状态;
获取单元,用于当IIC总线上进行IIC通信时,获取正在通信的当前外围设备的设备号及其优先级信息;
判断单元,用于判断所述当前外围设备的优先级是否高于待通信外围设备的优先级;
控制单元,用于在当前外围设备的优先级高于待通信外围设备的优先级时,继续处理当前外围设备的IIC通信,并将待通信外围设备的IIC通信信息存储在存储模块中;在当前外围设备的优先级低于待通信外围设备的优先级时,停止处理当前外围设备的IIC通信后将其未完成的通信数据存储在存储模块中,并启动对待通信外围设备的IIC通信信息的处理。
所述的基于IIC总线的设备优先级控制装置中,所述控制单元还用于当IIC总线上未进行IIC通信时,启动对待通信外围设备的IIC通信信息的处理。
所述的基于IIC总线的设备优先级控制装置中,还包括:
待通信检测模块,用于当IIC总线上的通信结束时,检测存储模块中是否还存储有待通信的IIC通信信息;
所述控制模块还用于在存储模块中存储有待通信的IIC通信信息时,根据所有待通信的IIC通信信息对应的优先级信息,按优先级从高到低排序,依次处理所述待通信的IIC通信信息。
一种基于IIC总线的设备优先级控制系统,包括主控制器,还包括多个如上所述的基于IIC总线的设备优先级控制装置,所述主控制器和所述多个设备优先级控制装置通过IIC总线连接。
相较于现有技术,本发明提供的基于IIC总线的设备优先级控制方法、装置及系统中,所述基于IIC总线的设备优先级控制方法通过优先级定义模块预先定义IIC总线上连接的所有外围设备的优先级;之后由存储模块存储所有外围设备的设备号及对应的优先级信息;之后获取模块在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;之后由控制模块根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态,从而当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器与外围设备之间的通信,从而提升了移动终端的性能。
附图说明
图1 为本发明提供的基于IIC总线的设备优先级控制方法的流程图。
图2为本发明提供的基于IIC总线的设备优先级控制系统的结构框图。
图3为本发明提供的基于IIC总线的设备优先级控制装置的结构框图。
图4为本发明提供的基于IIC总线的设备优先级控制系统的优选实施例的结构框图。
具体实施方式
鉴于现有技术中IIC总线被多个设备所复用时由于不分优先级,很可能出现低优先级的设备长期占用IIC总线,而高优先级的设备无法及时通信,给用户的使用带来不便等缺点,本发明的目的在于提供一种基于IIC总线的设备优先级控制方法、装置及系统,当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器与外围设备之间的通信,从而提升了移动终端的性能。
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明提供的基于IIC总线的设备优先级控制方法包括如下步骤:
S100、由优先级定义模块预先定义IIC总线上连接的所有外围设备的优先级;
S200、由存储模块存储所有外围设备的设备号及对应的优先级信息;
S300、获取模块在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;
S400、由控制模块根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态。
本发明通过优先级定义模块预先定义IIC总线上连接的所有外围设备的优先级;之后由存储模块存储所有外围设备的设备号及对应的优先级信息;之后获取模块在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;之后由控制模块根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态,从而当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器与外围设备之间的通信,从而提升了移动终端的性能,也更贴合用户的实际使用情况,给用户带了方便。
具体实施时,可将IIC总线上连接的所有外围设备进行编号,如设备1、设备2、设备3等等,并根据各个设备的实际使用需求设置其优先级,如NFC功能一般用于移动支付对于实时性要求高,与方向传感器相比,NFC芯片的优先级高于方向传感器,具体优先级可用数字表示,数字越大表示优先级越高,从而能简单明了的得到外围设备的优先级信息。并由存储模块存储所有外围设备的设备号及对应的优先级信息,优选地可以生成一设备优先级列表,优先级与设备号对应记录,并保存在存储模块中以供调用。
当主控制器向待通信外围设备发起IIC通信时,由获取模块获取所述待通信外围设备的IIC通信信息及其优先级信息,其中,所述IIC通信信息包括:IIC总线号、设备号和通信数据,根据所述IIC通信信息中的设备号即可对应获取到该设备的优先级信息。
进一步地,所述步骤S400包括:
S401、由检测单元检测当前IIC总线上外围设备的通信状态;
S402、当IIC总线上进行IIC通信时,获取单元获取正在通信的当前外围设备的设备号及其优先级信息;
S403、由判断单元判断所述当前外围设备的优先级是否高于待通信外围设备的优先级,若是,则执行步骤S404;若否,则执行步骤S405;
S404、由控制单元继续处理当前外围设备的IIC通信,并将待通信外围设备的IIC通信信息存储在存储模块中;
S405、由控制单元停止处理当前外围设备的IIC通信后将其未完成的通信数据存储在存储模块中,并启动对待通信外围设备的IIC通信信息的处理。
即当获取模块获取了待通信设备的IIC通信信息及优先级信息后,检测单元先检测当前IIC总线上的外围设备的通信状态,若当前IIC总线上正在进行IIC通信时,由获取单元获取正在通信的当前外围设备的设备号及其优先级信息;之后判断单元判断当前正在通信的外围设备和待通信外围设备的优先级的高低;当当前外围设备的优先级高于待通信外围设备的优先级时,则控制单元继续处理当前外围设备的IIC通信,并将待通信外围设备的IIC通信信息存储在存储模块中;当当前外围设备的优先级低于待通信外围设备的优先级时,则控制单元停止处理当前外围设备的IIC通信后将其未完成的通信数据存储在存储模块中,并启动对待通信外围设备的IIC通信信息的处理,从而实现了当IIC总线上正在进行通信时,通过比较当前外围设备和待通信外围设备的优先级高低来控制两个设备的通信先后,避免出现低优先级的外围设备长期占用IIC总线,使得高优先级的外围设备无法及时使用的情况,给用户带来不便。
更进一步地,所述步骤S401之后还包括:
S411、当IIC总线上未进行IIC通信时,控制单元启动对待通信外围设备的IIC通信信息的处理。
即当获取模块获取了待通信设备的IIC通信信息及优先级信息后,检测单元先检测当前IIC总线上的外围设备的通信状态,若当IIC总线上未进行IIC通信时,则无需判断待通信外围设备的优先级,直接由控制单元启动对待通信外围设备的IIC通信信息的处理,提高了处理效率。
优选地,本发明提供的基于IIC总线的设备优先级控制方法中,所述步骤S400之后还包括:
S500、当IIC总线上的通信结束时,由待通信检测模块检测存储模块中是否还存储有待通信的IIC通信信息,若是,则执行步骤S600;若否,则无动作;
S600、控制模块根据所有待通信的IIC通信信息对应的优先级信息,按优先级从高到低排序,依次处理所述待通信的IIC通信信息。
即当当前IIC总线上的外围设备通信结束之后,检测存储模块中是否还有待通信的IIC通信信息,即待通信的外围设备,若无,则IIC总线将暂时保持空闲;若有,则控制模块根据所有待通信的IIC通信信息对应的优先级信息,按优先级从高到低排序,依次处理所述待通信的IIC通信信息,先处理优先级高的再处理优先级低的,从而不会漏处理外围设备的通信信息,同时也能按照其优先级顺序依次进行处理,更贴合用户的需要。
本发明还相应提供一种基于IIC总线的设备优先级控制系统,如图2所示,所述基于IIC总线的设备优先级控制系统包括主控制器10和多个基于IIC总线的设备优先级控制装置20,所述主控制器10和所述多个设备优先级控制装置20通过IIC总线连接,由所述多个设备优先级控制装置20根据所有外围设备的优先级信息分别控制多条IIC总线上的外围设备的处理顺序。
具体地,请一并参阅图3,本发明提供的基于IIC总线的设备优先级控制装置20包括优先级定义模块201、存储模块202、获取模块203和控制模块204,所述优先级定义模块201、存储模块202和获取模块203依次连接,所述获取模块203和存储模块202还连接所述控制模块204。其中,所述优先级定义模块201用于预先定义IIC总线上连接的所有外围设备的优先级;所述存储模块202用于存储所有外围设备的设备号及对应的优先级信息;所述获取模块203用于在主控制器10向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;所述控制模块204用于根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态。
本发明通过优先级定义模块201预先定义IIC总线上连接的所有外围设备的优先级;之后由存储模块202存储所有外围设备的设备号及对应的优先级信息;之后获取模块203在主控制器10向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;之后由控制模块204根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态,从而当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器10与外围设备之间的通信,从而提升了移动终端的性能,也更贴合用户的实际使用情况,给用户带了方便。具体请参阅上述方法对应的实施例。
进一步地,所述控制模块204包括检测单元2041、获取单元2042、判断单元2043和控制单元2044,所述检测单元2041、获取单元2042、判断单元2043和控制单元2044依次连接,所述判断单元2043还连接所述获取模块203,所述控制单元2044还连接所述存储模块202。其中,所述检测单元2041用于检测当前IIC总线上外围设备的通信状态;所述获取单元2042用于当IIC总线上进行IIC通信时,获取正在通信的当前外围设备的设备号及其优先级信息;所述判断单元2043用于判断所述当前外围设备的优先级是否高于待通信外围设备的优先级;所述控制单元2044用于在当前外围设备的优先级高于待通信外围设备的优先级时,继续处理当前外围设备的IIC通信,并将待通信外围设备的IIC通信信息存储在存储模块202中;在当前外围设备的优先级低于待通信外围设备的优先级时,停止处理当前外围设备的IIC通信后将其未完成的通信数据存储在存储模块202中,并启动对待通信外围设备的IIC通信信息的处理。具体请参阅上述方法对应的实施例。
更进一步地,所述控制单元2044还用于当IIC总线上未进行IIC通信时,启动对待通信外围设备的IIC通信信息的处理。具体请参阅上述方法对应的实施例。
优选地,本发明提供的基于IIC总线的设备优先级控制装置20还包括待通信检测模块205,所述待通信检测模块205连接所述存储模块202。所述待通信检测模块205用于当IIC总线上的通信结束时,检测存储模块202中是否还存储有待通信的IIC通信信息;所述控制模块204还用于在存储模块202中存储有待通信的IIC通信信息时,根据所有待通信的IIC通信信息对应的优先级信息,按优先级从高到低排序,依次处理所述待通信的IIC通信信息。具体请参阅上述方法对应的实施例。
为了更好的理解本发明的技术方案,以下结合图2、图3和图4,举具体应用实施例对本发明的基于IIC总线的设备优先级控制系统的工作程序进行详细说明:
如图4所示,本发明的优选实施例中主控制器10上连接有三条IIC总线,即IIC总线1、IIC总线2、和IIC总线3,每条IIC总线上均连接有本发明提供的设备优先级控制装置20和若干个外围设备,为方便描述以下将对应的设备优先级控制装置20命名为设备优先级控制装置201、设备优先级控制装置202和设备优先级控制装置203,IIC总线1上连接的外围设备为设备1、设备2和设备3,IIC总线2上连接的外围设备为设备4和设备5,IIC总线3上连接的外围设备为设备6和设备7。
首先预先定义IIC总线上连接的所有外围设备的优先级,并保持,如图4中的七个外围设备,预先定义其优先级如下:
优先级 |
设备号 |
1 |
设备1 |
2 |
设备2 |
3 |
设备3 |
4 |
设备4 |
5 |
设备5 |
86 |
设备6 |
66 |
设备7 |
第一列为优先级,数字越大优先级越高,第二列为设备号;该内容将以文件(文件名为’设备优先级列表’)的形式保存在存储模块202中。
之后当主控制器10发起一次新的IIC通信时,获取模块203,获取所述待通信外围设备的IIC通信信息及其优先级信息,所述IIC通信信息包括:IIC总线号、设备号和通信数据,之后传输给IIC总线号对应的设备优先级控制装置20。如当主控制器10发起一次IIC通信,IIC总线号为3、设备号为6、以及相应的通信数据,则将 “设备号6、以及相应的通信数据”传递给设备优先级控制装置203。
之后根据当前IIC总线上外围设备的通信状态、待通信外围设备的IIC通信信息和优先级信息来控制待通信外围设备的工作状态。具体如图4中所示,各个设备优先级控制装置20的工作情况可分为如下五种情况。
第一种、当接收到传递过来的待发起的IIC通信信息时,查看该通信信息中包含的设备号对应的优先级X,如果当前正在进行IIC通信则获取正在通信的设备号对应的优先级Y,如果X高于Y(或称X大于Y)则将停止正在进行的IIC通信,并将设备号(优先级Y对应的设备号)及未通信完的数据暂时存储在存储模块202中;然后启动对于待发起的IIC通信内容的处理。比如,主控制器10发起一次IIC通信,IIC总线号为3、设备号为6、以及相应的通信数据,而当前设备7正在占用IIC总线3,则这止设备7占用总线,并将设备7及未通信完的数据暂时存储在存储模块202中,然后由设备号6占用IIC总线并进行通信。
第二种、当接收到传递过来的待发起的IIC通信信息时,查看该通信信息中包含的设备号对应的优先级X,如果当前正在进行IIC通信则获取正在通信的设备号对应的优先级Y,如果X低于Y(或称X小于Y)则将该待发起的IIC通信信息存储在存储模块202中,存储的内容包括设备号和通信数据。比如,主控制器10发起一次IIC通信,IIC总线号为3、设备号为7、以及相应的通信数据,而当前设备6正在占用IIC总线3,则将该待发起的IIC通信内容存储在存储模块202中,存储的内容包括:设备7、通信数据。
第三种、当接收到传递过来的待发起的IIC通信信息时,查看该通信信息中包含的设备号对应的优先级X,如果当前未在进行IIC通信,则直接对该待发起的IIC通信信息进行处理。比如,主控制器10发起一次IIC通信,IIC总线号为3、设备号为7、以及相应的通信数据,而当前没有设备占用IIC总线3,则由设备7占用IIC总线3,并进行通信。
第四种、当一个设备通信结束,释放总线时;如果该总线对应的设备优先级控制装置20中待发起的IIC通信信息为空,则该IIC总线将暂时空闲。
第五种、当一个设备通信结束,释放总线时;如果该总线对应的设备优先级控制装置20中待发起的IIC通信信息不为空,则处理设备号对应的优先级最高的待发起的IIC通信信息。比如当设备3释放总线时,看到存储在IIC设备通信模块中有设备1,设备2的待发起的IIC通信信息,则先处理设备2的通信信息。
综上所述,本发明提供的基于IIC总线的设备优先级控制方法、装置及系统中,所述基于IIC总线的设备优先级控制方法通过优先级定义模块预先定义IIC总线上连接的所有外围设备的优先级;之后由存储模块存储所有外围设备的设备号及对应的优先级信息;之后获取模块在主控制器向待通信外围设备发起IIC通信时,获取所述待通信外围设备的IIC通信信息及其优先级信息;之后由控制模块根据当前IIC总线上外围设备的通信状态、所述待通信外围设备的IIC通信信息及优先级信息控制待通信外围设备的工作状态,从而当主控器通过一个IIC接口连接多个外围设备时,能根据优先级来控制主控制器与外围设备之间的通信,从而提升了移动终端的性能。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。