RS485/RS232轉(zhuǎn)換器實現(xiàn)的串行通信
2.2PC機側(cè)RS485/RS232轉(zhuǎn)換器的設計
RC機側(cè)RS485/RS232轉(zhuǎn)換器的電路如圖4所示。
該電路首先通過MAX490芯片將單片機側(cè)經(jīng)遠距離傳輸?shù)碾娏鳝h(huán)信號轉(zhuǎn)換成TTL/CMOS標準的電平信號,然后通過光隔6N137隔離,得到兩個同樣是與TTL/CMOS電平相兼容的電平信號;最后,經(jīng)RS232芯片轉(zhuǎn)換成 RS232電平:其中RS232電平的邏輯“0”的電平范圍為-5V~-15V,邏輯“1”的電平范圍為+5V~+15V。這里RS232電平轉(zhuǎn)換芯片選用MAXIM公司的MAX232A[4],該芯片采用單電源(+5V)供電,RS232電平由內(nèi)部電荷泵產(chǎn)生,其內(nèi)部結(jié)構如圖5所示。
在RS485/RS232轉(zhuǎn)換器



3、通信軟件的設計
利用上述硬件通信電路,可以實現(xiàn)符合RS485協(xié)議的串行通信,同時又對軟件的編寫沒有任何額外要求,因為本電路改變了傳輸通道的信號傳輸方式。單片機側(cè)的通信可以采用查詢方式或串行中斷方式。在電參數(shù)測試儀中,為了保證上位機和下位機之間時序的嚴格一致,我們采用了查詢方式,這部分程序的編寫較簡單,具體可參閱文獻[1][3]。PC機側(cè)WINDOWS環(huán)境下的通信程序,可直接利用VC++提供的相應于串口的API函數(shù)完成RS232 通信編程,具體可參閱文獻[2][3]。
由于數(shù)據(jù)傳輸是在強干擾的環(huán)境中進行的,而且傳輸距離又較遠,為了保證數(shù)據(jù)能高速、準確傳輸,軟件編程時可以考慮對大批量的數(shù)據(jù)進行分組傳送,同時對每組數(shù)據(jù)進行和校驗,檢查其傳輸?shù)臏蚀_性。在實際使用中,設定每組數(shù)據(jù)的數(shù)據(jù)頭為單字節(jié)0AAH,中間為256個字節(jié)的采樣數(shù)據(jù),數(shù)據(jù)最后一個字節(jié)為和校驗結(jié)果。PC機每接收到一組數(shù)據(jù),均要進行再次和校驗,,然后將PC機的校驗結(jié)果和單片機的校驗結(jié)果(該組數(shù)據(jù)的最后一個字節(jié))相比較,若兩者不等則校驗失敗,PC機給單片機發(fā)重傳命令,要求單片機重傳本組數(shù)據(jù);若兩者相等則校驗正常,PC機給單片機發(fā)確認認號,并準備接收下一組采樣數(shù)據(jù),單片機則開始新一輪采樣。
4、實際應用
在電參數(shù)測試儀的工作過程中,大約每隔一分鐘單片機和上位PC機之間就要經(jīng)過多次命令和數(shù)據(jù)的雙向傳遞,其數(shù)據(jù)量較大,每次約有7k字節(jié)左右。本系統(tǒng)單片機選用ATMEL公司的AT89C52,晶振頻率為110592MHz,串行通信方式為模式1,通信速率為57.6kBPS。上位機的通信和數(shù)據(jù)處理程序采用VC++6.0編寫。單片機和PC機之間的距離約100米左右,傳輸線由普通的多芯電源線替代,且經(jīng)過有電焊機、電動機、高壓靜電發(fā)生器等頻繁起動的場合。采用上述硬件通信電路,同時考慮編程時的軟件糾錯,該儀器經(jīng)過多次24小時的不間斷運行,都沒有發(fā)生過死機現(xiàn)象,工作一切正常。調(diào)試時,通過觀察上位PC機中設置的數(shù)據(jù)重傳計數(shù)器,發(fā)現(xiàn)數(shù)據(jù)重傳次數(shù)極少。
實踐證明本文設計符合RS485協(xié)議的串行通信電路,可以滿足高速率、高可靠、遠距離的串行通信,同時價格又比較便宜,不失為一種較為理想的串行通信方案。
評論