Questions tagged «communication»

设备之间的信息交换。通信可以是有线或无线的。

4
总线和电线之间的区别
我一直在研究通信系统中使用的总线。根据我在Wikipedia上阅读的内容, “在计算机体系结构中,总线(来自拉丁文综合总线,意思是“为所有人”)是一种通信系统,可以在计算机内部组件之间或计算机之间传输数据。此表达式涵盖了所有相关的硬件组件(电线,光纤等)。 )和软件,包括通讯协议。” 这是否意味着电线和总线是同一回事?首先,什么功能使总线与普通电线完全不同?


4
除了“ XBees”之外,青少年和arduino之间还有什么好的交流设备?
到目前为止,我一直在使用XBees交流青少年信息。但是,正如您所知道的,XBees确实很昂贵,当我想让多个设备相互通信时,我必须为几个十几岁的XBees +几笔XBees支付,费用总计超过200美元。 另外,XBee用于两个指定的青少年之间。我希望所有的青少年都能互相交流 是否有任何通讯设备可以让我一次连接多个十几岁的孩子或arduino,而无需购买过多的XBees? 或者什么是通信设备,它可以使范围内的所有设备相互通信? 还是任何其他方式让他们交流而无需使用个别青少年? 如果您能回答任何一个问题,请帮助我!!

4
微控制器与独立供电的PCB之间的通信
在一个板上,我有一个带一个电源的微控制器,在另一个板上,我有一个带独立电源的触发器。我想将微控制器的引脚连接到触发器的复位引脚。我可以只穿线吗?还是需要更多呢?我本来打算这样做,但现在我不确定那是否可行,因为它不是完整的电路,并且两块板的接地层可能不完全相同。这两个板必须具有单独的电源,因为带有DSP的板是预制的,电源来自市电。谢谢

4
Arduino数字引脚和IC之间有多长时间?
我目前的项目涉及使用74HC595移位寄存器来控制LED显示屏,但是该显示屏距离Arduino板可能长达5米左右。计划是在带有Arduino的盒子和带有显示器的外壳之间使用一些DB9 / RS232电缆。长度是否太长,以至于数字信号不能从数字输出引脚传输到移位寄存器而不会下降?

