TTL和RS232之间的详细对比

【背景】

之前就听过TTL,一直没搞懂其和RS232的区别。

最近,打算去买个USB转RS232的芯片,结果找到此产品:

六合一多功能USB转UART串口模块CP2102 usb TTL485 232互转自恢复

正面:

背面:

其中的:

以及引脚说明:

都提到了,不仅仅支持RS232,还支持TTL。

所以,再次遇到TTL,需要去搞清楚,TTL和RS232的区别。

 

【折腾过程】

1.参考:

RS-232 vs. TTL Serial Communication

整理如下:

常见的微控制器中,都有了内置的UART(Universally Asynchronous Receiver/Transmitter)。

UART可以用来已串行方式收发数据。

UART是,以固定的某个速率(1200bps,9600bps,115200bps等),一次只能只传输一个bit比特位(所以叫做串行传输)

这种串行通信的方法,有时候也被叫做TTL(Transistor-Transistor Logic)Serial。

这种串行通信,在TTL级别上来说,对应的物理电平,始终是在0V和Vcc之间,其中常见的Vcc是5V或3.3V。

其中:

逻辑高电平==’1’==Vcc

逻辑低电平==’0’==0V

 

与此相对应的是:

你的(台式机,笔记本等)电脑中的串口,是和RS232(通信标准)所兼容的(所一致的) => 不是和TTL的标准所一致的

RS232和TTL在软件协议层面是一样的

RS232的标准中,和你的微控制器中的串行信号所一样的,有:

  • 也是:一次只传输一个bit比特位 -> 表示是serial
  • 也是:也是以某个固定的速率去传输的->baudrate
  • 也是:带或不带,parity极性->即校验位
  • 也是:带或不带,停止位stop bit(s)

 

RS232和TTL唯一不同在于硬件:电平表示的逻辑含义不同(相反)

RS232和TTL,唯一的,最根本的不同在于:

硬件(机制)不同:

(1)TTL

逻辑高电平==’1‘==Vcc==3.3V或5V

逻辑低电平==’0‘==0V==0V

 

(3)RS232:

逻辑高电平==’0‘==负电压== -3V~-25V==常为:-13V

逻辑低电平==’1‘==正电压== 3V~25V==常为:13V

 

为何RS232中要(很奇怪的)用负电压表示逻辑高电平呢?

按理来说:

TTL用正电压(3.3V或5V)表示逻辑1,用0电压表示逻辑0,是相对来说,比较符合人类的逻辑的

但是,为何RS232却,很奇怪的,用负电压表示逻辑高电平==1,呢?

那是因为:

此设计(用负电压表示逻辑1,正电压表示逻辑0)相对来说,更加:

  • 抗(外界的电磁)干扰
  • 抗外界的(电磁信号)噪音干扰
  • 抗(信号的)衰减
    • 使得和同样的TTL信号相比,RS232信号可以传输的更远

由此使得:

信号传输,相对更加稳定和可靠。

 

RS232和TTL时序图对比

对于同样传输0b01010101来说,RS232和TTL的时序对比:

 

 

RS232和TTL之间的转换

RS232和TTL之间的转换,不仅仅是简单的电平转换,还要考虑到其他一些因素,比如调节和矫正一些电平(提高或降低对应的电平),确保可能的有害的RS232电压不会破坏微控制器的串口针脚。

关于如何在RS232和TTL之间转换,目前已经有很多种解决方案了。

比如:

RS-232 vs. TTL Serial Communication

中的MAX-232

 

总结

很多知识,都是慢慢积累,才慢慢逐渐更加清楚的。。。

包括这个TTL。

时间: 2024-10-22 11:03:50

TTL和RS232之间的详细对比的相关文章

vba与rs232之间的数据传输

