簡單的RS232C/TTL電平轉(zhuǎn)換和串口取電電路設(shè)計與制作
許多單片機的應(yīng)用中都會使用到串行口與電腦的串行口相連接,進行數(shù)據(jù)的傳輸或控制命令的發(fā)送與接收。單片機的串口有很大一部分是使用TTL電平標準的(PIC的可以直接連接在電腦串口),它的邏輯1電平是5V,邏輯0電平是0V,而電腦串行口所使用的是RS232C的電平標準,它的邏輯1電平是-3V--12V,邏輯0電平是+3V-+12V。兩者的電平范圍相差很遠,所以連接時需要用到電平轉(zhuǎn)換電路。這樣電路有好多種,一般來說商業(yè)化的成品會用到MAX232,DS275等專用的RS232、TTL電平轉(zhuǎn)換集成電路,對于普通電子愛好者來說使用這樣的器件一來不太好購買,二來使制作的費用提高,那用什么樣的電路去代替它們呢?這也是我初初制作單片機結(jié)合電腦的應(yīng)用中所遇到的問題之一,后來找到了一些相關(guān)的電路資料,解決了這些問題。以下我就結(jié)合自己在實際設(shè)計應(yīng)用的經(jīng)驗來介紹一下這些電路資料,同時也介紹一些自己對串口取電電路設(shè)計應(yīng)用的經(jīng)驗。
圖一是使用小功率三極管搭建的電平轉(zhuǎn)換電路,分別用了一個NPN管和PNP管,NPN可以使用常用的9014或BC547,PNP則可以使用常用的9012或BC557。電路分為傳送和接收兩部分,圖一中已用虛線分開了。它們可以分開使用也可以合在一起使用。傳送電路使用PNP管。當單片機的TxD信號是邏輯高電平時,Q1截止,RS232C的TxD(PIN3)提供-9V左右(實際電壓根據(jù)電腦主板上使用的串行接口芯片有所不同)給RS232C的RxD(PIN2)。當單片機TxD信號變?yōu)檫壿嫷碗娖綍r,Q1導通,約+5V傳給了RS232C的RxD(PIN2)。用這種辦法傳送數(shù)據(jù)時,RS232C的TxD(PIN3)必須穩(wěn)定在-9V左右 。
虛線以下的接收電路,它把RS232C電平轉(zhuǎn)換成TTL邏輯電平。當PC發(fā)送數(shù)據(jù)給RS232C的TxD(PIN3)時,邏輯1電平時是-9V,Q2截止,此時單片機的RxD約為+5V。當RS232C的TxD為邏輯低電平是+9V,Q2導通,單片機RxD此時約為0V。
圖一的電路我在自己的單片機應(yīng)用中也經(jīng)常用它來代替MAX232,DS275這樣的芯片,它不單可以單獨使用傳送或接收部份,在部分要求雙向傳輸?shù)捻椖恐幸部梢院芎玫墓ぷ鳌N彝ǔJ鞘褂?600波特率的,但實際也可以工作中更高一點的波特率。也可以把它焊到一個小的8腳IC插座或PCB上直接代換DS275(DS275引腳功能說明請看圖二)。
圖三是另一種RS232/TTL電平轉(zhuǎn)換電路,對于接收電路,它是和圖一的電路是一樣的。該電路用2個NPN小功率晶體管,轉(zhuǎn)送電路不需要從RS232C的TxD引用負的電壓,而這樣做的話,當單片機TxD為高電平時RS232C的RxD為0V(不是如圖一的-9V左右),為低電平時RS232C的RxD為+5V,顯然這和RS232C的標準不同,但多數(shù)PC機串口可以接受這樣的電平范圍。這個電路可以像圖一那樣用來代換直接代換DS275芯片。
這兩個電路中的晶體管可以使用大部分常用的小功率晶體管去替換,我自己常用9012,9014,BC547,BC557,它們都可以很好的工作。要注意的是它們所產(chǎn)生的電平范圍不是標準的RS232電平,所以也不能達到RS232的標稱傳輸距離。
在一些小的應(yīng)用中通常只要用到一塊2051或PIC芯片和少許的小元件,它們的耗電量是很小的,一般有十幾毫安就足夠了。在我自己的PC遙控器項目中用到一塊AT89C2051,一個一體化紅外接收頭和一個小LED,少許阻容器件和上面所說到的電路的傳送部分,總的耗電量只有十毫安多點。我用圖四的電路從PC串口直接竊電,效果很好,可以提供5V,二十多毫安的電流。也可以用圖五的電路。但要注意的是這兩種電路都要求上位軟件使串口的7和4引腳變?yōu)楦唠娖讲趴梢哉H‰?,否則無法從串口竊取所需的電壓。