3
相当复杂的传感器网络
我最近正在从事一个项目,这是第一个涉及到足够使传感器网络复杂化的项目。最后,我认为沟通是整体绩效的瓶颈,我想知道更有经验的人会如何解决这个问题。这是一本长篇小说,但我认为这很有趣,因此请坚持使用。问题是设计一种自主飞艇,该飞艇能够导航障碍物路线并将乒乓球放入棕色盒子目标中。开始: 感测器 4D Systems uCAM-TTL摄像机模块-UART接口 HMC6352数字罗盘-I2C接口 Maxbotix Sonar ez4-1针模拟接口 执行器 2个L293D电动机驱动器(连接到简单的爱好电动机)-用于双向驱动6个电动机。他们需要PWM输入才能改变速度。现在,我们的3台电机始终在做相同的事情(控制上下运动的电机),因此它们仅需要我们控制器的2个PWM输出即可控制所有3台电机。其他3个控制横向运动的电机都需要单独控制(全向运动),因此我们的控制器还需要另外6个PWM输出。 伺服电机-PWM接口 控制器 由于稍后将变得清楚的原因,我们最终使用了2个ATmega328P。我们使用Arduino Uno对其进行编程(我们无法访问ISP),但是我们制造了定制PCB,因此我们不必使用arduino板,因为这只会给飞艇增加不必要的重量。至于我们为什么选择ATmega328P的原因,我对arduino环境非常熟悉,我认为这使代码开发变得更快,更容易。 通讯与处理 2个Xbee Basic 2个ATmega328P 带有OpenCV的运行C ++的台式计算机 因此,从相机模块可以看出,我们的大多数项目都依赖于计算机视觉。飞艇只能承载这么多的重量,而在微控制器上实现计算机视觉使我们感到不舒服。因此,我们最终要做的是使用XBee将图像数据中继回台式计算机。因此,在服务器端,我们接收到图像数据,并使用openCV处理图像并从中提取出东西。现在,服务器端还需要知道(来自声纳)的高度信息和指南针信息。 首先的麻烦是由于几个原因,我们无法使相机由微控制器控制。主要问题是uP上的内部存储器无法处理存储整个帧。通过聪明的编码可能有解决此问题的方法,但是出于这个问题的目的,让我们假装这是不可能的。因此,为了解决此问题,我们让服务器端通过XBee收发器发送摄像机命令,而XBee接收器(在飞船上)将其输出连接到摄像机的输入。 下一个难题是,单个ATmega328P上没有足够的PWM来控制所有电机,因为I2C接口使用PWM引脚之一(该死的...)。这就是为什么我们决定使用第二个。该代码实际上实际上完全适合于并行处理,因为高度控制完全独立于横向运动控制(因此2微米可能比连接到PWM控制器的1微米更好)。因此,U1负责2个PWM输出(向上/向下)并读取声纳。U2负责读取指南针,控制6个PWM输出(横向电机)以及读取声纳。U2还负责通过XBee从服务器接收命令。 这导致了我们的第一个沟通问题。XBee DOUT线已连接到微控制器和摄像机。当然,现在我们设计了一个协议,这样我们的微命令将忽略摄像头命令,而摄像头命令将忽略微命令,这样很好。但是,当忽略我们的微指令时,相机会在其输出线上发送回NAK数据。由于该命令是针对微型计算机的,因此我们需要某种方式来关闭相机输出到XBee的功能。为了解决这个问题,我们在相机和XBee(即第一个FET)之间以及在U2和XBee(即第二个FET)之间制作了微控2 FET。因此,当摄像机尝试将信息发送回服务器时,第一个FET为“开”,第二个FET为“关”。 因此,让您大致了解这是如何工作的几个示例: 服务器请求图片-PIC_REQUEST通过XBee到达U2和摄像机。U2会忽略它,并且相机会发回图像数据。 服务器刚刚完成图片处理,并正在发送电机数据以告诉飞艇右转-MOTOR_ANGLE(70)通过XBee进入并到达U2和摄像机。U2识别为微指令,因此关闭了相机的FET(但是相机可能已经响应了NAK?谁知道...)。然后,U2通过更改电动机PWM输出来响应命令。然后,它将相机的FET重新打开(这是默认设置,因为图像数据非常重要)。 服务器意识到我们已经到达障碍物路线的某个位置,默认悬停高度现在需要从90英寸而不是50英寸。SET_HEIGHT通过XBee,与示例2相同。U2识别SET_HEIGHT命令并在U1上触发中断。U1现在退出其高度控制循环,并等待从U2接收串行数据。是的,更多串行数据。此时,U2的FET处于打开状态(而相机的FET处于关闭状态),因此服务器将接收U2也发送到U1的高度。那是为了核实目的。现在,U1将其内部变量重置为height2HoverAt。U2现在关闭它的FET,然后重新打开相机的FET。 我肯定会遗漏大量信息,但是我认为这足以理解一些并发症。最后,我们的问题只是同步所有内容。有时缓冲区中会剩下数据,但是只有3个字节(我们所有的命令都是6个字节序列)。有时我们会失去与相机的连接,必须重新同步。 所以我的问题是:你们建议采用什么技术使所有这些组件之间的通信更可靠/更健壮/更简单/更好? 例如,我知道有人会在板载XBee输出和摄像头之间添加一个延迟电路,以便微机有机会在用NAK响应微指令之前关闭摄像头的通话线路。还有其他想法吗? 谢谢,我确定这将需要进行许多修改,敬请期待。 编辑1:对我们来说,通过微型镜之一拼接摄像机的UART数据似乎是不可能的。相机数据有两个选项:原始位图或JPEG。对于原始位图,相机会尽可能快地向您发送数据。ATmega328P仅具有128字节的串行缓冲区(从技术上讲这是可配置的,但我不确定如何配置),我们认为我们无法将其从缓冲区中取出并足够快地传送到XBee。这就留下了JPEG方法,该方法将它发送到每个包并等待控制器对其进行确认(小的握手协议)。最快速度为115200波特。现在由于某种原因,我们能够通过XBee可靠地传输大量数据的最快速度是57600波特(甚至在我们进行了节点/网络配对以允许自动重发功能之后)。在我们的网络中添加额外的停靠点(将摄像机连接到XBee的微型摄像机,而不是将摄像机连接到XBee的微型摄像机),只会减慢传输过多图像所需的时间。为了使电机控制算法正常工作,我们需要在图像上具有一定的刷新率。

