CN114942900A - 嵌入式系统双缓冲数据串行发送方法 - Google Patents
嵌入式系统双缓冲数据串行发送方法 Download PDFInfo
- Publication number
- CN114942900A CN114942900A CN202111153425.2A CN202111153425A CN114942900A CN 114942900 A CN114942900 A CN 114942900A CN 202111153425 A CN202111153425 A CN 202111153425A CN 114942900 A CN114942900 A CN 114942900A
- Authority
- CN
- China
- Prior art keywords
- data packet
- buffer
- data
- sending
- hardware
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种嵌入式系统双缓冲数据串行发送方法,嵌入式系统包括软件、硬件,硬件的通信模块设有发送缓冲区、接收缓冲区,所述发送缓冲区数量为多个;软件依序将待发送数据包存入发送缓冲区,直至多个缓冲区均已存入数据包;硬件从第一个发送缓冲区开始依序感知数据包准备状态,并依序将数据包串行发出。本发明的嵌入式系统双缓冲数据串行发送方法,通过拆分待发送数据包减小了数据包的长度,缩短了重发数据包的时间;通过设置双缓冲区,减少了数据读入缓冲区的等待时间,提升了CPU的利用率。
Description
技术领域
本发明涉及一种缓冲区的数据串行发送方法,特别涉及一种嵌入式系统双缓冲数据串行发送方法。
背景技术
嵌入式系统是能够独立进行运作的器件,由硬件和软件组成,其中,软件包括:软件运行环境及其操作系统;硬件包括:信号处理器、存储器、通信模块等。相比于一般的计算机处理系统而言,嵌入式系统差异性在于:硬件上,大部分采用的存储介质是E-PROM、EEPROM DENG等,因而,无大容量存储功能,软件上,以API编程接口作为开发平台的核心;为简化硬件结构,嵌入式系统通常采用串行通信方式。
串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式,如图1所示,串行通信中,使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
串行总线通信过程的显著特点是:通信线路少,布线简便易行,施工方便,结构灵活,系统间协商协议,自由度及灵活度较高,因此在电子电路设计、信息传递等诸多方面的应用越来越多。
由于串行通信每次发送一个比特值,数据位的传输时间相对较短,所以在有一定干扰的情况下每次发送过程很容易会发生异常情况。异常发生后,会很容易导致数据丢失,从而导致发送端重发数据包,而这会浪费大量时间,降低了发送效率。
发明内容
本发明的嵌入式系统双缓冲数据串行发送方法,通过拆分待发送数据包减小了数据包的长度,缩短了重发数据包的时间;通过设置双缓冲区,减少了数据读入缓冲区的等待时间,提升了CPU的利用率。
本发明的嵌入式系统双缓冲数据串行发送方法,嵌入式系统包括软件、硬件,硬件的通信模块设有发送缓冲区、接收缓冲区,所述发送缓冲区数量为多个;
软件将第一个待发送数据包存入第一个发送缓冲区,再将下一个待发送数据包存入下一个发送缓冲区,直至多个缓冲区均已存入数据包,再将下一个待发送数据包循环存入第一个发送缓冲区;
硬件感知到第一个发送缓冲区的第一数据包已准备好后,将第一数据包串行发出;
再读取发送状态,当第一数据包发送成功,则硬件感知下一个发送缓冲区的数据包准备好后,将下一个数据包串行发出,直至多个发送缓冲区的数据包均已被发出,硬件再循环感知第一个待发送数据包准备好后,将第一个发送缓冲区的数据包串行发出。
设置多个发送缓冲区,可以通过配置硬件来触发发送及切换条件,发送时不用软件参与发送缓冲的切换。
于一实施例中,多个发送缓冲区具有相同大小,存储的数据包具有相同位数,便于计时。
于一实施例中,硬件串行发送一个数据包所需时间是t1,软件将一个待发送数据包存入一个发送缓冲区的时间是t2,多个发送缓冲区接收的数据包使t1等于t2时,发送缓冲区的拆分数量和大小是最优状态,可以减少因数据包存入发送缓冲区导致的CPU时间浪费,提升CPU效能。
于一实施例中,硬件串行发送一个数据包所需时间是t1,软件将一个待发送数据包存入一个发送缓冲区的时间是t2,多个发送缓冲区接收的数据包使t1大于t2时,发送缓冲区的拆分数量和大小也可以减少因数据包存入发送缓冲区导致的CPU时间浪费,提升CPU效能。
本发明创造首先保证了串行发送端的数据包的完整性,发送缓冲区拆分后,当串行发送数据因干扰需要重新发送时,减少了时间,提高了串行发送接口的通信效率及嵌入式系统CPU的利用率。
附图说明
图1为串行总线数据传输示意图
图2为现有嵌入式设备之间数据传输示意图
图3为本发明的嵌入式系统设备之间数据传输示意图
图4为本发明的嵌入式系统设备之间数据传输另一示例的示意图
图5为本发明的嵌入式系统设备之间数据传输流程图
具体实施方式
为清楚描述本发明的嵌入式系统双缓冲数据串行发送方法,现结合附图进一步清楚说明。
如图3、图5所示,为本发明的嵌入式系统设备之间数据传输示意图,嵌入式系统包括软件、硬件,硬件的设备1设有2个发送缓冲区、1个接收缓冲区,2个发送缓冲区具有相同大小,存储的数据包具有相同位数,便于计时。
软件将第一个待发送数据包存入发送缓冲区1,再将下一个待发送数据包存入发送缓冲区2;
硬件感知到发送缓冲区1的第一数据包已准备好后,将第一数据包串行发出,再读取发送状态,当第一数据包发送成功,则硬件感知发送缓冲区2的数据包状态,同时,软件将第三数据包存入发送缓冲区1;
硬件感知发送缓冲区2的数据包准备好后,将第二数据包串行发出,再读取发送状态,当第二数据包发送成功,则硬件返回重复感知发送缓冲区1的数据包状态……。
本示例中,发送缓冲区的数量是2个,软件存入数据包、硬件发送数据包的顺序均是:发送缓冲区1、发送缓冲区2、发送缓冲区1、发送缓冲区2……
由于软件存入数据包始终是先于硬件发送数据包,保证了串行发送端的数据包的完整性;由于发送缓冲区拆分形成2个,每个缓冲区的数据包长度约是原来的一半,当串行发送数据因干扰需要重新发送时,减少了约50%的重发时间,提高了串行发送接口的通信效率及嵌入式系统CPU的利用率。
如图4、图5所示,为本发明的嵌入式系统设备之间数据传输示意图,嵌入式系统包括软件、硬件,硬件的设备1设有n(n>2)个发送缓冲区、1个接收缓冲区。
软件将第一个待发送数据包存入发送缓冲区1,再将下一个待发送数据包存入发送缓冲区2;
硬件感知到发送缓冲区1的第一数据包已准备好后,将第一数据包串行发出,再读取发送状态,当第一数据包发送成功,则硬件感知发送缓冲区2的数据包状态,同时,软件将第三数据包存入发送缓冲区i;
硬件感知发送缓冲区2的数据包准备好后,将第二数据包串行发出,再读取发送状态,当第二数据包发送成功,则硬件感知发送缓冲区i的数据包状态……
本示例中,发送缓冲区的数量是n个,软件存入数据包、硬件发送数据包的顺序均是:发送缓冲区1、发送缓冲区2、发送缓冲区i、发送缓冲区i+1……发送缓冲区n。
由于软件存入数据包始终是先于硬件发送数据包,保证了串行发送端的数据包的完整性;由于发送缓冲区拆分形成n个,每个缓冲区的数据包长度约是原来的1/n,当串行发送数据因干扰需要重新发送时,减少了约(n-1)/n的重发时间,提高了串行发送接口的通信效率及嵌入式系统CPU的利用率。
发送缓冲区的大小并非越小越好,发送缓冲区的数量n与数据包的存入及发送时间有关联:发送缓冲区拆分后的大小,使硬件串行发送一个数据包所需时间是t1,使软件将一个待发送数据包存入一个发送缓冲区的时间是t2,传送环境差、因干扰需要重新发送概率大时,优选t1略大于t2;
传送环境好、因干扰需要重新发送概率小时,优选t1等于t2,可以减少因数据包存入发送缓冲区导致的CPU时间浪费,提升CPU效能。
本发明的嵌入式系统双缓冲数据串行发送方法,设置了多个发送缓冲区,通过配置硬件来触发发送及切换条件,发送时不用软件参与发送缓冲的切换。
本方法适用于对发送数据的完整性要求高的嵌入式系统;每次发送数据时,必须将数据一次性完整发出,接收方每次接收的数据必须是完整的数据包,数据内容不能有任何缺失。接收方成功接收到完整数据包后,回发一个接收成功的响应数据包。
Claims (4)
1.一种嵌入式系统双缓冲数据串行发送方法,嵌入式系统包括软件、硬件,硬件的通信模块设有发送缓冲区、接收缓冲区,其特征在于,所述发送缓冲区数量为多个;
软件将第一个待发送数据包存入第一个发送缓冲区,再将下一个待发送数据包存入下一个发送缓冲区,直至多个缓冲区均已存入数据包,再将下一个待发送数据包循环存入第一个发送缓冲区;
硬件感知到第一个发送缓冲区的第一数据包已准备好后,将第一数据包串行发出;
再读取发送状态,当第一数据包发送成功,则硬件感知下一个发送缓冲区的数据包准备好后,将下一个数据包串行发出,直至多个发送缓冲区的数据包均已被发出,硬件再循环感知第一个待发送数据包准备好后,将第一个发送缓冲区的数据包串行发出。
2.如权利要求1所述的嵌入式系统双缓冲数据串行发送方法,其特征在于,所述多个发送缓冲区具有相同大小,存储的数据包具有相同位数。
3.如权利要求1所述的嵌入式系统双缓冲数据串行发送方法,其特征在于,发送缓冲区的数量与数据包的存入及发送时间有如下关联:发送缓冲区拆分后的大小,使所述硬件串行发送一个数据包所需时间是t1,使软件将一个待发送数据包存入一个发送缓冲区的时间是t2,t1等于t2。
4.如权利要求1所述的嵌入式系统双缓冲数据串行发送方法,其特征在于,发送缓冲区的数量与数据包的存入及发送时间有如下关联:发送缓冲区拆分后的大小,使所述硬件串行发送一个数据包所需时间是t1,使软件将一个待发送数据包存入一个发送缓冲区的时间是t2,t1大于t2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153425.2A CN114942900A (zh) | 2021-09-29 | 2021-09-29 | 嵌入式系统双缓冲数据串行发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153425.2A CN114942900A (zh) | 2021-09-29 | 2021-09-29 | 嵌入式系统双缓冲数据串行发送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114942900A true CN114942900A (zh) | 2022-08-26 |
Family
ID=82906101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153425.2A Pending CN114942900A (zh) | 2021-09-29 | 2021-09-29 | 嵌入式系统双缓冲数据串行发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114942900A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244901A (zh) * | 2011-07-15 | 2011-11-16 | 长沙理工大学 | 传感器网络中链式多跳的双缓冲并行快速传输方法 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN110647489A (zh) * | 2019-09-12 | 2020-01-03 | 上海鲍麦克斯电子科技有限公司 | 一种监测串口的高速通信方法及通信系统 |
-
2021
- 2021-09-29 CN CN202111153425.2A patent/CN114942900A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244901A (zh) * | 2011-07-15 | 2011-11-16 | 长沙理工大学 | 传感器网络中链式多跳的双缓冲并行快速传输方法 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN110647489A (zh) * | 2019-09-12 | 2020-01-03 | 上海鲍麦克斯电子科技有限公司 | 一种监测串口的高速通信方法及通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0074864B1 (en) | System and method for name-lookup in a local area network data communication system | |
US5664091A (en) | Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol | |
US4430651A (en) | Expandable and contractible local area network system | |
US4410889A (en) | System and method for synchronizing variable-length messages in a local area network data communication system | |
CN100437456C (zh) | 电子装置及其控制方法、主机装置及其控制方法 | |
CN103141050A (zh) | 快速通道互联系统中数据包重传方法、节点 | |
US7035956B2 (en) | Transmission control circuit, reception control circuit, communications control circuit, and communications control unit | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
JP3439320B2 (ja) | データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体 | |
JP4827933B2 (ja) | データパケットを送信する方法およびデバイス | |
JP2778373B2 (ja) | 再送機能付きバッファ装置 | |
CN115913473B (zh) | 一种数据选择性重传方法及其系统、存储介质、电子设备 | |
CN111045817B (zh) | 一种PCIe传输管理方法、系统和装置 | |
CN115150383A (zh) | 文件发送方法、设备及计算机可读存储介质 | |
CN114942900A (zh) | 嵌入式系统双缓冲数据串行发送方法 | |
CN111400213B (zh) | 传输数据的方法、装置及系统 | |
CN114337938A (zh) | 一种数据传输方法、数据重传方法、装置和相关设备 | |
CN103117955A (zh) | 消息传输方法及装置、系统 | |
US7451240B2 (en) | Method and related circuit for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN107241404B (zh) | 一种消息收发的方法、装置及系统 | |
US6711179B1 (en) | Signal processing apparatus with three layer processing sections, and signal processing system with said two signal processing apparatuses | |
US10986040B2 (en) | Network communication apparatus and method of the same | |
CN117827733A (zh) | 双核处理器的通讯方法、装置、设备及存储介质 | |
JP2000244530A (ja) | データ通信装置 | |
JP4624252B2 (ja) | データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 214000 Floor 19 and Floor 20, No. 581 Jianzhu West Road, Wuxi City, Jiangsu Province Applicant after: Taichu (Wuxi) Electronic Technology Co.,Ltd. Address before: 214000, floor 7, yanchuang building, No. 1, YinBai Road, Binhu District, Wuxi City, Jiangsu Province Applicant before: Taichu (Wuxi) Electronic Technology Co.,Ltd. |