CN113672545B - 双处理器间电力数据的传输方法和装置 - Google Patents
双处理器间电力数据的传输方法和装置 Download PDFInfo
- Publication number
- CN113672545B CN113672545B CN202111033341.5A CN202111033341A CN113672545B CN 113672545 B CN113672545 B CN 113672545B CN 202111033341 A CN202111033341 A CN 202111033341A CN 113672545 B CN113672545 B CN 113672545B
- Authority
- CN
- China
- Prior art keywords
- data
- slave processor
- frame
- control frame
- transmission
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000009977 dual effect Effects 0.000 title abstract description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 170
- 230000006854 communication Effects 0.000 claims abstract description 113
- 238000004891 communication Methods 0.000 claims abstract description 112
- 230000004044 response Effects 0.000 claims abstract description 50
- 230000007246 mechanism Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 35
- 230000002093 peripheral effect Effects 0.000 claims abstract description 23
- 238000012790 confirmation Methods 0.000 claims description 45
- 238000012546 transfer Methods 0.000 claims description 22
- 238000007405 data analysis Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000005856 abnormality Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
- 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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种双处理器间电力数据的传输方法和装置,应用于主处理器和从处理器,主处理器和从处理器均包括应用数据层和通信层,传输方法包括:通信层通过发送启动链路控制帧,在主处理器和从处理器之间建立传输链路;并在建立传输链路后,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,直至收到从处理器发送的数据传输结束控制帧为止。数据帧包括应用数据层预先生成的电力数据分包。通信层还用于在通信异常时重建通信链路。本方案中通过划分应用数据层和通信层,并设置异常处理机制,实现双处理间复杂电力数据的可靠传输,扩展了基于SPI总线的数据传输技术的适用范围。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种双处理器间电力数据的传输方法和装置。
背景技术
电力物联网的发展对电力设备提出了边缘计算要求,为满足算力需求,越来越多的电力设备采用双处理器架构设计。双处理器架构一般包括两个主板,分别称为主控板和交采板(即交流采集主板),主控板和交采板分别设置有一个微控制单元(MicrocontrollerUnit,MCU)。在电力设备运行时,两个MCU之间根据业务需求,需要进行多类型的复杂电力数据的通信。
目前双处理器间常用的数据传输方式是利用串行外设接口(Serial PeripheralInterface,SPI)总线进行传输,而现有的基于SPI总线的数据传输方案中所使用的通信协议缺少分包分帧机制,并且异常处理机制和重传确认机制比较简单,无法适应电力系统复杂的类型的各类数据及命令的传输,无法保证电力数据不丢失的可靠传输。
发明内容
针对上述现有技术的问题,本申请提供一种双处理器间电力数据的传输方法和装置,以提供一种能够可靠地传输复杂电力数据的数据传输方案。
本申请提供一种双处理器间电力数据的传输方法,其特征在于,应用于主处理器,所述主处理器为安装于电力设备主控板的微控制单元,所述主处理器包括应用数据层和通信层,所述传输方法包括:
向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路;其中,所述从处理器为安装于电子设备交采板的微控制单元;
在收到所述从处理器反馈的启动链路确认控制帧后,向所述从处理器发送数据传输准备控制帧;
在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,直至收到所述从处理器发送的数据传输结束控制帧为止;其中,所述数据传输就绪控制帧由所述从处理器响应所述数据传输准备控制帧而反馈;
其中,所述基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,包括:
每次向所述从处理器发送一个数据帧后,等待所述从处理器反馈接收确认控制帧;其中,所述数据帧携带有预先生成的电力数据分包;
若在预设的超时时长内收到所述接收确认控制帧,向所述从处理器发送下一个数据帧;
若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到所述接收确认控制帧为止;
或者包括:
每次收到所述从处理器发送的一个数据帧后,向所述从处理器发送接收确认控制帧,以触发所述从处理器发送下一个数据帧。
可选的,所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路之后,还包括:
若在发送所述启动链路控制帧之后的超时时长内未收到所述启动链路确认控制帧,再次向所述从处理器发送启动链路控制帧,直至在发送所述启动链路控制帧之后的超时时长内收到所述启动链路确认控制帧为止。
可选的,生成数据帧的过程包括:
获得待传输电力数据;其中,所述待传输电力数据包括数据主题和数据体;
按预设的分包大小将所述待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个所述数据分包封装为对应的数据帧。
可选的,所述若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧之后,还包括:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路步骤。
可选的,所述从处理器执行数据传输准备操作,包括:
所述从处理器通过应用数据层生成待传输电力数据,并将所述待传输电力数据拆分为多个数据分包;
所述从处理器通过通信层将每一个所述数据分包封装为对应的数据帧。
可选的,所述基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧之后,还包括:
将收到的多个数据帧进行数据组包,获得所述待传输电力数据;
对所述待传输电力数据进行数据解析。
本申请还提供一种双处理器间电力数据的传输装置,应用于主处理器,所述主处理器为安装于电力设备主控板的微控制单元,所述主处理器包括应用数据层和通信层,所述传输装置包括:
启动单元,用于向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路;其中,所述从处理器为安装于电子设备交采板的微控制单元;
准备单元,用于在收到所述从处理器反馈的启动链路确认控制帧后,向所述从处理器发送数据传输准备控制帧;
传输单元,用于在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,直至收到所述从处理器发送的数据传输结束控制帧为止;其中,所述数据传输就绪控制帧由所述从处理器响应所述数据传输准备控制帧而反馈;
其中,所述传输单元基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧时,具体用于:
每次向所述从处理器发送一个数据帧后,等待所述从处理器反馈接收确认控制帧;其中,所述数据帧携带有预先生成的电力数据分包;
若在预设的超时时长内收到所述接收确认控制帧,向所述从处理器发送下一个数据帧;
若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到所述接收确认控制帧为止;
或者包括:
每次收到所述从处理器发送的一个数据帧后,向所述从处理器发送接收确认控制帧,以触发所述从处理器发送下一个数据帧。
可选的,所述启动单元还用于:
若在发送所述启动链路控制帧之后的超时时长内未收到所述启动链路确认控制帧,再次向所述从处理器发送启动链路控制帧,直至在发送所述启动链路控制帧之后的超时时长内收到所述启动链路确认控制帧为止。
可选的,生成数据帧的过程包括:
获得待传输电力数据;其中,所述待传输电力数据包括数据主题和数据体;
按预设的分包大小将所述待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个所述数据分包封装为对应的数据帧。
可选的,所述传输单元还用于:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路步骤。
可选的,所述从处理器执行数据传输准备操作,包括:
所述从处理器通过应用数据层生成待传输电力数据,并将所述待传输电力数据拆分为多个数据分包;
所述从处理器通过通信层将每一个所述数据分包封装为对应的数据帧。
本申请提供一种双处理器间电力数据的传输方法和装置,应用于主处理器,主处理器指代安装于电力设备主控板的微控制单元,主处理器包括应用数据层和通信层,传输方法包括:主处理器的通信层向从处理器的通信层发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路;其中,从处理器指代安装于电力设备交采板的微控制单元;在收到从处理器反馈的启动链路确认控制帧后,主处理器的通信层向从处理器的通信层发送数据传输准备控制帧;在收到数据传输就绪控制帧后,主处理器的通信层基于应答机制通过串行外设接口总线与从处理器的通信层逐个传输数据帧,其中每一个数据帧都携带有应用数据层生成的数据分包,直至收到从处理器的通信层发送的数据传输结束控制帧为止;其中,数据传输就绪控制帧由从处理器响应数据传输准备控制帧而反馈。在逐个传输数据帧的过程中,主处理器的通信层可以判断是否发生通信异常,并在判断出发生通信异常后重建通信链路;其中,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,包括:每次向从处理器发送一个数据帧后,等待从处理器反馈接收确认控制帧;若在预设的超时时长内收到接收确认控制帧,向从处理器发送下一个数据帧;若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到接收确认控制帧为止;或者包括:每次收到从处理器发送的一个数据帧后,向从处理器发送接收确认控制帧,以触发从处理器发送下一个数据帧。应用数据层用于预先生成电力数据分包,或者应用于全部数据帧接受完成后进行数据组包及数据解析。通信层还用于在通信异常时重建通信链路。本方案中通过划分应用数据层和通信层,并设置异常处理机制,实现双处理间复杂电力数据的可靠传输,扩展了基于SPI总线的数据传输技术的适用范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种双处理器架构示意图;
图2为本申请实施例提供的一种双处理器间电力数据的传输方法的流程图;
图3为本申请实施例提供的一种通信异常处理机制的流程图;
图4为本申请实施例提供的一种主处理器向从处理器发送电力数据的流程图;
图5为本申请实施例提供的一种主处理器读取从处理器的电力数据的流程图;
图6为本申请实施例提供的一种双处理器间电力数据的传输装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请所提供一种双处理器间电力数据的传输方法,可以应用于如图1所示的双处理器架构。如图1所示,该架构包括主处理器和从处理器,主处理器和从处理器之间连接有SPI-CS(Chip Select,片选)信号线,SPI-CLK(Clock,时钟)信号线,SPI-MOSI(MasterOut Slave Input,主出从入)信号线和SPI-MISO(Master Input Slave Out,主入从出)信号线,这些信号线共同组成了主处理器和从处理器之间的SPI总线。基于图1所示的架构,主处理和从处理器之间可以通过SPI总线实现复杂电力数据的传输。
本申请所提供的双处理器间电力数据的传输方法,主要通过定义一种基于国际电工委员会(International Electrotechnical Commission,IEC)60870-5—104规约和配电网物联网消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)规约的分层通信方法,该方法将双处理器之间的数据传输过程抽象成通信层和应用数据层,通信层确保每一数据帧所携带的数据分包正确且不丢失,应用数据层解决如何将各类复杂电力数据转换成多个数据分包并将数据分包封装为数据帧的问题,确保发送方和接收方正确将数据进行分包、组包和解译。本申请的通信方法中,每一次双处理器之间的通信都采用问答机制,即一个处理器收到另一个处理器的帧之后会立即向另一个处理器反馈相应的应答帧。另外,本申请的方法还设置了重发及链路重启的通信异常处理机制,以确保数据通信可靠。在现有SPI通信基础上,实现多种类型的复杂电力数据可靠传输。
采用本申请提供的方法,可以实现电力系统配电自动化三遥(遥测、遥信、遥控)传输、带时间戳的事件顺序(Sequence Of Event,SOE)数据传输;实现电力系统电能质量10周波值、3秒值、分钟值等稳态数据及暂态事件、录波信息传输;实现运行参数获取及时钟同步;实现文件传输。还可以根据需求实现电力营销计量数据等其他方面的电力数据可靠传输。
本申请提供一种双处理器间电力数据的传输方法,应用于主处理器,主处理器指代安装于电力设备主控板的微控制单元,其中主处理包括应用数据层和通信层,请参考图2,该传输方法可以包括如下步骤:
S201、通信层向从处理器发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路。
其中,从处理器指代安装于电力设备交采板的微控制单元。
启动链路控制帧,用于在主处理器和从处理器之间建立通信链路,建立通信链路一般涉及前面的通信层,而不涉及应用数据层。
S202、通信层在收到从处理器反馈的启动链路确认控制帧后,向从处理器发送数据传输准备控制帧。
本次数据传输过程,可以是主处理器向从处理器下发数据电力数据的下发过程,相应的,上述数据传输准备控制帧就是数据下发准备控制帧。若本次数据传输过程是主处理器读取从处理器电力数据的数据读取过程,则前述数据传输准备控制帧,就是数据读取准备控制帧。
从处理器收到数据传输准备控制帧后需要针对后续将要进行的数据传输执行一定的准备操作,例如,若本次数据传输是数据读取过程,从处理器则需要向主处理器上送电力数据,此时从处理器的准备操作包括收集待传输电力数据,将待传输电力数据拆分为数据分包等。
若本次数据传输是数据下发过程,则从处理器需要接收主处理器下发的带有数据分包的数据帧,此时准备操作,可以包括在从处理器本地开辟缓存数据帧的缓存空间等操作。
如前文所述,本申请中主处理器和从处理器之间的通信采用应答机制,因此从处理器在收到启动链路控制帧后,需要向主处理器反馈应答帧,也就是S202所述的启动链路确认控制帧。
可选的,两个处理器间可以预先约定一个超时时长,在执行S201之后,若主处理器在预设的超时时长内收到了启动链路确认控制帧,则执行S202,若在发送启动链路控制帧之后的超时时长内未收到启动链路确认控制帧,再次向从处理器发送启动链路控制帧,直至在发送启动链路控制帧之后的超时时长内收到启动链路确认控制帧为止。
例如,首次发送启动链路控制帧后,经过超时时长主处理器未收到应答,则主处理器第二次发送启动链路控制帧,若第二次发送后经过超时时长仍未收到应答,则主处理器第三次发送启动链路控制帧,以此类推。
同理,从处理器在收到数据传输准备控制帧之后,同样需要应答主处理器,即向主处理器发送数据传输就绪控制帧。
S203、在收到数据传输就绪控制帧后,通信层基于应答机制与从处理器逐个传输数据帧,直至获得数据传输结束控制帧为止。数据帧携带有应用数据层生成的数据分包。
进一步的,本实施例提供的方法还可以包括:
S204,在发生通信异常时,通信层基于预设的异常处理机制执行特定操作。
S204所述的特定操作,可以包括,再次发送最近一次发出的数据帧,和重启双处理器之间的通信链路。异常处理机制的具体说明请参见图3对应的实施例。
需要说明的是,数据传输结束控制帧还可以由主处理器发送,具体由主处理器发送还是从处理器发送,取决于本次传输过程是数据下发过程还是数据读取过程。
其中,数据传输就绪控制帧由从处理器响应数据传输准备控制帧而反馈。
数据传输就绪控制帧,相当于数据传输准备控制帧的应答帧。
本次数据传输过程,可以是主处理器向从处理器下发数据电力数据的下发过程,相应的,前述数据传输结束控制帧就是数据接收结束控制帧。若本次数据传输过程是主处理器读取从处理器电力数据的数据读取过程,则前述数据传输结束控制帧,就是数据上送结束控制帧。
可选的,生成数据帧的过程包括:
获得待传输电力数据;其中,待传输电力数据包括数据主题和数据体;
按预设的分包大小将待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个数据分包封装为对应的数据帧。
具体的,数据发送端的应用数据层可以参照前述MQTT规约,将需要传输的信息组成多个待传输电力数据,每一个待传输电力数据包括一个主题(topic)和一个数据体(payload),然后按上述分包大小(相当于数据长度,单位为byte,表示一个数据分包包含多少byte数据)将待传输电力数据拆分为多个数据分包。这里的分包大小可以根据两个处理器之间连接的SPI总线的传输能力而设定。
应用数据层产生的数据分包可以由通信层按一定的帧格式封装为数据帧,在本申请中,两个处理器之间传输的帧包括前述控制帧(如启动链路控制帧)和数据帧,相应的预定义的帧格式就包括控制帧格式和数据帧格式,帧格式中设定了固定的帧头,帧尾及校验码。其中,控制帧格式中约定了控制码对应的控制帧类型。
数据接收端通过通信层收到多个数据帧后,可以按前述数据帧格式解析出其中的数据分包,再将数据分包组装成待传输电力数据,从而实现双处理器间的电力数据传输。
本申请的数据传输包括数据下发过程和数据读取过程,数据下发过程为主处理器向从处理器下发电力数据,数据读取过程为从处理器向主处理器上送电力数据。
若本次传输为数据下发过程,则基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,包括:
每次向从处理器发送一个数据帧后,等待从处理器反馈接收确认控制帧;其中,数据帧携带有预先生成的电力数据分包;
若在预设的超时时长内收到接收确认控制帧,向从处理器发送下一个数据帧;
若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到接收确认控制帧为止;
若本次传输为数据读取过程,则基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,包括:
每次收到从处理器发送的一个数据帧后,向从处理器发送接收确认控制帧,以触发从处理器发送下一个数据帧。
可选的,若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧之后,还包括:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行向从处理器发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路步骤。
其中,接收确认控制帧,相当于数据帧对应的应答帧。
可选的,从处理器执行数据传输准备操作,包括:
从处理器通过应用数据层生成待传输电力数据,并将待传输电力数据拆分为多个数据分包;
从处理器通过通信层将每一个数据分包封装为对应的数据帧。
本申请提供一种双处理器间电力数据的传输方法,应用于主处理器,主处理器指代安装于电力设备主控板的微控制单元,主处理器包括应用数据层和通信层,传输方法包括:主处理器的通信层向从处理器的通信层发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路;其中,从处理器指代安装于电力设备交采板的微控制单元;在收到从处理器反馈的启动链路确认控制帧后,主处理器的通信层向从处理器的通信层发送数据传输准备控制帧;在收到数据传输就绪控制帧后,主处理器的通信层基于应答机制通过串行外设接口总线与从处理器的通信层逐个传输数据帧,其中每一个数据帧都携带有应用数据层生成的数据分包,直至收到从处理器的通信层发送的数据传输结束控制帧为止;其中,数据传输就绪控制帧由从处理器响应数据传输准备控制帧而反馈。在逐个传输数据帧的过程中,主处理器的通信层可以判断是否发生通信异常,并在判断出发生通信异常后重建通信链路;其中,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,包括:每次向从处理器发送一个数据帧后,等待从处理器反馈接收确认控制帧;其中,数据帧携带有预先生成的电力数据分包;若在预设的超时时长内收到接收确认控制帧,向从处理器发送下一个数据帧;若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到接收确认控制帧为止;或者包括:每次收到从处理器发送的一个数据帧后,向从处理器发送接收确认控制帧,以触发从处理器发送下一个数据帧。数据帧包括应用数据层预先生成的电力数据分包。通信层还用于在通信异常时重建通信链路。本方案中通过划分应用数据层和通信层,并设置异常处理机制,实现双处理间复杂电力数据的可靠传输,扩展了基于SPI总线的数据传输技术的适用范围。
本申请所提供的传输方法,还针对实际传输过程中通信层可能出现的通信异常,设计了如图3所示的异常处理流程(异常处理机制)。
具体的,本申请的主控板MCU(即主处理器)可以定义最多16种状态,除链路中断和链路空闲2个状态以外,其它14种状态均为成对的状态,即发出信号的状态和收到应答的状态相对应,比如,在数据下发过程中,数据下发状态和下发应答状态对应,主处理器发出一个数据帧后进入数据下发状态,主处理器收到从处理器的接收确认控制帧后则切换至下发应答状态;在数据读取过程中,数据读取状态和数据读取状态对应,主处理器向从处理器发送接收确认控制帧后进入数据读取状态,主处理器收到从处理器的数据帧后进入读取应答状态。
基于上述定义,参考图3,启动链路后,主处理器每次向从处理器发送一个帧(可以是数据帧或控制帧,不妨将主处理器发出去的帧记为发送帧)后,主处理器就进入发出信号的状态(如上述数据读取状态和数据下发状态),主处理器接收到从处理器反馈的帧(同样可以是数据帧或控制帧,不妨将从处理器发送的帧记为应答帧)后进入收到应答的状态(如前述读取应答状态和下发应答状态)。
如图3所示,在主处理器进入信号发出的状态(即发送状态)后,若经过超时时长未收到应答帧,即判定从处理器应答失败,重复发送最近一次发送的帧,当重复的次数超过最大重发次数后,主处理器判定链路中断,于是重新启动链路。
另一发面,主处理器收到应答帧,进入收到应答的状态后,可能由于主处理器自身的通信层发生错误而无法向从处理器发出发送帧,此时主处理器会一直处于收到应答的状态(即应答状态),当处于应答状态的时间超过最大状态切换时间时,主处理器判定链路中断,于是重新启动链路。
其中,接收数据帧的处理器应答失败(上述实施例中接收数据帧的处理器为从处理器),和链路中断均属于通信异常。
下面结合附图对数据下发过程和数据读取过程进行具体说明。
数据下发过程,参考图4,数据下发涉及到应用数据层和通信层,当链路正常启动后可以进入数据下发,主处理器应用数据层向从处理器发送应用数据下发准备控制帧,从处理器接收后进行应答,即向主处理器反馈应用数据传输就绪控制帧,然后进入图4右侧的通信层的数据下发流程。
在下发流程中,主处理器通过通信层发送数据下发请求控制帧,从处理器回复数据接收就绪控制帧。再后主处理器的通信层发送携带数据分包的数据帧1,从处理器收到后,回复接收确认控制帧,重复上述步骤直到全部分包数据发送接收完毕。当主处理器某一次未收到接收确认控制帧时(参考图4右侧流程图下方标注“异常”的部分)将会重发数据帧,直到收到接收确认控制帧,或者一个数据帧重复发送的次数超过预设的最大重发次数为止;其中,若一个数据帧重复发送的次数超过预设的最大重发次数,则通信层重新在主处理器和从处理器之间建立通信链路。最后,通信层完成数据发送及接收确认,从处理器应用数据层会回复数据下发结束控制帧,并对接收到的全部数据帧进行组包,并按照约定的主题和数据体的格式解析数据,从而获得待传输电力数据。
数据读取过程,参考图5,当链路正常启动后可以进入数据读取,数据读取涉及到应用数据层及通信层。首先主处理器的应用数据层发送数据读取准备控制帧,从处理器收到后回复应用数据传输就绪控制帧,随即进入图5右侧的通信层的数据读取流程。
该流程中,主处理器的通信层发送读取请求控制帧,从处理器收到后,若待传输电力数据已经准备就绪,则从处理器可以直接回复数据读取控制帧,若待传输电力数据尚未准备就绪,则从处理器可以回复无数据待读取控制帧。
主处理器每收到一个数据帧,就要向从处理器回复一个接受确认控制帧,以使从处理器发送下一个数据帧,以此类推,直至全部数据分包发送接收完毕。
同时,若主处理器收到无数据待读取控制帧,则可以等待一段时间后再次发送读取请求控制帧。
参考图5中读取流程下方的异常部分,当从处理器某一次未收到接收确认控制帧时,将会重发数据帧,直到收到接收确认控制帧,或者一个数据帧重复发送的次数超过预设的最大重发次数为止;其中,若一个数据帧重复发送的次数超过预设的最大重发次数,则通信层重新在主处理器和从处理器之间建立通信链路。
最后,主处理器的通信层完成待传输电力数据的读取及接收确认,此时从处理器的应用数据层会回复数据上送结束控制帧,主处理器对接收到的全部数据帧进行数据组包,获得待传输电力数据,并按照约定的主题和数据体进行数据解析。数据组包,是指将收到的多个数据帧所携带的数据分包组合为完整的数据,数据解析,则是对组合好的完整数据进行解析。
下面对本申请的通信层所定义的数据帧格式和控制帧格式进行简要说明。
数据帧格式如表1所示:
表1
其中ASDU用户层数据帧分包即为实际待传输电力数据拆分得到的数据分包,根据实际传输需求及传输能力,其长度可变。启动和结束字符沿用104协议中的定义,设置校验位CS以保证通信层每一帧数据内的数据的正确性。
控制帧格式如表2所示:
表2
为了简化通信,可以将控制帧定义为一种特殊的数据帧,即分包序号和分包总数皆为0的数据帧为控制帧。此时原ASDU分包位置变为控制码和控制信息,长度固定,为6个字节。
其中控制码及其控制信息如表3所示。
表3
/>
应用数据层可以按表4所示的数据结构生成待传输电力数据:
应用数据帧结构表4所示:
表4
主题长度 | 1字节 |
主题 | N字节 |
数据体长度 | 4字节 |
数据体 | 可变长度字节 |
其中主题表示该电力数据的类型,数据体表示该数据的具体内容。应用数据层的主题和数据体可根据实际情况自行定义。
从图3所示的实施例可以看出,本发明在主处理器处于某状态的时间过程,或者重复发送同一数据帧次数过多时,即认为发生通信异常,并及时重启链路,因此,本方案实现了一种基于处理器间状态转换的,通过定义最大状态切换时间和最大重发次数的通信重发机制。
结合图2所示的实施例,本发明中双处理器之间的通信由通信层和应用数据层实现,应用数据层收集数据并生成数据分包,以及用于进行数据组包和数据解析,通信层建立通信链路,按特定的帧格式封装数据分包得到数据帧,并将数据帧进行传输,由此,本发明将双处理器间通信抽象成通信层和应用数据层的分层传输方法,可以确保多类型复杂电力数据的跨处理器可靠通信。
进一步参考图2的实施例,双处理器之间进行通信时,每次一个处理器发送一个数据帧后,都会等待另一个处理器反馈接收确认控制帧,然后再继续发送下一个数据帧。通过数据帧和接收确认控制帧的交互,本发明实现了双处理器间一问一答的传输形式,确保数据可靠通信。
综上所述,本发明提供一种电力设备跨处理器的基于SPI的可靠通信方法。在电力设备双处理器间,基于SPI通信总线,将通信过程抽象为通信层和应用数据层的分层传输的可靠通信方法。通信层确保每一帧通信数据正确且不丢失,应用数据层解决复杂电力数据、文件、控制命令的组包、分包、解析问题。每一次通信都是一问一答机制,且定义了基于主控板传输状态最大切换时间和未收到回复时的最大重发次数的重发机制。实现了多种类型的复杂电力数据可靠通信。
根据本申请实施例提供的双处理器间电力数据的传输方法,本申请实施例还提供一种双处理器间电力数据的传输装置,应用于主处理器,主处理器为安装于电力设备主控板的微控制单元,主处理器包括应用数据层和通信层,请参考图6,该传输装置可以包括如下单元:
启动单元601,用于向从处理器发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路。
其中,从处理器为安装于电力设备交采板的微控制单元。
准备单元602,用于在收到从处理器反馈的启动链路确认控制帧后,向从处理器发送数据传输准备控制帧。
传输单元603,用于在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,直至收到从处理器发送的数据传输结束控制帧为止。
其中,数据传输就绪控制帧由从处理器响应数据传输准备控制帧而反。
其中,传输单元603基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧时,具体用于:
每次向从处理器发送一个数据帧后,等待从处理器反馈接收确认控制帧;其中,数据帧携带有应用数据层预先生成的电力数据分包;
若在预设的超时时长内收到接收确认控制帧,向从处理器发送下一个数据帧;
若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到接收确认控制帧为止;
或者包括:
每次收到从处理器发送的一个数据帧后,向从处理器发送接收确认控制帧,以触发从处理器发送下一个数据帧。
可选的,启动单元601还用于:
若在发送启动链路控制帧之后的超时时长内未收到启动链路确认控制帧,再次向从处理器发送启动链路控制帧,直至在发送启动链路控制帧之后的超时时长内收到启动链路确认控制帧为止。
可选的,应用数据层生成数据帧的过程包括:
获得待传输电力数据;其中,待传输电力数据包括数据主题和数据体;
按预设的分包大小将待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个数据分包封装为对应的数据帧。
可选的,传输单元603还用于:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行向从处理器发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路步骤。
可选的,从处理器执行数据传输准备操作,包括:
从处理器通过应用数据层生成待传输电力数据,并将待传输电力数据拆分为多个数据分包;
从处理器通过通信层将每一个数据分包封装为对应的数据帧。
可选的,该传输装置还可以包括异常处理单元604,用于在发生通信异常时,基于预设的异常处理机制执行特定操作。
本申请实施例提供的双处理器间电力数据的传输装置,其具体工作原理可以参考本申请任一实施例提供的双处理器间电力数据的传输方法中的相关步骤,此处不再赘述。
本申请提供一种双处理器间电力数据的传输装置,应用于主处理器,主处理器指代安装于电力设备主控板的微控制单元,主处理包括应用数据层和通信层,其中,启动单元601向从处理器发送启动链路控制帧,以在主处理器和从处理器之间建立传输链路;其中,从处理器指代安装于电力设备交采板的微控制单元;准备单元602在收到从处理器反馈的启动链路确认控制帧后,向从处理器发送数据传输准备控制帧;传输单元603在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,直至收到从处理器发送的数据传输结束控制帧为止;其中,数据传输就绪控制帧由从处理器响应数据传输准备控制帧而反馈;其中,基于应答机制通过串行外设接口总线与从处理器逐个传输数据帧,包括:每次向从处理器发送一个数据帧后,等待从处理器反馈接收确认控制帧;其中,数据帧携带有预先生成的电力数据分包;若在预设的超时时长内收到接收确认控制帧,向从处理器发送下一个数据帧;若在预设的超时时长内未收到接收确认控制帧,重复向从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到接收确认控制帧,或者一个数据帧重复发送的次数超过预设的最大重发次数为止;其中,若一个数据帧重复发送的次数超过预设的最大重发次数,则通信层重新在主处理器和从处理器之间建立通信链路;或者包括:每次收到从处理器发送的一个数据帧后,向从处理器发送接收确认控制帧,以触发从处理器发送下一个数据帧。本方案中通过划分应用数据层和通信层,并设置异常处理机制,实现双处理间复杂电力数据的可靠传输,扩展了基于SPI总线的数据传输技术的适用范围。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种双处理器间电力数据的传输方法,其特征在于,应用于主处理器,所述主处理器为安装于电力设备主控板的微控制单元,所述传输方法包括:
向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路;其中,所述从处理器为安装于电子设备交采板的微控制单元;
在收到所述从处理器反馈的启动链路确认控制帧后,向所述从处理器发送数据传输准备控制帧;
在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,直至收到所述从处理器发送的数据传输结束控制帧为止;其中,所述数据传输就绪控制帧由所述从处理器响应所述数据传输准备控制帧而反馈;
其中,所述基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,包括:
每次向所述从处理器发送一个数据帧后,等待所述从处理器反馈接收确认控制帧;其中,所述数据帧携带有预先生成的电力数据分包;
若在预设的超时时长内收到所述接收确认控制帧,向所述从处理器发送下一个数据帧;
若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到所述接收确认控制帧为止;
或者包括:
每次收到所述从处理器发送的一个数据帧后,向所述从处理器发送接收确认控制帧,以触发所述从处理器发送下一个数据帧。
2.根据权利要求1所述的传输方法,其特征在于,所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路之后,还包括:
若在发送所述启动链路控制帧之后的超时时长内未收到所述启动链路确认控制帧,再次向所述从处理器发送启动链路控制帧,直至在发送所述启动链路控制帧之后的超时时长内收到所述启动链路确认控制帧为止。
3.根据权利要求1所述的传输方法,其特征在于,生成数据帧的过程包括:
获得待传输电力数据;其中,所述待传输电力数据包括数据主题和数据体;
按预设的分包大小将所述待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个所述数据分包封装为对应的数据帧。
4.根据权利要求3所述的传输方法,其特征在于,所述基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧之后,还包括:
将收到的多个数据帧进行数据组包,获得所述待传输电力数据;
对所述待传输电力数据进行数据解析。
5.根据权利要求1所述的传输方法,其特征在于,所述若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧之后,还包括:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路步骤。
6.根据权利要求1所述的传输方法,其特征在于,所述从处理器执行数据传输准备操作,包括:
所述从处理器通过应用数据层生成待传输电力数据,并将所述待传输电力数据拆分为多个数据分包;
所述从处理器通过通信层将每一个所述数据分包封装为对应的数据帧。
7.一种双处理器间电力数据的传输装置,其特征在于,应用于主处理器,主处理器为安装于电力设备主控板的微控制单元,所述传输装置包括:
启动单元,用于向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路;其中,所述从处理器为安装于电子设备交采板的微控制单元;
准备单元,用于在收到所述从处理器反馈的启动链路确认控制帧后,向所述从处理器发送数据传输准备控制帧;
传输单元,用于在收到数据传输就绪控制帧后,基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧,直至收到所述从处理器发送的数据传输结束控制帧为止;其中,所述数据传输就绪控制帧由所述从处理器响应所述数据传输准备控制帧而反馈;
其中,所述传输单元基于应答机制通过串行外设接口总线与所述从处理器逐个传输数据帧时,具体用于:
每次向所述从处理器发送一个数据帧后,等待所述从处理器反馈接收确认控制帧;其中,所述数据帧携带有预先生成的电力数据分包;
若在预设的超时时长内收到所述接收确认控制帧,向所述从处理器发送下一个数据帧;
若在预设的超时时长内未收到所述接收确认控制帧,重复向所述从处理器发送最近一次发送的数据帧,直至在发送一个数据帧后的超时时长内收到所述接收确认控制帧为止;
或者包括:
每次收到所述从处理器发送的一个数据帧后,向所述从处理器发送接收确认控制帧,以触发所述从处理器发送下一个数据帧。
8.根据权利要求7所述的传输装置,其特征在于,所述启动单元还用于:
若在发送所述启动链路控制帧之后的超时时长内未收到所述启动链路确认控制帧,再次向所述从处理器发送启动链路控制帧,直至在发送所述启动链路控制帧之后的超时时长内收到所述启动链路确认控制帧为止。
9.根据权利要求7所述的传输装置,其特征在于,生成数据帧的过程包括:
获得待传输电力数据;其中,所述待传输电力数据包括数据主题和数据体;
按预设的分包大小将所述待传输电力数据拆分为多个数据分包;
根据预设的数据帧格式将每一个所述数据分包封装为对应的数据帧。
10.根据权利要求7所述的传输装置,其特征在于,所述传输单元还用于:
若重复发送的次数达到次数上限,确定通信链路中断,并返回执行所述向从处理器发送启动链路控制帧,以在所述主处理器和所述从处理器之间建立传输链路步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111033341.5A CN113672545B (zh) | 2021-09-03 | 2021-09-03 | 双处理器间电力数据的传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111033341.5A CN113672545B (zh) | 2021-09-03 | 2021-09-03 | 双处理器间电力数据的传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672545A CN113672545A (zh) | 2021-11-19 |
CN113672545B true CN113672545B (zh) | 2023-11-17 |
Family
ID=78548349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111033341.5A Active CN113672545B (zh) | 2021-09-03 | 2021-09-03 | 双处理器间电力数据的传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672545B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272834A2 (en) * | 1986-12-22 | 1988-06-29 | AT&T Corp. | Inter-processor communication protocol |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
WO2020211202A1 (zh) * | 2019-04-17 | 2020-10-22 | 中车大连电力牵引研发中心有限公司 | 数据传输方法、通信设备和存储介质 |
CN113312298A (zh) * | 2020-02-27 | 2021-08-27 | Oppo广东移动通信有限公司 | 处理器通信方法和装置、电子设备、计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126752A1 (en) * | 2006-08-02 | 2008-05-29 | Baker Steven T | Dual-processor communication |
US8549198B2 (en) * | 2009-03-27 | 2013-10-01 | Schneider Electric It Corporation | Communication protocol |
US11971841B2 (en) * | 2020-05-21 | 2024-04-30 | Intel Corporation | Link layer-PHY interface adapter |
-
2021
- 2021-09-03 CN CN202111033341.5A patent/CN113672545B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272834A2 (en) * | 1986-12-22 | 1988-06-29 | AT&T Corp. | Inter-processor communication protocol |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
WO2020211202A1 (zh) * | 2019-04-17 | 2020-10-22 | 中车大连电力牵引研发中心有限公司 | 数据传输方法、通信设备和存储介质 |
CN113312298A (zh) * | 2020-02-27 | 2021-08-27 | Oppo广东移动通信有限公司 | 处理器通信方法和装置、电子设备、计算机可读存储介质 |
WO2021169690A1 (zh) * | 2020-02-27 | 2021-09-02 | Oppo广东移动通信有限公司 | 处理器通信方法和装置、电子设备、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113672545A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101136828B (zh) | 一种基于rs485多主机有线串行通讯的方法 | |
CN102946376B (zh) | 一种异步通讯的实现方法 | |
CN102710758B (zh) | 一种基于单片机系统的数据流断点续传方法 | |
CN103516673A (zh) | 一种网络数据通信方法、系统及客户端和服务器 | |
CN102567125A (zh) | 一种浏览器页面间通信的方法 | |
CN102237983A (zh) | 非帧结构通讯系统中文件传输方法、发送装置和接收装置 | |
CN110519374B (zh) | ZigBee网络化工业控制系统的边缘计算方法及其边缘节点 | |
CN104660627B (zh) | 一种上位机与下位机的通信方法和系统 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
CN113965307A (zh) | 一种基于仲裁线的全双工spi通信方法 | |
CN110166378B (zh) | 一种用于配网终端调试维护的通信系统及方法 | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
CN104536934A (zh) | 一种串口通信方法及系统 | |
CN1988537A (zh) | 一种数据传输协议 | |
CN101605128A (zh) | Linux主从设备通过以太网接口进行通信的方法 | |
CN110557321B (zh) | 一种信息传输方法、网络设备及终端 | |
CN113672545B (zh) | 双处理器间电力数据的传输方法和装置 | |
WO2024031995A1 (zh) | 一种基于短距离无线通讯的数据交互方法 | |
CN101145968B (zh) | 网管系统和传输设备间数据发送及接收方法 | |
CN111008169A (zh) | 一种低成本高速通信总线及其传输控制方法 | |
CN104429009B (zh) | 用于在数据包的双向传输情况下传输数据包的方法 | |
CN113992740B (zh) | 一种基于自主可控的中间件及数据传输方法 | |
CN110536467B (zh) | ZigBee网络化工业控制系统通信调度方法及其协调器 | |
CN110928828B (zh) | 处理器间业务处理系统 | |
CN110430023B (zh) | 一种适用于SpaceWire总线通讯的数据传输方法 |
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 |