5
\ n \ r作为停止字节的故障安全性如何?
在我的UART通信中,我需要知道所发送消息的起始字节和终止字节。起始字节很容易,但终止字节不是很多。我在消息末尾实现了两个停止字节,即\ n和\ r(十进制的10和13)。UART仅适用于字节0-255的值,那么这有多安全?我可以想象,尽管可能性很小,但当它们不是停止字节时,我的消息可能会依次包含值“ 10和13”。 有没有更好的方法来实现这一目标?

2
通过串行实现MCU的控制命令
我希望将命令界面集成到一个项目中,该项目使我可以接受来自PC的命令。 这个想法是设备将执行其操作,但会收到命令,它将执行该命令。这与我设法找到的大多数示例不同,这只是一个等待串行数据的空闲设备。 因此,例如,一个控制LED并播放动画的设备。假设有3个预设动画,当它打开时,它始终播放数字1。在PC端,我将发送命令“播放预设2”,或“将颜色更改为绿色”,或向设备发送实时实时动画在LED上播放。 所以我的问题是我找不到关于这种“设计模式”的太多信息吗?我不知道从哪里开始。我最接近的是预制的arduino串行解析库。但是我正在寻找更多的C /非arduino /理论方法。 我已经研究了串行协议,但这仅仅是诸如SPI和I2C之类的东西,而不是实际上如何在软件中实现控制/命令接口的东西。 我还发现了有关HDLC的信息,尽管它似乎更多是一种标准/协议。一个类似的线程是 /programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system, 它具有一些非常好的信息,但同样可以做与协议/通信本身。 我试图找到如何编码/实现此功能以创建命令或控制能力。 我是否使用无限循环来监视和捕获传入命令的序列,并使用IF语句列表选择要执行的命令,但是当没有命令且系统应该正常运行时,或者如果它正常运行,会发生什么情况?错过命令? 中断驱动的状态机? 是否有官方名称可用于研究和查找示例? 编辑: 对于任何有相同问题的人,我在研究时都发现了一个非常不错的示例, http://www.adnbr.co.uk/articles/parsing-simple-usart-commands

2
数据如何与FM广播信号一起传输?
当使用3.5插孔耳机在手机上收听FM广播时,有时会显示当前节目的名称或其他“ xyz”信息,那怎么可能? 模拟信号如何包含该信息,移动电话如何从所有混合信号中识别此类数据并以不同的方式显示呢?

5
在高温下选择微控制器之间的通讯
我被分配到一个项目中,以找到具有特定功能的微控制器的多个PCB板之间的最佳通信。我需要所有微控制器与包含CPU的主板进行通信。 我需要从主板向控制器发送一些信息,并从控制器接收响应。每个控制板都是为特定目的而设计的。我不需要在微控制器之间进行通信,但是即使一个微控制器无法通信,也不会影响其他微控制器。目前,我需要有六个微控制器进行通信,但在将来不止如此。我想避免在主板和其他控制器之间建立更多的有线连接(应该更少)。 通讯不受温度(250°F(120°C))和压力(高压)的影响。主板到最终控制器之间的距离可能超过一米。哪种控制器最好?我需要执行一些计算和传感器读数。每个板都有两个以上的传感器。我需要对传感器读数进行一些计算或直接发送值。 我是这种项目的新手。我一直在寻找最好的沟通方式,但我感到困惑的是最好的沟通方式。有人建议我使用CAN通讯。如果我选择CAN通信,哪种类型的微控制器是最好的?我已经附上了一个简单的图表,如下所示。

3
从PIC18s上的I2C开始
对于一个项目,我希望三个PIC(两个从PIC18F4620,一个主PIC18F46K22)通过I2C总线进行通信。稍后,可以添加更多从设备(如EEP​​ROM,SRAM等)。我正在使用C18编译器在C中为这些PIC编写代码。我在Internet上浏览了很多东西,但是找不到用于处理(M)SSP外设的库。我已经在I2C模式下阅读了(M)SSP外设上的这两个PIC的数据表,但找不到如何与总线接口。 所以我需要主库和从库。 您有什么推荐的吗?你在某处有这样的图书馆吗?它是内置在编译器中的吗?如果是,在哪里?网络上有什么好的教程吗?

