1. 程式人生 > >電路設計中的電平轉換問題,CMOS&TTL&232&485,總結

電路設計中的電平轉換問題,CMOS&TTL&232&485,總結

<pre id="answer-content-1055183235" class="answer-text mb-10" name="code" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">   </span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">首先說明一個問題:什麼是TTL與CMOS電平?</span>
<span style="color:#000066;background-color: rgb(204, 255, 255);"><span style="font-family:KaiTi_GB2312;font-size:18px;">簡單來說就是:5V的情況下,TTL的高電平為3.3-2.4  CMOS的高電平為5-3.5</span></span><p align="left">TTL電路臨界值(電源電壓為+5V):</p><p align="left">VOHmin(輸出高電平的最小值)   =    2.4V    VOLmax (輸出低電平的最大值) =    0.4V</p><p align="left">VIHmin(輸入高電平的最小值)   =    2.0V    VILmax (輸入低電平的最大值)  =   0.8V</p><span style="font-family:KaiTi_GB2312;font-size:18px;"></span><p align="left">CMOS電路臨界值(電源電壓為+5V)</p><p align="left">VOHmin   =    4.99V     VOLmax  =    0.01V</p><p align="left">VIHmin   =    3.5V    VILmax  =    1.5V</p><p align="left"><img src="http://blog.chinaunix.net/attachment/201107/2/25577798_1309610731rmY2.png" alt="" />
</p>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);"> 解決兩者之間的電平轉換問題,最根本的就是要解決邏輯器件介面的電平相容問題。而電平相容原則就兩條:
</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">1、VOH > VIH(不然被視為低電平)  2、 VOL < VIL(不然被視為高電平)
</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);"></span><p align="left">CMOS電平能驅動TTL電平,TTL電平不能驅動CMOS電平,需加上拉電阻。</p>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">
</span>
<p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);"> RS232介面是1970年由美國電子工業協會(EIA)聯合貝爾系統、調變解調器廠家及計算機終端生產廠家共同制定的用於序列通訊的標準。它的全名是“資料終端裝置(DTE)和資料通訊裝置(DCE)之間序列二進位制資料交換介面技術標準”。該標準規定採用一個25個腳的DB25聯結器,對聯結器的每個引腳的訊號內容加以規定,還對各種訊號的電平加以規定。DB25的串列埠一般只用到的管腳只有2(RXD)、3(TXD)、7(GND)這三個,隨著裝置的不斷改進,現在DB25針很少看到了,代替他的是DB9的介面,DB9所用到的管腳比DB25有所變化,是2(RXD)、3(TXD)、5(GND)這三個。因此現在都把RS232介面叫做DB9。</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">  市場上把公頭的接外掛叫做DRXX,母頭的叫DBXX,比如我們電腦上的串列埠,在市場上叫做DR9,不是DB9,很多人都誤叫做DB9,實際上的DB9是兩個把兩個DR9互相連線在一起的介面。 一般在教材或者文章中,大家常常把所有的串列埠裝置介面都統一叫做RS232介面。</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">  由於RS232介面標準出現較早,難免有不足之處,主要有以下四點:</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">  (1) 介面的訊號電平值較高,易損壞介面電路的晶片,又因為與TTL 電平不相容故需使用電平轉換電路方能與TTL電路連線。
  (2) 傳輸速率較低,在非同步傳輸時,波特率為20Kbps。 
  (3) 介面使用一根訊號線和一根訊號返回線而構成共地的傳輸形式,容易產生共模干擾,所以抗噪聲干擾性弱。
  (4) 傳輸距離有限,最大傳輸距離標準值為50英尺,實際上也只能用在50米左右。</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">  針對RS232介面的不足,於是就不斷出現了一些新的介面標準,RS-485就是其中之一,它具有以下特點:</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; line-height: 26px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">  (1) RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2-6) V表示;邏輯“0”以兩線間的電壓差為-(2-6)V表示。介面訊號電平比RS-232降低了,就不易損壞介面電路的晶片,且該電平與TTL電平相容,可方便與TTL 電路連線。
  (2) RS-485的資料最高傳輸速率為10Mbps 。 
  (3) RS-485介面是採用平衡驅動器和差分接收器的組合,抗共模幹能力增強,即抗噪聲干擾性好。
  (4) RS-485介面的最大傳輸距離標準值為4000英尺,實際上可達3000米,另外RS-232介面在總線上只允許連線1個收發器,即單站能力。而RS-485介面在總線上是允許連線多達128個收發器。即具有多站能力,這樣使用者可以利用單一的RS-485介面方便地建立起裝置網路。
  因為RS485介面組成的半雙工網路,一般只需二根連線(我們一般叫AB線),所以RS485介面均採用遮蔽雙絞線傳輸。 
  由於有的裝置是232介面的,有的是485介面的,如果有一臺232介面的裝置與一臺485介面的裝置通訊,那就需要一個RS232/RS485轉換器,把232介面的裝置的232訊號轉換成485訊號,然後再與485介面的裝置通訊。如果是兩臺232介面的裝置要進行遠距離的通訊,那隻要加上兩個RS232/RS485轉換電路就可以了。
