原文地址:USB和串口(COM)的区别,以及相互转换 作者:shaohui973

有几个概念玩嵌入式的同志经常搞混。也不怨谁,现在的卖家为了一点可怜的销量都在故意混淆串口的概念。
如果你发现本文有哪里含糊,或者任何一点有可能影响理解的地方,请留言,我会修正以便帮助后来的朋友。

Point (所有要点都在这,请仔细阅读):
1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。
2、接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。
(接线法则:主机的 TX 接目标设备的 RX ,主机的 RX 接目标设备的 TX ,但是很多设计人员为了接线更为直观而故意颠倒标记 RX、TX ,如果有问题可以尝试交换RX、TX,不会烧坏设备 。)
3、PL2303、CP2102、FT232R 芯片是用USB来扩展串口(TTL电平输出)的芯片,需要安装Windows驱动。
(常用于笔记本增加串口,注意其兼容性不如板载串口。优先选择:FT232R > CP2102 > PL2303 )
4、MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,不同引脚实现TTL转RS-232或RS-232转TTL的功能。
(TTL与RS232转换芯片很多很多,正向、逆向接口数量不同:比如:MAX202、SP213、MAX3232 )
5、TTL电平标准 是 低电平为0,高电平为1(对地,标准数字电路逻辑)。
RS-232电平标准 是 正电平为0,负电平为1(对地高低,电压具体数值不敏感,甚至可以用高阻态)。
6、RS-485、RS-422 与RS-232类似,但是采用差分信号逻辑,更适合长距离、高速传输。这里略过不讲。
7、台式电脑后边带的D型9针插头(板载串口,公口),是RS-232电平标准的。可以通过MAX232转换为TTL电平。

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

下图是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。

四针分别为:GND、TX、RX、VCC。其中GND可以通过焊盘接地判断出来,而VCC一般走线稍粗些。
由于是预留在电路板上的,协议可以有很多种,要看具体设备。

经验是:不管单片机也好、ARM也罢,这些芯片都是数字逻辑的,电平只有高和低,输出肯定是TTL电平的。
如果你看到串口线从核心芯片直接连出来,未经其他芯片,那99%是TTL的,STC下载和中九升级都属此范畴。
我目前还未拆出过直接输出RS-232的数字逻辑器件。

下图就是D型9针串口(通俗说法,DB9),左为母口,右为公口。公口在台式电脑后边都可以看到。
(VGA插头为三排插针,DB9只有两排。有些板载串口没有引出,主板找标记“RS232”的10脚牛角座既是)
DB9接口的协议常用的只有三种:RS-232、RS-485和RS-422。绝不会是TTL电平,80%的可能性是RS-232。
9针串口的完整定义可以参考这里:http://wenku.baidu.com/view/5c170c6925c52cc58bd6be6e.html

分割线

下图是个USB转TTL串口的小板(TTL电平),可以用USB扩展出一个串口。芯片为PL2303HX。
淘宝卖家经常故意混淆各种串口,但是这个确实是可以给 STC单片机下载程序 和 升级中九盒子的。

这是另一种,CP2102芯片的,也是USB转串口(TTL电平)。据说比PL2303的好,实际使用中表现并不明显。
这个小板引出了芯片内置的LDO,多了个+3.3V 电源输出端,可以用于驱动小电流的负载设备。

上边介绍的都是USB转TTL电平的串口,如果目标设备上是RS-232串口(D型9针接口)咋弄?
再 串接一片 MAX232 转换成 RS-232电平就行,一个MAX232内部有两个T,两个R,下图只用了一组T/R。

你也可以搭一个简单的比较器电路,来实现TTL转RS-232的功能,仔细看图有助于理解电平的概念。
(注意下图中TTL端的GND与GND232隔离。MAX232内置了倍压电路来实现升压,所以不需要外接正负电源。)

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

下面这是另一款:电平转换依旧用的是 MAX232 ,大同小异。
注意这个输出好像是母口,跟电脑后边的接口不同,千万不要买错性别。

进阶:MAX232只能转换两个T和两个R,无法实现完整的9针全串口电平转换,所以此类串口转接板只有TX、RX和GND三针有效,对于涉及到串口中其他控制线的目标设备不适用。(PL2303等芯片都转出了TTL电平的全部引脚,只不过MAX232只用到了TX和RX。若要全串口电平转换,MAX3232可以实现。)

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

