嵌入式硬件通信协议及通信系统的制作方法

文档序号:17481391发布日期:2019-04-20 06:28阅读:485来源:国知局
嵌入式硬件通信协议及通信系统的制作方法

本发明涉及通信系统技术领域,具体涉及一种嵌入式硬件通信协议及通信系统。



背景技术:

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定,嵌入式硬件通信协议时嵌入式硬件中常用的一种数据交换方式,涉及信息的格式、顺序控制、流量控制、差错控制等多个方面。但目前各种通信接口的通信协议都只对通信线路的电器特性、传输方式、逻辑特性、物理特性等进行了规定,而未考虑数据传输的安全性、稳定性、规范性、扩展性、实用性。

因此,需要一种新的通信协议及通信系统,通过制定规范的数据包格式及基本框架,保证对嵌入式硬件数据传输的完整性和准确性。



技术实现要素:

本发明的目的在于提供一种嵌入式硬件通信协议及通信系统,解决现有通信系统数据传输完整性差的问题。

本发明的一个目的在于提供一种嵌入式硬件通信协议,所述通信协议以数据包的形式传输数据;所述数据包包括:帧头、版本号、校验码、帧序号、命令码、数据长度、数据内容和校验码;所述帧头为1至3个固定字节;所述版本号为1至2个固定字节;所述帧序号为1至2个固定字节;所述命令码为3个固定字节,分别为产品型号、命令类型和命令内容;所述数据长度为1至2个固定字节;所述数据内容为0至255个可变字节;所述校验码为2个固定字节,为帧序号、命令码、数据长度和数据内容的数据和。

进一步地,所述命令类型包括读取命令、设置命令和回复命令。

本发明的第二个目的在于提供一种嵌入式硬件通信系统,包括上述任一种通信协议,还包括嵌入式处理器和外部设备,所述通信协议以数据包的形式在所述嵌入式处理器和外部设备之间传输数据;所述外部设备为存储器、通用设备接口或i/o接口。

进一步地,所述通信系统还包括用于确定所述通信协议在所述嵌入式处理器和和外部设备之间传输数据完整性的校正机制,所述校正机制包括以下步骤:将在所述嵌入式处理器和外部设备之间传输的帧序号、命令码、数据长度和数据内容的数据累加,获得传输数据总量,根据所述传输数据总量和校验码确定传输数据的完整性。

进一步地,当所述传输数据总量与校验码相同时,确定所述通信协议传输数据完整;当所述传输数据总量与校验码不同时,确定所述通信协议传输数据不完整。

进一步地,当所述嵌入式处理器和外部设备通信时,还包括定义数据解析接口函数的步骤,所述数据解析包括以下步骤:

s11、确定帧头是否正确,当所述帧头正确时,进入步骤s12;当所述帧头错误时,结束数据解析;

s12、根据所述数据包的版本号,选择相应的协议版本执行函数;

s13、将所述通信协议的传输数据累加获得传输数据总量,根据所述传输数据总量和校验码确定传输数据的完整性,当传输数据完整时,进入步骤s14;当传输数据不完整时,结束数据解析;

s14、选择命令码对应的命令执行函数;

s15、向所述处理器发出执行信号并执行所述命令执行函数后,结束数据解析。

进一步地,当所述嵌入式处理器和外部设备通信时,还包括定义数据打包接口函数的步骤,所述数据打包包括以下步骤:

s21、定义数组;

s22、将所述帧头、版本号、帧序号、命令码、数据长度、数据内容存储至数组;

s23、计算数组的校验码;

s24、将所述校验码存储至数组后获得数据包;

s25、输出所述数据包。

本发明的通信协议包括校验码,通过将校验码与传输数据总量对比,从而可以准确判断通信协议传输数据的完整性,使得通信系统在嵌入式硬件之间的数据传输准确性高。

附图说明

图1是本发明第一实施例中数据解析过程的流程框图。

图2是本发明第一实施例中数据打包过程的流程框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进行进一步详细说明。

本发明第一实施例提供了一种嵌入式硬件通信系统,包括嵌入式处理器、外部设备以及通信协议,所述通信协议通过数据包的形式在嵌入式处理器和外部设备之间传输数据,所述数据包包括:帧头、版本号、帧序号、数据长度、数据内容和校验码;所述帧头为1至3个固定字节;所述版本号为1至2个固定字节;所述帧序号为1至2个固定字节;所述命令码为3个固定字节,分别为产品型号、命令类型和命令内容;所述数据长度为1至2个固定字节;所述数据内容为0至255个可变字节;所述校验码为2个固定字节,为帧序号、命令码、数据长度和数据内容的数据和。

所述外部设备可以是存储器、通用设备接口或i/o接口。

具体的,本实施例中,所述嵌入式处理器为stm32嵌入式处理器;所述外部设备为存储器。

需要说明的是,所述帧头用于识别一个数据包的开始,本实施例中的帧头为两个字节:0x55、0xaa。

所述版本号表示当前数据包适用的通信协议版本,根据版本号可以正确调用协议版本执行函数,本实施例中,每增加一个版本,版本号的编码加1。

所述帧序号从0x00~0xff循环累加,可以使存储器易于被识别。

所述产品型号用于区分产品,可以从0x01开始,每增加一个新产品编码,产品型号的编码加1;所述命令类型包括读取命令、设置命令和回复命令。本实施例中,所述读取命令为0x01;所述设置命令为0x02;所述回复命令包括回复读取和回复设置,所述回复读取为0x81,所述回复设置为0x82。

进一步地,所述通信系统还包括用于确定所述通信协议在所述嵌入式处理器和和外部设备之间传输数据完整性的校正机制,所述校正机制包括以下步骤:将在所述stm32嵌入式处理器和存储器之间传输的帧序号、命令码、数据长度和数据内容累加,获得传输数据总量,根据所述传输数据总量和校验码确定传输数据的完整性。

进一步地,当所述传输数据总量与校验码相同时,确定所述通信协议传输数据完整;当所述传输数据总量与校验码不同时,确定所述通信协议传输数据不完整。本方案增加了通信协议传输数据的准确性。

进一步地,当所述stm32嵌入式处理器和存储器通信时,还包括定义通信协议接口函数的步骤,所述通信协议接口函数包括数据解析接口函数和数据打包接口函数。

进一步地,如图1所示,所述数据解析包括以下步骤:

s11、确定帧头是否正确,当所述帧头正确时,进入步骤s12;当所述帧头错误时,结束数据解析;

s12、根据所述数据包的版本号,选择相应的协议版本执行函数;

s13、获取所述为stm32嵌入式处理器和存储器之间传输的传输数据总量,根据所述传输数据总量和校验码确定传输数据的完整性,当传输数据完整时,进入步骤s14;当传输数据不完整时,结束数据解析;

s14、选择命令码对应的命令执行函数;

s15、向stm32嵌入式处理器发出执行信号执行所述命令执行函数信号后,结束数据解析。

进一步地,如图2所示,所述数据打包包括以下步骤:

s21、定义数组;

s22、将所述帧头、版本号、帧序号、命令码、数据长度、数据内容存储至数组;

s23、计算数组的校验码;

s24、将所述校验码存储至数组后获得数据包;

s25、输出数据包。

以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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