利用16C554實(shí)現(xiàn)主從式單片機(jī)遠(yuǎn)距離通信擴(kuò)展
摘要:通過(guò)16C554完成上位主機(jī)對(duì)多臺(tái)MODEM的控制,利用背靠背連接實(shí)現(xiàn)主機(jī)與下位機(jī)的遠(yuǎn)距離通信。該系統(tǒng)已成功地用于城市交通路口的信息傳輸。
本文引用地址:http://m.butianyuan.cn/article/244625.htm關(guān)鍵詞:MODEM 單片機(jī)系統(tǒng) 16C554 通信
引言
在交通路口的紅綠燈控制系統(tǒng)中,需要將各器口車流量、車速等狀態(tài)信息時(shí)傳到主控室,另外,上位主機(jī)隨時(shí)可能下發(fā)各種道路控制信息。這種遠(yuǎn)距離通信常通過(guò)MODEM以點(diǎn)對(duì)點(diǎn)的方式進(jìn)行。常用MODEM通信鏈路的連接方式有兩種。第一種是通過(guò)電話以撥號(hào)方式完成通信鏈接。采用這種方式,上位主機(jī)與各路口機(jī)的距離可無(wú)限遠(yuǎn),但缺點(diǎn)是每個(gè)路口占用1個(gè)電話號(hào)。由于主機(jī)與路口機(jī)的通信是頻繁的,若不采用專線電話,則難以保證信息收發(fā)的實(shí)時(shí)性;而采用專線連接,勢(shì)必增加系統(tǒng)成本和設(shè)備開(kāi)銷。另一種連接是直接通過(guò)調(diào)制電纜連接兩臺(tái)MODEM,即背靠背連接。背靠背的連接在數(shù)據(jù)傳輸波特率為9600 baud時(shí),通信距離可以達(dá)到10 km,完全能夠滿足中小城市道路控制系統(tǒng)中的通信要求。本系統(tǒng)采用了后一種連接方式。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)由兩大部分組成:插在計(jì)算機(jī)中的上位主機(jī)和各路口的下位機(jī)。根據(jù)通信鏈路的連接方式,89C52為核心組成的上位主機(jī)需要通過(guò)多臺(tái)MODEM實(shí)現(xiàn)與各路口機(jī)的數(shù)據(jù)傳輸。系統(tǒng)選用了EXAR公司的UART(通用異步收發(fā)器)16C554來(lái)擴(kuò)展單片機(jī)異步通信妝口。1片16C554可以完成對(duì)4臺(tái)MODEM的操作。下位路口機(jī)也是由89C52組成,對(duì)MODEM的操作通過(guò)其自身UART及部分P1口線實(shí)現(xiàn)。圖1為系統(tǒng)結(jié)構(gòu)框圖。
1.1 MODEM鏈路的連接
系統(tǒng)采用背靠背連接方式,只要用調(diào)制電纜直接連接對(duì)應(yīng)MODEM的Line口就實(shí)現(xiàn)了鏈路的連接。
1.2 上位主機(jī)電路組成
上位機(jī)主要完成兩部分工作。一是與計(jì)算機(jī)交換數(shù)據(jù),將車輛檢測(cè)數(shù)據(jù)及當(dāng)前各路口紅綠燈狀態(tài)等信息送計(jì)算機(jī)顯示,同時(shí)接收計(jì)算機(jī)下發(fā)的控制數(shù)據(jù)。這部分任務(wù)通過(guò)ISA總線完成,在這里不作敘述。二是控制MODEM與路口機(jī)鏈接,完成數(shù)據(jù)的收發(fā)。對(duì)MODEM的操作由單片機(jī)對(duì)16C554編程實(shí)現(xiàn)。圖2是上位主機(jī)的原理圖。其中62256用于暫存所有路口的收發(fā)數(shù)據(jù);16C554用于擴(kuò)展單片機(jī)的異步通信接口,實(shí)現(xiàn)對(duì)4路MODEM的控制;MAX238完成TTL電平至RS-232的電平轉(zhuǎn)換;GAL20V8實(shí)現(xiàn)擴(kuò)展外設(shè)的譯碼。
16C554是內(nèi)部帶有16字節(jié)收發(fā)FIFO的通用異步收發(fā)器,具有獨(dú)立的收發(fā)控制電路。4路標(biāo)準(zhǔn)的MODEM接口,通過(guò)軟件可分別設(shè)置允許每一路中斷。波特率、數(shù)據(jù)幀格式等也都可由軟件編程設(shè)置。該芯片可工作在24MHz或14.7464MHz,當(dāng)時(shí)鐘頻率為24MHz時(shí),數(shù)據(jù)傳輸率可達(dá)1.5Mbps;時(shí)鐘頻率為14.746 4MHz時(shí),數(shù)據(jù)傳輸率達(dá)912.6Kbps,完全可以用于高速M(fèi)ODEM的控制中。
1.3 路口機(jī)電路組成
以89C52為核心的單片機(jī)系統(tǒng)實(shí)現(xiàn)了路口機(jī)的全部功能:與上位機(jī)的通信及車輛信息的處理。系統(tǒng)擴(kuò)展了1片6264,現(xiàn)MODEM的通信接口由89C52內(nèi)部的UART及P1口實(shí)現(xiàn)。圖3給出了通信接口的電路原理圖。
RS-232標(biāo)準(zhǔn)定義的接口有兩種形式:25針和9針。這里采用了9針連接器。當(dāng)MODEM工作于全雙工方式時(shí),不需要使用RTS/CTS握手信號(hào)。另外,背靠背的連接MODEM沒(méi)有接電話機(jī),故無(wú)需檢測(cè)振鈴信號(hào)RI。這樣,9根線中只有連接6根線。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 通信線路的鏈接與掉線的處理
采用背靠背連接方式,首先要解決通信的鏈接問(wèn)題。由于無(wú)振鈴信號(hào)觸發(fā)自動(dòng)應(yīng)答,因此被動(dòng)一方的MODEM應(yīng)在開(kāi)機(jī)工作過(guò)程中定時(shí)地云檢測(cè)裁波信號(hào)。如果鏈路未通,則采用應(yīng)答方式摘機(jī),直至鏈接成功。主動(dòng)方、被動(dòng)方MDOEM的通信鏈接過(guò)程如圖4所示。
根據(jù)系統(tǒng)要求,上位主機(jī)應(yīng)能隨時(shí)發(fā)送命令或接收數(shù)據(jù),這樣與上位機(jī)連接的MODEM定為主動(dòng)方。由于上位機(jī)與下位機(jī)的摘機(jī)是異步的,因此,上位機(jī)MDOEM等待載波建立時(shí)間要大于下位機(jī)MODEM等待載波的建立時(shí)間。這里上、下位機(jī)等待載波建立時(shí)間分別設(shè)為2.5min和50s。若上位機(jī)定時(shí)器的定時(shí)時(shí)間到而未建立鏈接,則被視為通信有問(wèn)題,通過(guò)計(jì)算機(jī)反映出鏈接失敗,同時(shí)下位機(jī)定時(shí)摘機(jī)時(shí)間可設(shè)為1min,這樣才能保證線路由于掛機(jī)或非正常掉線后能再次接通鏈路。
2.2 16C554的初始化
16C554集成有全部的MODEM控制邏輯,通過(guò)對(duì)其內(nèi)部的13個(gè)寄存器的讀寫,就可以完成對(duì)標(biāo)準(zhǔn)MODEM的操作。
系統(tǒng)上電后需先對(duì)16C554進(jìn)行初始化,包括設(shè)置波特率及傳輸數(shù)據(jù)的幀格式、設(shè)置中斷允許位、對(duì)FIFO的控制設(shè)置等。
INIMODEM:
MOV DPTR,#0F803H ;DPTR指向線控寄
;存器LCR
MOV A,#80H ;設(shè)置波特率
MOVX @DPTR,A
ANL DPL,#0F8H
MOV A,#0CH
MOVX @DPTR,A ;送波特率常數(shù):9600baud
INC DPL
CLR A
MOVX @DPTR,A
INC DPL
INC DPL ;DPTR指向線控寄存器LCR
MOV A,#03H
MOVX @DPTR,A ;設(shè)置數(shù)據(jù)幀格式
INC DPL ;指向MODEM控制寄存器
MOV A,#01H
MOVX @DPTR,A ;置設(shè)備終端準(zhǔn)備就緒
ANL DPL,#0F8H
ORL DPL,#02H ;指向MODEM控制寄存器
;MCR
MOV A,#03H ;置FIFO有效,清接收FIFO
ANL DPL,#0F08H
ORL DPL,#01H ;DPTR指向中斷允許寄存器
;IER
MOV A,#01H
MOVX @DPTR,A;設(shè)置接收寄存器中有數(shù)則
;中斷
RET
結(jié)束語(yǔ)
以背靠背方式連接的通信網(wǎng)絡(luò),由于無(wú)需任何電話資源,對(duì)10km以內(nèi)的通信連接,不失為較好的選擇。在實(shí)際應(yīng)用中,為保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,系統(tǒng)在上電初始化后,即可以對(duì)線路進(jìn)行鏈接。正常情況下線路應(yīng)處于鏈接狀態(tài),這樣才能保證上位機(jī)對(duì)下位機(jī)的及時(shí)控制,避免線路重新鏈接帶的延遲。該系統(tǒng)已成功用于交通路口聯(lián)網(wǎng)控制。
評(píng)論