[发明专利]一种基于数据链路层的通讯方法有效
申请号: | 201711326024.6 | 申请日: | 2017-12-13 |
公开(公告)号: | CN108055323B | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | 王召;郭欧杰;许元元;冯勋亮;王冬 | 申请(专利权)人: | 中核控制系统工程有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L1/18 |
代理公司: | 核工业专利中心 11007 | 代理人: | 张雅丁 |
地址: | 100176 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于控制系统技术领域,具体涉及一种基于数据链路层的通讯协议。通过本通讯协议实现安全功能的网络访问,调用硬件的收、发驱动,为上层提供应用级的收发接口、完整的发送和接收服务、有效的接收信息,从而使得通讯简单、可靠、安全以及使协议更好适用于控制领域通信。 | ||
搜索关键词: | 一种 基于 数据链 通讯 方法 | ||
【主权项】:
1.一种基于数据链路层的通讯协议,其特征在于:通过本通讯协议实现安全功能的网络访问,调用硬件的收、发驱动,为上层提供应用级的收发接口、完整的发送和接收服务、有效的接收信息;具体包括以下两方面的设计:①确定发送函数流程发送函数不仅发送数据,内部还接收数据,由参数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)确定接收函数流程当上层应用程序被动接收数据时调用该函数,在此之前首先调用查询函数查询控制器工作模式,确定是运行模式时,调用接收函数;接收函数创建一个接收线程,等待接收控制器发来的数据;该线程一直扫描网卡上的缓冲区,如果是控制器发来的数据就取出该部分数据放入到一块共享数据区;上层函数每间隔设定时间读一次该共享数据区,接收线程每间隔设定时间写一次该共享数据区;接收数据线程的步骤如下:第2.1步,上层程序调用通讯接口开始;第2.2步,创建接收线程,并进入下一步;第2.3步,判断创建接收线程是否成功,如果失败,则返回创建失败错误信息,并结束程序,否则进入第2.4步;第2.4步,创建程序处理其他任务;接收函数接收数据步骤如下:第3.1步,创建程序创建接收线程开始;第3.2步,判断接收网卡数据是否成功,如果失败,则返回错误信息,线程结束,否则,进入第3.3步;第3.3步,扫描从控制器接收到的数据,并进入下一步;第3.4步,判断是否找到目的数据,如果未找到,则进行第3.5步,否则进入第3.6步;第3.5步,等待设定时间,进入第3.2步;第3.6步,将目的数据写入缓冲区相应位置,并进入下一步;第3.7步,判断写入是否成功,如果写入失败,则返回错误信息,线程结束,否则,进入第3.5步。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中核控制系统工程有限公司,未经中核控制系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711326024.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种神经剪
- 下一篇:动态播放电视节目的方法、智能电视及存储介质