一种多模块与主机通信的方法及系统与流程

文档序号:23260890发布日期:2020-12-11 18:49阅读:187来源:国知局
一种多模块与主机通信的方法及系统与流程

本发明属于通信技术领域,具体地说,是涉及一种多模块与主机通信的方法。



背景技术:

电子产品的功能越来越丰富也越来越智能,这也导致电子产品集成的功能模块或智能模块越来越多。

各模块与主机的主控soc(系统级芯片)均需通信,目前实现通信的方式为:基于spi(串行外设接口)通信协议,各模块均与主控soc的一个gpio口连接,当一个模块需要与主控soc通信时,通过gpio口向主控soc发起通信请求,例如将电平拉高,主控soc在接收到高电平的通信请求后去该模块读取数据。

可见上述的现有通信方式中,受限于spi通信协议的规定,只能由主控soc发起通信,各模块不具备发起通话的能力,每个模块与主控soc通过spi通信时,都需要一路gpio来让模块主动通知主控soc来读取数据,这在存在多个模块时,需要主控soc拿出多个gipo口,极为浪费gpio资源。



技术实现要素:

本发明的目的在于提供一种多模块与主机通信的方法及系统,解决现有多模块与主机通信时存在占用gpio口过多的技术问题。

为解决上述技术问题,本发明采用以下技术方案予以实现:

提出一种多模块与主机通信的方法,应用于多模块与主机通信系统中,所述系统包括:主机;至少两部从模块,每部从模块的通知端口均与所述主机的同一个gpio口连接;所述方法包括:配置每部从模块的通知端口的初始属性为输入;当任一部从模块通知所述主机读取数据时,读取其自身通知端口的电平状态;在所述电平状态为第一状态时,向所述主机发送请求信号,在所述电平状态为第二状态时,重复等待设定时长后读取自身通知端口的电平状态的步骤直至所述电平状态为第一状态;其中,所述第二状态至少包含所述请求信号的信号特征;所述主机基于所述请求信号确定目标从模块,并从目标从模块读取数据。

进一步的,设定所述第一状态为低电平状态,所述第二状态为高电平状态,所述请求信号为设定时长的高电平脉冲;其中,各从模块的请求信号的设定时长不相同。

进一步的,设定所述第一状态为高电平状态,所述第二状态为低电平状态,所述请求信号为设定时长的低电平脉冲;其中,各从模块的请求信号的设定时长不相同。

进一步的,设定所述第一状态为低/高电平脉冲,所述第二状态为具有脉宽的脉冲信号,所述请求信号为具有第一设定脉宽的脉冲信号;其中,各从模块的请求信号的第一设定脉宽不相同。

进一步的,在任一从模块读取其自身通知端口的电平状态为第一状态时,所述方法还包括:将其自身通知端口的属性设置为输出后向所述主机发送请求信号;以及,在向所述主机发送完请求信号后,将其自身通知端口的属性恢复为初始属性。

提出一种多模块与主机通信系统,包括:主机;至少两部从模块;每部从模块的通知端口均与所述主机的同一个gpio口连接;以及,配置每部从模块的通知端口的初始属性为输入;当任一部从模块通知所述主机读取数据时,读取其自身通知端口的电平状态;在所述电平状态为第一状态时,向所述主机发送请求信号,在所述电平状态为第二状态时,重复等待设定时长后读取自身通知端口的电平状态的步骤直至所述电平状态为第一状态;其中,所述第二状态至少包含所述请求信号的信号特征;所述主机基于所述请求信号确定目标从模块,并从目标从模块读取数据。

进一步的,各从模块均包括:第一设定单元,用于设定所述第一状态为低电平状态,所述第二状态为高电平状态,所述请求信号为设定时长的高电平脉冲;其中,各从模块的请求信号的设定时长不相同。

进一步的,各从模块均包括:第二设定单元,用于设定所述第一状态为高电平状态,所述第二状态为低电平状态,所述请求信号为设定时长的低电平脉冲;其中,各从模块的请求信号的设定时长不相同。

