亚搏电子

arduino和覆盆子PI之间通信的好软件协议?

Papabravo.

Papabravo.

2006年2月24日加入
15,731.
有没有良好的软件协议在Arduino和Raspberry PI之间进行沟通?,一些教程?
在过去的50年里,有许多计算机对计算机通信的软件协议。有些简单直接,而另一些则非常复杂。你可能想从简单直接的东西开始,而不是复杂的,特别是如果你没有任何具体的要求。说到要求,我想你忘了提。

Andrewmm.

2011年2月25日加入
1,228
有没有良好的软件协议在Arduino和Raspberry PI之间进行沟通?,一些教程?
数据速率是多少?
距离是什么?
你会用有线电视吗?
数据是一个方向还是双向?
如果您松散数据会发生什么?这是关键吗?

建议脱口而出

I2C
spi.
RS422
串行RS232.
无线上网
以太网

您可能需要这样的电路板可以快速arduino wifi /以太网
https://www.pjrc.com/store/teensy41.html
Papabravo.

Papabravo.

2006年2月24日加入
15,731.
至少有两个总体高级范式:
  1. 如果协议是用来控制操作的,那么您可以使用<名词><动词>方法。例如:阿波罗导航计算机。
  2. 如果协议用于数据交换,则可以指示<服务> <地址>协议。例如DeviceNet.
可能还有其他的。低级物理层的东西可以是任何东西;那几乎是重要的。

线程启动

meowsoft

加入2月27日,2021年
345.
你想在他们之间传递什么?
信号数据,非常原始,只有模拟和数字引脚值,但在实时和非常高的速度,以太网很好,但我们必须使用运营商级开关,因为数据发送通过开关是带延迟(在微秒)中发送的数据

树莓派需要读取多个arduino模拟和数字引脚值也一些i2c数据实时,每秒钟,并作出决定需要arduino的行动(发送一些模拟,或数字值),然后再从开始循环

在Raspberry编程方面,我们使用多线程Java和Upstart(当应用程序如果停止时也没有失败,它会自动重启)
NSASPOOK.

NSASPOOK.

加入2009年8月27日
8,255
您所需要的只是一个8位透明二进制数据接口,它具有最基本的带外信令,用于两个设备之间的原始字节序列串行协议。我使用了一个9位uart协议(位9用于数据或控制切换)与嵌入式32位CRC传输数据(从和到处理器内存)从一个程序二进制C结构(包含数字和模拟值)直接到另一个远程程序二进制C结构32位和8位控制器之间

线程启动

meowsoft

加入2月27日,2021年
345.
您所需要的只是一个8位透明二进制数据接口,它具有最基本的带外信令,用于两个设备之间的原始字节序列串行协议。我使用了一个9位uart协议(位9用于数据或控制切换)与嵌入式32位CRC传输数据(从和到处理器内存)从一个程序二进制C结构(包含数字和模拟值)直接到另一个远程程序二进制C结构32位和8位控制器之间
一些papper /详细解释?视频 ?

您所需要的只是一个8位透明二进制数据接口,它具有最基本的带外信令,用于两个设备之间的原始字节序列串行协议。我使用了一个9位uart协议(位9用于数据或控制切换)与嵌入式32位CRC传输数据(从和到处理器内存)从一个程序二进制C结构(包含数字和模拟值)直接到另一个远程程序二进制C结构32位和8位控制器之间
也许这不是我的需求

您所需要的只是一个8位透明二进制数据接口,它具有最基本的带外信令,用于两个设备之间的原始字节序列串行协议。我使用了一个9位uart协议(位9用于数据或控制切换)与嵌入式32位CRC传输数据(从和到处理器内存)从一个程序二进制C结构(包含数字和模拟值)直接到另一个远程程序二进制C结构32位和8位控制器之间
不是这样的......你不知道我的问题
C

点击这里

加入了2020年9月22日
94.
物理上RS485或RS232是一个很好的开始

然后你想创建一个帧-即开始/停止字节

一个设备地址,如果您想以后扩展您的网络(输入或输入)

这里的数据

然后一些错误检查(CRC或所有字节的总和)

如果发送错误(重发/忽略/修复错误),您需要考虑如何处理。

我有时必须在非常糟糕的链接上发送数据,我也放入一个滚动整数,可以检测重复,或者检测它何时脱离顺序......它还有助于识别需要怨恨的数据。

我还喜欢使用可打印字符,这样我就可以进行调试

我发现研究OSI层让我很好地掌握在通过链接发送数据时要考虑的事情
NSASPOOK.

NSASPOOK.

加入2009年8月27日
8,255
一些papper /详细解释?视频 ?
Roll Your Own协议的一个例子。

传输数据结构。
https://github.com/nsaspook/mbmc/blob/master/TCPIP演示应用程序/ mbmc.h

PIC32 RS232例程。
https://github.com/nsaspook/mbmc/blob/master/TCPIP演示应用程序/ mbmc.c

PIC18串行传输例程。
https://github.com/nsaspook/mbmc/blob/master/swm8722/solar18f8722/mbmc_vector.c

https://forum.allaboutcircuits.com/...ic-controlled-battery-array.32879/post-352486

最终结果是一种基于网络的32位系统,其监视和控制一个8位系统,该系统收集/传输数据(模拟和数字)并控制太阳能系统。
最后的编辑:
Papabravo.

Papabravo.

2006年2月24日加入
15,731.
信号数据,非常原始,只有模拟和数字引脚值,但在实时和非常高的速度,以太网很好,但我们必须使用运营商级开关,因为数据发送通过开关是带延迟(在微秒)中发送的数据
以太网不止一种。你想要哪一个?
为什么你需要在RPi和Arduino之间进行载波级切换。这看起来太过分了。

Andrewmm.

2011年2月25日加入
1,228
@meowsoft

你说

“不是这样的东西......你不知道我的问题”

也许你可以提供更多的细节来帮助我们,


可能是如何布局的图表,
什么样的环境,是商业还是爱好。
你考虑过什么,拒绝了什么?为什么?

谢谢
Yaakov.

Yaakov.

加入2019年1月27日
2896年
@meowsoft不幸的是,你的描述相当散落。具有功能元素的图形和运行长度的一些维度以及要交换的数据的实际示例将有助于很多。

此外,即使在框图表单中,也可以通过程序使用数据的流程图。

你把我搞糊涂了,你的帖子里充斥着各种各样的信息,我都没法帮你。

线程启动

meowsoft

加入2月27日,2021年
345.
@meowsoft不幸的是,你的描述相当散落。具有功能元素的图形和运行长度的一些维度以及要交换的数据的实际示例将有助于很多。

此外,即使在框图表单中,也可以通过程序使用数据的流程图。

你把我搞糊涂了,你的帖子里充斥着各种各样的信息,我都没法帮你。
好吧……
DickCappels

DickCappels

2008年8月21日加入
7252年
在您真正需要分布式软件的情况下,分布式软件是一个好主意,否则最好坚持使用最简单的协议来完成工作。

你有六个人想要帮助你,但你没有提供任何细节。你真的有一个应用程序在脑海中,还是你只是在尝试一个想法?

请停止删除您的回复。如果这个线程没有平静下来,它可能会被关闭。
最后的编辑:
线程启动 类似的线程 论坛 回复 日期
Pushkar1. 编程语言 4
一个 PCB布局,EDA和模拟 3.
D 编程语言 0
R 微控制器 32
Lambo Av. 乔布斯和职业建议 8
最佳