1个串口用1根线实现多机半双工通信+开机控制电路

这篇具有很好参考价值的文章主要介绍了1个串口用1根线实现多机半双工通信+开机控制电路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

功能需求:
主机使用一个串口,与两个从机进行双向通信,主机向从机发送数据,从机能够返回数据,由于结构限制,主机与从机之间只有3根线(电源、地、数据线),并且从机上没有设物理的电源开关,需要通过与主机连接的数据线来控制开机,总结如下:
1、数据线只有1根
2、能够双向通信
3、主机能够控制从机开机
4、主机可以单独向1个从机发数据,也可以同时向两个从机发送数据

根据需求,设计出如下电路:1个串口用1根线实现多机半双工通信+开机控制电路

工作原理分析:
VCC_24V_IN 、GND、LINE_L(LINE_R)三根线接线连接到从机,电源开启电路是从机内部的电源控制。
开机的逻辑*
主机先上电,LINE_L因为主机的R1上拉而有高电平,使Q6导通,Q5的G极电压被拉低而导通,VCC_24V电压向从机供电,从机MCU启动后,将PWR_EN拉高,维持电源导通。
关机的连逻辑:
从机MCU将PWR_EN拉低,Q7截止,当主机关机后,LINE_L没有电压,Q6截止,Q5的G极电压变高而截止,从机断电。

主机向从机发送数据:
主机的UART_TX脚输出低电平时,D2\D3二极管是正向导通,将L_RX拉低,输出高电平时,D2\D3二极管是反向截止,L_RX保持高电平,实现了主机向从机发送数据;而L_TX因为D1的隔离,保持电平不变;UART_RX会则通过D4又收到了TX发来的数据,因此在发送数据时,软件要把RX功能先失能。
工作条件:1、主机的TX_EN1为低电平,Q2截止;2、RX接收失能;3、从机的TX失能;

从机向主机发送数据:
从机的TX发送数据,与主机的发送工作原理相同。

因为数据线只有一根,为了保证数据信号不冲突,需要如下约定。
1、总是由主机先发送数据,从机一直处于接收状态,在收到主机的数据后,将RX接收失能,使能TX,切换为发送状态,向主机发完数据后,又切换为接收状态。
2、因为主机的TX\RX都是一根线分到两个从机,两个从机会同时收到数据,因此必须约定从机发数据的先后顺序,否则主机收到的数据会出错。
3、主机可以通过拉高TX_EN1脚,使LINE_L电压变低,从机就收不到数据。
4、因为二极管会产生压降,为了保证MCU能正确识别到高低电平,需选用0.3V压降的二极管,两个二极管加起来压降小于0.7V

此电路不需要用到多路选择芯片,线路简洁元件少成本低。
----------------文档结束-----------------文章来源地址https://www.toymoban.com/news/detail-420902.html

到了这里,关于1个串口用1根线实现多机半双工通信+开机控制电路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++实现websocket单server单client全双工通信(基于boost!!!)

       自身环境:ubuntu18.04+gcc7.5.0+boost1.7,3   gcc或者g++一般都有,这里主要介绍一下boost的配置方法   执行如下代码:   装完后发现还是会报错:#include <boost/beast/core.hpp> no such file   这个时候再加一个:   然后编译执行代码就可以了,在这里说明下我不太确定是

    2024年02月11日
    浏览(31)
  • Linux/Ubuntu下多机间基于socket通信进行数据交互及C++代码实现

    项目需要两台主机(视觉端Nvidia AGX Xavier;控制端Intel NUC10i7)进行机器人位姿、关节指令等double数据传输,计划使用socket通信实现; 两台主机通过一条网线建立局域网,分别创建新的有线连接: 服务器端:ipv4:192.168.56.3;子网掩码:255.255.255.0;网关:192.168.56.1 客户端:i

    2024年02月02日
    浏览(37)
  • 【51单片机】串口通信&&使用串口通信控制LED灯

    🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Promise】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔串口通信 😎代码   🍔串口初始化 ⭐分析  🏳️‍🌈确定T1的工作方式 🎈TMOD=0X20;  🏳️‍🌈确定T1的初值 🎈

    2024年02月17日
    浏览(38)
  • 【硬件控制】5. Pico使用串口与电脑通信

    前几节都是在讲树莓派与外部的元件通信,本节来讲树莓派如何与电脑通信 本篇文章会教大家开发一个这样的上位机软件,用来和Pico通信,文章较长,耐心看完 先看一下树莓派Pico的引脚图吧 我们可以看到上面有UART的引脚,UART又分为TX和RX UART是串口的一种,可以用来通信,

    2024年02月16日
    浏览(33)
  • 智能家居(2)---串口通信(语音识别)控制线程封装

    封装语音线程(语音通过串口和主控设备进行交流)实现对智能家居中各种灯光的控制 mainPro.c(主函数) inputCommand.h(控制类) voiceControl.c(语音)

    2024年02月13日
    浏览(33)
  • STM32—HAL库中断/DMA控制和完成串口通信

    目录 一、解决的问题 二、串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理   1、 串口协议和RS-232标准:  (1)串口协议: (2)RS-232 标准:   2、RS232电平与TTL电平的区别   3、USB/TTL转232“模块(CH340芯片为例)  (1)基本原理:  (2)CH340模块介绍: ​三、搭

    2024年02月02日
    浏览(62)
  • STM32入门笔记10_USART串口通信+案例:上位机控制LED亮灭(USART串口通信、TIM定时器、EXTI综合案例)

    通信的目的: 将一个设备的数据传送到另一个设备, 扩展硬件系统 通信协议: 制定通信的规则, 通信双方按照协议规则进行数据收发 名称 引脚 双工 时钟 电平 设备 USART TX、RX 全双工 异步 单端 点对点 I2C SCL、SDA 半双工 同步 单端 多设备 SPI SCLK、MOSI、MISO、CS 全双工 同步 单端

    2024年02月09日
    浏览(31)
  • STM32机器人控制开发教程No.4 使用串口通信控制电机(基于HAL库)

    在机器人控制中,单片机(Arduino/STM32)与上位机(Raspberry Pi/NVIDIA Jetson nano)之间的通信经常采用串口通信的方式,那应该如何使用STM32的串口通信以及根据自己定义的协议来完成数据的接收与发送呢?在本篇文章中将给你演示如何通过自定协议来完成对电机的控制以及获取编码

    2023年04月25日
    浏览(50)
  • 全双工通信协议:WebSockets+STOMP

    WebSocket 协议定义了两种类型的消息(文本和二进制),但是它们的内容是未定义的。 STOMP (Streaming Text Oriented Messaging Protocol)是一种简单的、基于文本的消息传递协议,提供了一组命令和消息格式,用于在客户端和服务端之间发送和接收消息。客户端可以通过连接到消息代理(

    2024年02月20日
    浏览(35)
  • IIC协议——同步半双工串行通信方式

    2023.4.22 IIC : Inter-Integrated Circuit ,集成电路总线 半双工协议 多主设备,多从设备。通过地址索引,I2C可以使能所需从设备 实现不同集成电路组件之间的控制功能 接口减少,控制简单,只需要两条总线 通信速率高 多主控,但任意时刻只有一个主控有效。最大主设备——无限

    2023年04月23日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包