找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 27661|回复: 0
打印 上一主题 下一主题
收起左侧

关于RS232通信的几点疑惑解释

[复制链接]
跳转到指定楼层
楼主
最近画电路板,对RS232及相关电路比较疑惑,查阅了相关资料,现在罗列出来,以飧读者。 1)      下述在上传的文档中有图片程序下载电路的流程原理:单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.下面请看利用这种原理的两种常用方法:
方法一:      
                              
    请看图一,这是我们最常见的单片机下载电路了,其中从②到⑥属于大家常用的USB转串口线,用这种方案的好处是,如果自己的PC带有串口(可能很老的机器没有USB接口),那么就可以直接给单片机开发板下载程序,因为采用这种方法的开发板必定带有串口接口嘛。当然,如果PC仅有USB接口而不带串口,那么只能找根USB转串口线了(其电路原理就是图中②到⑥),这里我推荐大家使用采用CH340芯片的USB转串口线,而不要采用PL2303的USB转串口线,因为PL2303价钱便宜所以山寨的水货较多,这会导致下载电路不稳定,甚至无法正常下载。同时此方案的坏处是电路板上必定要做一个9针串口接口(太巨大了),这必将增加了电路PCB的面积,当然也就增加了成本啦!(顺便发表下个人见解:那个9针接口实在太丑,又大又重,无形中便降低了自己的设计档次,哈哈。所以不推荐这种方法!)



方法二:

    请看图二,这是我经常采用的单片机下载电路。实践证明效果非常好,几乎没出过任何问题!它的好处是只需要找根普通的USB2.0线(如图二中②)就可以下载了,比找根USB转串口线要轻松的多,同时由于将串口9针接口换成了USB接口,所以电路板的体积、重量也减少了不少,也显得更美观时尚,呵呵。在此强调一点:推荐使用CH340芯片(可以用CH340G,它引脚间距大很容易焊接)而不是PL2303。
最后附上一张CH340的典型应用图(截自STC的文档)


2)      USB转TTL、USB转串口、USB转232的区别首先,为什么要进行转换?
因为单片机通信接口的电平逻辑和PC机通信接口的电平逻辑不同。
有什么不同?
PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有DB9接口(九针口),相应电平逻辑遵照RS-232原则。
而我们的单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。
当然,新手小白买的学习板上肯定都已经集成了类似PL2303、CP2102之类的USB转TTL芯片,相应接口也变成了USB接口;有些学习板上集成的是MAX232之类的TTL转RS-232芯片,相应的接口也变成了DB9接口。
转换的目的是把电平转换到双方都能识别,下面分类举例:
情况1:PC机USB口与不带电平转换芯片的单片机通信
方法:外购USB转TTL模块,如下图所示。该模块一端接入PC机的USB接口,另一端有TXD、RXD、GND、5V、3.3V五个引脚,分别与单片机的RXD、TXD、GND、5V引脚相连,对于采用3.3V供电的单片机则把5V改为3.3V即可。该模块核心就是一块PL2303、CP2102芯片进行USB与TTL电平的转换。

情况2:PC机USB口与集成了USB转TTL芯片的单片机通信
方法:直接用USB线连接即可,只是单片机上的USB接口形式有时会不同,根据A-USB、B-USB、micro-USB、mini-USB分别选择合适的接线
情况3:PC机USB口与集成了TTL转RS-232芯片的单片机通信
方法:外购USB转RS-232模块,如下图所示。该模块核心是在DB9的一端有一块CH340或CH341电平转换芯片,把RS-232电平转换为USB电平

情况4:PC机DB9接口与不带电平转换芯片的单片机通信
方法:外购RS232转TTL模块,如下图所示。该模块一端是DB9与PC机DB9连接,一端是RXD、TXD、VCC、GND与单片机相应引脚连接。其核心是一块max232电平转换芯片。

情况5:PC机DB9接口与成了USB转TTL芯片的单片机通信
方法:一般不会这么进行通信PC机上DB9接口都有了还会没有USB接口?如果非要进行,外购RS-232转USB模块,如上面提到过的
情况6:PC机DB9接口与成了RS-232转TTL芯片的单片机通信
方法:直接用DB9(串口线)连接即可!
用一张图总结一下一上几种情况:




23、串口及相关标准1)      串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别释疑Ø  PointNo.1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。

