新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PC機(jī)與多臺(tái)單片機(jī)實(shí)時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

PC機(jī)與多臺(tái)單片機(jī)實(shí)時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

1 引言

(DCS)又名分布式計(jì)算機(jī)控制系統(tǒng),是利用計(jì)算機(jī)技術(shù)對(duì)生產(chǎn)過(guò)程進(jìn)行集中監(jiān)測(cè)、操作、管理和分散控制的一種新型技術(shù)。在現(xiàn)代化工業(yè)過(guò)程控制系統(tǒng)中,已成為過(guò)程自動(dòng)化系統(tǒng)發(fā)展的主流。然而,在工業(yè)控制領(lǐng)域,控制系統(tǒng)除了要求具有極高的可靠性外,還必須具有較強(qiáng)的實(shí)時(shí)響應(yīng)能力和友好的人機(jī)交互界面。

本系統(tǒng)主要通過(guò)PC機(jī)與多臺(tái)構(gòu)成小型來(lái)進(jìn)行通信,既充分利用PC機(jī)豐富的軟硬件資源實(shí)現(xiàn)友好的,又通過(guò)RS-232C/485總線結(jié)構(gòu)與8251進(jìn)行通信,對(duì)多臺(tái)進(jìn)行數(shù)據(jù)采集和處理。

2 控制系統(tǒng)硬件電路設(shè)計(jì)

本系統(tǒng)在電路形式上比較簡(jiǎn)單,其原理框圖如圖1所示。

2.1 通信控制器電路分析與設(shè)計(jì)

通信控制器的主要作用是完成主機(jī)和從機(jī)之間的通信??刂破鞯暮诵氖且慌_(tái)AT89S51單片機(jī),它僅具有一個(gè)可編程的全雙工串行通信接口,而作為通信控制器需要同時(shí)與主機(jī)(PC機(jī))和從機(jī)進(jìn)行串行通信,因此就利用單片機(jī)的并行數(shù)據(jù)接口實(shí)現(xiàn)串口的擴(kuò)展,這里選擇了8251作為單片機(jī)的串口擴(kuò)展芯片。8251是用于串行數(shù)據(jù)通信的USART(通信同步/異步收發(fā)器),它可以從單片機(jī)接收并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送出去,也可以從外部接收串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)傳送至單片機(jī)。并且8251僅占用2個(gè)外部數(shù)據(jù)空間地址單元,對(duì)它的讀、寫(xiě)訪問(wèn)如同訪問(wèn)外部RAM一樣方便, 、 信號(hào)均由單片機(jī)提供,需要設(shè)計(jì)的只有片選信號(hào)。此外,8251提供的RXRDY和TXRDY引腳可以用來(lái)觸發(fā)單片機(jī)的外部中斷,通知單片機(jī)8251可以進(jìn)行新數(shù)據(jù)的發(fā)送或已經(jīng)接收到新的數(shù)據(jù)。根據(jù) 8251的特性設(shè)計(jì)的單片機(jī)串口擴(kuò)展電路如圖2所示。

圖2 基于8251的單片機(jī)串口擴(kuò)展電路

從圖2可以看出,8251的指令/數(shù)據(jù)選擇引腳接到了單片機(jī)的地址線A0,這樣可以通過(guò)2個(gè)不同的地址來(lái)區(qū)分對(duì)8251的命令寫(xiě)、數(shù)據(jù)寫(xiě)或狀態(tài)讀、數(shù)據(jù)讀。進(jìn)一步分析可以發(fā)現(xiàn)8251的片選引腳 與單片機(jī)地址線A15通過(guò)反相器后的相連,使得8251在外部數(shù)據(jù)空間8000H~FFFFH之間32KB的范圍內(nèi)可以隨意選擇地址,這里選擇8000H(訪問(wèn)數(shù)據(jù))和8001H(訪問(wèn)指令 /狀態(tài))兩個(gè)地址。8251的RXRDY引腳通過(guò)一個(gè)非門(mén)后連接至單片機(jī)的 引腳,當(dāng)8251從主機(jī)接收到數(shù)據(jù)時(shí)就會(huì)引起單片機(jī)中斷。

MC14060用于為8251提供時(shí)鐘信號(hào),其中包括用于產(chǎn)生8251內(nèi)部的時(shí)鐘CLK、用于決定發(fā)送數(shù)據(jù)傳輸速率的時(shí)鐘 和用于決定接收數(shù)據(jù)傳輸速率的時(shí)鐘 。CLK連接到MC14060的OUT2輸出引腳, 同時(shí)連接到MC14060的Q5輸出引腳。MC14060的時(shí)鐘輸入頻率為2.4576MHz,則OUT2引腳輸出的頻率為2.4576MHz,Q5引腳輸出的頻率為2.4576MHz/25=76.8kHz。那么8251發(fā)送數(shù)據(jù)的時(shí)鐘 和接收數(shù)據(jù)的時(shí)鐘 均為76.8kHz,通過(guò)單片機(jī)編程將8251的數(shù)據(jù)傳輸速率因子設(shè)置為1/16,則8251的串口發(fā)送和接收數(shù)據(jù)的波特率為76800/16=4800bit/s。