进一步的,各从模块均包括:第三设定单元,用于设定所述第一状态为低/高电平脉冲,所述第二状态为具有脉宽的脉冲信号,所述请求信号为具有第一设定脉宽的脉冲信号;其中,各从模块的请求信号的第一设定脉宽不相同。

进一步的,各从模块还包括:通信端口属性设置单元,用于在读取其自身通知端口的电平状态为第一状态时,将其自身通知端口的属性设置为输出后向所述主机发送请求信号;以及,

在向所述主机发送完请求信号后,将其自身通知端口的属性恢复为初始属性。

与现有技术相比,本发明的优点和积极效果是:本发明提出的多模块与主机通信的方法及系统中,各个从模块的通知端口均与主机的同一个gpio口相连,每部从模块的通知端口的初始属性均被设置为输入属性,当任一从模块欲通知主机读取数据时,先读取其自身的通知端口的电平状态,若当前有其他从模块与主机正在请求读取数据,则因为各从模块均与主机的同一gpio口连接而具备并联性,使其通知端口输入的是第二状态电平,若当前没有其他从模块与主机请求读取数据,则其通知端口输入的是第一状态电平,基于此,当其读取到自身通知端口的电平状态为第一状态时,可以向主机发送请求信号,当其读取到自身通知端口的电平状态为第二状态时则需等待,由于各个从模块的请求信号不相同,主机可以根据接收到的请求信号确定发送请求的目标从模块,从而向其发起通话事件来读取数据;可见,基于本发明提出的多模块与主机通信的方法,所有从模块只需通过一个gpio口与主机实现通信,节约了主机端gpio口的使用数量,解决了现有多模块与主机通信时存在占用gpio口过多的技术问题。

结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。

附图说明

图1为本发明提出的多模块与主机通信方法的流程图;

图2为本发明提出的多模块与主机通信系统的系统架构图;

图3为本发明提出的实施例一至实施例三的多模块与主机通信系统的示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步详细的说明。

本发明提出的多模块与主机通信的方法,基于如图2所示的多模块与主机通信系统实现,该系统包括主机1和若干从模块2,每部从模块3的通知端口g均与主机1的同一个gpio口相连,各从模块之间以并联方式连接,任一从模块的通知端口的电平状态发生改变时,其他从模块的通知端口的电平状态也同步改变。

从模块2包括但不限定于各种功能模块、智能模块等,例如电源控制模块、传感器模块等,本发明不予具体限定。

基于该多模块与主机通信系统,如图1所示,本发明提出的多模块与主体通信的方法包括如下步骤:

步骤s11:配置每部从模块的通知端口的初始属性为输入。

针对每部从模块,将其与主机gpio口连接的通知端口g的初始属性设置为输入属性,基于输入属性的设置,从模块可以随时读取其自身通知端口的输入信号类型或电平状态。

步骤s12:在任一部从模块通知主机读取数据时,读取其自身通知端口的电平状态。

如上所述,由于各个从模块的通知端口g彼此之间并联后与主机的同一gpio口连接,则任一从模块的通知端口的电平状态发生改变时,主机的gpio口以及其他从模块的通知端口的电平状态也均随之发生改变且改变状态一致。

本发明申请中,设定当没有从模块向主机发起请求读取数据的请求信号时,各从模块与主机gpio口之间的通信线上的电平状态为第一状态,当有从模块向主机发起请求读取数据的请求信号时,各从模块与主机gpio口之间的通信线上的电平状态为第二状态;该第二状态包含有请求信号的信号特征,这里的信号特征例如电平状态、频率等,例如,当请求信号为高电平时,该第二状态至少包含高电平特征,当请求信号为低电平时,该第二状态至少包含低电平特征,当请求信号为脉冲信号时,该第二状态至少包含脉冲信号特征。

