功能需求:

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

1、数据线只有1根

2、能够双向通信

3、主机能够控制从机开机

4、主机可以单独向1个从机发数据,也可以同时向两个从机发送数据


根据需求,设计出如下电路:

image.png

工作原理分析:

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


此电路不需要用到多路选择芯片,线路简洁元件少成本低。


————————————————

版权声明:本文为CSDN博主「_祥子@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Lennon8_8/article/details/129217257