4
0
mirror of https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.git synced 2025-01-22 21:47:11 +08:00

1、【修改】readme文件格式

Signed-off-by: armink <armink.ztl@gmail.com>
This commit is contained in:
armink 2014-06-13 14:17:07 +08:00
parent 0caf994f44
commit e7bae62d52

View File

@ -10,7 +10,9 @@ FreeModbus是一款开源的Modbus协议栈但是只有从机开源主机
- 支持实时操作系统及裸机移植;
- 为应用提供多种请求模式,用户可以选择阻塞还是非阻塞模式,自定义超时时间等,方便应用层灵活调用;
- 支持所有常用的Modbus方法。
### 1.1、文件结构
|源文件 |描述 |
|:------------------------------ |:----- |
|FreeModbus\modbus\mb.c |给应用层提供Modbus从机设置及轮训相关接口|
@ -43,6 +45,7 @@ FreeModbus是一款开源的Modbus协议栈但是只有从机开源主机
> 注所有带_m后缀的文件为主机模式下必须使用的文件如使用从机模式则无需这些文件。
----------
## 二、移植
对于协议栈的移植主要包括两个方面,硬件及软件。用户需要根据自己的需求进行自行选择。
@ -50,10 +53,12 @@ FreeModbus是一款开源的Modbus协议栈但是只有从机开源主机
### 2.1、软件
软件方面支持基于裸机及实时操作系统的移植;支持单个主机与单个从机同时独立运行。另外用户也可以修改协议栈的事件回调接口,使主机请求的接口采用阻塞及非阻塞模式;主机资源等待方面,用户也可以设置等待超时时间等等,诸多功能将会一一介绍。
#### 2.1.1、操作系统与裸机
对于操作系统与裸机目前协议栈都是支持的,但个人更加推荐采用实时操作系统,因为这样会使得接口调用及接口移植变得更加简单。目前提供移植完成的操作系统包括国人的[RT-Thread][1]实时操作系统及uCOS操作系统。
操作系统与裸机移植的过程中涉及的文件为`FreeModbus\port\portevent_m.c`
该文件主要有以下需要用户移植的接口
|接口 |功能描述|
|:----- |:----|
|xMBMasterPortEventInit |主机事件初始化|
@ -75,6 +80,7 @@ FreeModbus是一款开源的Modbus协议栈但是只有从机开源主机
#### 2.1.2、数据缓冲区
数据缓冲区定义的位置位于`FreeModbus\port\user_mb_app_m.c`文件顶部共计4种数据类型。
FreeModbus从机默认使用一维数组作为缓存区数据结构主机可以存储所有网内从机的数据所以主机采用二位数组对所有从机节点数据进行存储。二维数组的列号代表寄存器、线圈及离散量地址行号代表从机节点ID但需要做减一处理例如`usMRegHoldBuf[2][1]`代表从机ID为3保持寄存器地址为1的从机数据。
#### 2.1.3、Modbus数据处理回调接口
Modbus一共有4种不同的数据类型所有的Modbus功能都围绕这些数据类型进行操作。由于不同的用户数据缓冲区结构可能有所不同那么对应的Modbus数据处理方式也就存在差异所以用户需要把每种数据类型对应的操作按照自己的数据缓冲区结构进行定制实现。
所有的Modbus数据处理回调接口如下