若当前存在一部从模块正在向主机发起请求信号,则其他从模块的通知端口均输入该请求信号,当其他从模块读取其自身通知端口的电平状态时,可以获知当前是否还存在其他从模块正在向主机发起请求信号。

本发明申请中,任一部从模块向主机请求读取数据时,向主机发送请求信号,且设定每部从模块发送的请求信号均不相同。

步骤s13:在电平状态为第一状态时,向主机发送请求信号。

若当前不存在向主机发起请求信号的从模块,从模块通知端口与主机gpio口之间的通信线上的电平状态为第一状态,说明主机gpio口没有被占用,则该从模块将自身通知端口的属性配置为输出,通过其通知端口向主机gpio口发送请求信号。

步骤s14:在电平状态为第二状态时,重复等待设定时长后读取自身通知端口的电平状态的步骤直至电平状态为第一状态。

若当前存在其他从模块正在向主机gpio口发送请求信号,各从模块通知端口与主机gpio口之间的通信线上的电平状态均为第二状态,说明主机gpio口正在被占用,则该从模块需要等待,在等待设定时长后,再次读取自身通知端口的电平状态,若该第一状态则可以发送请求信号,若仍旧为第二状态,则继续等待和读取,直至通知线上的电平状态为第一状态后向主机发送请求信号。

从模块通过其通知端口g向主机gpio口发送完请求信号后,将其通知端口的属性修改回初始属性,也即从输出回复至输入。

步骤s15:主机基于请求信号确定目标从模块,并从目标从模块读取数据。

每部从模块向主机发送的请求信号均不相同,主机可以根据接收的请求信号判断发送请求的目标从模块,在确定目标从模块后,针对目标从模块发起请求事件,从目标从模块读取数据。

上述本发明提出的多模块与主机通信的方法中,各个从模块的通知端口均与主机的同一个gpio口相连,每部从模块的通知端口的初始属性均被设置为输入属性,当任一从模块欲通知主机读取数据时,先读取其自身的通知端口的电平状态,若当前有其他从模块与主机正在请求读取数据,则因为各从模块均与主机的同一gpio口连接而具备并联性,使其通知端口输入的是第二状态电平,若当前没有其他从模块与主机请求读取数据,则其通知端口输入的是第一状态电平,基于此,当其读取到自身通知端口的电平状态为第一状态时,可以向主机发送请求信号,当其读取到自身通知端口的电平状态为第二状态时则需等待,由于各个从模块的请求信号不相同,主机可以根据接收到的请求信号确定发送请求的目标从模块,从而向其发起通话事件来读取数据;可见,基于本发明提出的多模块与主机通信的方法,所有从模块只需通过一个gpio口与主机实现通信,节约了主机端gpio口的使用数量,解决了现有多模块与主机通信时存在占用gpio口过多的技术问题。

下面以几个具体实施例对本发明提出的多模块与主机通信的方法做出详细说明。

实施例一

如图3所示的多模块与主机通信系统,包括主机31、电源控制模块321和传感器模块322,其中电源控制模块321和传感器模块322作为从模块,分别具有向主机31发送请求信号的通知端口g,并均与主机31的gpio口连接。

本实施例中,设定第一状态为低电平状态,第二状态为高电平状态,请求信号为设定时长的高电平脉冲,电源控制模块321的请求信号的高电平脉冲的设定时长为10ms,传感器模块322的请求信号的高电平脉冲的设定时长为20ms。

当电源控制模块321欲通知主机31读取其数据时,先读取其通知端口的电平状态,若为高电平状态,则说明传感器模块322正在向主机31发送请求信号,则等待10ms后再次读取一次,若电平状态为低电平状态,则说明传感器模块322已经发送完请求信号,则将自身的通知端口的属性修改为输出属性,然后通过其通知端口向主机31发送请求信号,若电平状态仍旧为高电平,则再次等待10ms后读取其通知端口状态,直至电平状态转换为低电平。

