基于USBHID通信的eRPC数据发送方法、接收方法及存储介质技术

技术编号:39300381 阅读:9 留言:0更新日期:2023-11-12 15:51
本发明专利技术公开了一种基于USB HID通信的eRPC数据发送方法、接收方法及存储介质,所述基于USB HID通信的eRPC数据发送方法,包括以下步骤:S1,eRPC传输层发送消息时,第一次调用底层发送函数缓冲第一部分消息数据;S2,第二次调用底层发送函数时,将第二部分消息数据连同第一部分消息数据以HID报告的方式发送出;其中,第一部分消息数据和第二部分消息数据组成完整的eRPC消息数据。发明专利技术通过缓存重组的方式将USB HID报告的收发过程也拆分成两次来完成,进而实现基于USB HID通信的eRPC数据传输,扩展了USB HID报告的应用传输媒介,提高了USB HID报告的适用性。HID报告的适用性。HID报告的适用性。

【技术实现步骤摘要】
基于USB HID通信的eRPC数据发送方法、接收方法及存储介质


[0001]本专利技术涉及通信领域,特别是涉及一种基于USB HID通信的eRPC数据传输方法。

技术介绍

[0002]Remote Procedure Call(RPC)为远程过程调用,函数调用不局限于本进程,甚至不限于本地计算机,它是一种通过本地函数调用来引用远程系统软件程序的机制。远程系统(服务端)可以是任意通信媒介连接的CPU,通过网络连接,或者多核系统中的某个核。对于客户端,就像调用了一个库中的函数。
[0003]eRPC是NXP制作的一种嵌入式版RPC框架,简洁易用,其核心部分使用C++语言实现,但是也提供了C语言接口,可以轻松移植到单片机上。
[0004]eRPC不局限于传输媒介,可以通过各种通信媒介(UART、SPI、I2C、USB、TCP/IP等)实现,本专利技术介绍了一种基于USB HID类通信实现eRPC通信传输的方法。
[0005]eRPC使用叫做消息(Message)的数据包来进行通信,通过eRPC的传输层架构我们得知,eRPC对通信消息的接收和发送都是拆分成两次来完成的,第一次为消息头(Header),第二次为消息其它数据(Rest),消息结构如下表1所示:
[0006][0007]表1
[0008]在FramedTransport::receive(MessageBuffer*message)函数中分两次调用了底层传输接收函数underlyingReceive,第一次先通过接收到的消息头获知消息其它数据的大小,第二次再根据该大小来接收该消息其它数据,函数流程图如图1所示。
[0009]在FramedTransport::send(MessageBuffer*message)函数中分两次调用了底层传输发送函数underlyingSend,第一次先将消息头发送出去,第二次再将该消息其它数据发送出去,函数流程图如图2所示。
[0010]在USB HID类通信过程中,采用HID报告来进行通信,这里用HID报告来对应eRPC传输层中的消息,HID输出报告对应eRPC服务端传输层中的接收消息,HID输入报告对应eRPC服务端传输层中的发送消息。
[0011]在USB HID类通信过程中,用作服务端的设备固件对报告的收发采用的均为一次性触发方式,即在接收报告时,只有在接收到一个完整的输出报告后才会通知固件,在发送
报告时,设备固件也只能一次性将一个完整的报告发送出去。由于eRPC的传输层对底层传输函数的调用是拆分成两次完成的,无法实现基于USB HID通信的eRPC数据传输,并且USB HID类通信的传输媒介具有局限性,适用性受限。

技术实现思路

[0012]在
技术实现思路
部分中引入了一系列简化形式的概念,该简化形式的概念均为本领域现有技术简化,这将在具体实施方式部分中进一步详细说明。本专利技术的
技术实现思路
部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
[0013]本专利技术要解决的技术问题是提供一种基于USB HID通信的eRPC数据发送方法、接收方法。
[0014]为解决上述技术问题,本专利技术提供的基于USB HID通信的eRPC数据发送方法,包括以下步骤:
[0015]S1,eRPC传输层发送消息时,第一次调用底层发送函数缓冲第一部分消息数据;
[0016]S2,第二次调用底层发送函数时,将第二部分消息数据连同第一部分消息数据以HID报告的方式发送出;
[0017]其中,第一部分消息数据和第二部分消息数据组成完整的eRPC消息数据。
[0018]可选择的,进一步改进所述基于USB HID通信的eRPC数据发送方法,所述底层发送函数是underlyingSend。
[0019]可选择的,进一步改进所述基于USB HID通信的eRPC数据发送方法,所述第一部分消息数据至少包括eRPC的消息头。
[0020]可选择的,进一步改进所述基于USB HID通信的eRPC数据发送方法,服务端固件和客户端软件按照共同定义的eRPC接口文件进行各自具体业务的开发。
[0021]本专利技术提供一种计算机可读存储介质,其内部存储有一计算机程序,所述计算机程序被执行时,用于实现上述述基于USB HID通信的eRPC数据发送方法中的步骤。
[0022]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD

ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0023]本专利技术提供一种基于USB HID通信的eRPC数据接收方法,其与基于USB HID通信的eRPC数据发送方法对应使用,包括以下步骤:
[0024]S3,读取用作eRPC服务端的USB HID设备;
[0025]S4,完成枚举,为运行eRPC客户端软件提供服务。
[0026]可选择的,进一步改进所述基于USB HID通信的eRPC数据接收方法,服务端固件和客户端软件按照共同定义的eRPC接口文件进行各自具体业务的开发,服务端固件关注于具
体服务过程的开发,客户端软件关注于具体应用软件的开发。
[0027]本专利技术提供一种计算机可读存储介质,其内部存储有一计算机程序,所述计算机程序被执行时,用于实现上述基于USB HID通信的eRPC数据接收方法中的步骤。
[0028]本专利技术的工作原理如下:
[0029]由于eRPC的传输层对底层传输函数的调用是拆分成两次完成的,所以需要在不影响或改变数据的前提下,将对USB HID报告的收发过程也拆分成两次来完成。
[0030]eRPC传输层发送消息时,第一次调用底层发送函数underlyingSend时先将eRPC的消息头缓冲起来,第二次调用底层发送函数时再将该消息其它数据连同第一次缓冲起来的消息头以HID报告的方式发送出去,underlyingSend函数流程图如图3所示。
[0031]eRPC传输层接收消息时,第一次调用底层接收函数underlyingReceive时先将HID报告中的消息头提取出来,第二次调用底层接收函数时再将HID报告中的该消息其它数据提取出来,underlyingReceive函数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于USB HID通信的eRPC数据发送方法,其特征在于,包括以下步骤:S1,eRPC传输层发送消息时,第一次调用底层发送函数缓冲第一部分消息数据;S2,第二次调用底层发送函数时,将第二部分消息数据连同第一部分消息数据以HID报告的方式发送出;其中,第一部分消息数据和第二部分消息数据组成完整的eRPC消息数据。2.如权利要求1所述基于USB HID通信的eRPC数据发送方法,其特征在于:所述底层发送函数是underlyingSend。3.如权利要求1所述基于USB HID通信的eRPC数据发送方法,其特征在于:所述第一部分消息数据至少包括eRPC的消息头。4.如权利要求1所述基于USB HID通信的eRPC数据发送方法,其特征在于:服务端固件和客户端软件按照共同定义的eRPC接口文件进行各自具体业务的开发。5....

【专利技术属性】
技术研发人员:周韬刘哲刘帅
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1