一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

嵌入式系统双缓冲数据串行发送方法与流程

2022-08-26 22:46:30 来源:中国专利 TAG:


1.本发明涉及一种缓冲区的数据串行发送方法,特别涉及一种嵌入式系统双缓冲数据串行发送方法。


背景技术:

2.嵌入式系统是能够独立进行运作的器件,由硬件和软件组成,其中,软件包括:软件运行环境及其操作系统;硬件包括:信号处理器、存储器、通信模块等。相比于一般的计算机处理系统而言,嵌入式系统差异性在于:硬件上,大部分采用的存储介质是e-prom、eeprom deng等,因而,无大容量存储功能,软件上,以api编程接口作为开发平台的核心;为简化硬件结构,嵌入式系统通常采用串行通信方式。
3.串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式,如图1所示,串行通信中,使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
4.串行总线通信过程的显著特点是:通信线路少,布线简便易行,施工方便,结构灵活,系统间协商协议,自由度及灵活度较高,因此在电子电路设计、信息传递等诸多方面的应用越来越多。
5.由于串行通信每次发送一个比特值,数据位的传输时间相对较短,所以在有一定干扰的情况下每次发送过程很容易会发生异常情况。异常发生后,会很容易导致数据丢失,从而导致发送端重发数据包,而这会浪费大量时间,降低了发送效率。


技术实现要素:

6.本发明的嵌入式系统双缓冲数据串行发送方法,通过拆分待发送数据包减小了数据包的长度,缩短了重发数据包的时间;通过设置双缓冲区,减少了数据读入缓冲区的等待时间,提升了cpu的利用率。
7.本发明的嵌入式系统双缓冲数据串行发送方法,嵌入式系统包括软件、硬件,硬件的通信模块设有发送缓冲区、接收缓冲区,所述发送缓冲区数量为多个;
8.软件将第一个待发送数据包存入第一个发送缓冲区,再将下一个待发送数据包存入下一个发送缓冲区,直至多个缓冲区均已存入数据包,再将下一个待发送数据包循环存入第一个发送缓冲区;
9.硬件感知到第一个发送缓冲区的第一数据包已准备好后,将第一数据包串行发出;
10.再读取发送状态,当第一数据包发送成功,则硬件感知下一个发送缓冲区的数据包准备好后,将下一个数据包串行发出,直至多个发送缓冲区的数据包均已被发出,硬件再循环感知第一个待发送数据包准备好后,将第一个发送缓冲区的数据包串行发出。
11.设置多个发送缓冲区,可以通过配置硬件来触发发送及切换条件,发送时不用软
件参与发送缓冲的切换。
12.于一实施例中,多个发送缓冲区具有相同大小,存储的数据包具有相同位数,便于计时。
13.于一实施例中,硬件串行发送一个数据包所需时间是t1,软件将一个待发送数据包存入一个发送缓冲区的时间是t2,多个发送缓冲区接收的数据包使t1等于t2时,发送缓冲区的拆分数量和大小是最优状态,可以减少因数据包存入发送缓冲区导致的cpu时间浪费,提升cpu效能。
14.于一实施例中,硬件串行发送一个数据包所需时间是t1,软件将一个待发送数据包存入一个发送缓冲区的时间是t2,多个发送缓冲区接收的数据包使t1大于t2时,发送缓冲区的拆分数量和大小也可以减少因数据包存入发送缓冲区导致的cpu时间浪费,提升cpu效能。
15.本发明创造首先保证了串行发送端的数据包的完整性,发送缓冲区拆分后,当串行发送数据因干扰需要重新发送时,减少了时间,提高了串行发送接口的通信效率及嵌入式系统cpu的利用率。
附图说明
16.图1为串行总线数据传输示意图
17.图2为现有嵌入式设备之间数据传输示意图
18.图3为本发明的嵌入式系统设备之间数据传输示意图
19.图4为本发明的嵌入式系统设备之间数据传输另一示例的示意图
20.图5为本发明的嵌入式系统设备之间数据传输流程图
具体实施方式
21.为清楚描述本发明的嵌入式系统双缓冲数据串行发送方法,现结合附图进一步清楚说明。
22.如图3、图5所示,为本发明的嵌入式系统设备之间数据传输示意图,嵌入式系统包括软件、硬件,硬件的设备1设有2个发送缓冲区、1个接收缓冲区,2个发送缓冲区具有相同大小,存储的数据包具有相同位数,便于计时。
23.软件将第一个待发送数据包存入发送缓冲区1,再将下一个待发送数据包存入发送缓冲区2;
24.硬件感知到发送缓冲区1的第一数据包已准备好后,将第一数据包串行发出,再读取发送状态,当第一数据包发送成功,则硬件感知发送缓冲区2的数据包状态,同时,软件将第三数据包存入发送缓冲区1;
25.硬件感知发送缓冲区2的数据包准备好后,将第二数据包串行发出,再读取发送状态,当第二数据包发送成功,则硬件返回重复感知发送缓冲区1的数据包状态
……