5
多个arduino通信(1个主设备,n个从设备)
我想开发一个包含以下内容的主/从网络: 1个Arduino主机,可读取传感器并根据传感器信号生成速度斜坡曲线,然后将这些斜坡发送给从机 3个(或更多)Arduino从设备,它们按照主设备发送的斜坡控制12V伺服电机的速度 什么是实现此目的的良好通信协议?串行(SPI)?I2C?还有吗 如果是串行的,那么新的Arduino Leonardo是一个不错的选择吗?选择协议时应考虑哪些问题? 我在想类似的东西: 主: void loop() { update_ramps() for(int i=0; i< num_slaves; i++) { send_to_all(i, ramps[i]); } } 从站1: const int id = 1; int recived_id, recived_value; void loop() { read_data(); if(recived_id == id) { do_motor_step(recived_value); } } 串行通信,其中主机的RX / TX发送到所有从机。 这似乎是一个合理的解决方案吗?

3
使用LED传输数据
我很好奇LED提供的短距离(2或3米)数据传输的可能性,以及通过精心选择的但消费级组件期望的最大数据传输率是多少。我对最小的硬件+“智能”(微控制器)软件解决方案感兴趣。 所以我认为这是一个分为两部分的设计问题: “物理介质”(硬件)层:用于高频信号传输的LED和接收器(光电晶体管)是什么好选择?我应该使用哪种驱动电路? “信号编码”(软件)层:遵循曼彻斯特代码的协议是否有效?还是其他编码协议对于这种媒体更有效? 我要排除的事情:我知道膨胀和健壮的IR5模块,但它们不是为快速数据传输而设计的。我也了解使用相干光(激光二极管)可以提供更好的带宽。同样,没有光纤:数据将通过空中传输。 更新: 进行此设置的动机是替代电力线通信(PLC)或Wifi;因此,带宽在25至100Mb / s范围内就可以解决问题。这也解释了“无纤维”的限制,但是一些最小的反射器是可以接受的。 考虑到我正在考虑的“整个房间”距离,我认为像Ronja这样功能强大/重点突出的解决方案可能会过大(它们实际上具有更高的“ 最小距离 ”)。 考虑到硬件部分:您对使用适当的“非phospor” LED可以获得的高带宽充满信心。在这方面,某些颜色是否比其他颜色更好?我应该在数据表中寻找什么以确保它们具有此特性? 考虑到编码:这种用法比曼彻斯特更好?一些带宽效率更高的东西,例如RLL变体?我比程序员更像是一个程序员,所以我对软件的编码/解码更加放心。但是某些IC是否可以帮助我进行解码(据我所知,这是最困难的部分)?我是否应该在解码之前考虑对信号进行一些预滤波,也许是利用编码协议的频率特性?

5
什么是最受欢迎的嵌入式串行总线?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在设计一种嵌入式设备,希望通过串行总线与第三方外围设备进行互操作。我应该选择SPI,I²C还是其他总线? 外围设备的带宽将非常低(某些传感器通过总线通信,需要定期轮询),并且最有可能在控制器的一米或更短的距离内。控制器的唯一任务是收集传感器数据,以某种方式打包,然后通过另一条总线将其发送到无线模块(尽管传感器总线也有可能被重用)。

9
使电路与计算机通信的方式有哪些?
我是电子黑客的新手。我想知道如何使电路与PC通信。以一个带有一个LED和一个开关的简单电路为例。但是,电路上的开关不用于控制LED。按下它可以传达LED的当前状态。我的计算机上运行着一个程序,其中包含一个UI,一个按钮和一个图形对象。黑色实心圆圈。 我应该能够通过单击屏幕上的按钮来打开和关闭计算机上的LED。 按下板上的开关,应将LED的状态传达给程序。如果指示灯点亮,则黑色圆圈应变为绿色,否则应变为黑色。 我已经描述了一个假设的情况来解释问题。我不是在寻找实现此问题的解决方案,而是想知道如何以一种简单,廉价的方式来实现电路与计算机之间的通信。 线? 无线? 而且,如果您可以建议我应该去哪里看以及应该如何学习电子项目,那将对您有很大的帮助。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.