基于AVR單片機(jī)的串行接口智能轉(zhuǎn)換器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
由于RS-422、RS-485總線具有抗干擾能力強(qiáng)、通訊速率高、通訊距離遠(yuǎn)、可以與多臺從機(jī)通訊等特點(diǎn),所以在主從式多機(jī)通訊中,得到普遍應(yīng)用。
我們設(shè)計(jì)開發(fā)了一種以AT90S2343低功耗單片機(jī)為核心的外插式串行口智能轉(zhuǎn)換器,它把RS232串行口轉(zhuǎn)換至RS-422或RS-485串行口。它無須外部供電、并能自動(dòng)識別通訊波特率(1200-115.2K)和通訊方式(8位、9位方式),智能控制接收和發(fā)送電路與通訊總線的連接、在不改變現(xiàn)有軟件情況下,做到即插即用。
該轉(zhuǎn)換器且通用性強(qiáng)、性能可靠、結(jié)構(gòu)簡單、使用方便的特點(diǎn)??蓮V泛應(yīng)用于數(shù)據(jù)采集、監(jiān)控管理及集散控制的通訊系統(tǒng)中。筆者在電氣設(shè)備的絕緣在線監(jiān)測系統(tǒng)中,應(yīng)用該轉(zhuǎn)換器實(shí)現(xiàn)對多臺數(shù)據(jù)采集裝置的數(shù)據(jù)通訊,通訊性能穩(wěn)定可靠。
1、電路的整體結(jié)構(gòu)
智能轉(zhuǎn)換器的電路結(jié)框圖如圖1所示,整個(gè)電路由4個(gè)部分組成。第一部分是DC-DC電源變換電路。它從PC機(jī)串行口的信號線上竊取電能,將其轉(zhuǎn)換成供智能轉(zhuǎn)換器使用的電源;第二部分是RS-232接口電路,它實(shí)現(xiàn)各信號的RS-232電平與TTL電平的轉(zhuǎn)換;第三部分是RS485/RS422接口電路,它實(shí)現(xiàn)通訊總線的RS485/RS422電平與TTL電平之間的轉(zhuǎn)換;第四部分是以CPU為核心的智能控制電路,它通過監(jiān)測PC機(jī)的TXD發(fā)送信號,識別通信的波特率、通訊方式(10/11位方式)、智能控制通訊數(shù)據(jù)的發(fā)送和接收。
當(dāng)轉(zhuǎn)換器用作RS485半雙工通訊方式時(shí),須將發(fā)送器輸出和接收器輸入的同相、反相端分別用兩個(gè)跳線短接。
2 電路工作原理
2.1 DC-DC電源變換電路
由于RS232接口不提供電源,全部電路的供電只能從RS-232信號線中獲取。RS-232接口有DTR、RTS和TXD三個(gè)輸出信號,每個(gè)信號可提供輸出電流的典型值為±8mA。通用軟件不使用握手信號RTS和DTR,它們輸出為-12V。TXD信號在不發(fā)送數(shù)據(jù)和發(fā)送數(shù)據(jù)“1”的時(shí),也輸出為-12V。為了增加電源轉(zhuǎn)換電路的輸出功率,電路中把DTR、RTS和TXD三個(gè)信號的-12V輸出作為電源變換電路的電源輸入。
由于沒有負(fù)電壓輸入轉(zhuǎn)換到穩(wěn)定正電壓輸出的DC-DC轉(zhuǎn)換器,筆者在通用DC-DC轉(zhuǎn)換電路的基礎(chǔ)上,用IC芯片MAX761研制出具有輸入-12V電壓、+5V穩(wěn)壓輸出的 DC-DC轉(zhuǎn)換電路,轉(zhuǎn)換效率>85%。具體的電路如圖2所示。電路中MAX761是PFM(脈沖調(diào)頻方式)的DC-DC轉(zhuǎn)換控制器。最高調(diào)制頻率為300KHZ。LX是功率驅(qū)動(dòng)管(場效應(yīng)管)的漏極輸出端;REF是基準(zhǔn)電壓輸出端;LB是電壓采樣輸入端。MAX761控制器和電感L構(gòu)成自舉升壓電路,輸出電壓采樣網(wǎng)絡(luò)由穩(wěn)壓管W1、晶體管T、和電阻R1、R2組成。采樣電壓經(jīng)LB輸入控制器,通過改變調(diào)制脈沖的頻率來穩(wěn)定輸出電壓。電路的穩(wěn)壓工作原理如下:
輸出電壓VOUT降低時(shí),三極管T1的基極電流IEB減小,LB端的取樣電壓UR1(βIEB×R1×)減小,當(dāng)LB的取樣電壓(UR1)<片內(nèi)基準(zhǔn)電壓時(shí),控制信號以最高調(diào)制頻率的來控制功率驅(qū)動(dòng)管的開通與截止,當(dāng)功率驅(qū)動(dòng)管導(dǎo)通時(shí),LX等于-12V,二極管D4處于截止?fàn)顟B(tài),電流經(jīng)電感L流向LX,此時(shí)電感L儲(chǔ)存能量。當(dāng)功率驅(qū)動(dòng)管截止時(shí),電感L釋放能量,反電動(dòng)勢產(chǎn)生的電流經(jīng)二極管D4向電容C4充電,從而使輸出電壓VOUT升高。
輸出電壓VOUT升高時(shí),三極管T1的基極電流IEB增大,LB端的取樣電壓UR1(βIEB×R1×)增大,當(dāng)LB的取樣電壓(UR1)≥片內(nèi)基準(zhǔn)電壓時(shí),控制信號控制功率驅(qū)動(dòng)管在一個(gè)完整調(diào)制的周期內(nèi)處于截止?fàn)顟B(tài),由負(fù)載消耗使輸出電壓VOUT下降。
通過以上的脈沖調(diào)頻方式的自舉升壓調(diào)節(jié),使輸出電壓穩(wěn)定在+5V。
輸出電壓由下式確定:
VOUT=Vw1+Veb+Ib×R2≈Vw1+Veb ≈ 5 V
2.2 單片機(jī)智能控制工作原理RS485通訊方式是軟件通過收、發(fā)使能信號來控制數(shù)據(jù)的分時(shí)接收與發(fā)送,使用同一對差分通訊總線實(shí)現(xiàn)雙向數(shù)據(jù)通訊的半雙工通訊方式,而RS232通訊接口不能提供這樣的使能控制信號。但可以通過單片機(jī)對主機(jī)PC-TXD信號的監(jiān)測,準(zhǔn)確計(jì)算出傳送一幀數(shù)據(jù)的時(shí)間,智能產(chǎn)生收、發(fā)使能信號控制數(shù)據(jù)的分時(shí)接收與發(fā)送,實(shí)現(xiàn)數(shù)據(jù)的半雙工通訊。以AT90S2343低功耗單片機(jī)為核心的串行口智能轉(zhuǎn)換器的具體電路如圖3所示。
單片機(jī)對傳送一幀數(shù)據(jù)的時(shí)間的識別方法如下:當(dāng)單片機(jī)監(jiān)測到主機(jī)發(fā)送數(shù)據(jù)的起始位時(shí),開始測量PC-TXD信號的每個(gè)脈沖的脈沖寬度,計(jì)算出對應(yīng)的波特率,若均屬于通用波特率集合,它們中的最高波特率即是通訊波特率。否則,該脈沖寬度是發(fā)送兩幀數(shù)據(jù)的間隔時(shí)間,電平負(fù)躍變的時(shí)刻是起始位的開始時(shí)刻,開始重新測量每個(gè)脈沖的脈沖寬度。當(dāng)通訊波特率確定后,檢測第十位的電平狀態(tài),若是低電平,則可確定是11位通訊方式。否則是10位通訊方式。由通訊波特率和通訊方式計(jì)算出傳送一幀數(shù)據(jù)的時(shí)間。
通訊接口接收、發(fā)送數(shù)據(jù)的智能控制過程如下:每當(dāng)監(jiān)測到主機(jī)發(fā)送數(shù)據(jù)的起始位時(shí),單片機(jī)輸出收、發(fā)使能信號(RE=1、DE=1),控制收、發(fā)電路禁止接收、允許發(fā)送數(shù)據(jù),主機(jī)數(shù)據(jù)發(fā)送到RS485通訊總線上,同時(shí)定時(shí)器開始計(jì)時(shí)。當(dāng)計(jì)時(shí)時(shí)間等于發(fā)送一幀數(shù)據(jù)的時(shí)間時(shí),單片機(jī)輸出收、發(fā)使能信號(RE=0、DE=0),控制收、發(fā)電路允許接收、禁止發(fā)送數(shù)據(jù)。此時(shí),主機(jī)可以接收RS485通訊總線上的從機(jī)數(shù)據(jù)。當(dāng)單片機(jī)又監(jiān)測到主機(jī)發(fā)送數(shù)據(jù)的起始位時(shí),重復(fù)上述的發(fā)送過程。
在通訊過程中,波特率測量和收、發(fā)數(shù)據(jù)智能控制必須同步進(jìn)行,否則就會(huì)造成通訊數(shù)據(jù)的丟失。
為適應(yīng)高速通訊的要求,電路中采用美國Atmel 公司的AT90SL2343單片機(jī)。它是目前最新的單片機(jī)系列之一,其突出特點(diǎn)是執(zhí)行速度高,片內(nèi)硬件資源豐富。使用CPU內(nèi)部的電源監(jiān)測和可編程看門狗定時(shí)器,使電路具有較強(qiáng)的抗干擾能力。
單片機(jī)I/O端口的分配和功能:PB3輸入,監(jiān)測主機(jī)PC-TXD信號;PB0輸出,接收使能信號;PB4輸出,發(fā)使能信號;PB2輸入,由K1設(shè)置雙工或半雙工通訊方式。
3 軟件設(shè)計(jì)
3.1 程序流程框圖
串行口智能擴(kuò)展卡的程序流程圖如圖4所示。
3.2 半雙工通訊方式的軟件設(shè)計(jì)
在RS485半雙工通訊方式下,首先允許接收、禁止發(fā)送數(shù)據(jù)。在檢測到PC-TXD信號的數(shù)據(jù)起始位之后,通訊接口禁止接收、允許發(fā)送數(shù)據(jù),并開始計(jì)時(shí)。通過檢測數(shù)據(jù)信號的每個(gè)脈沖寬度,確定其波特率和數(shù)據(jù)的發(fā)送位數(shù),進(jìn)而計(jì)算出每幀數(shù)據(jù)允許發(fā)送的時(shí)間。當(dāng)計(jì)時(shí)時(shí)間大于或等于該時(shí)間時(shí),該通訊接口禁止發(fā)送并允許接收數(shù)據(jù)。在接收狀態(tài)下,CPU重復(fù)檢測發(fā)送數(shù)據(jù)的起始位。當(dāng)檢測到發(fā)送數(shù)據(jù)的起始位時(shí),重復(fù)上述的數(shù)據(jù)發(fā)送的控制過程。
3.3 雙工通訊方式軟件設(shè)計(jì)
在RS422雙工通訊方式下,接收和發(fā)送使能信號始終有效,同時(shí)允許接收和發(fā)送數(shù)據(jù)。
4 結(jié)束語
電路結(jié)構(gòu)簡單、無須外部供電,筆者將它制作成串行口轉(zhuǎn)換器直接插接在串行口插口上即可。它具有通用性強(qiáng)、性能可靠、結(jié)構(gòu)簡單、使用方便的特點(diǎn)。該電路使用了電源監(jiān)測和可編程的看門狗監(jiān)測定時(shí)器,使轉(zhuǎn)換器具有較強(qiáng)的抗干擾能力。該轉(zhuǎn)換器可廣泛應(yīng)用于主從式多機(jī)通訊系統(tǒng)。
參考文獻(xiàn)
1. 吳秀清等,微型計(jì)算機(jī)原理與接口技術(shù),中國科學(xué)技術(shù)大學(xué)出版社,1999.02
2. 李勛,耿德根,AVR單片機(jī)應(yīng)用技術(shù),北京航空航天大學(xué)出版社,2002.6