最近在做MOXA的协议转换工作,对串口、COM口和相关通信协议并不清楚,搜了一圈,这篇文章介绍非常翔实到位,很是受益,特转载保存。
原文地址:http://blog.sina.com.cn/s/blog_6566538d0100r7p8.html
有几个概念玩嵌入式的娃娃们经常搞混。也不怨谁,现在的卖家都在故意混淆串口的概念。
Point (所有要点都在这,请仔细阅读):
1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。
2、接线的时候,一般只接
GND、
RX(接收)、
TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。
3、PL2303、CP2102、FT232R 芯片是用USB来扩展串口(TTL电平输出)的芯片,需要安装Windows驱动。
4、MAX232芯片是TTL电平与RS232电平的专用
双向转换芯片,不同引脚实现TTL转RS-232或RS-232转TTL的功能。
5、TTL电平标准 是
低电平为0,高电平为1(对地,标准数字电路逻辑)。
6、RS-485、RS-422 与RS-232类似,但是采用差分信号逻辑,更适合长距离、高速传输。这里略过不讲。
串口、COM口:
COM口 即 串行通讯端口,简称 串口。这里区别于 USB的“通用串行总线”和“SATA”串行硬盘。
一般我们见到的是两种物理形式。
D型9针插头(DB9)和
4针杜邦头 两种,早年的25针串口已被淘汰。
这是常见的
4针串口,在电路板上常见,经常上边还带有杜邦插针。
四针分别为:GND、TX、RX、VCC ,还有时候有第五根针,3.3V电源端(那么VCC就是指5V)。
由于是预留在电路板上的,协议可以有很多种,要看具体设备。
经验是:不管单片机也好、ARM也罢,这些芯片都是数字逻辑的,电平只有高和低,
输出肯定是TTL电平的。
如果你看到串口线从核心芯片直接连出来,未经其他芯片,那99%是TTL的。
想输出RS-232电平?还需要额外的升压/倍压/负压电路 和驱动。
下面这个就是
D型9针串口(通俗说法,DB9),左为母口,右为公口。在台式电脑后边都可以看到。
9针串口的定义可以参考这里:
http://wenku.baidu.com/view/5c170c6925c52cc58bd6be6e .html
我们一般只接出RXD TXD两针,外加GND。
**************************************分割线**************************************
下图是个USB转TTL串口的小板(TTL电平),可以用USB扩展出一个串口。芯片为PL2303。
淘宝卖家经常故意混淆各种串口,但是这个确实是可以给 STC单片机下载程序 和 升级中九盒子的。
这是另一种,CP2102芯片的,也是USB转串口(TTL电平)。
据说比PL2303的好,实际使用中表现并不明显。这个小板多了+3.3V 电源端,以适应不同的目标电路。
上边介绍的都是USB转TTL电平的串口,如果目标设备上是RS-232串口(D型9针接口)咋弄?
再 串接一片 MAX232 转换成 RS-232电平就行,一个MAX232内部有两个T,两个R,下图只用了一组T/R。
你也可以搭一个简单的比较器电路,来实现TTL转RS-232的功能,仔细看图有助于理解电平的概念。
RS-232转TTL咋弄?这就需要你动点脑子咯。
当然,早有人想到了做一款成品。USB转RS-232串口。
仔细看下图,USB经过PL2303转成了TTL串口(中间那四个窟窿可以引出),再经由MAX232转换为RS-232电平,9针串口引出。(公口,泛指所有带针的口,样子与台式电脑后边自带的串口相同。)
进阶:MAX232只能转换两个T和两个R,无法实现9针全串口的电平转换,所以此类串口转接板只有TX、RX和GND三针有效,对于涉及到其他控制线的目标设备不适用。(PL2303等芯片都转出了TTL电平的全部引脚,只不过MAX232只用到了TX和RX。若要全串口转换,MAX3232可以实现。)
你或许会买到如下图这种:看起来里边只有一个牛屎芯片的。
但是记住一点,只要是 D型9针串口,不会是TTL电平的,没特殊说明就默认是RS-232。
所以这根线,不管里边构造怎样的,是 USB转RS-232串口 的线,内置了电平转换芯片。