历史上的今天
今天是:2025年01月05日(星期日)
2018年01月05日 | 简单的RS232C/TTL电平转换和串口取电电路设计与制作
2018-01-05 来源:eefocus
许多单片机的应用中都会使用到串行口与电脑的串行口相连接,进行数据的传输或控制命令的发送与接收。单片机的串口有很大一部分是使用TTL电平标准的(PIC的可以直接连接在电脑串口),它的逻辑1电平是5V,逻辑0电平是0V,而电脑串行口所使用的是RS232C的电平标准,它的逻辑1电平是-3V--12V,逻辑0电平是+3V-+12V。两者的电平范围相差很远,所以连接时需要用到电平转换电路。这样电路有好多种,一般来说商业化的成品会用到MAX232,DS275等专用的RS232、TTL电平转换集成电路,对于普通电子爱好者来说使用这样的器件一来不太好购买,二来使制作的费用提高,那用什么样的电路去代替它们呢?这也是我初初制作单片机结合电脑的应用中所遇到的问题之一,后来找到了一些相关的电路资料,解决了这些问题。以下我就结合自己在实际设计应用的经验来介绍一下这些电路资料,同时也介绍一些自己对串口取电电路设计应用的经验。

图一是使用小功率三极管搭建的电平转换电路,分别用了一个NPN管和PNP管,NPN可以使用常用的9014或BC547,PNP则可以使用常用的9012或BC557。电路分为传送和接收两部分,图一中已用虚线分开了。它们可以分开使用也可以合在一起使用。传送电路使用PNP管。当单片机的TxD信号是逻辑高电平时,Q1截止,RS232C的TxD(PIN3)提供-9V左右(实际电压根据电脑主板上使用的串行接口芯片有所不同)给RS232C的RxD(PIN2)。当单片机TxD信号变为逻辑低电平时,Q1导通,约+5V传给了RS232C的RxD(PIN2)。用这种办法传送数据时,RS232C的TxD(PIN3)必须稳定在-9V左右 。
虚线以下的接收电路,它把RS232C电平转换成TTL逻辑电平。当PC发送数据给RS232C的TxD(PIN3)时,逻辑1电平时是-9V,Q2截止,此时单片机的RxD约为+5V。当RS232C的TxD为逻辑低电平是+9V,Q2导通,单片机RxD此时约为0V。
图一的电路我在自己的单片机应用中也经常用它来代替MAX232,DS275这样的芯片,它不单可以单独使用传送或接收部份,在部分要求双向传输的项目中也可以很好的工作。我通常是使用9600波特率的,但实际也可以工作中更高一点的波特率。也可以把它焊到一个小的8脚IC插座或PCB上直接代换DS275(DS275引脚功能说明请看图二)。


图三是另一种RS232/TTL电平转换电路,对于接收电路,它是和图一的电路是一样的。该电路用2个NPN小功率晶体管,转送电路不需要从RS232C的TxD引用负的电压,而这样做的话,当单片机TxD为高电平时RS232C的RxD为0V(不是如图一的-9V左右),为低电平时RS232C的RxD为+5V,显然这和RS232C的标准不同,但多数PC机串口可以接受这样的电平范围。这个电路可以像图一那样用来代换直接代换DS275芯片。
这两个电路中的晶体管可以使用大部分常用的小功率晶体管去替换,我自己常用9012,9014,BC547,BC557,它们都可以很好的工作。要注意的是它们所产生的电平范围不是标准的RS232电平,所以也不能达到RS232的标称传输距离。
在一些小的应用中通常只要用到一块2051或PIC芯片和少许的小元件,它们的耗电量是很小的,一般有十几毫安就足够了。在我自己的PC遥控器项目中用到一块AT89C2051,一个一体化红外接收头和一个小LED,少许阻容器件和上面所说到的电路的传送部分,总的耗电量只有十毫安多点。我用图四的电路从PC串口直接窃电,效果很好,可以提供5V,二十多毫安的电流。也可以用图五的电路。但要注意的是这两种电路都要求上位软件使串口的7和4引脚变为高电平才可以正常取电,否则无法从串口窃取所需的电压。


上一篇:单片机教程实战1 LED流水灯
下一篇:C51的程序设计规范
史海拾趣
|
0 引言 PFC的控制策略按照输入电感电流是否连续,分为电流断续模式(DCM)和电流连续模式(CCM),以及介于两者之间的临界DCM(BCM)。有的电路还根据负载功率的大小,使得变换器在DCM和CCM之间转换,称为混连模式(Mixed Con ...… 查看全部问答> |
|
一些实验的数据如下: [700pixel*500pixel/14000mmx10000mm]实验室标准长度; 中等线速度为0.5m/s,最大线速度为1M/S,最小可以 为0,当在最小测距信息为49pixel~24.5pixel时可以0.5m/s~1m/s 之间变化,机器人身宽半径为0.39m;K =700pixel/1400 ...… 查看全部问答> |
|
不是说局部变量可以自动释放的吗???我的为什么不行??例如:大概写一 点,说明问题。。 key() //定义一个函数 { int a; } main() //主函数 { key(); while(1); } 为什么我在key函数内每定义一个变量,KELL ...… 查看全部问答> |
|
目录: 第一章 静电场 第二章 静电场的边值问题 第三章 稳定电场 第四章 静磁场 第五章 似稳磁场 第六章 时变电磁场 第七章 平面电磁波 第八章 电磁导波和电磁振荡 第九章 电磁辐射和电磁绕射 第十章 解析函数及其应用 第十一章 特殊 ...… 查看全部问答> |
|
1请问在基本共射放大电路中Ubeq是一个常量吗?它只跟管子构造有关吗?如果是这样的话为什么? 2请问si管是0.6-0.8,Ge管是0.1-0.3伏吗?… 查看全部问答> |




