# iolink-open-stack **Repository Path**: MagicBude/iolink-open-stack ## Basic Information - **Project Name**: iolink-open-stack - **Description**: 开源IO-Link协议栈及设备与主控实现的学习资料,具有清晰的分层设计、可移植的C语言库及实用文档。 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: IO-Link, protocol-stack, sensor, C-language ## README # IO-Link Open Stack 一个面向工程实践的 IO-Link 开源项目。 - 提供分层解耦、可移植的 IO-Link 协议栈(优先实现 Device,后续扩展 Master)。 - 配套完整的中文文档,覆盖协议原理、协议栈实现、时序与性能调优。 - 既可以作为学习资料库,也可以作为开源代码库,方便集成到实际产品中。 > 本仓库目前处于早期阶段,**文档已基本完成**,协议栈代码将按照“先 Device、后 Master、逐步完善”的方式演进。 ## 仓库结构(规划) - `docs/` - `01_IO-Link_协议与系统解析/`:从系统和协议视角讲解 IO-Link 原理与分层模型。 - `02_IO-Link_协议栈实现与时序/`:从工程视角讲解协议栈实现、时序和多端口调优。 - `stack/` - `include/`:对外公开的 C 语言头文件(API、类型定义、平台抽象接口)。 - `src/`(规划中):协议栈核心实现,按 `common/`、`device/`、`master/` 分层组织。 - `platform/`(规划中):参考平台适配层实现,例如裸机 MCU、RTOS、POSIX 仿真等。 - `examples/`(规划中):最小可运行示例工程(优先提供 Device 示例)。 - `tests/`(规划中):单元测试与协议回归测试。 ## 设计原则 - **分层解耦**: - Core 层只依赖平台抽象接口(PAL),不直接访问具体硬件寄存器; - 应用/产品逻辑只通过公开 API 与协议栈交互。 - **可移植性**: - 以 C 语言实现核心库,尽量避免与特定编译器/RTOS 绑定; - 平台相关部分集中在 `platform/` 中,通过接口结构体与 Core 对接。 - **工程导向**: - 代码结构与文档内容一一对应,便于阅读和学习; - 在满足规范的前提下,优先考虑实现复杂度、可调试性和可维护性。 ## 当前状态 - 文档: - [x] 协议与系统解析系列(6 篇) - [x] 协议栈实现与时序系列(6 篇) - 协议栈代码: - [ ] Device Core 初始版本 - [ ] Master Core 初始版本 - [ ] 参考平台适配层与示例 在后续迭代中,协议栈代码会按照文档中的分层与模块划分逐步补齐,并通过示例与测试用例进行验证。