26.本示例中,发送缓冲区的数量是2个,软件存入数据包、硬件发送数据包的顺序均是:发送缓冲区1、发送缓冲区2、发送缓冲区1、发送缓冲区2
……
27.由于软件存入数据包始终是先于硬件发送数据包,保证了串行发送端的数据包的完整性;由于发送缓冲区拆分形成2个,每个缓冲区的数据包长度约是原来的一半,当串行
发送数据因干扰需要重新发送时,减少了约50%的重发时间,提高了串行发送接口的通信效率及嵌入式系统cpu的利用率。
28.如图4、图5所示,为本发明的嵌入式系统设备之间数据传输示意图,嵌入式系统包括软件、硬件,硬件的设备1设有n(n》2)个发送缓冲区、1个接收缓冲区。
29.软件将第一个待发送数据包存入发送缓冲区1,再将下一个待发送数据包存入发送缓冲区2;
30.硬件感知到发送缓冲区1的第一数据包已准备好后,将第一数据包串行发出,再读取发送状态,当第一数据包发送成功,则硬件感知发送缓冲区2的数据包状态,同时,软件将第三数据包存入发送缓冲区i;
31.硬件感知发送缓冲区2的数据包准备好后,将第二数据包串行发出,再读取发送状态,当第二数据包发送成功,则硬件感知发送缓冲区i的数据包状态
……
32.本示例中,发送缓冲区的数量是n个,软件存入数据包、硬件发送数据包的顺序均是:发送缓冲区1、发送缓冲区2、发送缓冲区i、发送缓冲区i 1
……
发送缓冲区n。
33.由于软件存入数据包始终是先于硬件发送数据包,保证了串行发送端的数据包的完整性;由于发送缓冲区拆分形成n个,每个缓冲区的数据包长度约是原来的1/n,当串行发送数据因干扰需要重新发送时,减少了约(n-1)/n的重发时间,提高了串行发送接口的通信效率及嵌入式系统cpu的利用率。
34.发送缓冲区的大小并非越小越好,发送缓冲区的数量n与数据包的存入及发送时间有关联:发送缓冲区拆分后的大小,使硬件串行发送一个数据包所需时间是t1,使软件将一个待发送数据包存入一个发送缓冲区的时间是t2,传送环境差、因干扰需要重新发送概率大时,优选t1略大于t2;
35.传送环境好、因干扰需要重新发送概率小时,优选t1等于t2,可以减少因数据包存入发送缓冲区导致的cpu时间浪费,提升cpu效能。
36.本发明的嵌入式系统双缓冲数据串行发送方法,设置了多个发送缓冲区,通过配置硬件来触发发送及切换条件,发送时不用软件参与发送缓冲的切换。
37.本方法适用于对发送数据的完整性要求高的嵌入式系统;每次发送数据时,必须将数据一次性完整发出,接收方每次接收的数据必须是完整的数据包,数据内容不能有任何缺失。接收方成功接收到完整数据包后,回发一个接收成功的响应数据包。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献