问题描述 vba与rs232之间的数据传输 有一些数据通过rs232数据线传输到计算机中,现在能用一个超级终端捕捉数据,但是想通过vba写个程序让数据都记录在excel里面进行分析,要怎么做.有重谢 解决方案 两种办法: 1.用mscomm控件 2.用Win32API读写端口 解决方案二: VB里面有对串口(rs232口)进行读取的函数或者API吗? 解决方案三: 能提供下更详细的帮助吗,谢谢了

DB2 9 pureXML与CLOB或分解式XML存储之间的性能对比

和其他数据库一样,DB2 V8 XML Extender提供了两种针对XML的存储和访问模型:XML文档可作为未解析文本完整地存储在CLOB列中,也可以被映射和分解到一套关系表中.这两种选择都有一些已知的性能限制.DB2 9中新的pureXML技术试图通过以其固有的层次格式存储和查询XML的方式来消除这些限制.本文描述了一系列度量方法,这些方法用于确定 pureXML 是否能够提供性能优势,并量化 pureXML和CLOB 或分解式存储之间的性能差异. 简介 DB2 9中的pureXML技术旨在

js AppendChild与insertBefore用法详细对比

 本篇文章主要是对js中AppendChild与insertBefore的用法进行了详细的对比.需要的朋友可以过来参考下,希望对大家有所帮助 我们知道appendChild和insertBefore都有插入节点的功能.但在应用上,这两者之间还是有一些区别的.   比如我们要在下面这个div中插入一个子节点P时:   <div id="test"><p id="x1">Node</p><p>Node</p>&

【持久化框架】Mybatis与Hibernate的详细对比

最近做了一个hibernate与MyBatis的对比总结,希望大家指出不对之处. 一.   Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html   Hibernate参考资料: http:

两代苹果iMac 键盘/鼠标详细对比

  本周早些时候,苹果公司发布了新款 iMac 和新的配件产品--Magic Keyboard.Magic Mouse 2 和 Magic Trackpad 2.那么这几款新配件和上一代有什么区别,使用起来有什么感觉呢?看看外媒怎么说.新款Magic Mouse 看起来和上一代并没有什么区别,从正面看上去你根本没法区分这两代产品. 两款鼠标重量都在 100g 左右,所以从重量上也分不出来.但是如果你把他们翻转过来你就会发现区别了:锂电池凹槽和指示灯都没有了,只有一个小小的 Lightinig 接

C#/C++/Java之间的本质对比讨论

问题描述 我在网上看过很多关于才C#/C++/Java三门语言之间的优劣对战,有人说C#,Java比C++强大应用稳定在开发领域有着无与伦比的稳定性,但回过头看一下很多古董公司用的都是C++,我们能从软件直接开发角度来说确实是Java,C++比较稳定,但跟多人在比较的时候忽略的了一个很重要的问题,从包容性,以及工具的全面性考虑,c++有着绝对的优势,虽说很多源有着模糊性只是不明确性,但包含范围确实比那些明确的源广泛了,但如果从确切的开发某一程序来说,这个有程序着明确的目的性以及程序的应用方面的指

SQL批量插入数据几种方案的性能详细对比

公司技术背景:数据库访问类(xxx.DataBase.Dll)调用存储过程实现数据库的访问. 技术方案一: 压缩时间下程序员写出的第一个版本,仅仅为了完成任务,没有从程序上做任何优化,实现方式是利用数据库访问类调用存储过程,利用循环逐条插入.很明显,这种方式效率并不高,于是有了前面的两位同事讨论效率低的问题. 技术方案二: 由于是考虑到大数据量的批量插入,于是我想到了ADO.NET2.0的一个新的特性:SqlBulkCopy.有关这个的性能,很早之前我是亲自做过性能测试的,效率非常高.这也是我向

MySQL与Oracle的语法区别详细对比 (转)

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

深入了解jBPM5与Activiti之间的差异对比

jBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了jBPM6的beta版本:Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti.由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧.本文试着对二者做一些比较. 主要相似之处: 都是BPMN2过程建模和执行环境. 都是B