philo9100
这家伙很懒,什么都没留下
专栏:工业互联
libmodbus 源码分析_1
unit-test-server.c
我们接着从源码的单元测试服务器(从机)libmodbus-3.1.10\tests\unit-test-server.c 的 main 函数开始分析源码执行流和所用的数据结构。推进学习百问网提供的全场景工业互联设备管理系统解决方案,其中有对 libmodbus 源码详细的视频课程讲解。
可以看到对于从机,初始化时的操作是类似的
use_backend = RTU; /* 设置传输模式为 RTU */
ip_or_devi...
libmodbus 源码分析_0
libmodbus源码分析
libmodbus 是一个免费的跨平台支持 RTU 和 TCP 的 Modbus 库,遵循 LGPL V2.1+ 协议。libmodbus 支持 Linux、Mac Os X、FreeBSD、QNX 和 Windows 等操作系统。libmodbus 可以向符合 Modbus 协议的设备发送和接收数据,并支持通过串口或者 TCP 网络进行连接。
如何下载、使用和移植libmodbus请参考百问网提供的全场景工业互联设备管理系统解决方案。
各文件作用如下:
win32: 定义在W...
Modbus 协议_1
6 功能码描述
本篇简要解读几个 MODBUS 应用协议规范 中的功能码和作用,更多详细内容参考协议手册。
百问网提供的全场景工业互联设备管理系统解决方案,其中有对 Modbus 详细的视频课程讲解和功能案例测试。
6.1 01 (0x01) 读取线圈 (Read Coils)
此功能码用于从远程设备读取 1 到 2000 个连续的线圈状态。请求 PDU(协议数据单元)指定起始地址,即第一个指定线圈的地址,以及线圈的数量。在 PDU 中,线圈从零开始寻址。因此,编号为 1 到 16 的线圈在 PDU 中的寻...
Modbus 协议_0
MODBUS 应用协议规范
本篇详解 Modbus 组织 提供的 MODBUS 应用协议规范-V1.1b3,感兴趣的朋友可以移步 Modbus 组织官网 详细了解。
推荐学习由百问网提供的全场景工业互联设备管理系统解决方案,其中有对 Modbus 详细的视频课程讲解和案例测试。
1. 引言
1.1 本文档的范围
MODBUS 是一种应用层消息协议,位于 OSI 模型的第七层[参考],提供在不同类型的总线或网络上连接的设备之间的客户端/服务器通信。
自 1979 年以来,MODBUS 已成为工业界的串行事实...
USB 设备编程_2
USB 设备类型之 CDC (Communication Device Class)
CDC 概述
CDC(Communication Device Class,通信设备类)是 USB 设备类规范中专门用于 USB 通信设备的一类。其主要目的是为各种需要通信功能的设备(如调制解调器、网络适配器、虚拟串口设备等)提供一个统一、标准化的接口,使得主机能够识别并正确地与这些设备进行数据交换和控制。CDC 类中不仅定义了数据传输的基本机制,还包括一些特定的控制和管理命令,确保设备能按照既定的协议工作。
根据 CDC...
USB 设备编程_1
描述符相关源码分析
本章分析百问网提供的全场景工业互联设备管理系统解决方案中有关 USB 设备编程,应用层中关于 USB 设备描述符相关源码进行分析。
ux_device_descriptors.h 源文件分析
重点分析头文件中,关于 USB 中各种设备描述符的定义。
USB 复合设备类型枚举
typedef enum
{
CLASS_TYPE_NONE = 0,
CLASS_TYPE_HID = 1,
CLASS_TYPE_CDC_ACM = 2,
CLASS_TYPE...
USB 设备编程_0
USB 设备编程
本篇将详细描述如何通过在嵌入式设备上(以百问网提供的全场景工业互联设备管理系统解决方案中所使用的 STM32H5 系列开发板为例)实现一个 USB 虚拟串口(Virtual COM Port,VCP),从而让嵌入式系统能够通过 USB 接口与计算机或其他主机设备进行串行通信。
本篇的目标是在大概理解 USB 体系结构和协议的基础上通过移植 USBX 并编写驱动程序来实现 虚拟串口 来进一步学习和理解 USB 在实际开发中的应用。
USBX 组件
推荐学习由百问网提供的全场景工业互联设备管理...