控制器與主機(jī)的通信是通過(guò)8251來(lái)實(shí)現(xiàn)的,8251帶有一個(gè)全雙工的串口,但它的串行數(shù)據(jù)接口并不是RS-232C標(biāo)準(zhǔn)串口,必須通過(guò)外接RS-232 收發(fā)器芯片才能與主機(jī)的串口連接起來(lái)通信,這里選擇的RS-232收發(fā)器芯片是MAXIM公司的MAX232C。MAX232C包含兩個(gè)發(fā)送器和兩個(gè)接收器,這里只需使用其中任意一組發(fā)送器和接收器即可。

由于控制器與從機(jī)之間的通信是多點(diǎn)的串行通信,所以選擇了MAXIM公司的MAX485芯片來(lái)實(shí)現(xiàn)控制器與從機(jī)之間的多機(jī)通信系統(tǒng)。因?yàn)樾盘?hào)在傳輸線上傳送時(shí),若遇到阻抗不連續(xù)的情況,會(huì)出現(xiàn)反射現(xiàn)象從而影響信號(hào)的遠(yuǎn)距離傳輸,所以必須采用匹配的辦法來(lái)消除反射。雙絞線的特性阻抗一般在 110~130Ω之間,它與線的絕緣材料的厚度及導(dǎo)線的直徑有關(guān),所以通常在RS-485總線末端接入120Ω的電阻是為了對(duì)通信線路進(jìn)行阻抗匹配。

由于MAX485為半雙工通信方式,不能同時(shí)發(fā)送和接收數(shù)據(jù),只能通過(guò)控制和DE引腳的狀態(tài)來(lái)進(jìn)行發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的轉(zhuǎn)換。這里將MAX485的和DE引腳連在一起接到單片機(jī)的P10口,通過(guò)單片機(jī)的P10口來(lái)控制MAX485發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的轉(zhuǎn)換,當(dāng)P10為低電平時(shí)MAX485處于接收數(shù)據(jù)狀態(tài),而當(dāng)P10為高電平時(shí)MAX485則處于發(fā)送數(shù)據(jù)狀態(tài)。MAX485的RO引腳接到單片機(jī)的串口接收引腳RXD, MAX485的DI引腳接到單片機(jī)的串口發(fā)送引腳TXD。

在通信速率要求不是很高的情況下,RS-485總線的通信距離可以達(dá)到1200m,這樣就可以通過(guò)多臺(tái)單片機(jī)來(lái)構(gòu)建一個(gè)遠(yuǎn)程多機(jī)通信系統(tǒng)。

2.2 從機(jī)部分硬件電路分析與設(shè)計(jì)

在本系統(tǒng)中,從機(jī)主要完成信號(hào)采集與顯示輸出。這里采用A/D轉(zhuǎn)換芯片ADC0804完成模擬信號(hào)的采集?;贏DC0804所設(shè)計(jì)的A/D采集電路采用阻容元件來(lái)搭建ADC0804的時(shí)鐘電路。電阻R=10k,電容=150p,經(jīng)計(jì)算,時(shí)鐘頻率

電位器RP1用于提供ADC0804的參考電壓,調(diào)整電位器,使ADC0804的Vref/2引腳的電壓為2.56V。電位器RP2用于提供ADC0804的輸入電壓,調(diào)整RP2即可使輸入電壓在0~5V內(nèi)變化。將ADC0804的 引腳接到單片機(jī)的 引腳,即每次ADC0804轉(zhuǎn)換完成后就會(huì)使單片機(jī)進(jìn)入中斷來(lái)處理ADC0804輸出的8位數(shù)字信息。

此外,從機(jī)還要將主機(jī)發(fā)送過(guò)來(lái)的信息顯示出來(lái),以表明從機(jī)接收到了主機(jī)發(fā)來(lái)的信號(hào)。系統(tǒng)中采用了8個(gè)LED連接到單片機(jī)的P2口作為顯示輸出,可以將主機(jī)發(fā)送過(guò)來(lái)的十六進(jìn)制數(shù)據(jù)以二進(jìn)制方式顯示出來(lái)。由于單片機(jī)端口的驅(qū)動(dòng)能力有限,不能用高電平直接驅(qū)動(dòng)LED,所以將LED采用共陽(yáng)極接法。

