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