处理器通信方法和装置、电子设备、计算机可读存储介质
文献发布时间:2023-06-19 18:29:06
技术领域
本申请涉及计算机技术领域,特别是涉及一种处理器通信方法和装置、电子设备、计算机可读存储介质。
背景技术
随着计算机技术的发展,手机、个人电脑、智能手表等电子设备的应用越来越广泛。为进一步提高电子设备的性能,出现了包含多个处理器以运行多个系统的电子设备,通过不同系统实现不同的业务功能。在实际应用过程中,部分业务功能的实现需要依赖于多个处理器之间的通信,然而,传统技术中处理器之间的通信存在时延较大的问题。
发明内容
本申请实施例提供一种处理器通信方法、装置、电子设备、计算机可读存储介质,可以减少处理器通信的时延。
一种处理器通信方法,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述方法包括:
当检测到有下行数据包时,所述第一处理器发送第一主控中断信号给所述第二处理器;
所述第一处理器接收所述第二处理器根据所述第一主控中断信号返回的第一受控应答信号;
所述第一处理器根据所述第一受控应答信号将所述下行数据包发送给所述第二处理器,并在发送完成后将第二主控中断信号发送至所述第二处理器;所述第二主控中断信号用于指示所述第二处理器在完成所述下行数据包的处理后,将第二受控应答信号返回至所述第一处理器。
一种处理器通信装置,应用于电子设备,所述电子设备包括第一处理器和第二处理器;所述装置包括:
中断通知模块,用于当接收到下行数据包时,所述第一处理器发送第一主控中断信号给所述第二处理器;
应答接收模块,用于所述第一处理器接收所述第二处理器根据所述第一主控中断信号返回的第一受控应答信号;
数据传输模块,用于所述第一处理器根据所述第一受控应答信号将所述下行数据包发送给所述第二处理器,并在发送完成后将第二主控中断信号发送至所述第二处理器;所述第二主控中断信号用于指示所述第二处理器在完成所述下行数据包的处理后,将第二受控应答信号返回至所述第一处理器。
一种电子设备,包括存储器及第一处理器、第二处理器,所述存储器中储存有计算机程序,所述计算机程序被所述第一处理器和第二处理器执行时,使得所述第一处理器和第二处理器执行如下步骤:
当检测到有下行数据包时,所述第一处理器发送第一主控中断信号给所述第二处理器;
所述第一处理器接收所述第二处理器根据所述第一主控中断信号返回的第一受控应答信号;
所述第一处理器根据所述第一受控应答信号将所述下行数据包发送给所述第二处理器,并在发送完成后将第二主控中断信号发送至所述第二处理器;所述第二主控中断信号用于指示所述第二处理器在完成所述下行数据包的处理后,将第二受控应答信号返回至所述第一处理器。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
当检测到有下行数据包时,第一处理器发送第一主控中断信号给第二处理器;
所述第一处理器接收所述第二处理器根据所述第一主控中断信号返回的第一受控应答信号;
所述第一处理器根据所述第一受控应答信号将所述下行数据包发送给所述第二处理器,并在发送完成后将第二主控中断信号发送至所述第二处理器;所述第二主控中断信号用于指示所述第二处理器在完成所述下行数据包的处理后,将第二受控应答信号返回至所述第一处理器。
上述处理器通信方法、装置、电子设备、计算机可读存储介质,在检测到有下行数据包时,第一处理器可以发送第一主控中断信号给第二处理器,并接收第二处理器根据该第一主控中断信号返回的第一受控应答信号,根据第一受控应答信号将下行数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器,第二主控中断信号用于指示第二处理器在完成下行数据包的处理后,将第二受控应答信号返回至第一处理器。即可以在接收到第一受控应答信号时则进行数据包的传输,并在传输完成后将第二主控中断信号发送给第二服务器,该第二主控中断信号即表示单次数据传输完成,可以减少处理器通信的时延。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中电子设备的硬件框架示意图;
图2为一个实施例中处理器通信方法的流程图;
图3为一个实施例中按照预设数据量发送下行数据包的流程图;
图4为一个实施例中获取下行数据包的流程图;
图5为另一个实施例中处理器通信方法的流程图;
图6为一个实施例中处理器通信方法的时序示意图;
图7为另一个实施例中处理器通信方法的时序示意图;
图8为一个实施例的处理器通信装置的结构框图;
图9为一个实施例中提供的可穿戴设备的软件框架示意图;
图10为图9提供的可穿戴设备对应的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一处理器称为第二处理器,且类似地,可将第二处理器称为第一处理器。第一处理器和第二处理器两者都是客户端,但其不是同一处理器。
图1为一个实施例中电子设备的硬件框架示意图。如图1所示,电子设备包括第一处理器110和第二处理器120。第一处理器110和第二处理器120均为微处理器,其中,第一处理器110为核心处理器。第一处理器110和第二处理器120可以根据实际应用配置相应的微处理器,在此不做第一处理器110和第二处理器120进行限定。第一处理器110和第二处理120分别了集成了不同的运行系统,第一处理器110集成的第一系统的耗电量高于第二处理器120集成的第二系统的耗电量。例如,以第一处理器110可以是CPU(Central ProcessUnit,中央处理器)处理器,对应于第一系统可以是安卓(Android)系统;第二处理器120可以是MCU(Microcontroller Unit,微控制单元)处理器;对应的第二系统可以是RTOS(RealTime Operating System,实时操作系统)系统。其中,电子设备可以但不限于是智能手机、个人电脑、可穿戴设备等。
第一处理器110和第二处理器120之间通过主控中断接口、受控应答接口、受控中断接口、主控应答接口和数据传输接口连接。其中,电子设备可以通过主控中断接口、受控应答接口和数据传输接口实现下行数据的传输;具体地,主控中断接口用于传输第一主控中断信号和第二主控中断信号,受控应答接口用于传输第一受控应答信号和第二受控应答信号,数据传输接口用于传输下行数据包。电子设备还可以通过受控中断接口、主控应答接口和数据传输接口实现上行数据的传输;其中,受控中断接口用于传输第一受控中断信号和第二受控中断信号,主控应答接口用于传输第一主控应答信号和第二主控应答信号,数据传输接口用于传输上行数据包。
图2为一个实施例中处理器通信方法的流程图。本实施例中的处理器通信方法,以运行于上述电子设备为例进行描述。如图2所示,该处理器通信方法包括步骤202至步骤206。
步骤202,当检测到有下行数据包时,第一处理器发送第一主控中断信号给第二处理器。
下行数据包是指第一处理器需要传输给第二处理器的数据包。下行数据包可以包含由第一处理器接收或生成的操作指令和业务数据中的至少一种。其中,操作指令可以用于在传输给第二处理器之后,指示第二处理器执行对应的业务操纵。业务数据用于在传输给第二处理器之后,为第二处理器执行业务数据对应的业务操作提供数据支持。例如,当第二处理器提供定位计算功能时,第一处理器可以接收由连接的终端发送的传感器数据,将接收传感器数据生成下行数据包;第一处理器也可以根据检测的网络信号及对应的信号强度生成下行数据包,以为第二处理器的定位计算功能提供数据支持。
第一主控中断信号用于中断指示第一处理器有下行数据需要传输给第二处理器。具体地,在检测到有下行数据包,电子设备的第一处理器可以根据下行数据包生成对应的第一主控中断信号,并将生成的第一主控中断信号通过主控中断接口发送给第二处理器。可选地,在一个实施例中,第一主控中断信号可以是预设的第一数值;电子设备的第一处理器可以根据检测到的下行数据包,将第一处理器的主控中断接口设为第一数值。
步骤204,第一处理器接收第二处理器根据第一主控中断信号返回的第一受控应答信号。
第一受控应答信号用于表征第二处理器已经做好接收下行的准备。第一处理器和第二处理器之间的数据传输需要通过数据传输接口实现,若数据传输接口被其他业务功能占用,则第一处理器无法将下行数据包发送给第二处理器。
具体地,第二处理器可以根据第一主控中断信号锁定数据传输接口,锁定的数据传输接口可以用于接收第一主控中断信号对应的下行数据包,第二处理器可以在根据第一主控中断信号锁定数据传输接口之后,向第一处理器返回第一受控应答信号。
可选地,在一个实施例中,受控应答接口可以采用高低电平实现控制,在本申请实施例中,以高电平表征第一受控应答信号,低电平表征第二受控应答信号为例进行说明,第二处理器可以在根据第一主控中断信号锁定数据传输接口之后,将受控应答接口设置为高电平状态。
步骤206,第一处理器根据第一受控应答信号将下行数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器;第二主控中断信号用于指示第二处理器在完成下行数据包的处理后,将第二受控应答信号返回至所述第一处理器。
第二主控中断信号可以表征第一处理器已经完成数据的传输。可选地,在一个实施例中,第二主控中断信号可以是预设的第二数值;电子设备可以在完成下行数据包的传输时,将第一处理器的主控中断接口设为第二数值。其中,第二数值与第一数值不同。例如,第一数值为1时,第二数值可以为0;第一数值为0时,第二数值可以为1。
第一处理器可以下行数据包发送完成后,重置主控中断接口得到第二主控中断信号,以通过第二处理器下行数据包已经发送完成。第二处理器在接收下行数据包,可以对下行数据包进行处理,第二处理器可以在获取到第二主控中断信号、且完成对下行数据包的处理时,重置受控应答接口得到第二受控应答信号。具体地,第二处理器可以将受控应答接口设置为低电平状态。进一步地,第二处理器在重置受控应答接口之后,可以将锁定的数据传输接口解锁。第二受控应答信号用于通知第一处理器,第二处理器已经完成对下行数据包的处理,第一处理器可以根据第二受控应答信号再次向第二处理器发送第一主控中断信号以进行数据的传输。
进一步地,第一处理器在主控中断接口输出为第二主控中断信号时,重新检测是否有需要传输的下行数据包,以进行下一次数据传输。可选地,当第一主控中断信号对应的下行数据包未传输完成时,若第一处理器检测到有新的下行数据包,第一处理器可以在接收到第二受控应答信号之后,再根据检测到的新的下行数据包向第二处理器发送对应的第一主控中断信号。
在一个实施例中,电子设备可以根据检测到的下行数据包形成数据包队列,按照数据包队列实现数据包的队列传输。可选地,电子设备可以根据下行数据包对应的传输等级调整在数据包队列中的位置;其中,下行数据包对应的传输等级可以根据下行数据包对应的应用程序等级、下行数据包的生成时间、下行数据包对应的数据量大小等中的一种或多种确定。
传统技术中,处理器之间需要通过受控应答信号、主控中断信号、受控中断信号和主控应答信号进行双向确认后才可以进行数据的传输,并且在数据传输完成之后,需要重置后的受控应答信号、主控中断信号、受控中断信号和主控应答信号进行双向确认后才结束本次通信。
本申请实施例提供的处理器通信方法,当检测到下行数据包时,第一处理器可以发送第一主控中断信号给第二处理器,并接收第二处理器根据第一主控中断信号返回的第一受控应答信号,根据该第一受控应答信号即可以将下行数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器,第二主控中断信号可以指示第二处理器在完成下行数据包的处理后,将第二受控应答信号返回至第一处理器。即可以在接收到第一受控应答信号时则进行数据包的传输,并在传输完成后将第二主控中断信号发送至第二处理器,第二主控中断信号即表示单次数据传输完成,不需要引入受控中断信号和主控应答信号进行二次确认,可以减少处理器通信的时延,提高处理器通信的效率。
在一个实施例中,提供的处理器通信方法中,第一处理器根据第一受控应答信号将下行数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器,包括:当下行数据包的数据量超过第一阈值时,按照预设数据量将下行数据包中包含的数据分批次发送给第二处理器,并在完成最后批次的数据发送时,将第二主控中断信号发送至第二处理器。
本申请实施例提供的处理器通信方法可以为第一处理器和第二处理器之间的通信提供高速通道和低速通道;高速通道用于传输数据量较大的数据,例如,OTA(Over theAirTechnology,空间下载技术)升级数据、传感器原始数据等;低速通道用于传输数据量较小的数据,例如,传感器根据原始数据输出的采样数据、算法输出的数据等。数据量的大小可以根据预设的第一阈值来确定。第一阈值小于或等于数据传输接口所能传输的最大数据量。具体的第一阈值可以根据实际需求设定,在此不做限定。例如,第一阈值可以是1M、3M、5M等。
其中,预设数据量为电子设备预设的每一次发送的数据的数据量。预设数据量可以根据实际应用需求设定,在次不做限定。例如,预设数量可以是256字节、512字节、1024字节等。具体地,当下行数据包的数据量超过第一阈值时,则第一处理器可以按照预设数据量将下行数据包含的数据分批次发送给第二处理器,并在完成最后批次的数据发送时,重置主控中断接口得到第二主控中断信号;也就是说,在完成每一个批次的数据发送时,第一处理器可以不执行重置主控中断接口的操作,直至完成最后一次数据的发送时,再重置主控中断接口得到第二主控中断信号。从而,每一个批次数据的发送不需要重新向第二处理器发送第二主控中断信号,避免将数据量大的数据包分解传输时,每个分解的数据包均需要发送第二主控中断信号,以执行一次通信流程导致数据传输效率较低的问题,可以提高处理器通信和数据传输的效率。
图3为一个实施例中按照预设数据量发送下行数据包的流程图。如图3所示,在一个实施例中,提供的处理器通信方法中包括:
步骤302,按照预设数据量将下行数据包分解为多个子数据包。
第一处理器按照预设数据量将下行数据包分解为多个子数据包。例如,当预设数据量为512字节;当下行数据包的数据量为10KB时,第一处理器可以将下行数据包分解为20个子数据包;当下行数据包的数据量为1MB时,第一处理器可以将下行数据包分解为2048个子数据包。
步骤304,获取一子数据包作为参考子数据包。
第一处理器可以获取任一子数据包作为参考子数据包。可选地,第一处理器可以将分解的第一个子数据包作为参考子数据包。
步骤306,将参考子数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器。
第一处理器将参考子数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器。第二主控中断信号表示参考子数据包已经发送完成。
步骤308,判断是否存在未发送的子数据包,若是,则进入步骤310,若否,则结束。
步骤310,将第一主控中断信号发送至第二处理器,并获取未发送的子数据包作为参考子数据包,返回步骤306。
当存在未发送的子数据包时,第一处理器可以将参考子数据包发送完重置的主控中断接口恢复,将第一主控中断信号发送至第二处理器,并获取未发送的子数据包作为参考子数据包,继续执行将参考子数据包发送给第二处理器,并在发送完成后重置主控中断接口的操作;当不存在未发送的子数据包时,则维持重置的主控中断接口得到第二主控中断信号,将第二主控中断信号发送至第二处理器,并等待接收第二处理器根据第二主控中断信号返回的第二受控应答信号。
以第一主控中断信号为第一数值,第二主控中断信号为第二数值为例进行说明,第一处理器在将参考子数据包发送完成后可以将主控中断接口由第一数值重置为第二数值,当确定存在未发送的子数据包时,则第一处理器将主控中断接口恢复为重置之前的第一数值,第二处理器根据接收的为第一数值的第一主控中断信号,可以继续接收第一处理器发送的数据包;则第一处理器可以获取未发送的子数据包作为参考子数据包,继续执行将参考子数据包发送给第二处理器,并在发送完成后将主控中断接口由第一数值重置为第二数值的操作,直至不存在未发送的子数据包。
通过按照预设数据量将下行数据包分解为多个子数据包,第一处理器将子数据包发送给第二处理器,并恢复重置的主控中断接口得到第一主控中断信号,重复将子数据包发送给第二处理器,直至不存在未发送的子数据包,则不对重置的主控中断接口进行恢复操作,可以提高数据传输的效率。
图4为一个实施例中获取下行数据包的流程图。如图4所示,在一个实施例中,提供的处理器通信方法中当检测到有下行数据包时,第一处理器发送第一主控中断信号给第二处理器之前,可以包括:
步骤402,获取针对数据包的下行传输指示。
电子设备获取针对数据包的下行传输指示。下行传输指令可以是电子设备根据预设的业务操作流程生成的,也可以是电子设备获取的用户输入的下行传输指令。例如,电子设备可以在获取到预设的数据包时,则生成该数据包对应的下行传输指令;电子设备也可以在数据包的数据类型为预设类型时,则生成该数据包对应的下行传输指示;电子设备还可以获取用户对数据包对应的下行传输控件的触控操作,根据触控操作生成该下行数据包的下行传输指令。
步骤404,根据下行传输指示获取数据包的数据量。
下行传输指示用于指示电子设备将数据包由第一处理器发送给第二处理器。电子设备可以根据下行传输指示获取数据包的数据量。
步骤406,当数据包的数据量超过第二阈值时,将数据包分解为多个下行数据包。
第二阈值小于或等于数据传输接口所能传输的最大数据量。具体的第二阈值可以根据实际需求设定,在此不做限定。
步骤408,当数据包的数据量不超过第二阈值时,将数据包确定为下行数据包。
当数据包的数据量超过第二阈值时,第一处理器可以将数据包分解为多个下行数据包。可选地,第一处理器还可以根据分解的下行数据包加入下行传输队列,并按照下行传输队列的顺序将每一个分解的下行数据包发送给第二处理器。其中,第一处理器分解的下行数据包的数据量小于该第二阈值。当数据包的数据量不超过第二阈值时,第一处理器可以将数据包作为下行数据包,并根据下行数据包发送给第一主控中断信号给第二处理器,以将下行数据包发送给第二处理器。
通过在数据包的数据量超过第二阈值时,将数据包分解为多个下行数据包;当数据包的数据量不超过第二阈值时,则将数据包确定为下行数据包,再执行根据检测到的下行数据包,发送第一主控中断信号给第二处理器的步骤,即可以将数据量大的数据包分批次传输,避免单次传输的数据量过大。
在一个实施例中,提供的处理器通信方法中,下行数据包可以包括第一处理器生成的支付标识码;具体地,在接收到下行数据包时,第一处理器发送第一主控中断信号给第二处理器之前,可以包括:在电子设备处于网络连接状态时,生成支付标识码及对应的数据传输指令;根据数据传输指令,生成支付标识码对应的下行数据包。
在该实施例中,第二处理器的安全性高于第一处理器的安全性。第二处理器可用于保存对安全性要求较高的数据。第一处理器具备网络连接功能,因此可以在网络连接时,生成支付标识码及对应的数据传输指令,此处生成的支付码不限为一张,也可以是一张以上,具体数量跟使用时间和存储空间有关,例如可以设置为10张、15张、20张等。而第二处理器不具备网络连接功能,安全性更强。其中,支付标识码可以是条形码、二维码等。
数据传输指令用于指示电子设备将支付标识码保存至第二处理器。电子设备可以根据数据传输指令,生成支付标识码对应的下行数据包,从而,第一处理器可以根据检测的下行数据包向第二处理器发送第一主控中断信号,并根据返回的第一受控应答信号将下行数据包发送给第二处理器,并在发送完成时重置主控中断接口得到第二主控中断信号,将第二主控中断信号发送至第二处理器,第二处理器可以解析接收的下行数据包中包含的支付标识码,并将支付标识码保存至第二处理器对应的存储器中,再根据第二主控中断信号重置受控应答接口得到第二受控应答信号,将第二受控应答信号返回至第一处理器,以使第一处理器可以根据第二受控应答信号再次发起第一主控中断信号。
进一步地,当可穿戴设备在离线状态接收到支付请求时,可以从第二处理器对应的存储器中读取并展示支付标识码,以完成支付请求对应的支付操作。
通常,电子设备实现在线支付的应用时,需要联网以生成支付标识码并进行展示;在无法联网的场景下则无法生成支付标识码以完成支付操作。而本申请提供的上述实施例中,通过将第一处理器生成的支付标识码发送至第二处理器进行存储,可以实现可穿戴设备在离线场景下的支付功能,并保存支付信息的安全性。
图5为另一个实施例中处理器通信方法的流程图。如图5所示,在一个实施例中,提供的处理器通信方法包括:
步骤502,第一处理器接收第二处理器发送的第一受控中断信号,第一受控中断信号是第二处理器检测到有上行数据包时发送的。
上行数据包是指第二处理器需要传输给第一处理器的数据包。上行数据包可以包含由第二处理器接收或生成的操作指令和业务数据中的至少一种。例如,上行数据包可以是第二处理器连接的传感器获取的数据。
第一受控中断信号用于中断指示第二处理器有上行数据需要传输给第一处理器。具体地,在检测到有上行数据包时,电子设备的第二处理器可以根据上行数据包生成对应的第一受控中断信号,并在锁定数据传输接口之后将生成的第一受控中断信号通过受控中断接口发送给第一处理器。
步骤504,第一处理器根据第一受控中断信号发送第一主控应答信号,并从第二处理器读取上行数据包。
第一处理器可以根据第一受控中断信号从第二处理器读取上行数据包,并向第二处理器发送第一主控应答信号。第一主控应答信号用于表征第一处理器处于数据传输的状态。
步骤506,第一处理器接收第二处理器发送的第二受控中断信号;第二受控中断信号是第二处理器在上行数据包传输完成后发送的。
第二处理器可以上行数据包传输完成后,重置受控中断接口得到第二受控中断信号。第一处理器可以接收第二受控中断信号。第二受控中断信号可以表征第二处理器已经完成数据的传输。
步骤508,第一处理器根据第二受控中断信号,在完成上行数据包的读取后,将第二主控应答信号发送至第二处理器。
第二处理器可以在上行数据包发送完成后,重置受控中断接口得到第二受控中断信号,将第二受控中断信号发送至第一处理器,以通知第一处理器上行数据包已经发送完成。第一处理器可以在获取到第二受控中断信号时,重置主控应答接口得到第二主控应答信号。可选地,在一个实施例中,主控应答接口可以采用高低电平实现控制,在本申请实施例中,以高电平表征第一主控应答信号,低电平表征第二主控应答信号为例进行说明,第一处理器在接收到第二受控中断信号,且完成上行数据包的读取后,将主控应答接口由高电平状态重置为低电平状态。
上述实施例中,第一处理器可以在接收到第一受控中断信号时则进行数据包的读取,并在数据读取完成后根据第二处理器发送的第二受控中断信号重置主控应答接口,得到第二主控应答信号,第二主控应答信号即表示单次数据传输完成,可以减少处理器通信的时延,提高处理器通信的效率。
在一个实施例中,提供的处理器通信方法还包括:获取应用程序发起的数据传输请求;根据数据传输请求包含的数据类型调用对应的数据接口;当数据接口归属于第一处理器时,第一处理器根据数据接口接收的数据生成下行数据包;当数据接口归属于第二处理器时,第二处理器根据数据接口接收的数据生成上行数据包。
数据传输请求是指通过第一处理器和第二处理器通信以进行数据传输的传输请求。数据传输请求包含所需要传输的数据类型,根据数据类型电子设备可以调用对应的数据接口以获取数据。具体地,数据类型可以根据生成数据的器件、应用程序或者业务进行划分。例如,数据类型可以包括全球定位数据、加速度数据、角速度数据、图像识别算法输出的数据等,在此不做限定。不同数据接口所归属的处理器不同,具体的数据接口归属的处理器可以由电子设备的生产商根据实际应用需求设定,在此不做限定。
电子设备可以根据数据传输请求包含的数据类型调用对应的数据接口,以获取数据接口所产生的数据;当数据接口归属于第一处理器时,电子设备通过第一处理器根据数据接口接收的数据生成下行数据包,并执行当检测到有下行数据包时,第一处理器发送第一主控中断信号给第二处理器的操作;当数据接口归属于第二处理器时,电子设备可以通过第二处理器根据数据接口接收的数据生成上行数据包,并执行第一处理器接收第二处理器发送的第一受控中断信号,第一受控中断信号是第二处理器检测到有上行数据包时发送的。
进一步,第二处理器可以将接收的下行数据包发送给发起该数据传输请求的应用程序;第一处理器也可以将接收的上行数据包发送给发起该数据传输请求的应用程序。
图6为一个实施例中处理器通信方法的时序示意图。如图6所示,在一个实施例中,提供的处理器通信方法的过程如下:
首先,当检测到有下行数据包时,第一处理器通过第一主控中断信号通知第二处理器。
接着,第二处理器根据第一主控中断信号锁定通信总线,并锁定通信总线后向第一处理器发送第一受控应答信号。
接着,第一处理器根据接收的第一受控应答信号,通过写操作时序将下行数据包发送给第二处理器,并在发送完成后重置主控中断接口得到第二主控中断信号以通知第二处理器。
接着,第二处理器可以接收并处理第一处理器发送的下行数据包,并在处理完成后重置受控应答接口得到第二受控应答信号,以解锁通信总线。
图7为另一个实施例中处理器通信方法的时序示意图。如图7所示,在一个实施例中,提供的处理器通信方法的过程包括:
首先,第二处理器检测到有上行数据包,根据上行数据包锁定通信总线,并将上行数据包缓存到传输队列后向第一处理器发送第一受控中断信号。
接着,第一处理器根据接收的第一受控中断信号,通过读操作时序从第二处理器读取上行数据包,并发出第一主控应答信号。
接着,第二处理器在上行数据包发送完成后重置受控中断接口得到第二受控应答信号,并等待第一处理器响应。
接着,第一处理器根据第二受控中断信号,重置主控应答接口得到第二主控应答信号。
接着,第二处理器根据第二主控应答信号,解锁通信总线。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图8为一个实施例的处理器通信装置的结构框图。如图8所示,在一个实施例中,提供的处理器通信装置包括:
中断通知模块802,用于当接收到下行数据包时,第一处理器发送第一主控中断信号给第二处理器;
应答接收模块804,用于第一处理器接收第二处理器根据第一主控中断信号返回的第一受控应答信号;
数据传输模块806,用于第一处理器根据第一受控应答信号将下行数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器;重置的主控中断信号用于指示第二处理器在完成下行数据包的处理后,将第二受控应答信号返回至第一处理器。
本申请实施例提供的处理器通信装置,可以在接收到第一受控应答信号时则进行数据包的传输,并在传输完成后将第二主控中断信号发送至第二处理器,第二主控中断信号即表示单次数据传输完成,可以减少处理器通信的时延。
在一个实施例中,数据传输模块806还可以用于当下行数据包的数据量超过第一阈值时,按照预设数据量将下行数据包中包含的数据分批次发送给第二处理器,并在完成最后批次的数据发送时,将第二主控中断信号发送至第二处理器。
在一个实施例中,数据传输模块806还可以用于按照预设数据量将下行数据包分解为多个子数据包;获取一子数据包作为参考子数据包;将参考子数据包发送给第二处理器,并在发送完成后将第二主控中断信号发送至第二处理器;当存在未发送的子数据包时,则将第一主控中断信号发送至第二处理器,并获取未发送的子数据包作为参考子数据包,返回将参考子数据包发送给第二处理器的操作。
在一个实施例中,提供的处理器通信装置还包括数据获取模块808,数据获取模块808用于获取针对数据包的下行传输指示;根据下行传输指示获取数据包的数据量;当数据包的数据量超过第二阈值时,将数据包分解为多个下行数据包;当数据包的数据量不超过第二阈值时,将数据包确定为下行数据包。
在一个实施例中,数据获取模块808还可以用于在电子设备处于网络连接状态时,生成支付标识码及对应的数据传输指令;根据数据传输指令,生成支付标识码对应的下行数据包。
在一个实施例中,提供的处理器通信装置还可以包括中断接收模块810和应答发送模块812;中断接收模块810用于第一处理器接收第二处理器发送的第一受控中断信号,第一受控中断信号是第二处理器检测到有上行数据包时发送的;应答发送模块812用于第一处理器根据第一受控中断信号发送第一主控应答信号,数据传输模块806用于从第二处理器读取上行数据包;中断接收模块810还可以用于第一处理器接收第二处理器发送的第二受控中断信号;其中,第二受控中断信号是第二处理器在上行数据包括传输完成后发送的;应答发送模块812还可以用于第一处理器根据第二受控中断信号,在完成上行数据包的读取后,将第二主控应答信号发送至第二处理器。
在一个实施例中,数据获取模块808还可以用于获取应用程序发起的数据传输请求;根据数据传输请求包含的数据类型调用对应的数据接口;当数据接口归属于第一处理器时,第一处理器根据数据接口接收的数据生成下行数据包;当数据接口归属于第二处理器时,第二处理器根据数据接口接收的数据生成上行数据包。
上述处理器通信装置中各个模块的划分仅用于举例说明,在其他实施例中,可将处理器通信装置按照需要划分为不同的模块,以完成上述处理器通信装置的全部或部分功能。
关于处理器通信装置的具体限定可以参见上文中对于处理器通信方法的限定,在此不再赘述。上述处理器通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,该电子设备包括通过系统总线连接的第一处理器、第二处理器和存储器。其中,该第一处理器和第二处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被第一处理器和第二处理器所执行,以用于实现以下各个实施例所提供的一种处理器通信方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、平板电脑或者个人数字助理或穿戴式设备等。
本申请实施例中提供的处理器通信装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。
本申请实施例还提供了一种电子设备。为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该电子设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑、穿戴式设备等任意终端设备。以该电子设备为可穿戴设备为例:
该可穿戴设备包括第一处理器和的第二处理器。第一处理器和第二处理器均为微处理器。第一处理器可以是CPU(Central Process Unit,中央处理器)处理器,第一处理器可以运行是安卓(Android)系统;第二处理器可以是MCU(Microcontroller Unit,微控制单元)处理器;对应运行的系统可以是RTOS(Real Time Operating System,实时操作系统)单片机系统。
图9为一个实施例中可穿戴设备的软件框架示意图。如图9所示,该可穿戴设备可以包括安卓系统970和单片机系统960,安卓系统970运行于第一处理器;单片机系统960运行于第二处理器。安卓系统970包括应用层910、安卓框架层920、安卓服务层930、硬件抽象层940、linux内核层950;单片机系统960。
其中,应用层910用于提供各种应用程序。
安卓框架层920包括单片机管理模块921、传感器管理模块922和定位管理模块923;用于管理应用层910提供的应用程序。
安卓服务器层930包括单片机服务模块931、传感器服务器模块932、定位服务模块933和传感器集线器服务模块934;用于为安卓框架层920包含的管理模块提供服务。
Linux内核层950包括第一单片机驱动模块951,Linux内核层950为安卓系统970提供核心系统服务。
单片机系统960包括第二单片机驱动模块961、单片机通信模块962和传感器集线器硬件抽象模块963。其中,传感器集线器硬件抽象模块963可以用于处理感器提供的数据。
第一单片机驱动模块951和第二单片机驱动模块961通过SPI接口(SerialPeripheral Interface,串行外设接口)进行通信连接。
在一个实施例中,可穿戴设备可以提供至少两种工作模式:手表模式和手环模式,可穿戴设备处于手表模式时,安卓系统970和单片机系统960均运行,可穿戴设备由安卓系统970控制;可穿戴设备处于手环模式时,安卓系统970关闭,单片机系统960运行,可穿戴设备由单片机系统960控制。
当可穿戴设备处于手表模块,安卓系统970的数据上传或下载由单片机服务模块931管理,当应用层910包含的应用程序需要传输下行数据包至单片机系统960,或者从单片机系统960读取上行数据包时,需要通过单片机管理模块921调用相关的数据接口,建立双向数据通道以获取到对应的数据包进行发放,发放过程需要与单片机服务模块931通信;单片机服务模块931则可以根据获取数据包执行上述处理器通信方法。
图10为图9提供的可穿戴设备对应的硬件架构示意图。如图10所示,该可穿戴设备包括第一处理器1010和的第二处理器1020。第一处理器1010和第二处理器1020均为微处理器。以第一处理器1010可以是CPU(Central Process Unit,中央处理器)处理器,对应于第一系统可以是安卓(Android)系统;第二处理器1020可以是MCU(Microcontroller Unit,微控制单元)处理器;对应的第二系统可以是RTOS(Real Time Operating System,实时操作系统)单片机系统。
具体地,可穿戴设备可以包括心率传感器1021、加速度+陀螺仪1022、大气压力传感器1023、触摸传感器1024、磁力传感器1025、微压差传感器1026等传感器中的一种或多种;第二处理器1020可以与可穿戴设备包含的传感器连接,用于获取传感器采集的数据;第二处理器1020还可以与GPS(Global Positioning System,全球定位系统)模块1027连接,用于获取GPS天线接收的定位数据;及与调试(DEBUG)模块1028连接,用于输出可穿戴设备的调试数据。
显示屏130通过MIPI(Mobile Industry Processor Interface,移动产业处理器接口)与第一处理器1010和第二处理器1020连接,可以将第一处理器1010或第二处理器1020输出的数据进行展示。第一处理器1010和第二处理器1020之间通过SPI连接。可穿戴设备可以通过上述处理器通信方法将第二处理器1020获取的各个传感器数据发送给第一处理器1010;还可以通过上述处理器通信方法将第一处理器1010提供的数据发送给的第二处理器1020。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行处理器通信方法的步骤。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行处理器通信方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 机器人控制方法、装置、电子设备和计算机可读存储介质
- Monkey测试方法、装置、电子设备及计算机可读存储介质
- 日志上报方法、装置、电子设备及计算机可读存储介质
- 语音识别方法、装置、电子设备及计算机可读存储介质
- 处理器通信方法和装置、电子设备、计算机可读存储介质
- 处理器通信方法和装置、电子设备、计算机可读存储介质