偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1758)
分类: 其他平台
2018-05-31 14:26:39
【背景】
之前就听过TTL,一直没搞懂其和RS232的区别。
最近,打算去买个USB转RS232的芯片,结果找到此产品:
正面:
背面:
其中的:
以及引脚说明:
都提到了,不仅仅支持RS232,还支持TTL。
所以,再次遇到TTL,需要去搞清楚,TTL和RS232的区别。
【折腾过程】
1.参考:
整理如下:
常见的微控制器中,都有了内置的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的标准中,和你的微控制器中的串行信号所一样的,有:
RS232和TTL,唯一的,最根本的不同在于:
硬件(机制)不同:
(1)TTL
逻辑高电平==’1‘==Vcc==3.3V或5V
逻辑低电平==’0‘==0V==0V
(3)RS232:
逻辑高电平==’0‘==负电压== -3V~-25V==常为:-13V
逻辑低电平==’1‘==正电压== 3V~25V==常为:13V
按理来说:
TTL用正电压(3.3V或5V)表示逻辑1,用0电压表示逻辑0,是相对来说,比较符合人类的逻辑的
但是,为何RS232却,很奇怪的,用负电压表示逻辑高电平==1,呢?
那是因为:
此设计(用负电压表示逻辑1,正电压表示逻辑0)相对来说,更加:
由此使得:
信号传输,相对更加稳定和可靠。
对于同样传输0b01010101来说,RS232和TTL的时序对比:
RS232和TTL之间的转换,不仅仅是简单的电平转换,还要考虑到其他一些因素,比如调节和矫正一些电平(提高或降低对应的电平),确保可能的有害的RS232电压不会破坏微控制器的串口针脚。
关于如何在RS232和TTL之间转换,目前已经有很多种解决方案了。
比如:
中的。
很多知识,都是慢慢积累,才慢慢逐渐更加清楚的。。。
包括这个TTL。