CN116361223A - 多核通信方法、装置、微控制芯片及存储介质 - Google Patents
多核通信方法、装置、微控制芯片及存储介质 Download PDFInfo
- Publication number
- CN116361223A CN116361223A CN202310650012.8A CN202310650012A CN116361223A CN 116361223 A CN116361223 A CN 116361223A CN 202310650012 A CN202310650012 A CN 202310650012A CN 116361223 A CN116361223 A CN 116361223A
- Authority
- CN
- China
- Prior art keywords
- data
- core
- mcu
- communication bus
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000005540 biological transmission Effects 0.000 claims abstract description 84
- 239000012536 storage buffer Substances 0.000 claims abstract description 46
- 238000001914 filtration Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000012856 packing Methods 0.000 claims 1
- 239000000284 extract Substances 0.000 abstract description 7
- 230000005055 memory storage Effects 0.000 abstract description 5
- 239000000872 buffer Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- -1 i.e. Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多核通信方法、装置、微控制芯片及存储介质。本发明可以通过源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器,并将传输数据封包后发送至通信总线,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核,解析数据包并提取其中的传输数据,将传输数据暂存至与目标MCU内核对应的存储缓冲器,并通知目标MCU内核进行读取。本申请实施例可以通过存储缓冲器以及通信总线来实现多个MCU内核之间数据的传输,有效避免了内存存放的混乱,提升了多核间通信的效率。
Description
技术领域
本发明涉及芯片领域,具体涉及一种多核通信方法、装置、微控制芯片及存储介质。
背景技术
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机或者单片机。微控制芯片内部一般都包含有非易失性存储器,用于存储程序指令和数据。随着芯片技术的发展,双核甚至多核的MCU越来越多,相比单核MCU,多核MCU实时性更高,处理任务更多,具备的衍生功能更广。对于前面的优势,多核能够高效协同工作很关键,进而多核MCU的核间通信尤为重要。
目前,多核MCU核间通信多采用内存共享机制,每个内核都需要预设一块内存来发送或接收,数据的索引,内存的管控都显得比较繁琐,针对消息的即时传递得不到很好的支持,影响通信效率。
发明内容
本发明提供一种多核通信方法、装置、微控制芯片及存储介质,通过存储缓冲器以及通信总线来实现多个MCU内核之间数据的传输,有效避免了内存存放的混乱,提升了多核间通信的效率。
为实现上述有益效果,本发明实施例提供以下技术方案:
第一方面,本申请提供一种多核通信方法,应用于微控制芯片,所述微控制芯片包括多个MCU内核所述方法包括:
源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析所述数据包并提取其中的传输数据;
将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
第二方面,本申请提供一种多核通信装置,应用于微控制芯片,所述微控制芯片包括多个MCU内核,包括:
发送单元,用于源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
获取单元,用于控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析单元,用于解析所述数据包并提取其中的传输数据;
读取单元,用于将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
第三方面,本申请提供一种微控制芯片,包括:多个MCU内核、多个邮箱模块以及通信总线;
所述多个邮箱模块与所述多个MCU内核分别连接,所述通信总线与所有邮箱模块连接,源MCU内核连接的邮箱模块用于将传输数据暂存至当前邮箱模块的存储缓冲器,并将所述传输数据封包后发送至通信总线;
所有MCU内核连接的邮箱模块用于从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
所述目标MCU内核连接的邮箱模块还用于解析所述数据包并提取其中的传输数据,将所述传输数据暂存至当前邮箱模块的存储缓冲器,并通知所述目标MCU内核进行读取。
第四方面,本申请提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述多核通信方法中的步骤。
本申请提供的实施例可以通过源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器,并将传输数据封包后发送至通信总线,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核,解析数据包并提取其中的传输数据,将传输数据暂存至与目标MCU内核对应的存储缓冲器,并通知目标MCU内核进行读取。本申请实施例可以通过存储缓冲器以及通信总线来实现多个MCU内核之间数据的传输,有效避免了内存存放的混乱,提升了多核间通信的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中通过共享内存进行多核通信的框架示意图;
图2是本发明实施例提供的多核通信方法的一种流程示意图;
图3是本发明实施例提供的多核通信方法的另一流程示意图;
图4为本发明实施例提供的多核通信装置的结构示意图;
图5是本发明实施例提供的微控制芯片的一种结构示意图;
图6是本发明实施例提供的微控制芯片的另一种结构示意图
图7是本发明实施例提供的智能终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本文中,采用了诸如101、102等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行102后执行101等,但这些均应在本申请的保护范围之内。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在描述本申请的技术方案之前,先对相关的技术术语进行简单解释:
微控制芯片:微控制芯片(Microcontroller Unit,MCU)是把中央处理器(CentralProcess Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
CORE:核心,内核,在电子行业通常指的是芯片的内核或者CPU,好比芯片的大脑,按照程序规则处理各个指令和数据。
Buffer:缓冲器,在不同行业有不同的意思,计算机或电子领域,通常指的存储缓冲器,即用来暂存数据或信息,通信的太快来不及响应时可以使用缓冲器暂时存储数据。
Mailbox:邮箱,是人与人之间一种网络沟通的方式,用于接收他人发过来的邮件信息,在本文档中代指核与核之间通信所需要的一种处理模块。
CPU:(central processing unit,中央处理器)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
RAM:(Random Access Memory,随机存取存储器),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。
ID:(Identity document,标识编号)是识别一个对象取得编号,在此文档,芯片ID即是芯片的唯一编号信息。
在现有技术中,对于现在的多核MCU核间通信技术一般是通过共享内存的方式,请参阅图1,其中核与核都预设有一块内存空间,当两核需要通信时,发送方会将有效数据和信息放置对应共享内存,然后触发接收方的中断信号,告知接收方数据已放置共享内存。此设计看起来简单,实则考虑的细节很多,并且还存在一定弊端,如当两核同一个时刻需要向对方发送数据时,就会同时将发送信息放置共享内存,此时就会涉及到内存的管理,若内存管理不合理,会导致数据错乱,通信数据异常,影响整个芯片系统的运行。
请参阅图2,图2是本发明实施例提供的多核通信方法的一种流程示意图。该多核通信方法应用于微控制芯片,所述微控制芯片包括多个MCU内核,包括:
步骤101,源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器,并将传输数据封包后发送至通信总线。
在一实施例中,源MCU内核为需要向其他MUC内核发送数据的内核,可以为多个MCU内核中的任何一个。其中,源MCU内核需要给其他内核发送数据时,不需要对数据进行任何处理,直接将数据放置在源MCU内核对应的存储缓冲器,也即在数据Buffer中暂存,数据Buffer会向SRAM申请对应数据大小的空间,并将数据存储起来。需要说明的是,数据被提取出来后,数据Buffer会主动释放空间。
进一步的,从上述数据Buffer读取数据后便可以进行封包处理以进行数据整合,并将处理后的数据包发送至数据总线。
在一实施例中,将整合后的数据包有序的发送到通信总线,数据到总线之前会先进行查验确认,若无问题会直接传送给通信总线。当发送至通信总线的数据包为多个时,还可以依据待接收数据的MCU内核对应的CORE ID等信息进行优先级排序,再根据排序结果依次发送至数据总线,同时也会验证数据包格式的正确性。也即,将数据包发送至通信总线的步骤可以包括:对数据包的格式进行验证,当发送至通信总线的数据包为多个时,根据目标ID对多个数据包的优先级进行排序,按照排序结果将所述多个数据包发送至通信总线。
步骤102,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核。
在一实施例中,当通信总线接收到数据包时,总线可以通知每一个MCU内核对应的数据接收器,以使得所有MCU内核从通信总线中获取该数据包。其中,通信总线中的数据包可以被多个数据接收器同时进行读取。需要说明的是,通信总线上数据的传输很快,虽然同一时刻只有单个数据包的传输,但传输一包数据完全满足时间要求。
在一实施例中,上述数据接收器检测到通信总线上有数据传输时,会立即进行数据包的获取,不管是其他CPU发出的数据包还是自身CPU发送的数据包,都会进行获取,对于自身发出数据包在数据接收器接收到后会生成一个信号,以证明数据包发送成功。若数据接收器若在一定时间未生成信号,也即未能获取到对应的数据包,则可以报出发送超时信息,起到一个发送不成功的提醒机制,方便用户进行查看。因此上述控制所有MCU内核从所述通信总线中获取数据包的步骤可以包括:若源MCU内核在预设时间内未获取到数据包,则根据超时数据生成提醒信息。
进一步的,每个MCU内核在接收到数据包后会通过过滤器过滤接收到的信息,默认会过滤自身发出的信息,过滤器会根据数据包中的接收CORE ID、发送CORE ID等信息进行过滤,判断当前数据是否是自己需要的,若是,则可以确定当前MCU内核即为目标MUC内核。
步骤103,解析数据包并提取其中的传输数据。
需要说明的是,在所有MCU内核接收到数据包后,目标MCU内核确认接收到的数据包有效后,解析器就会从数据包中提取有效的数据内容,并按照配置要求进行分类排列,而其余MCU内核在确定接收到的数据包不是自身需要的时候可以直接将其忽略或删除。
步骤104,将传输数据暂存至与目标MCU内核对应的存储缓冲器,并通知目标MCU内核进行读取。
在一实施例中,解析器解析出传输数据后可以发送给与目标MCU内核对应的数据Buffer。具体的,数据Buffer可以申请SRAM空间后将传输数据信息暂存,等待CORE读取。
其中,本申请实施例中的通信总线是为了让数据传输的更快,一条总线解决了多个内核的相互通信,设计相对比较简单,支持一对多和多对多的情况。对于按照上述方法的多核MCU,用户编程只需要提前确定好每一包数据的定义和收发方,配置好每一个CORE的编号,即ID信息,同时也配置好过滤的信息,下载程序便可让MCU的每一个CPU正常运行起来,不会存在冲突的情况。
由上可知,本申请实施例提供的多核通信方法通过源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器,并将传输数据封包后发送至通信总线,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核,解析数据包并提取其中的传输数据,将传输数据暂存至与目标MCU内核对应的存储缓冲器,并通知目标MCU内核进行读取。本申请实施例可以通过存储缓冲器以及通信总线来实现多个MCU内核之间数据的传输,有效避免了内存存放的混乱,提升了多核间通信的效率。
根据上一实施例中所描述的多核通信方法,以下将举例作进一步详细说明。
请参阅图3,图3为本发明实施例提供的多核通信方法的另一流程示意图。该方法流程可以包括:
步骤201,源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器。
步骤202,从源MCU内核对应的存储缓冲器中读取传输数据并进行计算,以得到校验值。
步骤203,将校验值与传输数据以及目标ID进行整合封包后发送至通信总线。
在一实施例中,源MCU内核需要给其他内核发送数据时,不需要对数据进行任何处理,直接将数据放置数据Buffer暂存,数据Buffer会向SRAM申请对应数据大小的空间,并将数据存储起来,数据被提取出来后,会主动释放空间。
数据封包器从数据Buffer读取数据后进行计算,得出校验值,并与CORE ID、数据长度、传输数据等信息一起排序整合封包,最终将整合后的数据包有序的发送到通信总线。其中,数据到通信总线之前会先进行查验确认,若无问题会直接传送给通信总线。
步骤204,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核。
步骤205,解析数据包并提取其中的传输数据。
步骤206,将传输数据暂存至与目标MCU内核对应的存储缓冲器。
在一实施例中,当通信总线接收到数据包时,总线可以通知每一个MCU内核对应的数据接收器,以使得所有MCU内核从通信总线中获取该数据包。进一步的,每个MCU内核在接收到数据包后会通过过滤器过滤接收到的信息,判断当前数据是否是自己需要的,若是,则可以确定当前MCU内核即为目标MUC内核。进而解析器就会从数据包中提取有效的数据内容,并发送给与目标MCU内核对应的数据Buffer。
步骤207,生成中断信号并发送至目标MCU内核。
步骤208,控制目标MCU内核根据中断信号从目标MCU内核对应的存储缓冲器中读取传输数据。
步骤209,释放目标MCU内核对应的存储缓冲器中的存储空间。
具体的,数据Buffer申请SRAM空间后将有效数据信息暂存,等待CORE也即目标MCU内核来进行读取。当数据Buffer获取到一包有效数据内容后,会立即告知CORE,中断产生器就可以产生一个中断信号给CORE。CORE检测到中断信号后从数据Buffer读取接收的数据,并处理数据。其中,在从数据Buffer读取完成后,便可以释放数据Buffer中的存储空间。
由上可知,本申请实施例提供的多核通信方法通过源MCU内核将传输数据暂存至与源MCU内核对应的存储缓冲器,从源MCU内核对应的存储缓冲器中读取传输数据并进行计算,以得到校验值,将校验值与传输数据以及目标ID进行整合封包后发送至通信总线,控制所有MCU内核从通信总线中获取数据包,并通过对数据包进行过滤以确定目标MCU内核,解析数据包并提取其中的传输数据,将传输数据暂存至与目标MCU内核对应的存储缓冲器,生成中断信号并发送至目标MCU内核,控制目标MCU内核根据中断信号从目标MCU内核对应的存储缓冲器中读取传输数据,释放目标MCU内核对应的存储缓冲器中的存储空间。本申请实施例可以通过存储缓冲器以及通信总线来实现多个MCU内核之间数据的传输,有效避免了内存存放的混乱,提升了多核间通信的效率。
为便于更好的实施本发明实施例提供的多核通信方法,本发明实施例还提供一种基于上述多核通信方法的装置。其中名词的含义与上述多核通信方法中相同,具体实现细节可以参考方法实施例中的说明。
在本实施例中,将从多核通信装置的角度进行描述,该多核通信装置具体可以集成在MUC芯片中。
请参阅图4,图4为本发明实施例提供的多核通信装置300的一种结构示意图。其中,上述多核通信装置300可以包括:
发送单元301,用于源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
获取单元302,用于控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析单元303,用于解析所述数据包并提取其中的传输数据;
读取单元304,用于将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
本发明实施例还提供一种微控制芯片,如图5所示,该微控制芯片包括多个MCU内核401、多个邮箱模块402、仲裁模块403以及通信总线404。
具体的,MCU内核401,即是CPU,是整个MCU系统的控制核心,在此示例中列举了三个内核,每个核可以是相同的,也可以是不一样的。邮箱模块402可以为MailBox模块,用于处理多核之间通信数据的模块,是由很多个功能单元组成,数据的打包、发送和接收、数据的解析、中断的产生等都在此模块内发生。通信总线404用于各个核间通信的专用总线,同一时刻只能承载一个内核发出的信息,此总线的信息可以被每个内核的Mailbox模块所接收处理,包括核的自发自收。仲裁模块403主要是为了在多个核在同一时刻向通信总线发送数据时,会存在竞争的情况,为了让每个核发出来的信息有序传输,需要将各个信息进行仲裁决定发送到通信总线的先后顺序。
在一实施例中,请继续参阅图6,上述MailBox模块还可以进一步包括数据存储Buffer405、数据封包器406、数据发送器407、中断产生器408、数据解析器409、数据过滤器410以及数据接收器411。
具体的,数据存储Buffer405是用来暂存数据的,与CORE直接相连,当CORE发送的数据和接收的数据都要先放置在这里,空间来源是SRAM,根据所传输的数据信息大小,动态向SRAM申请空间,并且其中数据被使用完后,动态释放空间。数据封包器406是用来对将要发送的数据进行封包处理,封包主要包括发送方ID,接收方ID,大小,校验信息、数据等有效信息进行规则整合,这样的数据包才能正常被发送到通信总线,并且才能被接收方正确解析。数据发送器407主要是起到有序发送上一单元整合的数据包。中断产生器408其实是一个触发中断源,当接收到有效信息并且被正确解析放置到数据存储Buffer后,会立即给内核一个中断信号,告知内核当前可以获取数据,该中断信号从特定的中断入口发送给内核,该中断入口是Mailbox对CORE的专用入口,当此中断入口有触发信号过来,会以最高优先级通知MCU内核。数据解析器409是从接收到的数据包中提取有效关键信息,并可按照配置要求分类提取的信息并再次排序存放,方便内核直接获取处理。数据过滤器410起到过滤的作用,可提前配置好,将通信总线传过来的信息进行过滤,筛出哪些批次的数据是需要的,过滤掉不需要的数据包,这样避免了反复打扰内核运行的情况。数据接收器411可以用于获取通信总线上的数据包,不管是自己发送的还是其他核发送的,只要总线上的数据包格式正确,都会被接收,对于自身发送的数据,会做监测作用,若发送单元已发送数据,接收单元在一定事件内未获取到该数据,则认为发送数据异常,并告知CPU或内核。
本发明实施例还提供一种智能终端600,如图7所示,该智能终端600可以包括射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,WirelessFidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图7中示出的智能终端600结构并不构成对智能终端600的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,SubscriberIdentity Module)卡、收发信机、耦合器、低噪声放大器(LNA,LowNoiseAmplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及信息处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据智能终端600的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及智能终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。
智能终端600还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器等,至于智能终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一智能终端600。
WiFi属于短距离无线传输技术,智能终端600通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块607,但是可以理解的是,其并不属于智能终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是智能终端600的控制中心,利用各种接口和线路连接整个智能终端的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行智能终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成上述实施例中提供的微控制芯片。
智能终端600还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
具体在本实施例中,智能终端600中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析所述数据包并提取其中的传输数据;
将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文多核通信方法的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其上存储有多条指令,所述指令适于处理器进行加载,以执行以下步骤:
源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析所述数据包并提取其中的传输数据;
将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read OnlyMemory)、随机存取记忆体(RAM,Random AccessMemory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种多核通信方法中的步骤,因此,可以实现本发明实施例所提供的任一种多核通信方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的多核通信方法、装置、微控制芯片及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种多核通信方法,应用于微控制芯片,所述微控制芯片包括多个MCU内核,其特征在于,所述方法包括:
源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析所述数据包并提取其中的传输数据;
将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
2.根据权利要求1所述的多核通信方法,其特征在于,将所述传输数据封包后发送至通信总线的步骤包括:
从所述源MCU内核对应的存储缓冲器中读取传输数据并进行计算,以得到校验值;
将所述校验值与所述传输数据以及目标ID进行整合封包处理,并将处理后的数据包发送至通信总线。
3.根据权利要求2所述的多核通信方法,其特征在于,将处理后的数据包发送至通信总线的步骤包括:
对所述数据包的格式进行验证;
当发送至通信总线的数据包为多个时,根据所述目标ID对多个数据包的优先级进行排序;
按照排序结果将所述多个数据包发送至通信总线。
4.根据权利要求1所述的多核通信方法,其特征在于,控制所有MCU内核从所述通信总线中获取数据包的步骤包括:
若所述源MCU内核在预设时间内未获取到所述数据包,则根据超时数据生成提醒信息。
5.根据权利要求1所述的多核通信方法,其特征在于,通知所述目标MCU内核进行读取的步骤包括:
生成中断信号并发送至所述目标MCU内核;
控制所述目标MCU内核根据所述中断信号从所述目标MCU内核对应的存储缓冲器中读取所述传输数据;
释放所述目标MCU内核对应的存储缓冲器中的存储空间。
6.一种多核通信装置,应用于微控制芯片,所述微控制芯片包括多个MCU内核,其特征在于,包括:
发送单元,用于源MCU内核将传输数据暂存至与所述源MCU内核对应的存储缓冲器,并将所述传输数据封包后发送至通信总线;
获取单元,用于控制所有MCU内核从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
解析单元,用于解析所述数据包并提取其中的传输数据;
读取单元,用于将所述传输数据暂存至与所述目标MCU内核对应的存储缓冲器,并通知所述目标MCU内核进行读取。
7.一种微控制芯片,其特征在于,包括:多个MCU内核、多个邮箱模块以及通信总线;
所述多个邮箱模块与所述多个MCU内核分别连接,所述通信总线与所有邮箱模块连接,源MCU内核连接的邮箱模块用于将传输数据暂存至当前邮箱模块的存储缓冲器,并将所述传输数据封包后发送至通信总线;
所有MCU内核连接的邮箱模块用于从所述通信总线中获取数据包,并通过对所述数据包进行过滤以确定目标MCU内核;
所述目标MCU内核连接的邮箱模块还用于解析所述数据包并提取其中的传输数据,将所述传输数据暂存至当前邮箱模块的存储缓冲器,并通知所述目标MCU内核进行读取。
8.根据权利要求7所述的微控制芯片,其特征在于,所述邮箱模块包括:
数据封包器,用于从所述存储缓冲器中读取传输数据并进行计算,以得到校验值,将所述校验值与所述传输数据以及目标ID进行整合封包。
9.根据权利要求8所述的微控制芯片,其特征在于,所述微控制芯片还包括:
仲裁模块,用于对数据包的格式进行验证,且当发送至通信总线的数据包为多个时,根据所述目标ID对多个数据包的优先级进行排序,按照排序结果将所述多个数据包发送至通信总线。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至5任一项所述的多核通信方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310650012.8A CN116361223A (zh) | 2023-06-02 | 2023-06-02 | 多核通信方法、装置、微控制芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310650012.8A CN116361223A (zh) | 2023-06-02 | 2023-06-02 | 多核通信方法、装置、微控制芯片及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116361223A true CN116361223A (zh) | 2023-06-30 |
Family
ID=86917416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310650012.8A Pending CN116361223A (zh) | 2023-06-02 | 2023-06-02 | 多核通信方法、装置、微控制芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116361223A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330958A (ja) * | 1999-05-21 | 2000-11-30 | Fujitsu Ltd | マルチcpuシステム及びそのデータ通信制御方法 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN106200454A (zh) * | 2016-06-21 | 2016-12-07 | 沈阳东软医疗系统有限公司 | 一种多mcu的通信系统及方法 |
CN109643301A (zh) * | 2018-10-30 | 2019-04-16 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构和数据发送的方法 |
CN209132758U (zh) * | 2018-10-30 | 2019-07-19 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构 |
-
2023
- 2023-06-02 CN CN202310650012.8A patent/CN116361223A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330958A (ja) * | 1999-05-21 | 2000-11-30 | Fujitsu Ltd | マルチcpuシステム及びそのデータ通信制御方法 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN106200454A (zh) * | 2016-06-21 | 2016-12-07 | 沈阳东软医疗系统有限公司 | 一种多mcu的通信系统及方法 |
CN109643301A (zh) * | 2018-10-30 | 2019-04-16 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构和数据发送的方法 |
CN209132758U (zh) * | 2018-10-30 | 2019-07-19 | 北京比特大陆科技有限公司 | 多核芯片数据总线布线结构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9877283B2 (en) | Method and terminal for reporting sensor data and terminal | |
US9185652B2 (en) | Bluetooth low energy module systems and methods | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
US20160266948A1 (en) | Queued Messages Processing Method and Apparatus, Method and Apparatus for Controlling Messages to be Enqueued | |
US10609633B2 (en) | Method for triggering registrar protocol interaction, access point, and station | |
CN102467412B (zh) | 一种处理操作请求的方法、装置及业务系统 | |
CN103942113A (zh) | 系统重启原因的检测方法、装置及终端设备 | |
CN113114707B (zh) | 一种电力芯片以太网控制器规则过滤方法 | |
CN107318119A (zh) | 家电设备组网方法、家电设备和计算机可读存储介质 | |
CN110445585A (zh) | 基于ppp数据帧组帧和解帧硬件加速器 | |
CN103336838A (zh) | 一种网页的处理方法、装置和终端设备 | |
US10432731B2 (en) | Electronic device and method of controlling sensors connected through network | |
CN107592607B (zh) | 一种蓝牙复合设备及其通信方法 | |
WO2018233141A1 (zh) | 数据通信处理终端、方法及计算机可读存储介质 | |
CN116361223A (zh) | 多核通信方法、装置、微控制芯片及存储介质 | |
WO2017166093A1 (zh) | 前置系统 | |
JP2014183334A (ja) | 監視システム、監視サーバ及び監視方法 | |
CN104378339B (zh) | 一种使用代理协议的通信方法和装置 | |
CN112637370B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112866422B (zh) | 一种数据请求处理方法和装置 | |
CN107025118B (zh) | 结束应用程序的方法及装置 | |
CN109413592B (zh) | 一种广播方法和移动终端 | |
CN112988406B (zh) | 远程调用方法、装置和存储介质 | |
WO2017166095A1 (zh) | 服务器前置方法 | |
WO2017166094A1 (zh) | 服务器前置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230630 |