在從機(jī)工作的過(guò)程中,可能會(huì)出現(xiàn)各種異常狀況,需要將報(bào)警信息及時(shí)反饋給主機(jī)。為了模擬從機(jī)異常報(bào)警過(guò)程,在單片機(jī)的外部中斷 輸入端連接一個(gè)按鍵,利用按鍵觸發(fā)外部中斷來(lái)報(bào)警。當(dāng)按下鍵時(shí),從機(jī)會(huì)將報(bào)警信息發(fā)送給控制器,控制器收到后再將報(bào)警信息傳遞給主機(jī),在主機(jī)界面上就會(huì)彈出一個(gè)對(duì)話框顯示是幾號(hào)從機(jī)報(bào)警。

3 集散控制系統(tǒng)軟件設(shè)計(jì)

3.1控制器和從機(jī)的軟件設(shè)計(jì)

控制器軟件設(shè)計(jì)的主要任務(wù)是完成主機(jī)和從機(jī)之間的數(shù)據(jù)交換,而從機(jī)軟件設(shè)計(jì)的主要任務(wù)是完成A/D采集并將采集的數(shù)據(jù)上傳給控制器,能夠?qū)⒅鳈C(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)輸出顯示,而且可以通過(guò)按鍵中斷觸發(fā)報(bào)警。

控制器與主機(jī)之間的通信是通過(guò)8251來(lái)實(shí)現(xiàn)的,8251的功能配置由單片機(jī)通過(guò)軟件編程方式實(shí)現(xiàn),單片機(jī)可以通過(guò)8位并行數(shù)據(jù)接口向8251寫(xiě)入待發(fā)送的數(shù)據(jù)、命令或者從8251讀出接收的數(shù)據(jù)、狀態(tài)。在軟件設(shè)計(jì)上可以分為兩部分,一部分是控制器向主機(jī)發(fā)送數(shù)據(jù),另一部分是控制器從主機(jī)接收數(shù)據(jù),程序流程圖分別如圖3和圖4所示。注意必須先讀取8251的狀態(tài)字,當(dāng)發(fā)送數(shù)據(jù)標(biāo)志位TXRDY為1時(shí)才能通過(guò)8251向主機(jī)發(fā)送數(shù)據(jù)??刂破髟谥袛喾?wù)程序中處理從主機(jī)接收到的數(shù)據(jù)。

控制器與從機(jī)間的通信主要是利用了51單片機(jī)串口的多機(jī)通信功能。在多機(jī)通信中,為了保證主機(jī)與所選擇的從機(jī)實(shí)現(xiàn)可靠的通信,必須保證通信接口具有識(shí)別功能,可以通過(guò)控制單片機(jī)的串口控制寄存器SCON中的SM2位來(lái)實(shí)現(xiàn)多機(jī)通信功能。控制器和從機(jī)在接收串行數(shù)據(jù)時(shí)均采用中斷方式??刂破髋c從機(jī)通信是通過(guò)MAX485來(lái)實(shí)現(xiàn)的,必須先將單片機(jī)的P10口置1,使MAX485處于發(fā)送數(shù)據(jù)的狀態(tài),然后才能發(fā)送數(shù)據(jù),發(fā)送完數(shù)據(jù)后必須將單片機(jī)P10口置 0,使MAX485處于接收數(shù)據(jù)的狀態(tài)。

從機(jī)的A/D采集采用中斷方式通知從機(jī)接收數(shù)據(jù)。當(dāng)從機(jī)接收到的數(shù)據(jù)為#0AAH時(shí),從機(jī)就將A/D轉(zhuǎn)換的數(shù)據(jù)發(fā)送給控制器,發(fā)送的數(shù)據(jù)每隔1s更新一次;當(dāng)數(shù)據(jù)為#0BBH時(shí),從機(jī)就停止向控制器發(fā)送A/D轉(zhuǎn)換的數(shù)據(jù);當(dāng)數(shù)據(jù)為其它時(shí)就輸出顯示。由于在實(shí)際應(yīng)用中前端控制系統(tǒng)可能會(huì)出現(xiàn)各種各樣的報(bào)警信息,所以在這里通過(guò)一個(gè)按鍵觸發(fā)中斷來(lái)模擬報(bào)警情況的發(fā)生。

3.2 主機(jī)通信控制軟件設(shè)計(jì)與測(cè)試

3.2.1 主機(jī)通信控制軟件設(shè)計(jì)

主機(jī)控制軟件設(shè)計(jì)主要是針對(duì)串口的操作,通過(guò)建立主界面對(duì)話框及添加變量,串口初始化,串口事件消息處理,發(fā)送數(shù)據(jù),查看數(shù)據(jù),選擇從機(jī)號(hào)查看狀態(tài),選擇從機(jī)號(hào)控制狀態(tài)并且編寫(xiě)VC++程序來(lái)實(shí)現(xiàn)可視化界面及其功能。

