睿远研究院丨IO-Link设备开发指南(1)
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配置管理模块详解Rasight06-10 17:30
-
新闻中心丨睿远参加2025华南国际工业博览会Rasight06-06 17:01
-
睿远研究院丨IO-Link规范解读(十):OD处理模块与DPP字节解析Rasight05-13 14:56
评论0条评论