[发明专利]一种基于数据链路层的通讯方法有效
申请号: | 201711326024.6 | 申请日: | 2017-12-13 |
公开(公告)号: | CN108055323B | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | 王召;郭欧杰;许元元;冯勋亮;王冬 | 申请(专利权)人: | 中核控制系统工程有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L1/18 |
代理公司: | 核工业专利中心 11007 | 代理人: | 张雅丁 |
地址: | 100176 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据链 通讯 方法 | ||
本发明属于控制系统技术领域,具体涉及一种基于数据链路层的通讯协议。通过本通讯协议实现安全功能的网络访问,调用硬件的收、发驱动,为上层提供应用级的收发接口、完整的发送和接收服务、有效的接收信息,从而使得通讯简单、可靠、安全以及使协议更好适用于控制领域通信。
技术领域
本发明属于控制系统技术领域,具体涉及一种基于数据链路层的通讯协议。
背景技术
在工业控制系统中(例如DCS),尤其在以安全为主导的控制系统中,底层设备的通讯协议安全显得极为重要。传统的网络通讯协议是以TCP/IP为核心的通信协议,在应用层可以使用相关协议及加密算法保证数据通信的安全。在以 FPGA为基础的控制系统中,通用网络通讯协议已不再适用。由于FPGA并不像CPU那样,基于操作系统的编程降低了设计与编写代码的难度。在某些特定的情形下,还要完成某些特定功能,标准网络通信协议不容易实现其实修改和定制。因此亟需在FPGA编程的基础下,设计一种基于数据链路层的通讯协议。
发明内容
本发明要解决的技术问题是提供一种基于数据链路层的通讯协议,从而重新定义以数据链路层为基础的通讯协议,便于优化,改进通讯效率。
为了实现这一目的,本发明采取的技术方案是:
一种基于数据链路层的通讯协议,通过本软件设计方法实现安全功能的网络访问,调用硬件的收、发驱动,为上层提供应用级的收发接口、完整的发送和接收服务、有效的接收信息;具体包括以下两方面的设计:
①确定发送函数流程
发送函数不仅发送数据,内部还接收数据,由参数recvpkt返回接收到的数据包;连续发送同一数据包15次,并启动计时器,超过一定时间未收到数据,就重新发送该数据包15次,重复该发送步骤,1秒内仍未收到数据,则返回接收数据超时错误;
如果收到数据,则将收到的数据包的帧序号与刚发送的数据包的帧序号进行比较,若相等,则将数据经recvpkt参数传递给上层函数,若不相等则重复发送步骤,1秒内仍未接收到正确数据,则返回未收到正确数据的错误;发送成功一个数据包就将帧序号加1,其步骤如下:
第1.1步,上层程序调用通讯接口开始;
第1.2步,为传来的数据包头部添加mac地址,并进入下一步;
第1.3步,判断发送次数是否超限,如果没有超过发送次数,则进入第1.4 步,否则,返回错误信息,发送结束;
第1.4步,连续发送数据并等待接收,并进入下一步;
第1.5步,如果接收数据超时,则进入第1.6步,否则进行第1.7步;
第1.6步,等待设定的时间,并将发送次数加1,进入第1.3步;
第1.7步,比较发送和接收的帧序号,并进入下一步;
第1.8步,判断帧序号是否相等,如果帧序号相等,进入第1.9步,否则进入第1.6步;
第1.9步,返回接收到的数据,发送数据成功,发送结束;
(2)确定接收函数流程
当上层应用程序被动接收数据时调用该函数,在此之前首先调用查询函数查询控制器工作模式,确定是运行模式时,调用接收函数;
接收函数创建一个接收线程,等待接收控制器发来的数据;该线程一直扫描网卡上的缓冲区,如果是控制器发来的数据就取出该部分数据放入到一块共享数据区;
上层函数每间隔设定时间读一次该共享数据区,接收线程每间隔设定时间写一次该共享数据区;
接收数据线程的步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中核控制系统工程有限公司,未经中核控制系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711326024.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种神经剪
- 下一篇:动态播放电视节目的方法、智能电视及存储介质