No.2、接线的时候,一般只接GND、RX(接收)、TX(发送)。不接Vcc等电源线,避免与目标设备上的供电冲突。
     (接线法则:主机的 TX 接目标设备的 RX ,主机的 RX 接目标设备的 TX ,但是很多设计人员为了接线更为直观而故意颠倒标记 RX、TX,可以串200-1kΩ电阻之后尝试交换。或No.4的方法。)

No.3、串口通讯一般不含握手协议,所以可以只接GND、RX用于纯接收,或只接GND、TX用于纯发送。

No.4、串口接线错误可能会烧坏芯片,比如:一个TX拉高的1 灌到了另一个TX拉低的0。
     (不确定目标接线定义的时候,可以拿确定为RX的线试接另一个设备的TX和RX,看是否收到数据。)

No.5、CH340、PL2303、CP2102、FT232R 芯片是 USB转成串口(TTL电平输出)的芯片,需要安装Windows驱动。
     (常用于笔记本增加串口,注意其兼容性不如板载串口。优先选择:FT232R > CP2102 > PL2303 )

No.6、MAX232 是TTL电平与RS232电平的双向转换芯片,不同引脚实现TTL转RS-232 或 RS-232转TTL的功能。
     (TTL与RS232转换芯片很多很多,正向、逆向接口数量不同:比如:MAX202、SP213、MAX3232 )

No.7、TTL电平标准 低电平为0,高电平为1(对GND线电压,标准数字电路逻辑)。
   RS-232电平标准 正电平为0,负电平为1(对GND线高低,电压具体数值不太敏感)。

No.8、RS-485、RS-422 与RS-232类似,但是采用差分信号逻辑,更适合抗干扰/高速传输。这里略过不讲。

No.9、台式电脑后边的D型9针插头(板载串口,公口),是RS-232电平的。可以通过MAX232转换为TTL电平。

Ø  串口、COM口COM口 即 串行通讯端口,简称 串口。这里区别于 USB的“通用串行总线”和“SATA”串行硬盘接口。
一般我们见到的是两种物理形式。D型9针插头(DB9)和 4针杜邦头 两种,早年的25针串口已被淘汰。

下图是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。
四针分别为:GND、TX、RX、VCC。其中GND可以通过焊盘接地判断出来,而VCC一般走线稍粗些。
由于是预留在电路板上的,协议可以有很多种,要看具体设备。
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:120pt;height:39pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:150pt;height:112.5pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:150pt;height:95.25pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
经验是:不管单片机也好、ARM也罢,这些芯片都是数字逻辑的,电平只有高和低,输出肯定是TTL电平的
如果你看到串口线从核心芯片直接连出来,未经其他芯片,那99%是TTL的。STC下载和中九升级都属此范畴。
我目前还未拆出过直接输出RS-232的数字逻辑器件。

下图就是D型9针串口(通俗说法,DB9),左为母口,右为公口。公口在台式电脑后边都可以看到。
     (VGA插头为三排插针,DB9只有两排。有些板载串口没有引出,主板找标记“RS232”的10脚牛角座既是)
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:232.5pt;height:174.75pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
DB9接口的协议常用的只有三种:RS-232、RS-485和RS-422。一般不会是TTL电平,嵌入式设备80%的可能性是RS-232,工业控制设备80%可能是RS-485
其中RS-232在DB9上的针脚定义有标准规范,跨行业/跨设备通用,而RS-485和RS-422基本只有企业规范了。

Ø  实际的转换电路下图是个USB转TTL串口的小板(TTL电平),可以用USB扩展出一个串口。芯片为PL2303HX。
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:5in;height:284.25pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
这是另一种,CP2102芯片的,也是USB转串口(TTL电平)。据说比PL2303的好,实际使用中表现并不明显。
这个小板引出了芯片内置的LDO,多了个+3.3V 电源输出端,可以用于驱动小电流的负载设备。
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:411.75pt;height:222.75pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
在这里说一下,TTL电平还有不同电压的区别,常见3.3V和5V版本。比如某板的核心芯片为3.3V,那么它输出的逻辑1就是3.3V。这个转接板和5V的设备对接,电压触发阈值一般可以满足,建议串470-1k电阻做保险。

除了PL232和CP2102,还有CH340和FT232之类的USB转TTL芯片,不再详述。

