CN115297001B - 多端口多协议的通信方法及板卡 - Google Patents

多端口多协议的通信方法及板卡 Download PDF

Info

Publication number
CN115297001B
CN115297001B CN202211219436.0A CN202211219436A CN115297001B CN 115297001 B CN115297001 B CN 115297001B CN 202211219436 A CN202211219436 A CN 202211219436A CN 115297001 B CN115297001 B CN 115297001B
Authority
CN
China
Prior art keywords
port
communication
message
sending
receiving
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.)
Active
Application number
CN202211219436.0A
Other languages
English (en)
Other versions
CN115297001A (zh
Inventor
吴宏
杨细芳
丁志龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Ngi Observation And Control Technology Co ltd
Original Assignee
Hunan Ngi Observation And Control Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Ngi Observation And Control Technology Co ltd filed Critical Hunan Ngi Observation And Control Technology Co ltd
Priority to CN202211219436.0A priority Critical patent/CN115297001B/zh
Publication of CN115297001A publication Critical patent/CN115297001A/zh
Application granted granted Critical
Publication of CN115297001B publication Critical patent/CN115297001B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0836Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/722Admission control; Resource allocation using reservation actions during connection setup at the destination endpoint, e.g. reservation of terminal resources or buffer space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种多端口多协议的通信方法及板卡,方法包括发送步骤和接收步骤,通过接收缓存和接收通信报文的设计使得仪器设备的外部通信端口同时可用,无需设置外接仪器的通信端口和通信协议类型,提升了仪器设备的智能化水平,有利于提高产品的市场竞争力。通信板卡的物理端口不仅可以同时可用,而且可以实现通信协议的自适应匹配,用户可任意选用一个或多个甚至全部端口,而且可往任何一个端口发送仪器所支持的任何一种协议类型的报文,仪器均能解析响应。又因为采用接收链表和发送链表的设计,使得外部发来的每一帧报文都能得到处理,响应率可达到100%,杜绝因软件方法不当的原因造成丢帧误码。

Description

多端口多协议的通信方法及板卡
技术领域
本发明涉及通信设备领域,特别涉及一种多端口多协议的通信方法及板卡。
背景技术
电源、电子负载、电池模拟器等智能化仪器设备通常配备多个形式不一的对外物理通信端口,这些端口为本设备与外部设备的通信连接提供了物理通道,智能化仪器设备通过物理通信端口与外部设备进行报文交互,这为远程控制仪器、集成测量、固件升级等提供了可能。每次使用前,必须在仪器设备上设定连接的物理端口以及采用的通信协议,仪器设备只有从设定的物理端口收到报文后,才能按照设定协议且只能按照设定协议进行报文解析和处理,如需回应报文,则再按照设定协议的规则进行组帧打包并从同一端口发出。如若要使用另一个端口或另一种协议就必须暂停使用仪器进行重新设定。
也有更进一步的做法,就是只需要设定协议而不需要设定端口,即全部端口都默认可用,任一端口收到报文都按照设定协议尝试解析,而当仪器设备正在处理某帧报文时,将不予接收其他端口的报文内容,或收到了也做丢弃处理。如果所处理的帧报文符合设定协议的规则,就进行处理和结果返回,否则丢弃。
事先设定端口和协议的做法可靠易实现,但灵活性不足,端口不能任意使用,用户的使用自由度受到限定,不能体现智能化仪器设备的便捷性和易用性。只需指定协议不需指定端口的做法使得端口都有效,相比较事先设定端口的做法有所进步,但通信协议仍然需要事先设定,而且端口不能同时使用,否则就会造成丢包丢帧,这是因为仪器设备不仅仅要处理通信问题,还要实现其本身应有的功能,如控制和保护,而且控制保护任务的优先级通常高于通信,这就埋下了通信问题处理不及时的可能性。
此外,智能化仪器设备内部通常不止一张板卡,或者不止一块CPU,当外部设备向仪器发起通信索要数据或者发出命令时,可能需要仪器设备内部的多个板卡或者多个CPU参与,正因为内部通信链路延长,单次通信的总体延时必然增大,如果多个外部端口在同一时刻或者极其相近的时刻发来通信请求,就可能出现阻塞,造成不能全部响应的问题。还应考虑到,仪器设备的内部板间或多或少存在背景通信,如心跳、数据交互、命令交互等,这些内部的背景通信报文已经占据了一部分通信资源,这无疑使得外部通信问题更加复杂。
为减少这些缺点的影响,常规做法是在任一时刻只能允许一台外部设备与测试仪器连接,如果多台外部设备同时连接,也要保证这些外部设备不同时发起通信。以上限制使得仪器设备的交互功能和吞吐性能受到影响,无法实现多端口多协议的通信,通信板卡的优势未能真正发挥,不利于仪器智能化水平的提升。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种多端口多协议的通信方法及板卡,能够使得通信板卡的外部通信端口同时可用,并且协议可以自适应匹配,提升仪器设备的智能化水平。
根据本发明第一方面实施例的多端口多协议的通信方法,包括发送步骤和接收步骤:
接收步骤:
构建接收缓存,每个端口对应配置一个接收缓存;
定义接收通信报文,所述接收通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段;
定义接收链表,所述接收链表包括多个依次排列的节点数据字段;
构建接收通信报文:接收帧报文并写入帧报文字段,将帧报文的接收端口写入源端口字段;根据帧报文的内容判断协议类型并写入协议类型字段,根据帧报文的内容识别目的端口并写入目的端口字段;
将接收通信报文存入接收缓存中,然后将接收缓存中的接收通信报文输入接收链表最末端的节点数据字段;
处理器按照从前往后的顺序依次从接收链表的节点数据字段取出接收通信报文并发往目的端口;
发送步骤:
构建发送缓存,给处理器配置一个发送缓存;
定义发送通信报文,所述发送通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段;
按照接收通信报文中的协议类型对处理结果进行组帧生成回复报文,并将回复报文写入帧报文字段,将当前的发送端口写入源端口字段,将接收通信报文中的协议类型写入协议类型字段,将接收通信报文中的源端口写入目的端口字段;
定义发送链表,所述发送链表包括多个依次排列的节点数据字段;
将发送通信报文存入发送缓存中,然后将发送缓存中的发送通信报文输入发送链表最末端的节点数据字段,
处理器按照从前往后的顺序依次从发送链表的节点数据字段取出发送通信报文并发往目的端口。
根据本发明第一方面实施例的多端口多协议的通信方法,至少具有如下有益效果:
本发明实施方式通过接收缓存和接收通信报文的设计使得仪器设备的外部通信端口同时可用,无需设置外接仪器的通信端口和通信协议类型,提升了仪器设备的智能化水平,有利于提高产品的市场竞争力。通信板卡的物理端口不仅可以同时可用,而且可以实现通信协议的自适应匹配,用户可任意选用一个或多个甚至全部端口,而且可往任何一个端口发送仪器所支持的任何一种协议类型的报文,仪器均能解析响应。又因为采用接收链表和发送链表的设计,使得外部发来的每一帧报文都能得到处理,响应率可达到100%,杜绝因软件方法不当的原因造成丢帧误码。
根据本发明的一些实施例,所述根据帧报文的内容识别目的端口的具体步骤为:
解析帧报文,识别帧报文的功能类型和数据地址,根据功能类型和数据地址进行综合判断,确认目的端口。
根据本发明的一些实施例,所述处理器按照从前往后的顺序依次从接收链表的段取出接收通信报文并发往目的端口的具体步骤为:
处理器以周期轮巡的方式检查接收链表是否为空,若为空则不进行处理,若不为空则从接收链表的节点数据字段取出接收通信报文并发往目的端口,重复以上过程。
根据本发明的一些实施例,所述处理器按照从前往后的顺序依次从接收链表的段取出接收通信报文并发往目的端口步骤中,若目的端口为当前处理器所在的通信板卡,则处理器根据协议类型对帧报文进行解析和处理;若目的端口并非当前处理器所在的通信板卡,则将接收通信报文写入发送缓存。
根据本发明的一些实施例,所述处理器按照从前往后的顺序依次从发送链表的节点数据字段取出发送通信报文并发往目的端口的具体步骤为:
处理器以周期轮巡的方式检查发送链表是否为空,若为空则不进行处理,若不为空则从发送链表的节点数据字段取出发送通信报文并发往目的端口,重复以上过程。
根据本发明的一些实施例,所述协议类型包括modbus RTU、modbus ASCII、modbusTCP和SCPI。
根据本发明第二方面实施例的多端口多协议的通信板卡,包括:多个对外通信端口,所述对外通信端口用于连接外部设备;多个对内通信端口,所述对内通信端口用于连接内部板卡;处理器,所述处理器通过上述的方法实现外部设备和内部板卡的通信。
根据本发明第二方面实施例的多端口多协议的通信板卡,至少具有如下有益效果:
本发明实施方式通过接收缓存和接收通信报文的设计使得仪器设备的外部通信端口同时可用,无需设置外接仪器的通信端口和通信协议类型,提升了仪器设备的智能化水平,有利于提高产品的市场竞争力。通信板卡的物理端口不仅可以同时可用,而且可以实现通信协议的自适应匹配,用户可任意选用一个或多个甚至全部端口,而且可往任何一个端口发送仪器所支持的任何一种协议类型的报文,仪器均能解析响应。又因为采用接收链表和发送链表的设计,使得外部发来的每一帧报文都能得到处理,响应率可达到100%,杜绝因软件方法不当的原因造成丢帧误码。
根据本发明的一些实施例,所述对外通信端口包括RS232端口、RS485端口、USB端口、以太网端口和插接式端口中的一种或多种。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
下面结合附图和实施例对本发明做进一步的说明,其中:
图1为本发明实施例中通信板卡的连接示意图;
图2为本发明实施例中接收通信报文的组成示意图;
图3为本发明实施例中多端口多协议的通信方法的接收步骤的流程图;
图4为本发明实施例接收步骤中接收通信报文的变化过程示意图;
图5为本发明实施例中接收链表的结构示意图;
图6为本发明实施例接收步骤中处理器对接收链表的处理流程图;
图7为本发明实施例中多端口多协议的通信方法的发送步骤的流程图;
图8为本发明实施例发送步骤中处理器对发送链表的处理流程图;
图9为本发明实施例中多端口多协议的通信板卡的原理框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,多个指的是两个以上。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
参照图1所示,以直流电源为例描述一个仪器设备内部的通信板卡的连接示意图,由通信板卡和3个从板卡组成,通信板卡和从板卡都安装在设备机箱内。通信板卡有3个内部通信端口,分别用于与3块从板卡进行物理连接。通信板卡还有PORT1、PORT2、PORT3、PORT4和PORT5这五个对外通信端口,分别为RS232端口、RS485端口、USB端口、以太网端口和插接式端口,这些对外通信端口用于连接PC机、流水产线设备、集采仪器等外部设备。
通信板卡的功能一方面是提供物理端口为报文的收发提供硬件通道,另一方面对收到的报文进行解析、处理和回应。如果执行对象或者数据源就是通信板卡本身,则直接由通信板卡进行处理和回应,并将回应报文通过源端口发出。例如PC机通过PORT4以太网端口以Modbus TCP协议向仪器设备发来索要通信板卡温度的请求报文,因通信板卡温度这一数据源就位于通信板卡,通信板卡收到后便将自身温度以Modbus TCP协议方式进行组帧,再通过PORT4回发给PC机。
如果执行对象或数据源不在通信板卡,而是在从板卡,则通信板卡将收到的报文原样转发给从板卡,从板卡将进行解析处理,并将回应报文发给通信板卡,通信板卡收到从板卡的回应后再将回应报文发给外部设备。例如集采仪器通过PORT5插接式端子以CAN协议向仪器设备发来索要模组2电压数据的请求报文,通信板卡收到该报文后判别到数据源位于从板卡2,便将收到的报文通过内部端口2转发给从板卡2。从板卡2收到通信板卡转来的报文进行解析后,便将电压数据以CAN协议方式进行组帧发给通信板卡,通信板卡收到后再通过PORT5插接式端子回发给集采仪器。
下面以上述的通信板卡为例介绍本发明的一种多端口多协议的通信方法,包括发送步骤和接收步骤:
接收步骤:
构建接收缓存,每个端口对应配置一个接收缓存,接收缓存的作用是储存当前端口的接收通信报文;
定义接收通信报文,接收通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段,无论是对外通信端口PORT1-对外通信端口PORT5,还是对内通信端口1-对内通信端口3,收到的都是一帧一帧的报文,为便于后续的解析与处理,需要从帧报文当中预先提取出关键信息添加到帧报文的头部,一起形成接收通信报文并存储到接收缓存当中,通过接收通信报文指明了如何处理和回应该帧报文。
参考图2所示,设置源端口字段是为了指明帧报文的来源,设置目的端口字段是为了指明回应报文的去向,设置协议类型字段是为了指明帧报文的协议类型,源端口、协议类型和目的端口即为关键信息,用数值代表不同的含义。例如源端口字段用X表示,X=-1代表错误,X=0代表未用,X=1代表源端口为对外通信端口PORT1,X=2代表源端口为对外通信端口PORT2,以此类推,X=5代表源端口为对外通信端口PORT5,X=6代表源端口为通信板卡,X=7代表源端口为从板卡1,X=8代表源端口为从板卡2,X=9代表源端口为从板卡3,等等。目的端口字段用Z表示,数值代表的含义与源端口字段的数值含义相同,例如Z=-1代表错误,Z=0代表未用,Z=1代表目的端口为对外通信端口PORT1,Z=2代表目的端口为对外通信端口PORT2,以此类推,Z=5代表目的端口为对外通信端口PORT5,Z=6代表目的端口为通信板卡,Z=7代表目的端口为从板卡1,Z=8代表目的端口为从板卡2,Z=9代表目的端口为从板卡3,等等。协议类型字段用Y表示,Y=-1代表错误,Y=0代表未用,Y=1代表modbus RTU协议,Y=2代表modbusASCII协议,Y=3代表modbus TCP协议,Y=4代表SCPI协议,以此类推。以上只是本申请的一种源端口字段、协议类型字段和目的端口字段的设置方式,本领域技术人员也可以根据实际需要采用其他数字代表不同的含义。
需要说明的是,每个端口都有一个接收缓存。对外通信端口PORT1的接收缓存的源端口固定为1(PORT1),对外通信端口PORT2的固定为2,以此类推。
定义接收链表,接收链表包括多个依次排列的节点数据字段,参考图5所示,最前端的节点数据字段称为头结点,最末端的节点数据字段称为尾结点。每个节点数据字段由数据域Data和指针域Next组成,接收缓存的接收通信报文拷入数据域Data。拷入数据相当于生产行为,从接收链表取出数据相当于消费行为,本申请将头结点作为消费者结点,尾结点作为生产者结点,因此接收缓存内的接收通信报文拷入接收链表时,要拷入到尾结点的Data域,即接收链表最末端的节点数据字段,而从接收链表取出数据时,要从头结点的Data域取出,即接收链表最前端的节点数据字段。
当构建好接收缓存,定义好接收通信报文和接收链表后即可开始接收流程,任一对外通信端口收到一帧报文时,都可触发处理器的中断。当然,处理器也可采用轮巡的方式查询某个对外通信端口是否收到一帧报文。任一对外通信端口只要收到一帧报文,便进入接收流程,参考图3和图4所示,
首先清空接收缓存,构建新的接收通信报文:接收帧报文并写入帧报文字段,将帧报文的接收端口写入源端口字段;根据帧报文的内容判断协议类型并写入协议类型字段,根据帧报文的内容识别目的端口并写入目的端口字段;
将接收通信报文存入接收缓存中,然后将接收缓存中的接收通信报文输入接收链表最末端的节点数据字段。
下面以对外通信端口PORT1为例进行详细阐述。外通信端口PORT1的接收缓存的“源端口”固定为PORT1,协议类型则根据帧报文的结构、长度、首尾字节、CRC校验和其他关键信息进行判别,属于本领域的常规判别方法,本发明不作赘述。目的端口需要通信板卡在解析帧报文时,根据帧报文的功能类型和数据地址进行综合判别,通信板卡也可根据预设的功能表去查询目的端口,例如帧报文为命令仪器关闭输出的命令型报文,则目的端口就为内部端口1,“目的端口”字段设置为7,这是因为关闭仪器输出的执行对象为从板卡1。再例如帧报文为请求通信板卡温度的请求型报文,因通信板卡温度的数据源就位于通信板卡,因此目的端口为通信板卡,“目的端口”字段需设置为6。
如果外通信端口PORT1收到的帧报文为回应帧,因为回应帧往往不带数据地址,因此不能直接判别出目的端口。但因为报文交互用的是一来一回的机制,流经对外通信端口PORT1的上一条报文的源端口可作为本帧报文的目的端口。又因为回应报文的协议格式与命令/请求报文相同,因此还可借助协议类型、帧序号、报文当中的字段等其他信息进行辅助判断。
处理器按照从前往后的顺序依次从接收链表的节点数据字段取出接收通信报文并发往目的端口。参考图6所示,具体步骤为:
处理器以周期轮巡的方式检查接收链表是否为空,若为空则不进行处理,若不为空则从接收链表的节点数据字段取出接收通信报文并发往目的端口,重复以上过程。
具体步骤首先从接收链表前端的节点数据字段取出接收通信报文,判断其目的地址是否为通信板卡,如果不是通信板卡本身,就说明执行对象或数据源不在通信板卡,通信板卡此时需要将取出的内容转发给指定的目的地,因此将取出内容复制到发送缓存,然后将发送缓存拷入发送链表。
如果目的地址是通信板卡本身,就根据协议类型对帧报文进行解析和处理,如修改设定值、开启或关闭某项功能。然后判断是否需要回应,如果需要回应就填充发送缓存并将缓存内容拷入到发送链表。反之如果不需要回应。
发送步骤:
构建发送缓存,给处理器配置一个发送缓存;
定义发送通信报文,发送通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段;
需要说明的是,通信板卡不仅接收报文,还发送报文。因为通信板卡一般不主动发起通信,所以它所发送的报文一般都是回应报文。报文内容不能直接反映源端口、目的端口、协议类型等关键信息,为了便于后续快速遍历处理,可以将关键信息添加到回应内容的前面形成发送通信报文,然后储存至发送缓存。发送通信报文的结构与接收缓存相同,也是由源端口字段、协议类型字段、目的端口字段和帧报文字段四个字段组成。
还包括定义发送链表,包括多个依次排列的节点数据字段。
需要说明的是,发送缓存与接收缓存有所不同,接收缓存是每个物理端口都具有的,但发送缓存只有从板卡和通信板卡的处理器才具有,因为只有板卡才能作发送方,
当构建好发送缓存,定义好发送通信报文和发送链表后即可开始发送流程,参考图7所示,按照接收通信报文中的协议类型对处理结果进行组帧生成回复报文,并将回复报文写入帧报文字段,将当前的发送端口写入源端口字段,将接收通信报文中的协议类型写入协议类型字段,将接收通信报文中的源端口写入目的端口字段;例如所收到的接收通信报文的帧报文中目的地址是通信板卡,所以发送通信报文的源端口字段设置成通信板卡,且将所收到的上帧报文的源端口字段的内容要设置到发送通信报文的目的端口字段。对于协议类型字段,则应保持不变,也就是以什么协议接收,就以什么协议发送,因此将接收通信报文中的协议类型字段直接复制到发送通信报文的协议类型字段即可。
将发送通信报文存入发送缓存中,然后将发送缓存中的发送通信报文输入发送链表最末端的节点数据字段,因为发送缓存填充好之后,并不意味着就能立即发送,这是因为物理端口可能正在发送报文,尚未回归到空闲状态,也就无法发送本帧报文;或者该物理端口只能半双工工作且处在接收状态暂无法切换到发送。因此需要设计发送链表,用于暂存需要发送的内容。发送链表的结构与接收链表相同,将发送缓存拷入发送链表相当于生产行为,拷入到末端节点数据字段的Data域。从发送链表取用数据相当于消费行为,从最前端节点数据字段的Data域取用。
处理器按照从前往后的顺序依次从发送链表的节点数据字段取出发送通信报文并发往目的端口。参考图8所示,具体步骤为:
处理器以周期轮巡的方式检查发送链表是否为空,若为空则不进行处理,若不为空则从发送链表的最前端的节点数据字段取出发送通信报文并发往目的端口,重复以上过程直到发送列表为空结束流程。
本实施例中各端口的协议类型包括modbus RTU、modbus ASCII、modbus TCP和SCPI,当然除了以上通信协议以外还可以增加其他的常规通信协议。
下面以两个具体的实施例说明本方法的具体实现过程:
实施例1,外部PC机通过对外通信端口PORT3索要从板卡2的数据:
外部PC机从USB端口-对外通信端口PORT3以SCPI协议发来请求模组2功率模块温度数据的请求帧,通信板卡在填充对外通信端口PORT3的接收缓存时,将源端口设置为PORT3,将目的端口设置为内部端口2,协议类型设置为SCPI。当通信板卡的处理器从接收链表取出这段接收通信报文时,发现目的地不为通信板卡,便直接将取出内容复制到发送缓存,再拷入发送链表。接下来将从内部端口2将帧内容发送给从板卡2。
从板卡2解析处理完后将以SCPI协议回应一帧报文,通信板卡将从内部端口2收到该帧报文,然后在填充内部端口2的接收缓存时,会将源端口设置为内部端口2,目的端口设置成PORT3,协议类型设置为SCPI,最后将接收缓存的内容拷入接收链表。当通信板卡从接收链表取出这段缓存内容时,发现目的地不为通信板卡,便直接将取出内容复制到发送缓存,再拷入发送链表,最后将从对外通信端口PORT3将帧内容发送给PC机。
实施例2,外部PC机通过对外通信端口PORT1索要通信板卡温度数据:
外部PC机从RS232端口-对外通信端口PORT1以Modbus RTU协议发来请求通信板卡温度数据的请求帧,通信板卡在填充PORT1的接收缓存时,将源端口设置为PORT1,将目的端口设置为通信板卡,协议类型设置为Modbus RTU。当通信板卡的处理器从接收链表取出这段接收通信报文时,发现目的地为通信板卡,便将温度数据按照Modbus RTU协议的格式要求进行组帧,以及将组帧结果复制到发送通信报文的帧内容字段,发送通信报文的源端口、目的端口和协议类型则分别设置为通信板卡、PORT1、Modbus RTU,然后存入发送缓存,再将发送缓存拷入发送链表,最后从对外通信端口PORT1将帧内容发送给PC机。
参考图1和图9所示,本发明还涉及一种多端口多协议的通信板卡,包括:多个对外通信端口,对外通信端口用于连接外部设备;多个对内通信端口,对内通信端口用于连接内部板卡;处理器,处理器通过上述实施例的方法实现外部设备和内部板卡的通信。对外通信端口包括RS232端口、RS485端口、USB端口、以太网端口和插接式端口。
需要说明的是,通信板卡的每个物理端口都有对应的驱动电路。通信板卡还包括CPU、RAM、EEPROM、稳压电源、隔离电源和采样电路等常规电子部件。其中,处理器是通信板卡的“大脑”,一切通信、控制和保护任务均需要处理器参与;RAM作为随机存储器件用于扩展CPU的存储能力;EEPROM用于掉电保存一些重要参数,如仪器设备的IP地址、产品型号、序列号等;稳压电源用于将仪器设备外接的工作电源转换成±15V、±5V、+3.3V等数字电路和模拟电路用的电源;隔离电源用于给驱动电路的提供专用电源,以避免通信板卡外部通信端口带来的干扰通过电源回路影响到板卡。
需要说明的是,本发明实施例中尽管通信板卡从外部端口收到帧报文后是原样转发给从板卡,但这不意味通信板卡只能原样转发给从板卡。通信板卡与从板卡之间也可以使用统一的内部通信协议。
需要说明的是,本发明实施例中通信板卡配置了五个外部通信端口和三个内部通信端口,但这不意味着通信板卡必须采用相同数量的外部通信端口和内部通信端口,本领域技术人员可以根据实际需要进行减少或增加。
需要说明的是,五个外部通信端口PORT1-PORT5所对应的端口形式分别为RS232端口、RS485端口、USB端口、以太网端口和插接式端口,但这不意味着本发明必须采用上述的端口类型,本领域技术人员可以根据实际需要灵活配备端口类型。
需要说明的是,只列举了modbus RTU、modbus ASCII、modbus TCP、NGI Modbus、SCPI等协议,但这不意味着本发明只能采用这些协议,本领域技术人员可以根据实际需要灵活配置各种常规的通信协议。
本发明设计了接收缓存、接收链表、发送缓存和发送链表,为帧报文的暂存提供了空间,也为多端口同时可用提供了铺垫;接收通信报文和发送通信报文皆具备源端口、协议类型、目标端口这几个字段,解决了单片机处理不及时带来的丢帧误码问题,实现多端口同时可用,而且实现了协议自匹配适应和多种协议的同时可用。
本发明实施方式通过接收缓存和接收通信报文的设计使得仪器设备的外部通信端口同时可用,无需设置外接仪器的通信端口和通信协议类型,提升了仪器设备的智能化水平,有利于提高产品的市场竞争力。通信板卡的物理端口不仅可以同时可用,而且可以实现通信协议的自适应匹配,用户可任意选用一个或多个甚至全部端口,而且可往任何一个端口发送仪器所支持的任何一种协议类型的报文,仪器均能解析响应。又因为此外采用接收链表和发送链表的设计,使得外部发来的每一帧报文都能得到处理,响应率可达到100%,杜绝因软件方法不当的原因造成丢帧误码。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (8)

1.一种多端口多协议的通信方法,其特征在于,包括发送步骤和接收步骤:
接收步骤:
构建接收缓存,每个端口对应配置一个接收缓存;
定义接收通信报文,所述接收通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段;
定义接收链表,所述接收链表包括多个依次排列的节点数据字段;
构建接收通信报文:接收帧报文并写入帧报文字段,将帧报文的接收端口写入源端口字段;根据帧报文的内容判断协议类型并写入协议类型字段,根据帧报文的内容识别目的端口并写入目的端口字段;
将接收通信报文存入接收缓存中,然后将接收缓存中的接收通信报文输入接收链表最末端的节点数据字段;
处理器按照从前往后的顺序依次从接收链表的节点数据字段取出接收通信报文并发往目的端口;
发送步骤:
构建发送缓存,给处理器配置一个发送缓存;
定义发送通信报文,所述发送通信报文包括源端口字段、协议类型字段、目的端口字段和帧报文字段;
按照接收通信报文中的协议类型对处理结果进行组帧生成回复报文,并将回复报文写入帧报文字段,将当前的发送端口写入源端口字段,将接收通信报文中的协议类型写入协议类型字段,将接收通信报文中的源端口写入目的端口字段;
定义发送链表,所述发送链表包括多个依次排列的节点数据字段;
将发送通信报文存入发送缓存中,然后将发送缓存中的发送通信报文输入发送链表最末端的节点数据字段,
处理器按照从前往后的顺序依次从发送链表的节点数据字段取出发送通信报文并发往目的端口。
2.根据权利要求1所述的多端口多协议的通信方法,其特征在于:所述根据帧报文的内容识别目的端口的具体步骤为:
解析帧报文,识别帧报文的功能类型和数据地址,根据功能类型和数据地址进行综合判断,确认目的端口。
3.根据权利要求1所述的多端口多协议的通信方法,其特征在于:所述处理器按照从前往后的顺序依次从接收链表的节点数据字段取出接收通信报文并发往目的端口的具体步骤为:
处理器以周期轮巡的方式检查接收链表是否为空,若为空则不进行处理,若不为空则从接收链表的节点数据字段取出接收通信报文并发往目的端口,重复以上过程。
4.根据权利要求1所述的多端口多协议的通信方法,其特征在于:所述处理器按照从前往后的顺序依次从接收链表的节点数据字段取出接收通信报文并发往目的端口步骤中,若目的端口为当前处理器所在的通信板卡,则处理器根据协议类型对帧报文进行解析和处理;若目的端口并非当前处理器所在的通信板卡,则将接收通信报文写入发送缓存。
5.根据权利要求1所述的多端口多协议的通信方法,其特征在于:所述处理器按照从前往后的顺序依次从发送链表的节点数据字段取出发送通信报文并发往目的端口的具体步骤为:
处理器以周期轮巡的方式检查发送链表是否为空,若为空则不进行处理,若不为空则从发送链表的节点数据字段取出发送通信报文并发往目的端口,重复以上过程。
6.根据权利要求1所述的多端口多协议的通信方法,其特征在于:所述协议类型包括modbus RTU、modbus ASCII、modbus TCP和SCPI。
7.一种多端口多协议的通信板卡,其特征在于,包括:
多个对外通信端口,所述对外通信端口用于连接外部设备;
多个对内通信端口,所述对内通信端口用于连接内部板卡;
处理器,所述处理器通过权利要求1至6任意一项所述的方法实现外部设备和内部板卡的通信。
8.根据权利要求7所述的多端口多协议的通信板卡,其特征在于:所述对外通信端口包括RS232端口、RS485端口、USB端口、以太网端口和插接式端口中的一种或多种。
CN202211219436.0A 2022-10-08 2022-10-08 多端口多协议的通信方法及板卡 Active CN115297001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211219436.0A CN115297001B (zh) 2022-10-08 2022-10-08 多端口多协议的通信方法及板卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211219436.0A CN115297001B (zh) 2022-10-08 2022-10-08 多端口多协议的通信方法及板卡

Publications (2)

Publication Number Publication Date
CN115297001A CN115297001A (zh) 2022-11-04
CN115297001B true CN115297001B (zh) 2022-12-16

Family

ID=83834752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211219436.0A Active CN115297001B (zh) 2022-10-08 2022-10-08 多端口多协议的通信方法及板卡

Country Status (1)

Country Link
CN (1) CN115297001B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1781288A (zh) * 2003-06-19 2006-05-31 思科技术公司 用于多业务交换平台的多速率、多协议、多端口线路接口
CN101426000A (zh) * 2007-10-30 2009-05-06 北京启明星辰信息技术有限公司 一种通用协议解析方法及系统
CN112217805A (zh) * 2020-09-22 2021-01-12 江苏方天电力技术有限公司 一种配电物联网多模协议适配方法
CN113938529A (zh) * 2021-08-30 2022-01-14 上海威派格智慧水务股份有限公司 一种多协议转换接入系统及方法
WO2022027773A1 (zh) * 2020-08-03 2022-02-10 网宿科技股份有限公司 一种多协议端口的共用方法、系统及服务器
CN114666424A (zh) * 2022-03-24 2022-06-24 卡斯柯信号(成都)有限公司 一种可配置的铁路信号通信数据解析方法
CN114979307A (zh) * 2022-04-19 2022-08-30 杭州涂鸦信息技术有限公司 通信协议的解析方法、智能终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162564B2 (en) * 2002-07-09 2007-01-09 Intel Corporation Configurable multi-port multi-protocol network interface to support packet processing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1781288A (zh) * 2003-06-19 2006-05-31 思科技术公司 用于多业务交换平台的多速率、多协议、多端口线路接口
CN101426000A (zh) * 2007-10-30 2009-05-06 北京启明星辰信息技术有限公司 一种通用协议解析方法及系统
WO2022027773A1 (zh) * 2020-08-03 2022-02-10 网宿科技股份有限公司 一种多协议端口的共用方法、系统及服务器
CN114095588A (zh) * 2020-08-03 2022-02-25 网宿科技股份有限公司 一种多协议端口的共用方法、系统及服务器
CN112217805A (zh) * 2020-09-22 2021-01-12 江苏方天电力技术有限公司 一种配电物联网多模协议适配方法
CN113938529A (zh) * 2021-08-30 2022-01-14 上海威派格智慧水务股份有限公司 一种多协议转换接入系统及方法
CN114666424A (zh) * 2022-03-24 2022-06-24 卡斯柯信号(成都)有限公司 一种可配置的铁路信号通信数据解析方法
CN114979307A (zh) * 2022-04-19 2022-08-30 杭州涂鸦信息技术有限公司 通信协议的解析方法、智能终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多端口实时串行通信的实现与应用;宋海生等;《微计算机信息》;19990830(第04期);全文 *

Also Published As

Publication number Publication date
CN115297001A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
CN101911609B (zh) 用于实现统一连接器架构的系统、设备和方法
CN108268328B (zh) 数据处理装置及计算机
US6463338B1 (en) Industrial controller and network card with buffer negotiation
CN112039722B (zh) 一种mqtt协议仿真方法及仿真设备
US7827343B2 (en) Method and apparatus for providing accelerator support in a bus protocol
US20110035461A1 (en) Protocol adapter for transferring diagnostic signals between in-vehicle networks and a computer
CN111108450B (zh) 用于耦合现场总线和本地总线的电路
US20060178804A1 (en) Control device for a motor vehicle and communication method therefor
CN112565036A (zh) 数据传输方法、装置、存储介质及通信系统
CN115827524A (zh) 一种数据传输方法以及装置
CN113347273B (zh) 一种车载以太网数据转换方法、装置、设备及介质
CN115297001B (zh) 多端口多协议的通信方法及板卡
JP2008506204A (ja) 複数のデータバス間でデータを交換する装置及びその方法
JP2003318996A (ja) 車両用通信装置
CN112367196A (zh) 一种检测网络通信故障的方法、装置及电子设备
CN115913816A (zh) 一种主从设备间通讯的通讯转换装置及方法
CN115344522A (zh) 消息转换通道、消息转换装置、电子设备和交换设备
JP5930767B2 (ja) 電子デバイス、通信制御方法
CN115473749A (zh) 基于单片机控制实现网卡bypass功能的方法及电路
CN111052682B (zh) 总线系统的主设备
CN110138819B (zh) 网络交换机的主机状态检测方法与系统
Wang et al. A compositional implementation of Modbus in Protege
CN117834750B (zh) 获取协议数据的装置、方法、系统、设备、介质及服务器
CN108446131B (zh) 一种atm机固件升级方法、装置、设备及存储介质
KR100306749B1 (ko) 네트워크 프린터 시스템

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
GR01 Patent grant
GR01 Patent grant