CN116846989A - 一种多协议-多端口的串口周期发送方法 - Google Patents
一种多协议-多端口的串口周期发送方法 Download PDFInfo
- Publication number
- CN116846989A CN116846989A CN202211256846.2A CN202211256846A CN116846989A CN 116846989 A CN116846989 A CN 116846989A CN 202211256846 A CN202211256846 A CN 202211256846A CN 116846989 A CN116846989 A CN 116846989A
- Authority
- CN
- China
- Prior art keywords
- protocol
- data
- transmission
- buffer
- information
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 81
- 230000000737 periodic effect Effects 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000000872 buffer Substances 0.000 claims abstract description 70
- 230000008569 process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种“多协议‑多端口”的串口周期发送方法,步骤一,用户根据需求编辑设定不同周期发送协议信息,将发送协议信息注册到发送链表中;步骤二,根据第一步的注册信息,进行缓冲区发送数据装载,而后进行缓冲区数据信息发送工作。该方法可应用在电源模块中,简化了发送流程,无需使用不同的方法适配不同厂家的各种不同需求,使各个厂家的通讯协议按照指定的流程有序进行;此外,所有周期发送协议使用统一缓冲区,避免n个周期发送协议使用n个缓冲区而导致的内存占用大的情况。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种周期发送多个协议的通信方法。
背景技术
无论是充电站的充电桩中使用的电源模块,还是车载电源模块抑或军品电源、电力电源模块,一款模块的开发使用通讯外设,对于定时发送而言,往往存在多个不同的循环发送周期、使用不同串口端口、不同协议内容以及不同校验方式的协议。现有技术的处理方式为:针对不同客户的不同通讯协议,编写不同的协议内容,使用不同的发送周期进行协议的定时发送。然而,这类适配模式存在如下几个问题:
问题1,不同厂家周期发送协议不同之处包括:协议周期发送时间、协议数据内容以及协议校验方式,如何在固定流程下,适配不同厂家的不同需求,从而实现即插即用,快速匹配。
问题2,不同发送协议可能使用不同的串口端口,例如:电源模块内部分为前级和后级,内部通信使用串口1,而对外通讯(与客户通讯)使用串口2,如何指定不同协议使用不同的串口端口号,从而快速匹配。
问题3,不同周期发送协议可能发送周期一致,如何实现相同发送周期的协议顺序执行,避免冗余的同时减少内存的消耗。
发明内容
针对现有技术的不足,本发明能够实现不同的定时发送协议发送时间准确,各个协议有序的发送;此外,通过使用注册方法统一使用发送流程,减少了代码修改,实现“即插即用”。
本发明具体技术方案为:一种“多协议-多端口”的串口周期发送方法,包括两个步骤:步骤一,用户根据需求编辑设定不同周期发送协议信息,并将发送协议信息注册到发送链表中。步骤二,根据第一步的注册信息,进行缓冲区发送数据装载,而后进行缓冲区数据信息发送工作。
其中,链表,别名链式存储结构或单链表,用于存储逻辑关系为“一对一”的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。链表实际存储的是一个一个的节点,真正的数据元素包含在这些节点中。链表中每个节点的存储都由以下两部分组成:(1)数据元素本身,其所在的区域称为数据域;(2)指向直接后继元素的指针,所在的区域称为指针域。
具体地,本发明将周期发送协议信息的不同点注册到链表的节点上,所述协议信息包括以下5种信息:信息一:本协议发送所需底层驱动设备名称。注册到发送链表节点的“协议n发送设备”中;信息二:本协议发送数据装载回调函数。注册到发送链表节点的“协议n发送数据装载回调函数”中;信息三:本协议周期发送时间。注册到发送链表节点的“协议n发送周期临时值”和“协议n发送周期值”中;信息四:本协议CRC(Cyclic RedundancyCheck,简称CRC)校验方式。注册到发送链表节点的“协议n的crc校验方式”中;信息五:本协议发送帧长度。注册到发送链表节点的“协议n发送长度”中。
进一步地,根据第一步的注册信息,进行数据处理。其中数据处理过程包括两个环节:(1)进行缓冲区发送数据装载;(2)进行缓冲区数据发送。
其中,缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合,后来这个意思被扩展了,成为“临时存贮区”的意思。只要存在衔接,在高低层次间有交互,中间地带必然存在,如同边界线上的军事缓冲区一样,缓冲区的存在,尤其实质意义。计算机上的缓冲,可以有效提高数据的吞吐效率。数据装载是指将转换好的数据保存到数据仓库中去。数据发送系统已广泛应用于工业控制等各个领域,如何提高采集软件的稳定性和数据发送效率成为一个技术难点。传输控制协议(TCP)是Internet中使用最广泛的传输层协议。常见应用如HTTP、FTP、BitTorrent等都使用它来传输数据。在传输过程中,数据发送受到不止一种因素的限制,比如发送方、接收方和网络。数据发送定时器对发送的数据进行定时计数,它是一种减法计数器,当计数值变为0时,数据仍没有收到相应的应答,表示发送的数据已经超过定时范围,需要重发或丢弃。
具体地,本发明数据处理过程涉及三个缓冲区,分别为:
数据内容缓冲区,用来存储协议的数据内容;
数据长度缓冲区,用来存储协议的数据长度;
协议驱动设备缓冲区,用来存储协议的驱动设备信息。
本发明具有下述功能:
功能1:使用注册机制将不同厂家周期发送协议信息注册在链表各个节点中,使用不同注册信息,运转整个链表,以实现不同周期协议发送信息的精准捕获;
功能2:将不同的周期发送协议携带协议数据内容、协议数据长度、所需的不同的串口端口设备驱动信息,装载到底层缓冲区模块,根据不同的串口端口设备信息使用不同的端口进行发送;
功能3:所有周期发送协议使用统一缓冲区,避免n个周期发送协议使用n个缓冲区而导致的内存占用大的情况。
附图说明
图1为本发明“多协议-多端口”串口周期发送架构图;
图2为本发明“多协议-多端口”串口周期发送缓冲区对应关系图;
图3为本发明“多协议-多端口”串口周期发送数据装载流程图;
图4为本发明“多协议-多端口”串口周期数据发送流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。其中,本文中“装载”和“加载”为同一意思。
如图1所示,本发明实施例提供一种技术方案:一种“多协议-多端口”的串口周期发送方法,首先,用户根据需求编辑设定不同周期发送协议信息,将发送协议信息注册到发送链表中;然后根据第一步的注册信息,进行缓冲区发送数据装载,而后进行缓冲区数据发送工作。
其中,链表,别名链式存储结构或单链表,用于存储逻辑关系为“一对一”的数据;链表的基本组成单位为节点。
协议注册:协议是一个用来通过衔接来发送、接收和处理信息的方法。为了能够发送一个指定的协议来查看信息,你必须注册它们。一旦注册,协议就可以用你指定的程序处理。
缓冲区:计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到缓冲区,以保证高速部件与低速部件相吻合。
数据装载(加载):指将转换好的数据保存到数据仓库中去。
数据发送:数据发送定时器对发送的数据进行定时计数,它是一种减法计数器,当计数值变为0时,数据仍没有收到相应的应答,表示发送的数据已经超过定时范围,需要重发或丢弃。
所有周期发送协议使用统一缓冲区,避免n个周期发送协议使用n个缓冲区而导致的内存占用大的情况。如串口0接收的周期发送协议全部使用底层缓冲区0,串口1接收的周期发送协议全部使用底层缓冲区1。
参阅图2,数据处理过程中缓冲区涉及三种类型,分别为:数据内容缓冲区、数据长度缓冲区以及协议驱动设备缓冲区。其中数据内容缓冲区、协议长度缓冲区、和协议设备缓冲区为“n->1->1”的关系;数据内容缓冲区中,协议1的数据内容占据的长度为Len1,而Len1的长度在协议长度缓冲区的第一个位置处有所记录,在对应的协议设备缓冲区内的第一个位置存放的是协议1的发送设备。值得注意的是:操作缓冲区的过程中涉及到两类索引值:装载索引值和发送索引值。
装载索引值:包含装载读索引和装载写索引,该索引值指的是协议长度缓冲区和协议设备缓冲区的每个位置。也可以认为是数据内容缓冲区的每一块区的位置。
发送索引值:包含发送读索引和发送写索引,该索引值指的是数据内容缓冲区的每一个位置。
参阅图3,缓冲区发送数据装载的过程为:
第一步:遍历全部节点,若节点遍历完,则结束当前流程,若没有遍历完全部节点,则进入第二步。
第二步:判断当前节点的数据是否全部有效,若不是全部有效,则将当前节点设置为下一个节点,若全部有效则进行第三步。
第三步:对当前节点的周期发送时间进行计时,若计时时间不到,则不进行装载,继续检测下一个节点,直到检测完成全部节点为止,若当前节点的计时时间到,则进行第四步。
第四步:执行数据内容、数据长度及协议所需驱动设备的装载过程。同时将当前节点的计时时间恢复到注册时间,以便下一次进行检测。并将缓冲区装载写索引值向下移动1。执行完成上述操作后,将当前节点设置为下一个节点,继续进行第一步到第四步的操作过程。
值得注意的是:第四步的数据内容装载,装载过程携带发送数据所用的crc校验信息,用以区分不同的周期发送校验方式。
图4为缓冲区数据信息发送的具体流程如下:
第一步:判断装载读索引值和写索引值是否相等,即检测是否存在没有发送的数据内容,若存在,则提取协议长度缓冲区内指定的读索引位置处的协议长度信息,然后判断该信息是否有效,若有效,则保存该数值而到协议长度临时值后,进行第二步操作,若无效,则将装载读索引值向下移动1,而后结束流程。
第二步:判断获得的协议长度信息是否为0,若为0,则认为已经提取完成该长度对应的数据内容,则执行第四步;若不为0,则认为数据内容没有提取完全,则将协议长度临时值减1,执行第三步。
第三步:针对数据内容缓冲区内数据进行操作,判断数据内容缓冲区内的发送读索引是否与发送写索引值相等,若相等,则认为数据内容缓冲区中,不存在没有发送的数据,则进行第四步;若不相等,则认为存在没有发送的数据,则将当前发送读索引处的数据装载到临时发送缓冲区内,并将临时发送缓冲区写索引向下加1,同时将发送读索引向下加1,而后继续第二步。
第四步:将当前节点对应的数据长度的数据内容提取完成后,则将提取的信息携带底层驱动设备信息一起发送出去,而后将发送读索引值向下移动1,结束当前流程。
该过程为定时运行,即一帧数据发送完成后,可延时固定的时间间隔,而后执行下一帧操作。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (7)
1.一种“多协议-多端口”的串口周期发送方法,其特征在于:步骤一,编辑不同周期发送协议信息,并将发送协议信息注册到发送链表中;步骤二,根据第一步的注册信息,进行缓冲区发送数据装载,而后进行缓冲区数据发送工作。
2.根据权利要求1所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述不同周期发送协议信息包括协议发送所需底层驱动设备名称、协议发送数据装载回调函数、协议周期发送时间、协议CRC校验方式以及协议发送帧长度。
3.根据权利要求1所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述缓冲区包括数据内容缓冲区、数据长度缓冲区以及协议驱动设备缓冲区。
4.根据权利要求3所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述数据内容缓冲区、数据长度缓冲区以及协议驱动设备缓冲区为n-1-1的对应关系。
5.根据权利要求3所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述缓冲区包括两类索引值:装载索引值和发送索引值。
6.根据权利要求5所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述缓冲区发送数据装载过程包括:
第一步,遍历全部节点,若节点遍历完,则结束当前流程,若没有遍历完全部节点,则进入第二步;
第二步,判断当前节点的数据是否全部有效,若不是全部有效,则将当前节点设置为下一个节点,若全部有效则进行第三步;
第三步,对当前节点的周期发送时间进行计时,若计时时间不到,则不进行装载,继续检测下一个节点,直到检测完成全部节点为止,若当前节点的计时时间到,则进行第四步;
第四步,执行数据内容、数据长度及协议所需驱动设备的装载过程;同时将当前节点的计时时间恢复到注册时间,以便下一次进行检测;并将缓冲区装载写索引值向下移动1;执行完成上述操作后,将当前节点设置为下一个节点,继续进行第一步到第四步的操作过程。
7.根据权利要求6所述的一种“多协议-多端口”的串口周期发送方法,其特征在于:所述缓冲区数据信息发送工作包括:
a,判断装载读索引值和写索引值是否相等,即检测是否存在没有发送的数据内容,若存在,则提取协议长度缓冲区内指定的读索引位置处的协议长度信息,然后判断该信息是否有效,若有效,则保存该数值而到协议长度临时值后,进行b操作,若无效,则将装载读索引值向下移动1,而后结束流程;
b,判断获得的协议长度信息是否为0,若为0,则认为已经提取完成该长度对应的数据内容,则执行d操作;若不为0,则认为数据内容没有提取完全,则将协议长度临时值减1,执行c操作;
c,针对数据内容缓冲区内数据进行操作,判断数据内容缓冲区内的发送读索引是否与发送写索引值相等,若相等,则认为数据内容缓冲区中,不存在没有发送的数据,则进行d操作;若不相等,则认为存在没有发送的数据,则将当前发送读索引处的数据装载到临时发送缓冲区内,并将临时发送缓冲区写索引向下加1,同时将发送读索引向下加1,而后继续b操作;
d,将当前节点对应的数据长度的数据内容提取完成后,则将提取的信息携带底层驱动设备信息一起发送出去,而后将发送读索引值向下移动1,结束当前流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256846.2A CN116846989A (zh) | 2022-09-30 | 2022-09-30 | 一种多协议-多端口的串口周期发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256846.2A CN116846989A (zh) | 2022-09-30 | 2022-09-30 | 一种多协议-多端口的串口周期发送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116846989A true CN116846989A (zh) | 2023-10-03 |
Family
ID=88165855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211256846.2A Pending CN116846989A (zh) | 2022-09-30 | 2022-09-30 | 一种多协议-多端口的串口周期发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116846989A (zh) |
-
2022
- 2022-09-30 CN CN202211256846.2A patent/CN116846989A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060179181A1 (en) | Apparatus and method for controlling direct memory access | |
US7760629B2 (en) | Aggregate data frame generation | |
US20050025152A1 (en) | Method and system of efficient packet reordering | |
US9565251B2 (en) | Method and apparatus to reduce FLASH memory device programming time over a C.A.N. bus | |
US20110126070A1 (en) | Resending Control Circuit, Sending Device, Resending Control Method and Resending Control Program | |
CN100351824C (zh) | 总线系统和用于连接到总线的总线接口 | |
WO2003102805A2 (en) | Inter-chip processor control plane | |
CN116846989A (zh) | 一种多协议-多端口的串口周期发送方法 | |
CN102238055A (zh) | 基于mdio接口的下载方法及系统 | |
KR101332279B1 (ko) | 데이터 패킷 전송 방법 및 디바이스 | |
CN109151245B (zh) | 基于fpga的图像数据传输方法、系统、存储介质及fpga | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN113704006B (zh) | 通信方法、装置、电子设备、存储介质及片上系统 | |
CN1339132A (zh) | 在电子设备和电池组之间实现通信的一种方法,包括一电子设备和一电池组的一种装置,以及实现通信的一种电池组 | |
JP2562703B2 (ja) | 直列制御装置のデータ入力制御装置 | |
CN102867060A (zh) | 一种数据快速搜索方法、装置及系统 | |
CN112559470A (zh) | 文件格式转换的方法、装置、存储介质及电子设备 | |
US20140089529A1 (en) | Management Data Input/Output Protocol With Page Write Extension | |
US20010018732A1 (en) | Parallel processor and parallel processing method | |
CN111090513B (zh) | 车联网平台终端链路健康状态的检测方法及存储介质 | |
EP2005665B1 (en) | Method and device for data packet assembly | |
CN117527937B (zh) | 基于排序窗口的数据报文的排序方法、装置及设备 | |
JPH04315246A (ja) | 半導体集積回路装置 | |
KR101803462B1 (ko) | 다중 경로 검색을 실현하는 임무 처리 방법 및 장치 | |
CN115243318B (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 |