USB和串口(COM)的区别,以及相互转换相关推荐

  1. STM32 USB VCOM和HID的区别,配置及Echo功能实现(HAL)

    STM32 USB VCOM和HID的区别,配置及Echo功能实现(HAL ) STM32的USB功能模块可以配置为虚拟串口(VCOM: Visual Port Com)或人机交互设备(HID: Hu ...

  2. Js - Dom原生对象和jQuery对象的联系、区别、相互转换

    Dom原生对象和jQuery对象的联系.区别.相互转换: 联系: 1.jQuery对象:通过jQuery包装DOM对象后产生的对象: 2.两者之间可以相互转换: 区别: 1.jquery选择器得到的j ...

  3. pytorch和Numpy的区别以及相互转换

    pytorch 数值转numpy int(x1.cpu().data.numpy()) pytorch和Numpy的区别以及相互转换 2018年01月17日 19:17:54 阅读数:2654

  4. stm32 usb 虚拟串口 相同_为什么说你要学习USB?(一)

    来源:公众号[鱼鹰谈单片机]作者:鱼鹰OspreyID   :emOsprey本篇笔记为 USB 系列教程第一篇,一共有多少篇鱼鹰心里也没底,鱼鹰不会因为篇幅多而停止,会尽可能的将 USB 讲透,让你 ...

  5. linux内核配置usb虚拟串口,Linux USB虚拟串口设备

    Linux内核中usb设备侧驱动程序分成3个层次:UDC驱动程序.Gadget API和Gadget驱动程序.UDC驱动程序(USB控制器)直接访问硬件,控制USB设备和主机间的底层通信,向上层提供与 ...

  6. STM32 USB虚拟串口原理(上)

    USB虚拟串口是使用USB的CDC(CDC为communication device class(virtual port com))类实现的一种通讯接口.使用STM32自带的USB slave功能可 ...

  7. stm32usb做虚拟串口和键盘_关于stm32f103的USB虚拟串口程序移植

    手边有个项目要用到USB传数据到主机,虽然有很多种方式,但最后还是选择了USB虚拟串口模式,将数据上传至pc端: 然而这就涉及到了移植问题,在keil下官方已经给出了一个完整的USB TO VCOM的 ...

  8. Python set list dict tuple 区别和相互转换 - Python零基础入门教程

    目录 一.前言 二.Python set list dict tuple 区别 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 ...

  9. android usb虚拟串口,USB 虚拟串口简介

    1. USB虚拟串口简介 USB虚拟串口属于USB通信设备类.在物理层通过USB总线,采用虚拟串口的方式为主机提供一个物理串口.在系统内部,USB控制器提供了一个批量传输IN端点和一个批量传输的OUT ...

最新文章

  1. PyTorch 笔记(07)— Tensor 的归并运算(torch.mean、sum、median、mode、norm、dist、std、var、cumsum、cumprod)
  2. jmeter测试java接口测试_简单易学的测试攻略:JMeter测试Java请求示例
  3. python 基本模块 random、os、sys
  4. Django 3.2.5博客开发教程:体验django模板
  5. Github Pages + Jekyll 独立博客一小时快速搭建上线指南
  6. 一款iPhone App推广中得来的18条经验教训
  7. 2010年最令人期待的10款视频游戏
  8. Android应用保活方案的另类出路,让你应用长生不老,实战案例
  9. Vissim 基础教程和技巧
  10. 诺基亚3090微信java,适合Asha系列,微信登陆诺基亚S40平台
  11. 【西语】【1】Te amor 我爱你
  12. 企业征信报告的查询内容有哪些?
  13. 中国报纸今年十大流行语发布:虐俘和审计风暴
  14. python棋盘放麦粒_棋盘上的麦粒有什么问题?
  15. 技术答疑 普通音效、技能音效与动画音效的区别
  16. dependencies和devDependencies的区别
  17. 36-雷达图像基本处理
  18. 关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题
  19. 未标注目标语料是否均适合用于跨语言学习?『基于对抗判别器高效利用未标注语料的跨语言NER算法AdvPicker』
  20. oracle当查询没有输出返回0,Oracle导入SQL脚本执行和常用命令大全

热门文章

  1. oracle自动imp脚本
  2. 移动master 数据库
  3. Linux - MiniFtp实现
  4. Java9新特性系列(模块化系统: Jigsaw-Modularity)
  5. 离线在CentOS上安装CDH
  6. 关于一个tomcat里面放2个项目启动报listener错误
  7. 2016职业技能大赛信息安全管理与评估赛项任务书
  8. 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
  9. SQL优化避免索引失效
  10. dedecms模板中首页实现分页的方法