CN111045976A - 一种mcu之间的通信方法、装置、系统及存储介质 - Google Patents
一种mcu之间的通信方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN111045976A CN111045976A CN201911225836.0A CN201911225836A CN111045976A CN 111045976 A CN111045976 A CN 111045976A CN 201911225836 A CN201911225836 A CN 201911225836A CN 111045976 A CN111045976 A CN 111045976A
- Authority
- CN
- China
- Prior art keywords
- packet
- mcu
- communication
- communication protocol
- communication service
- 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
Images
Classifications
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种微控制单元(MCU)之间的通信方法、装置、系统及存储介质。首先,在需要与另一MCU进行通信的MCU上运行MCU通信服务。利用该MCU通信服务依据自定义的通信协议与另一MCU侧上运行的MCU通信服务进行通信,反之亦然。如此,可实现任何两个MCU之间的通信。由于该方法依据的是自定义的通信协议,无论这两个MCU是来哪个厂商都可以进行通信,大大拓宽了MCU芯片的选择范围,从而为实现资源的优化配置提供了保障。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种微控制单元(MicrocontrollerUnit,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侧上运行的MCU通信服务进行通信,反之亦然。从而实现两个MCU之间的通信,由于该方法依据的是自定义的通信协议,无论这两个MCU是来哪个厂商都可以进行通信,大大拓宽了MCU芯片的选择范围,从而为实现资源的优化配置提供了保障。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1为本发明实施例MCU之间的通信方法的应用场景示意图;
图2为本发明实施例MCU之间的通信方法的实现流程示意图;
图3为本发明实施例MCU之间的通信装置的组成结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
图1示出了本发明实施例MCU之间的通信方法的某个应用场景。在这一场景中,可穿戴设备集成有两个MCU:左侧的为第一MCU 10;右侧的为第二MCU 20。第一MCU 10处理能力相对较弱,主要管理和控制一些对系统性能要求不高、占用系统资源较少的硬件模块,比如传感器107、蓝牙108、音频109和麦克110等。第一MCU10在管理和控制这些硬件模块时,会利用第一MCU通信服务101,在软件层面借助硬件抽象层102访问和控制各个硬件模块,在硬件层面则通过串行外设接口104、I2C总线106和用脉冲解码调制105建立与硬件的连接进行数据传输,并将相关数据存储到直接内存存储器103中。第二MCU 20处理能力相对较强,主要管理和控制一些对系统性能要求较高、占用系统资源较多的硬件模块,比如显示屏206、触摸屏207、GPS 208、密钥209等。第二MCU20在管理和控制这些硬件模块时,会利用第二MCU通信服务201,在软件层面借助硬件抽象层202访问和控制各个硬件模块,在硬件层面则通过串行外设接口204和I2C总线205建立与硬件的连接进行数据传输,并将相关数据存储到直接内存存储器203中。第一MCU10与第二MCU 20进行通信时,会将第二MCU 20看作与之相连的另一个硬件设备,利用第一MCU通信服务101借助硬件抽象层102与之进行数据交换,反之亦然。在上述的场景中,第一MCU 10和第二MCU 20分别来自不同的厂商,而目前还没有一个用于在不同厂商生产的MCU之间进行通信的标准的通信协议,所以本发明人提出并实现了一种自定义的通信协议。该协议定义了数据包的组成结构和校验方式等,这样不同厂商生产的MCU之间就可以依据该自定义协议对数据进行打包、校验、解包和分析,从而实现数据的交换和通信。
针对以上的应用场景,本发明实施例提供了一种MCU之间的通信方法,该方法利用第一MCU通信服务依据自定义的通信协议与第二MCU通信服务进行通信来实现,其中第一MCU通信服务运行于第一MCU侧,第二MCU通信服务运行于第二MCU侧。如图2所示,该方法包括:操作210,接收第二MCU通信服务发送的请求数据包;操作220,依据自定义的通信协议对请求数据包进行解析得到解析结果;操作230,根据解析结果收集信息或执行相关操作;操作240,依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包;操作250,将响应数据包发送给第二MCU通信服务。
在操作210中,第二MCU通信服务发送的请求数据包是依据自定义的通信协议进行打包的。其中包括依据自定义的通信协议构建的包头和包体。在包头中还包括包类型。通常第二MCU通信服务向第一MCU发送的通信请求,往往都是针对于第一MCU所管理和控制的硬件,或是请求这些硬件的配置信息,或是其这些硬件采集到的信息,或是对这些硬件进行的某种操作,比如启用、初始化、模式转换等。
在操作220中,第一MCU会进行一个解包过程得到请求数据包的包头和包体,然后再从该包头或包体中得到包类型和具体的请求内容,从而进一步解析该请求数据包的意图是用于请求信息还是请求操作,请求的是什么信息或什么操作等,这就是解析结果。
在操作230中,根据操作220中得到的解析结果,收集第二MCU请求的信息,或执行其请求的操作。在软件层面,第一MCU通信服务主要是通过硬件抽象层进行,或是从第一MCU侧的硬件中收集相关信息,或是对第一MCU侧的硬件执行相关的操作。而在硬件层面,这些信息的收集或操作指令的下达都是经由第一MCU侧的各种数据总线和数据直接存储器实现的。
在操作240中,第一MCU通信服务会依据自定义的通信协议,进行操作220中描述相同的打包过程,根据收集到的信息或执行操作的结果生成响应数据包。该响应数据包所包含的数据包类型与请求数据包一致,且其数据内容就是请求数据包中所请求的信息或请求数据包中所请求操作的操作结果。
在操作250,第一MCU通信服务通过硬件抽象层将操作240中生成的响应数据包发送给第二MCU通信服务。至此,第一MCU就完成了与第二MCU的一次通信。
类似的,第二MCU也可以通过相同的通信方法完成对第一MCU所发送通信请求的响应。
同理,该方法也并不限定在某两个MCU上,任何需要进行相互通信的两个MCU之间都可采用上述方法进行通信。
根据本发明一实施方式,其中,在接收第二MCU通信服务发送的请求数据包之前,方法还包括:在第一MCU侧运行第一MCU通信服务;在第二MCU侧运行第二MCU通信服务。
本发明实施例中提到的MCU通信服务并不包含再现有的、标准嵌入式操作系统,而是需要额外添加的系统服务。在本发明实施例中,发明人对现有的嵌入式操作系统进行了扩展,在系统服务中添加了一个用于在MCU之间进行通信的MCU通信服务。由于该服务是嵌入式操作系统的系统服务,通常会在嵌入式操作系统启动时自动运行。由于运行MCU通信服务是在MCU之间进行通信的前提条件,需要在进行相互通信的MCU上安装扩展后的嵌入式操作系统并保证该通信服务处于运行状态。但这一操作一般只需在首次安装、升级系统或重装系统时执行一次即可,而无需在每次通信前都要执行。
根据本发明一实施方式,其中,在依据自定义的通信协议对请求数据包进行解析之前,还包括:校验请求数据包的完整性。
与其他硬件设备的通信类似,本发明实施例MCU之间的通信也有可能会发生数据缺失或破坏,为保证数据完整性,在进行请求数据包进行解析之前需要进行数据完整性的校验。在本发明实施例中使用的自定义的通信协议使用循环冗余校验(CRC)方法来生成数据校验码,故而推荐使用查表法CRC-16算法进行校验。
根据本发明一实施方式,其中,依据自定义的通信协议对请求数据包进行解析得到解析结果,包括:对请求数据包进行解包得到包头和包体;依据自定义的通信协议对包头和包体进行进一步分析得到包类型和所请求的具体信息或具体操作。
根据本发明一实施方式,其中,依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包,包括:依据自定义的通信协议,用所收集到的信息或所进行操作得到的操作结果构建包头和包体;对包头和包体进行打包生成响应数据包。
需要进行相互通信的第一MCU通信服务和第二MCU通信服务在进行构建数据包进行打包和解包后分析数据包时,都必须依据本发明实施例自定义的通信协议,如此,才能彼此理解各自发送的内容。
根据本发明一实施方式,其中,自定义的通信协议包括:包头,包头包括包类型、子包数量、子包索引和包长度,其中包类型定义了一部分预留代码段用于预留功能,其它未预留的代码段用于扩展性功能;包体,包体为序列化的数据,按字节流传输;数据校验码,用于校验的完整性。
本发明实施例自定义的通信协议采用如表1所示的协议框架:
表1
其中,包头(Packet Header)用来约定数据包的基本信息,包括包类型(PacketType)、子包数量(Subpacket Count)、子包索引(Subpacket Index)和包长度(PacketLength)。包类型用来指定数据包的类型,代码长度2个字节,UNIT16类型,可以表示共计32768种类型的数据包。包类型用最高位来区分发送端和接收端:0表示发送端;1表示接收端。包长度用来指定数据包的长度,代码长度2个字节,UNIT16类型。
数据内容(Payload)用来传输数据的实体,按字节流传输,内部使用通过nanopb序列化的数据,发送端将数据序列化之后放入数据内容,接收端拿到数据后反序列化之后使用,可以根据需要定义最大字节数,本发明实施例使用的最大字节数为256个字节。
循环冗余校验(CRC),用来校验数据完整性,长度2个字节。通过将从包类型首字节开始,到数据内容最后一个字节数据的校验和。
低字节(LSB)和高字节(HSB)用来指定两个字节的存放顺序和位置。
本发明实施例自定义的通信协议定义了上述数据包的数据结构和校验方式等,这样不同厂商生产的MCU之间就可以依据该自定义协议对数据进行打包、校验、解包和解析,从而实现数据的交换和通信。
此外,本发明实施例自定义的通信协议所定义的包类型定义了一部分预留代码段用于预定义功能,如表2所示:
表2
其它未预留的代码段则可以用来进行拓展,实现一些新的类型和自定义功能。这就使得第一MCU 10可以与第二MCU 20交换不同类型的数据用于不同的场景。
下面结合图1,以一具体实例来说明如何依据本发明实施例自定义的通信协议实现第一MCU 10和第二MCU 20之间的通信交互。在这一实例中,假设某一可穿戴设备集成了第一MCU 10和第二MCU 20形成双MCU系统。其中在第一MCU 10集成了一个用于记录用户运动数据的传感器107,而在第二MCU 20侧安装有该可穿戴设备的智能可穿戴操作系统,并运行有一个管理和显示运动数据的健身应用。在这种情况下,第一MCU 10与第二MCU 20之间就需要进行通信交换健身数据和用户发来的指令以实现健身应用的相应功能。
例如,用户打开在第二MCU 20侧上的健身应用,通过触摸屏207发出查看运动数据的指令时,第二MCU 20侧的第二MCU通信服务201就会通过串行外设接口204和硬件抽象层202接收到该指令,并依据本发明实施例自定义的通信协议构建包头和包体,指定包类型为传感器,然后打包生成请求数据包,并通过硬件抽象层202将该请求数据包发送给第一MCU10侧的第一MCU服务101。
第一MCU 10侧的第一MCU通信服务101通过硬件抽象层202与硬件抽象层102之间的通信通道接收到该请求数据包后就依据本发明实施例自定义的通信协议对其进行相应处理。首先,第一MCU通信服务101会进行数据完整性的校验,经校验无误后依据本发明实施例自定义的通信协议对请求数据包进行解析得到具体的请求内容。之后,第一MCU通信服务101根据具体的请求内容,通过串行外设接口104收集传感器107所采集到的运动数据,比如步伐和心跳等。然后,MCU通信服务101依据本发明实施例自定义的通信协议用收集到的数据构建包头、包体、数据校验码,然后打包生成响应数据包,再通过硬件抽象层102和硬件抽象层202之间的通信通道返回给第二MCU通信服务201。
第二MCU通信服务201,收到该响应数据包后,依据本发明实施例自定义的通信协议对该响应数据包进行校验、解析之后,得到返回的运动数据。之后,第二MCU通信服务201通过硬件抽象层202和串行外设接口204将健身数据返回给健身应用程序的显示屏206。
进一步地,本发明实施例还提供一种MCU之间的通信装置。如图3所示,该通信装置30包括:接收模块301,用于接收第二MCU通信服务发送的请求数据包;解析模块302,用于依据自定义的通信协议对请求数据包进行解析得到解析结果;操作模块303,用于根据解析结果收集信息或执行相关操作;打包模块304,用于依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包;发送模块305,用于将响应数据包发送给第二MCU通信服务。
根据本发明一实施方式,其中,通信装置30还包括:数据校验模块,用于用CRC校验请求数据包的完整性。
根据本发明一实施方式,其中,解析模块302包括:解包单元,用于对请求数据包进行解包得到包头和包体;分析单元,用于依据自定义的通信协议对包头和包体进行进一步分析得到包类型和所请求的具体信息或具体操作。
根据本发明一实施方式,其中,打包模块304包括:构建单元,用于依据自定义的通信协议,用所收集到的信息或所进行操作得到的操作结果构建包头、包体和数据校验码;打包单元,用于对包头、包体和数据校验码进行打包生成响应数据包。
根据本发明实施例第三方面,提供一种MCU之间的通信系统,包括处理器和存储器,其中,存储器中存储有计算机程序指令,计算机程序指令被处理器运行时用于执行上述任一项的MCU之间的通信方法。
根据本发明实施例第四方面,提供一种计算机存储介质,存储介质包括一组计算机可执行指令,当指令被执行时用于执行上述任一项的MCU之间的通信方法。
这里需要指出的是:以上对针MCU之间的通信装置实施例的描述、以上针对MCU之间的通信系统实施例的描述和以上针对计算机存储介质实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于本发明对MCU之间的通信装置实施例的描述、对MCU之间的通信系统实施例的描述和对计算机存储介质实施例的描述尚未披露的技术细节,请参照本发明前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种微控制单元MCU之间的通信方法,其特征在于,所述方法利用第一MCU通信服务依据自定义的通信协议与第二MCU通信服务进行通信来实现,其中所述第一MCU通信服务运行于第一MCU侧,所述第二MCU通信服务运行于第二MCU侧,所述方法包括:
接收所述第二MCU通信服务发送的请求数据包;
依据自定义的通信协议对所述请求数据包进行解析得到解析结果;
根据所述解析结果收集信息或执行相关操作;
依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包;
将所述响应数据包发送给所述第二MCU通信服务。
2.根据权利要求1所述的方法,其特征在于,在所述接收第二MCU通信服务发送的请求数据包之前,所述方法还包括:
在所述第一MCU侧运行所述第一MCU通信服务;
在所述第二MCU侧运行所述第二MCU通信服务。
3.根据权利要求1所述的方法,其特征在于,在所述依据自定义的通信协议对所述请求数据包进行解析之前,还包括:
校验所述请求数据包的完整性。
4.根据权利要求1所述的方法,其特征在于,所述依据自定义的通信协议对所述请求数据包进行解析得到解析结果,包括:
对所述请求数据包进行解包得到包头和包体;
依据自定义的通信协议对所述包头和包体进行进一步分析得到包类型和所请求的具体信息或具体操作。
5.根据权利要求1所述的方法,其特征在于,所述依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包,包括:
依据自定义的通信协议,用所收集到的信息或所进行操作得到的操作结果构建包头、包体和数据校验码;
对所述包头、包体和数据校验码进行打包生成响应数据包。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述自定义的通信协议包括:
包头,所述包头包括包类型、子包数量、子包索引和包长度,其中所述包类型定义了一部分预留代码段用于预留功能,其它未预留的代码段用于扩展性功能;
包体,所述包体为序列化的数据,按字节流传输;
数据校验码,用于校验的完整性。
7.一种MCU之间的通信装置,其特征在于,所述通信装置包括:
接收模块,用于接收第二MCU通信服务发送的请求数据包;
解析模块,用于依据自定义的通信协议对所述请求数据包进行解析得到解析结果;
操作模块,用于根据所述解析结果收集信息或执行相关操作;
打包模块,用于依据自定义的通信协议对所收集到的信息或所进行操作得到的操作结果打包生成响应数据包;
发送模块,用于将所述响应数据包发送给所述第二MCU通信服务。
8.根据权利要求7所述的通信装置,其特征在于,所述解析模块包括:
解包单元,用于对所述请求数据包进行解包得到包头和包体;
分析单元,用于依据自定义的通信协议对所述包头和包体进行进一步分析得到包类型和所请求的具体信息或具体操作。
9.一种MCU之间的通信系统,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行如权利要求1至6任一项所述的MCU之间的通信方法。
10.一种存储介质,在所述存储介质上存储了程序指令,其中,所述程序指令在运行时用于执行如权利要求1至6任一项所述的MCU之间的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911225836.0A CN111045976A (zh) | 2019-12-04 | 2019-12-04 | 一种mcu之间的通信方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911225836.0A CN111045976A (zh) | 2019-12-04 | 2019-12-04 | 一种mcu之间的通信方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111045976A true CN111045976A (zh) | 2020-04-21 |
Family
ID=70233552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911225836.0A Pending CN111045976A (zh) | 2019-12-04 | 2019-12-04 | 一种mcu之间的通信方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045976A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780480A (zh) * | 2022-06-20 | 2022-07-22 | 龙旗电子(惠州)有限公司 | 数据传输方法、装置以及设备 |
CN117676264A (zh) * | 2024-01-24 | 2024-03-08 | 南京仁芯科技有限公司 | 数据发送装置、数据接收装置及电子设备 |
CN117914916A (zh) * | 2023-12-12 | 2024-04-19 | 浙江国利信安科技有限公司 | 用于网络数据通信方法、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716409A (zh) * | 2014-01-02 | 2014-04-09 | 福建龙净环保股份有限公司 | 控制系统间的通讯方法及系统 |
US9158546B1 (en) * | 2011-04-06 | 2015-10-13 | P4tents1, LLC | Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory |
CN108470013A (zh) * | 2018-01-24 | 2018-08-31 | 中国科学院宁波材料技术与工程研究所 | 一种实现双mcu数据传输的spi通信方法 |
-
2019
- 2019-12-04 CN CN201911225836.0A patent/CN111045976A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158546B1 (en) * | 2011-04-06 | 2015-10-13 | P4tents1, LLC | Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory |
CN103716409A (zh) * | 2014-01-02 | 2014-04-09 | 福建龙净环保股份有限公司 | 控制系统间的通讯方法及系统 |
CN108470013A (zh) * | 2018-01-24 | 2018-08-31 | 中国科学院宁波材料技术与工程研究所 | 一种实现双mcu数据传输的spi通信方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780480A (zh) * | 2022-06-20 | 2022-07-22 | 龙旗电子(惠州)有限公司 | 数据传输方法、装置以及设备 |
CN117914916A (zh) * | 2023-12-12 | 2024-04-19 | 浙江国利信安科技有限公司 | 用于网络数据通信方法、设备和介质 |
CN117676264A (zh) * | 2024-01-24 | 2024-03-08 | 南京仁芯科技有限公司 | 数据发送装置、数据接收装置及电子设备 |
CN117676264B (zh) * | 2024-01-24 | 2024-04-30 | 南京仁芯科技有限公司 | 数据发送装置、数据接收装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045976A (zh) | 一种mcu之间的通信方法、装置、系统及存储介质 | |
EP3223467B1 (en) | Data transmission method and device | |
US9286249B2 (en) | USB device communication method, device and system wherein a human interface device (HID) descriptor and report are added to a driver of USB device | |
KR20070116893A (ko) | 복수의 네트워크 엘리먼트 사이의 정보 통신 | |
CN105704252B (zh) | 低功耗蓝牙设备数据传输方法及装置 | |
CN110837488B (zh) | 报文传输方法和装置 | |
US8584146B1 (en) | Communications driver management | |
CN110034874A (zh) | 一种资源监听方法、终端及基站 | |
CN114826819B (zh) | 信息传输方法、装置、设备和存储介质 | |
Fortino et al. | Wearable computing: From modeling to implementation of wearable systems based on body sensor networks | |
CN116028095B (zh) | 差分文件的生成方法、还原方法及电子设备 | |
CN118227343B (zh) | 一种数据处理方法、系统、装置、设备、介质及产品 | |
CN108462894A (zh) | 直播间广播处理方法、装置及可读存储介质 | |
KR101945941B1 (ko) | 라디오 어플리케이션을 실행하는 방법 및 단말 장치 | |
CN108847997A (zh) | 一种通过api接口进行通信的方法及其装置 | |
GB2363551A (en) | Sending fibre channel response frames from an interface controller to a host only when an I/O operation is unsuccessful | |
McGrath et al. | Key sensor technology components: hardware and software overview | |
CN110532494A (zh) | B/s应用的用户个性化配置方法、系统、及计算机设备 | |
CN112187669B (zh) | 一种数据交互方法、装置、设备及可读存储介质 | |
KR101232211B1 (ko) | 네트워크 가상화 시스템 및 방법 | |
WO2024179243A1 (zh) | 一种无线通信方法、装置、设备及存储介质 | |
CN101876937B (zh) | 一种模拟智能卡信息交互的方法 | |
AU2006230217A1 (en) | Communication of information between a plurality of network elements | |
CN118819883A (zh) | 调用远程函数的方法、装置、电子设备及存储介质 | |
CN115437615A (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: 20200421 |
|
RJ01 | Rejection of invention patent application after publication |