天天看點

TTL和RS232之間的詳細對比

【背景】 之前就聽過TTL,一直沒搞懂其和RS232的差別。 最近,打算去買個USB轉RS232的晶片,結果找到此産品: 六合一多功能USB轉UART序列槽子產品CP2102 usb TTL485 232互轉自恢複 正面:

TTL和RS232之間的詳細對比

背面:

TTL和RS232之間的詳細對比

其中的:

TTL和RS232之間的詳細對比

以及引腳說明:

TTL和RS232之間的詳細對比

都提到了,不僅僅支援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的時序對比:  

TTL和RS232之間的詳細對比

  RS232和TTL之間的轉換 RS232和TTL之間的轉換,不僅僅是簡單的電平轉換,還要考慮到其他一些因素,比如調節和矯正一些電平(提高或降低對應的電平),確定可能的有害的RS232電壓不會破壞微控制器的序列槽針腳。 關于如何在RS232和TTL之間轉換,目前已經有很多種解決方案了。 比如: RS-232 vs. TTL Serial Communication 中的 MAX-232 。   總結 很多知識,都是慢慢積累,才慢慢逐漸更加清楚的, 包括這個TTL。