主机31在接收到请求信号后,首先判断请求信号的类型,若高电平脉冲的设定时长为10ms,则判断发送请求的从模块为电源控制模块321,则针对电源控制模块321发起请求事件,基于spi总线从电源控制模块321读取数据,若高电平脉冲的设定时长为20ms,则判断发送请求的从模块为传感器模块322,则针对传感器模块322发起请求事件,基于spi总线从传感器模块322读取数据。

当电源控制模块321向主机31发送完请求信号后,将其自身通知端口的属性恢复为初始属性,也即从输出属性改回输入属性,等待下一次数据通信。

实施例二

本实施例在实施例一基础上实施变换:设定第一状态为高电平状态,第二状态为低电平状态,请求信号为设定时长的低电平脉冲。

当电源控制模块321欲通知主机31读取其数据时,先读取其通知端口的电平状态,若为低电平状态,则说明传感器模块322正在向主机31发送请求信号,则等待10ms后再次读取一次,若电平状态为高电平状态,则说明传感器模块322已经发送完请求信号,则将自身的通知端口的属性修改为输出属性,然后通过其通知端口向主机31发送请求信号,若电平状态仍旧为低电平,则再次等待10ms后读取其通知端口状态,直至电平状态转换为高电平。

该实施例中,主机31的gpio端口的初始状态通过上拉电阻或主控soc配置为高电平。

实施例三

本实施例在实施例一基础上实施变换:设定第一状态为低电平脉冲信号或高电平脉冲信号,第二状态为具有脉宽的脉冲信号,也即pwm波形式的高低电平信号,请求信号为具有第一设定脉宽的脉冲信号;电源控制模块321的请求信号的第一设定脉宽为5ms,传感器模块322的请求信号的第一设定脉宽为10ms。

当电源控制模块321欲通知主机31读取其数据时,先读取其通知端口的电平状态,若为具有脉宽的脉冲电平状态,也pwm波形式的电平状态,则说明传感器模块322正在向主机31发送请求信号,则等待10ms后再次读取一次,若电平状态为低或高电平状态,则说明传感器模块322已经发送完请求信号,则将自身的通知端口的属性修改为输出属性,然后通过其通知端口向主机31发送脉宽为5ms的请求信号,若电平状态仍旧为具有脉宽的脉冲电平状态,则再次等待10ms后读取其通知端口状态,直至电平状态转换为低电平或高电平。

主机31在接收到请求信号后,首先判断请求信号的类型,若脉宽为5ms,则判断发送请求的从模块为电源控制模块321,则针对电源控制模块321发起请求事件,基于spi总线从电源控制模块321读取数据,若脉宽为10ms,则判断发送请求的从模块为传感器模块322,则针对传感器模块322发起请求事件,基于spi总线从传感器模块322读取数据。

当电源控制模块321向主机31发送完请求信号后,将其自身通知端口的属性恢复为初始属性,也即从输出属性改回输入属性,等待下一次数据通信。

对应上述提出的多模块与主机通信的方法,本发明提出的多模块与主机通信系统中,如图3所示,各从模块均包括第一设定单元21、第二设定单元22、第三设定单元23和通信端口属性设置单元24。

第一设定单元21用于设定第一状态为低电平状态,第二状态为高电平状态,请求信号为设定时长的高电平脉冲;其中,各从模块的请求信号的设定时长不相同。

第二设定单元22用于设定第一状态为高电平状态,第二状态为低电平状态,请求信号为设定时长的低电平脉冲;其中,各从模块的请求信号的设定时长不相同。

第三设定单元23用于设定第一状态为低/高电平脉冲,第二状态为具有脉宽的脉冲信号,请求信号为第一设定脉宽的脉冲信号;其中,各从模块的请求信号的第一设定脉宽不相同。

通信端口属性设置单元24用于在读取其自身通知端口的电平状态为第一状态时,将其自身通知端口的属性设置为输出后向主机发送请求信号;以及,

在向主机发送完请求信号后,将其自身通知端口的属性恢复为初始属性。

上述多模块与主机通信系统的工作方式已经详述,此处不予赘述。

应该指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1