基于MCS51單片機的多路數(shù)據(jù)通信設(shè)計
1.引言
MCS51單片機標準構(gòu)成只有一組全雙工UART串行口,P3.0-RXD收、P3.1-TXD發(fā),如果要完成多路串口收發(fā),一般使用外部擴展芯片,例如:GM8123/25,完成一擴多路串口,但是,由于增加擴展芯片,造成硬件成本增加,PCB板面增大,抗干擾性下降等不良因素,因此能盡量使用現(xiàn)有串口,利用分時切換技術(shù),完成串行口不同類型,不同端口的數(shù)據(jù)傳送是優(yōu)先選擇。
2.硬件功能簡述
本設(shè)計用于數(shù)據(jù)采集監(jiān)控系統(tǒng)如圖1所示。采用485串行口完成數(shù)據(jù)采集,和232串口輸出打印功能,這樣使得接口連線簡單,可靠性高。
RS-485工作特征:發(fā)送端:邏輯“1″兩線間的電壓差為+2至6V表示;邏輯”0″以兩線間的電壓差為-2至6V表示。接收端:A比B高200mV以上即認為是邏輯“1″,A比B低200mV以上即認為是邏輯”0″。RS485總線因其硬件設(shè)計和通信協(xié)議簡單、控制方便、成本低廉、傳輸距離遠以及可掛接多個從設(shè)備等優(yōu)點,便于對分布式的各個現(xiàn)場測控設(shè)備實現(xiàn)集中控制,485現(xiàn)場總線技術(shù)得到了廣泛的應(yīng)用。本設(shè)計采用MAX485E芯片,它是一款用于RS485和RS422通信的低功耗總線收發(fā)器,具有±15kV靜電放電沖擊保護和限擺率驅(qū)動特性,減小了電磁干擾和終端電纜反射,允許高達250kbps速率的無差錯數(shù)據(jù)傳輸。該芯片只需用5V的單電源電壓供電即可正常工作,而且在一條總線上最多可以連接32個負載。利用該芯片可以極大地簡化單片機和RS485總線的接口電路設(shè)計。
RS232接口是使用異步UART串行接口,其高低電平信號為-12V~+12V,因此抗干擾性優(yōu)于TTL電平,傳送距離可達10多米,單片機與打印機數(shù)據(jù)交換就使用此種通信設(shè)計,它具有用線少,接口簡單可靠等優(yōu)點。單片機TTL-RS232電平轉(zhuǎn)換接口電路采用Maxim公司生產(chǎn)的MAX232電平轉(zhuǎn)換芯片設(shè)計。MAX232芯片只需用5V的單電源供電,外加4個電容,就可實現(xiàn)單片機TTL電平和RS232電平之間的轉(zhuǎn)換,并直接驅(qū)動RS232總線進行數(shù)據(jù)傳輸,使用十分方便,其最高傳輸速率可達20kbps.
RS232/RS485在串口傳送中各有優(yōu)缺點,在此做一簡單比較:
(1)從接線上,RS232是三線制(收、發(fā)、地),RS485是兩線制(A、B);(2)從傳輸距離上,RS232只能傳輸15米左右,RS485最遠可以傳輸1200米;(3)從速率上,RS232是全雙工傳輸,RS485是半雙工傳輸;(4)從協(xié)議層上,RS232只支持點對點通訊(1:1),RS485支持總線形式通訊(1:N)。在本設(shè)計中RS232被用于距離不遠的打印機點對點串口輸出;而數(shù)據(jù)采集則需要在多個端點設(shè)備上,且距離較遠的地方收集,于是采用了RS485總線技術(shù)來實現(xiàn)。單片機一組串口要完成兩組不同電平傳送,關(guān)鍵是需要分時切換串口模式,本設(shè)計采用模擬開關(guān)CD4053芯片,通過P1.5控制完成了485、232串口分離,利用完成軟件分時輸入、輸出處理功能。該電路實現(xiàn)簡單,硬件資源利用率高。
本設(shè)計打印機RS232通訊協(xié)議方式采用ASCII方式。默認數(shù)據(jù)格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗,波特率為2400bps.RS485采用半雙工模式,由P1.3控制收/發(fā)功能,其串口分配電路如圖2所示。
3.軟件功能簡介
本系統(tǒng)根據(jù)不同功能,由幾十個子程序模塊組成,現(xiàn)將相關(guān)串口分配實現(xiàn)數(shù)據(jù)收發(fā)的程序進行簡要分析(匯編語言描述)
4.結(jié)論
本設(shè)計通過模擬開關(guān)CD4053將一路單片機串行口收發(fā)信號,分時轉(zhuǎn)換成兩路串行口,然后使用不同的接口芯片,實現(xiàn)了RS232和485總線同在一個系統(tǒng)下分時完成了通信工作。該設(shè)計優(yōu)點:充分利用了串行口數(shù)據(jù)傳輸線少的優(yōu)勢,接口簡單,并節(jié)省了不必要的硬件開銷,增加了信息傳送的可靠性。