当前位置: 首页 > 软件库 > 其他开源 > 开源硬件 >

PJON

Arduino 通讯总线方案
授权协议 未知
开发语言 C/C++
所属分类 其他开源、 开源硬件
软件类型 开源软件
地区 不详
投 递 者 李嘉胜
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

PJON (Padded Jittering Operative Network) 是一个简单的连线、多 master 通讯总线系统。是 i2c 、1-Wire、串口以及其他 Arduino 兼容协议的替代方案。

特性

  • 单个物理层连接,可支持高达 50 个节点

  • 实现了设备编码来支持高达 254 个设备通讯

  • 循环冗余校验 (CRC).

  • 确保数据包发送的正确

  • 多 master 支持中的避免冲突

  • 提供广播功能

  • 包管理机制来跟踪和重新发送失败的数据包发送

  • 错误处理

性能

  • 传输速率: 32256 baud/s or 4.32kB/s

  • 带宽: 2.7kB/s

  • 精确度: 99.95%

兼容性

  • Arduino Diecimila / Duemilanove

  • Arduino Mini

  • Arduino Uno

  • Arduino Nano

  • Arduino Mega

示例代码:

#include <PJON.h>     // Transmitter board code
PJON network(12, 45); // Bus connection to pin 12, device id 45

void setup() {
  network.send(44, "B", 1, 1000000); 
  // Send to device 44, "B" content of 1 byte length every 1000000 microseconds (1 second)
}

void loop() {
  network.update();
}

/* ---------------------------------------------------------------------------- */

#include <PJON.h>     // Receiver board code
PJON network(12, 44); // Bus connection to pin 12, device id 45

void setup() {
  network.set_receiver(receiver_function); // Set the function used to receive messages
};

static void receiver_function(uint8_t length, uint8_t *payload) {
  if(payload[0] == 'B') { // If the first letter of the received message is B 
    digitalWrite(13, HIGH);
    delay(30);
    digitalWrite(13, LOW);
  }
}

void loop() {
  network.receive(1000);
}
 相关资料
  • 线程间通讯接口 模块   信号量   信号量接口     互斥量   互斥量接口     事件   事件接口     邮箱   邮箱接口     消息队列   消息队列接口     信号   信号接口   结构体 struct   rt_ipc_object   IPC基类控制块 更多...   宏定义 #define  RT_IPC_FLAG_FIFO   0x00   先进先出模式   #de

  • 我们继续看到Azure服务总线的不稳定性,并正在寻找替代方案。理想情况下,我们希望能够在Windows 2012 R2域中本地运行,并拥有许多与Azure SB相同的功能集。我们已经查看了Windows 1.1的服务总线,但是该产品已经有一段时间没有更新了,我们也不确定它的未来。我们使用C#,因此理想情况下会有一个客户端API/包装器,使与现有应用程序的集成相对容易。完全可以接受开源和自由软件。:

  • 本文向大家介绍Android后台线程和UI线程通讯实例,包括了Android后台线程和UI线程通讯实例的使用技巧和注意事项,需要的朋友参考一下 本节向你展示如何在任务中发送数据给UI线程里的对象,这个特性允许你在后台线程工作,完了在UI线程展示结果。 在UI线程定义一个Handler Handler是Android系统线程管理框架里的一部分。一个Handler对象接收消息,并且运行代码来处理消息。

  • 本文向大家介绍Android Easeui 3.0 即时通讯的问题汇总,包括了Android Easeui 3.0 即时通讯的问题汇总的使用技巧和注意事项,需要的朋友参考一下  0、关于注册账号就不用说了。 1、创建应用、获取appkey 0、创建应用 1、填写信息 2、获取appkey 2、集成 0、首先新建一个工程 1、这里主要介绍使用easeui来集成环信的即时通讯功能,需要下载sdk 2、

  • $config = [ 'corp_id' => 'xxxxxxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxx', // 通讯录的 secret //... ]; $contacts = Factory::work($config); 成员管理 创建成员 $data = [ "userid" => "overtrue",

  • SPI通讯 OMAP芯片会使用一个串行外围接口,实现一个适合的协议,与V850芯片通讯。这个通讯包括了刷新V850芯片,执行DTC操作和发送CAN信息。实际上,这个通讯是在一个高级别上,通过各种服务实现的。在低级别上,可以通过读取和写入‘/dev/spi3’来实现直接通讯。 不过,似乎没有命令能让OMAP芯片来要求V850将数据字节发送给任意CAN ID。但是,V850内置了一系列的命令ID,多数

  • 本文向大家介绍PHP实现Soap通讯的方法,包括了PHP实现Soap通讯的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现Soap通讯的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的PHP程序设计有所帮助。

  • Lync (后来被微软收购之后改名为 Skype for business) 没有 linux 版本,但是我们可以通过 pidgin 这个IM通用外壳配置 sipe 插件来实现和 Lync 的兼容和相互通讯。 注: 方案不够完美,但是至少,可以解决有没有的问题。 Pidgin 上一节介绍到,Linux Mint 18 自带 pidgin,也可以自行卸载再从源码编译安装到最新版本。 特别说明: 手工