PJON项目配置详解:从基础到高级参数设置

PJON项目配置详解:从基础到高级参数设置

PJON PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol. PJON 项目地址: https://gitcode.com/gh_mirrors/pj/PJON

引言

PJON(Padded Jittering Operative Network)是一种多主通信协议系统,支持多种物理层传输方式。本文将深入解析PJON的配置选项,帮助开发者根据项目需求进行灵活配置。

基础配置

缓冲区设置

在包含PJON库之前,可以通过预定义常量来配置缓冲区大小:

#define PJON_MAX_PACKETS 1       // 最大同时处理的数据包数量
#define PJON_PACKET_MAX_LENGTH 20 // 单个数据包最大长度(字节)

这些设置直接影响内存使用和通信能力。较小的值节省内存但限制并发处理能力,较大的值则相反。

物理层策略配置

PJON的核心特性之一是支持多种物理层传输策略,每种策略对应不同的硬件和通信场景:

| 策略名称 | 适用场景 | 通信协议 | 包含方式 | |--------------------|--------------|----------|--------------------------| | SoftwareBitBang | 有线连接 | PJDL | PJONSoftwareBitBang.h | | ThroughSerial | 串口通信 | TSDL | PJONThroughSerial.h | | OverSampling | 无线射频 | PJDLR | PJONOverSampling.h | | AnalogSampling | 光通信 | PJDLS | PJONAnalogSampling.h | | EthernetTCP | 以太网/WiFi | TCP | PJONEthernetTCP.h |

使用示例:

#include <PJONSoftwareBitBang.h>
PJONSoftwareBitBang bus;  // 实例化使用SoftwareBitBang策略

随机种子设置

PJON使用随机数进行多种操作,默认使用A0引脚获取随机种子:

bus.set_random_seed(A1);  // 改为使用A1引脚
bus.begin();              // 初始化时采集随机种子

网络模式配置

PJON支持两种网络模式:

  1. 本地模式(默认):设备间直接通信
  2. 共享模式:支持跨设备路由
bus.set_shared_network(true);  // 启用共享网络模式

通信模式选择

根据项目需求选择通信模式:

bus.set_communication_mode(PJON_SIMPLEX);     // 单工模式(单向通信)
bus.set_communication_mode(PJON_HALF_DUPLEX); // 半双工模式(双向交替通信)

高级功能配置

路由器模式

启用后设备将接收所有数据包,不进行ID过滤:

bus.set_router(true);  // 启用路由器模式

发送者信息

控制是否在数据包中包含发送者信息:

bus.include_sender_info(false);  // 不包含发送者信息

CRC校验

增强通信可靠性:

bus.set_crc_32(true);  // 启用32位CRC校验

数据包处理

bus.set_packet_auto_deletion(false);  // 禁用自动删除数据包

确认机制

bus.set_acknowledge(false);  // 禁用接收确认

数据包标识功能

为每个数据包添加唯一ID,防止重复:

#define PJON_INCLUDE_PACKET_ID
#define PJON_MAX_RECENT_PACKET_IDS 20  // 存储的历史包ID数量

bus.set_packet_id(true);  // 启用包ID功能

网络服务标识

通过端口号区分不同服务:

#define PJON_INCLUDE_PORT
bus.include_port(8001);  // 使用自定义端口8001

硬件标识功能

为设备添加MAC地址标识:

#define PJON_INCLUDE_MAC
uint8_t mac[6] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB};
PJONSoftwareBitBang bus(mac);

bus.include_mac(true);  // 启用MAC地址功能

总结

PJON提供了丰富的配置选项,开发者可以根据项目需求在内存占用、通信可靠性和功能复杂度之间找到平衡。建议从基础配置开始,逐步添加高级功能,并通过实际测试验证配置效果。

PJON PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol. PJON 项目地址: https://gitcode.com/gh_mirrors/pj/PJON

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咎晓嘉Fenton

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值