3.2.2 從機(jī)狀態(tài)控制測(cè)試

在測(cè)試時(shí),將主機(jī)、控制器和兩臺(tái)從機(jī)全部連上,在主機(jī)對(duì)話框的從機(jī)狀態(tài)控制欄里,選擇1號(hào)機(jī),在編輯框中輸入十六進(jìn)制數(shù)據(jù)“12”,然后點(diǎn)擊“發(fā)送”按鈕,如圖5所示。1號(hào)機(jī)收到數(shù)據(jù)后就會(huì)將數(shù)據(jù)用8位LED以二進(jìn)制方式顯示出來(lái),LED顯示為“00010010”。

圖5 從機(jī)狀態(tài)控制測(cè)試

圖6 從機(jī)狀態(tài)控制測(cè)試

圖7 顯示1號(hào)機(jī)報(bào)警信息

3.2.3 從機(jī)狀態(tài)查看測(cè)試

在從機(jī)狀態(tài)查看欄里,選擇1號(hào)機(jī),點(diǎn)擊查看按鈕,如圖6所示,編輯框里就會(huì)將1號(hào)機(jī)A/D采集到的數(shù)據(jù)以十六進(jìn)制的方式顯示出來(lái)。當(dāng)調(diào)整ADC0804的輸入電壓時(shí),編輯框中的數(shù)據(jù)就會(huì)隨著輸入電壓的變化每隔1s更新一次。同樣,當(dāng)查看2號(hào)機(jī)時(shí),也能夠正常工作。

3.2.4 從機(jī)報(bào)警測(cè)試

在從機(jī)部分通過(guò)按鍵觸發(fā)中斷的方式來(lái)模擬報(bào)警情況的發(fā)生,當(dāng)按下1號(hào)機(jī)的按鍵時(shí),在主機(jī)的界面上就會(huì)彈出一個(gè)菜單顯示“1號(hào)機(jī)報(bào)警”,如圖7所示;當(dāng)按下2號(hào)機(jī)的按鍵時(shí),在主機(jī)的界面上就會(huì)彈出一個(gè)菜單顯示“2號(hào)機(jī)報(bào)警”。

4 結(jié)論

針對(duì)集散控制系統(tǒng)的廣泛應(yīng)用,提出了一種新的由一臺(tái)PC機(jī)和多臺(tái)單片機(jī)組成的一個(gè)小型集散控制系統(tǒng)的結(jié)構(gòu),實(shí)現(xiàn)了PC機(jī)與多臺(tái)單片機(jī)間的通信任務(wù)。本文作者創(chuàng)新點(diǎn):既充分利用PC機(jī)豐富的軟硬件資源實(shí)現(xiàn)友好的,又通過(guò)RS-232C/485總線結(jié)構(gòu)與8251單片機(jī)進(jìn)行通信,對(duì)多臺(tái)單片機(jī)進(jìn)行數(shù)據(jù)采集和處理。本系統(tǒng)不僅硬件實(shí)現(xiàn)簡(jiǎn)單,而且軟件實(shí)現(xiàn)可靠。通過(guò)長(zhǎng)時(shí)間長(zhǎng)距離的測(cè)試,證明該方法思路簡(jiǎn)單,價(jià)格低、功能強(qiáng)、抗干擾能力好、溫限寬、通訊可靠,是一種有效的多機(jī)通訊方法。同時(shí),系統(tǒng)可以通過(guò)串口通訊,擴(kuò)展為更高級(jí)別的集散控制系統(tǒng)。因此,這種小型集散控制系統(tǒng)有著廣闊的應(yīng)用前景。

參考文獻(xiàn)

[1] 肖金球等.一種多智能儀表DCS系統(tǒng)的研究.微計(jì)算機(jī)信息,2005,21(6):23-25

[2] 張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003.257-262

[3] 李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).北京:北京航空航天大學(xué)出版社,2000.94-112

[4] 鄭學(xué)堅(jiān),周斌.微型計(jì)算機(jī)原理及應(yīng)用(第三版).北京:清華大學(xué)出版社,2003.216-224

[5] 樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例.北京:北京航空航天大學(xué)出版社,2003.44-48

[6] 求是科技.Visual C++串口通信技術(shù)與工程實(shí)踐.北京:人民郵電出版社,2004.55-65

[7] 龔建偉,熊光明.Visual C++/Turbo C串口通信編程實(shí)踐.北京:電子工業(yè)出版社,2004.

[8] ATMEL.AT89S51 Databook.2001

[9] MAXIM.MAX485 Databook.1996



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