上边介绍的都是USB转TTL电平的串口,如果目标设备上是RS-232串口(D型9针接口)咋弄?
再串接一片 MAX232 转换成 RS-232电平就行,一个MAX232内部有两个T,两个R,下图只用了一组T/R。
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:415.5pt;height:179.25pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
你也可以搭一个简单的比较器电路,来实现TTL转RS-232的功能,仔细看图有助于理解电平的概念。
    (注意下图中TTL端的GND-TTL与GND232分开考虑。红色为TTL转RS232功能部分,蓝色为RS232转TTL。)
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:204pt;height:201pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
(这里插播一点我的电路体系:在没涉及电磁波之前,电压这个东西可以当它不存在,电子流动所表现出来的电流才是分析的主体,电流受到阻碍,才会在两端体现出压差。电压永远是差值,某点对某点的差值,然而所有课本总是封装成整套的高级理论一股脑砸给初学者,导致了很多人一辈子都未能形成统一的电路体系。就下边这个电路来说,TxTTL电压大于12/(6.8+1)V时,运放开启了Rx232对GND-TTL的通路。然后我们视线转移到右侧两个560Ω的电阻上,GND232对GND-TTL是6V,而Rx232与GND-TTL相通,那么Rx232对GND232不就是负6V么?这是一个参考系的转移,右侧电路并不知道GND-TTL的存在,只知道Rx232与GND232之间的压差。那么,多出来的负6伏不会有额外的电流么?这就是我说的问题,这其实是同一批电流流经下方560Ω电阻,在电阻两端所产生的压差,Get?电子流动受阻表现出电压,反映到系统里边呈现出两端的压差,而不是电压产生电流。咦,哪里不对?运放的输入为什么要用电压来考虑?因为运放太复杂,运放设计时就花了很大力气去优化电流路径使之表现出更好的电压特性,用封装起来的电压体系去分析运放的外部表现比较容易理解。既然是电流产生电压,那驱动电子流动的能量是什么?举个例子就明白了,水塔。水塔内部控制的还是进水的流速,经过水池的缓冲,对外表现出水压的一致,这就是我们看到的恒压源。水压和流速都是水分子集总表现出来的宏观性状/现象,而不是水流动的原因,重力才是。对电路来说,驱动电子的是沿电路形成的电场,其根源在于电源单向搬移电子的速度。变压器+整流桥不就是液压造浪机+单向阀么?)

MAX232内置了倍压电路来实现升压/负压,所以不需要上图所示的正负电源。
同时带来一个特征,倍压电路需要多个蓄能电容,芯片内部做不下,可以依此在接口附近找芯片确定串口电平。

仔细看下图(从右到左),USB经过PL2303转成了TTL串口(中间那四个窟窿可以引出),再经由MAX232转换为RS-232电平,9针串口引出。(公口,泛指所有带针的口,样子与台式电脑后边自带的串口相同。)

COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:414.75pt;height:265.5pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
下面这是另一款:电平转换依旧用的是 MAX232 ,大同小异。
注意这个输出好像是母口,跟电脑后边的接口不同,千万不要买错性别。
COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑" style="width:415.5pt;height:233.25pt;visibility:visible;mso-wrap-style:square"> COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑">
进阶:MAX232只能转换两个T和两个R,无法实现完整的9针全串口电平转换,所以此类串口转接板只有TX、RX和GND三针有效,对于涉及到串口中其他控制线的目标设备不适用。(PL2303等芯片都转出了TTL电平的全部引脚,只不过MAX232通道数量有限,所以DB9一端很少功能完整的串口。若要全串口电平转换,MAX3232可以实现。)

如下图,只要是 D型9针串口,不会是TTL电平的,没特殊说明就默认是RS-232。所以这根线,不管里边构造怎样的,是 USB转RS-232串口的线,内置了电平转换芯片。如果想用来给STC单片机下载或者升级中九盒子,需要额外再串接一个MAX232板子转换回 TTL电平。



RS232通信协议.pdf

1.11 MB, 下载次数: 17, 下载积分: 黑币 -5

RS232协议标准详解.pdf

143.49 KB, 下载次数: 20, 下载积分: 黑币 -5

单片机的下载电路.docx

953.89 KB, 下载次数: 14, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表