解决电平不一致难题:串口单线半双工转换电路详解
出处:网络整理 发布于:2026-05-11 14:57:23 | 470 次阅读
利用软件模拟串口功能,通过这个电路能进一步减少串口占用的引脚。虽然 ARM 单片机一般具备硬件单线半双工模式,无需折腾软件时序,但软件串口可以在所有 IO 引脚上实现通信,在某些特定场景下具有很大的便利性。
电路原理

RXD引脚固定为输入模式,且具备内部上拉。
TXD引脚在空闲时输出高电平。
RTX引脚可选择开漏输出模式,并启用内部上拉;或者在输出和输入模式之间切换,输入模式要有内部上拉。
当RTX端发送数据时,RTX引脚为推挽输出模式,此时 CH340 端的TXD引脚必须保持高电平空闲状态。三极管基极跟随TXD引脚保持高电平。若RTX输出高电平,三极管不会导通,RXD内部上拉为高电平;若RTX输出低电平,三极管导通,RXD被拉低。为避免短路,RTX引脚上串了个限流电阻。
当RTX端接收数据时,RTX引脚设为上拉输入模式。当TXD输出高电平,二极管不导通,RTX保持高电平,RXD也保持高电平;TXD输出低电平,就通过二极管把RTX拉低,此时三极管基极也是低电平,不会导通,所以RXD仍然是高电平,CH340 的输出不会干扰它自身的输入。当RTX是开漏输出模式时,效果相同,只有输出低电平会使三极管导通,且能被TXD拉低。

电平不一致的情况
然而,当通信双方的信号电平不一致时,情况就变得复杂了。例如,RTX端的单片机是 3.3V 电平,CH340 则是 5V 电平,1.7V 的压差足以导通二极管和三极管,需要重新考虑电路原理。
若RTX为接收状态,TXD通过二极管输出低电平时,情况和之前一样;但TXD输出的 5V 高电平会通过三极管的 BE 节跑到RTX那边去,因为此时RTX电压比较低,三极管导通。一方面,这会让RTX被输入的 5V 电平拉高,不过有 1k + 100 的限流电阻,问题不大,不会冒烟;单片机的 3.3V 电源轨可能会受到干扰,但 5V 经过两个二极管之后就接近 3.3V 了,问题应该也不大。另一方面,此时三极管导通,RXD的电压会被略微拉低,但应该不足以直接拉到低电平。
若RTX为发送状态,输出低电平时情况没有异常,而高电平时,TXD上的 5V 会跑过去,RXD会被三极管略微拉低,总体来说应该是可以兼容的。
针对这种情况,可以把三极管换成 NMOS,比如 SI2300。这样一来,CH340 一侧的 5V 就不会再冲到单片机一侧了。SI2300 的 GS 阈值电压很低,1.7V 就足以导通,所以RXD还是会被拉低到 3.3V,要是换成阈值比较高的 2N7002,基本就没问题了。使用 NMOS 时,1K 限流电阻也可以去掉。

上一篇:常见的几种MOS管驱动电路
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。