市場上所謂的“無源RS232/RS485轉換器”採用從計算機串列埠偷電技術,而“有源RS232/RS485轉換器”在電路原理圖與跟前者差不多,只是電源部分有所改動而已。</span></p><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">
</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);"><span style="line-height: 26px; white-space: pre; color: rgb(0, 0, 102); font-family: KaiTi_GB2312; font-size: 18px; background-color: rgb(204, 255, 255);">RS-232\485分TX/RX,全雙工的,可以同時收發。</span><span style="line-height: 26px; white-space: pre; color: rgb(0, 0, 102); font-family: KaiTi_GB2312; font-size: 18px; background-color: rgb(204, 255, 255);"> USB只有一對差分資料線D+/D-,是半雙工的。</span><br style="word-wrap: break-word;" />      </span>
要實現串列埠的功能,首先需要有一個串列埠,不過現在的好多電腦 都不帶串列埠的功能 ,因此 我們需要將 輸出的usb訊號轉換為串列埠訊號。
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">一般情況下,usb轉串列埠的晶片 為 ch340 ,ch341等,這樣 就將usb轉換成了 TX/RX 串列埠訊號。但是此時 的串列埠還不能直接與微控制器連線,由於此時電腦串列埠輸出的電平為232電平, 而微控制器串列埠採用的是ttl電平。但他們的通訊協議是相同的,僅有電平不統一,因此只需要讓他們之間的電平統一了就可以互相通訊,所以就用到了 max232 等晶片(該晶片 僅僅 將電平進行了轉換,使雙方的串列埠電平統一。沒有別的作用)</span>
<pre id="answer-content-1055183235" class="answer-text mb-10" name="code" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">(注意:市面上用得usb轉串列埠線中 ,PL2303是輸出 是USB直接轉成TTL電平訊號的,而ch341系列 是將usb轉換成了 rs232訊號,此時還需要將rs232電平轉換成ttl電平才能夠跟微控制器通訊)</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">備註1:max232</span><pre id="answer-content-1055183235" class="answer-text mb-10" name="code" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;"><span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">max232 是 用來 做 電平轉換的,標準 rs232 電平 很高,達正負 15V.常用的 TTL 電平最高 5V。相互連線的話,必須 進行 電平轉換!由於電腦串列埠輸出電壓高達12V,直接與微控制器連線會燒壞晶片。所以用MAX232來進行電平轉換。</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">備註2: pl2303  為什麼 不需要max232</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">rs232協議包括資料格式和電氣連線兩部分。 <br style="word-wrap: break-word;" />用pl2303轉換晶片接的是電腦的usb口又不是串列埠,所以電氣協議部分就不需要了。 <br style="word-wrap: break-word;" />只需用資料格式就行了,ttl電平剛好跟mcu匹配。 </span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">
</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">
</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">現在你知道什麼是TTL\CMOS\232\485了吧!</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);">文章借鑑:http://blog.csdn.net/kevinhg/article/details/7367144</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#000066;background-color: rgb(204, 255, 255);"><span style="white-space:pre">	</span>  http://blog.chinaunix.net/uid-25577798-id-1584950.html</span>