睿远研究院丨IO-Link设备开发指南(1)

Rasight 20250428

IO-Link 设备开发指南

- 协议栈移植

前言

书接上回,既然IO-Link技术有这么多应用优势,那一定会有童鞋想问,开发带有IO-Link功能的传感器,是不是门槛很高?投入很大?

No,No,No!

基于“谷神”IO-Link从站协议栈移植,仅需四步。

概念介绍

⭐️什么是协议栈⭐️

协议栈(英文:Protocol stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现。

协议套件中的一个协议通常是只为一个目的而设计的,这样可以使得设计过程变得更容易。因为每个协议模块通常都要和上下两个其他协议模块通信,它们通常可以想象成是协议栈中的层。最低级的协议总是描述与硬件的物理交互,每个高级的层次增加更多的特性,用户应用程序只是处理最上层的协议。

简单来说,客户通过使用协议栈,可以大幅度降低对应协议的开发难度,以最高效的方式完成功能开发。




⭐️“谷神”IO-Link从站协议栈⭐️




“谷神”IO-Link协议栈采用C语言编写,由睿远独立自主研发,支持最新的IO-Link协议V1.1.3版本以及IO-Link SSP4.0行规。目前,睿远已获得国家版权局颁布的软件著作权,实现IO-Link协议栈的自主可控,在IO-Link领域填补了国内的技术空白。



行动计划


⭐️第一步:外设初始化

    各个MCU的GPIO初始化步骤都是类似的,主要设置 LED、EN、WAKEUP三个GPIO端口。在设置 UART 初始化之前,需要选择需要进行收发IO-Link报文的UART接口。最后就是进行TIM定时器初始化设置。



⭐️第二步:MCU硬件的适配函数

  ✔️GPIO读写适配

  ✔️UART收发报文适配:建议采用阻塞发送模式和中断接收模式,如果有 DMA,也可以采用DMA发送

  ✔️FLASH适配:参数可以保存到FLASH中,也可以保存EEPROM中

  ✔️其他的一些适配函数:其他一些适配函数主要是时间相关、重启命令等

  ⭕️需要注意的是,系统 tick、延迟都是以毫秒为计量单位。系统tick的获取,我们是通过配置系统定时器来获取,1ms一次定时,每次中断 tick++,则获取到当前运行的时间



⭐️第三步:用户程序(user_app)

    用户程序部分有几个重要的函数,包括初始化和主循环函数。初始化函数是用来初始化 IO-Link协议栈以及用户自定义部分的数据,包括增加ISDU、设置一些通讯参数等。




⭐️第四步:主循环(main)

  最后一步,在主程序,把相关初始化设置函数在main函数里按照顺序填入,在主循环里把IO-Link的主循环填入。




剩下的工作就是调试与定位啦!


结语


篇幅有限,本文简要描述了“谷神”协议栈的移植过程,“谷神”协议栈的移植不受MCU选型限制。在下一篇文章中,我们将以极海APM32F103VB系列MCU为例,用案例方式进一步展开IO-Link从站移植过程,敬请期待!



查看全文

点赞

Rasight

南京睿远工业互联专注于IO-Link研发、智能传感器方案应用

作者最近更新

  • 睿远研究院丨IO-Link规范解读(十五):CM配置管理模块详解
    Rasight
    06-10 17:30
  • 新闻中心丨睿远参加2025华南国际工业博览会
    Rasight
    06-06 17:01
  • 睿远研究院丨IO-Link规范解读(十):OD处理模块与DPP字节解析
    Rasight
    05-13 14:56

期刊订阅

相关推荐

  • 汉威科技:公司传感器已在国际具有一定的知名度和影响力,将力争在传感器行业领域产出更多的创新产品

    传感器专家网 2022-05-26

  • 从源头控制污染:甲烷传感器在油气回收中的应用

    四方光电 2024-09-12

  • 福州大学:可控超大孔结构和高延展性的明胶水凝胶传感器!

    传感器专家网 2022-05-24

  • 国产替代正当其时,四方光电引领柴油发动机氮氧传感器技术突破

    四方光电Cubic 03-14 16:00

评论0条评论

×
私信给Rasight

点击打开传感搜小程序 - 速览海量产品,精准对接供需

  • 收藏

  • 评论

  • 点赞

  • 分享

收藏文章×

已选择0个收藏夹

新建收藏夹
完成
创建收藏夹 ×
取消 保存

1.点击右上角

2.分享到“朋友圈”或“发送给好友”

×

微信扫一扫,分享到朋友圈

推荐使用浏览器内置分享功能

×

关注微信订阅号

关注微信订阅号,了解更多传感器动态

  • #{faceHtml}

    #{user_name}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 查看评论 回复

    共#{comment_count}条评论

    加载更多

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} #{reback} 回复

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 回复

  • 关闭
      广告