?
嵌入式工控網(wǎng)絡(luò)的Proteus 仿真研究
0引言
嵌入式工控網(wǎng)絡(luò)是典型的集散控制系統(tǒng),在工業(yè)控制現(xiàn)場(chǎng)得到廣泛應(yīng)用。該系統(tǒng)由上下位機(jī)構(gòu)成,上位機(jī)實(shí)現(xiàn)集中管理,下位機(jī)負(fù)責(zé)分散控制。上下位機(jī)之間通過(guò)網(wǎng)絡(luò)連接[1],上位機(jī)采用工控機(jī),可記錄各站點(diǎn)工作狀態(tài)、歷史曲線,發(fā)送控制命令等;下位機(jī)通常由單片機(jī)、DSP、PLC站點(diǎn)等構(gòu)成,負(fù)責(zé)獨(dú)立控制現(xiàn)場(chǎng)設(shè)備。
Proteus是一款集單片機(jī)仿真與SPICE分析于一體的EDA仿真軟件。一般情況下,虛擬仿真環(huán)境不能與實(shí)際的物理環(huán)境進(jìn)行交互通信,但Proteus提供的組件COMPIM(串行接口組件),使Proteus虛擬環(huán)境與實(shí)際的物理環(huán)境直接交互成為可能。當(dāng)PC機(jī)或UART軟件生成的數(shù)字信號(hào)出現(xiàn)在COM口(串口)時(shí),COMPIM能緩沖接收數(shù)據(jù)[2]。鑒于此,以Proteus為單片機(jī)開發(fā)平臺(tái),可在一臺(tái)PC上實(shí)現(xiàn)嵌入式工控網(wǎng)絡(luò)設(shè)計(jì)與仿真分析。PC機(jī)與下位機(jī)之間通過(guò)COM口連接,設(shè)計(jì)關(guān)鍵是通信協(xié)議。
1Proteus虛擬環(huán)境與上位機(jī)通信模型
Proteus虛擬環(huán)境在PC1,串口調(diào)試助手軟件在PC2,且PC1與PC2都有物理串口[3]。Proteus虛擬環(huán)境與實(shí)際PC通信模型如圖1所示。
圖1 Proteus虛擬環(huán)境與實(shí)際PC的通信模型圖
Proteus虛擬環(huán)境與虛擬PC串口的通信模型如圖2所示。
圖2 Proteus虛擬環(huán)境與虛擬PC的通信模型圖
如果不希望使用物理PC串口而使用虛擬PC串口,則可在一臺(tái)PC上實(shí)現(xiàn)Proteus虛擬環(huán)境與虛擬PC串口之間的通信。這時(shí),還需要安裝虛擬串口驅(qū)動(dòng)軟件(virtual serial port driver,VSPD)。這對(duì)手提電腦的用戶非常實(shí)用,因?yàn)槭痔犭娔X通常沒有物理COM口。
2基于Proteus 的嵌入式工控網(wǎng)絡(luò)設(shè)計(jì)
2.1嵌入式工控網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)
嵌入式工控網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 嵌入式工控網(wǎng)絡(luò)結(jié)構(gòu)圖
上位機(jī)為PC機(jī)及應(yīng)用軟件,下位機(jī)由單片機(jī)構(gòu)成應(yīng)用系統(tǒng),上下位機(jī)之間通過(guò)串口連接。由于實(shí)際工控網(wǎng)絡(luò)系統(tǒng)需要串口連接線,考慮到串口驅(qū)動(dòng)能力,下位機(jī)最多可連接32個(gè)單元,且終端需要120 Ω匹配阻抗。在Proteus虛擬環(huán)境中,上下位機(jī)之間的通信不需要串口連接線,通過(guò)虛擬串口驅(qū)動(dòng)軟件Virtual Serial Port Driver實(shí)現(xiàn)驅(qū)動(dòng),且下位機(jī)數(shù)量不受限制。端口分配:上位機(jī)為COM5,下位機(jī)1~32全部為COM4。
2.2嵌入式工控網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)
嵌入式工控網(wǎng)絡(luò)結(jié)構(gòu)可分為應(yīng)用層、數(shù)據(jù)鏈路層、物理層3層。應(yīng)用層負(fù)責(zé)應(yīng)用程序的管理和執(zhí)行,其功能由單片機(jī)及PC應(yīng)用程序?qū)崿F(xiàn);數(shù)據(jù)鏈路層為串口通信協(xié)議(如異步數(shù)據(jù)幀格式),保證數(shù)據(jù)的可靠傳輸,實(shí)現(xiàn)傳輸速率和差錯(cuò)控制;物理層為物理接口和傳輸介質(zhì)[4-5]。
應(yīng)用層通信協(xié)議由地址碼、數(shù)據(jù)標(biāo)志、數(shù)據(jù)碼構(gòu)成。地址碼有5位,共32個(gè)代碼,對(duì)應(yīng)32個(gè)子站;數(shù)據(jù)標(biāo)志說(shuō)明每幀傳輸?shù)挠行?shù)據(jù)字節(jié)數(shù),如每幀傳輸128個(gè)字節(jié)數(shù)據(jù),則為7位,數(shù)據(jù)標(biāo)志的長(zhǎng)度可根據(jù)待傳輸?shù)臄?shù)據(jù)長(zhǎng)度增減;數(shù)據(jù)碼為待傳輸?shù)挠行?shù)據(jù),數(shù)據(jù)量不足的補(bǔ)0處理。在實(shí)際應(yīng)用時(shí),考慮到傳輸?shù)目煽啃?,還可在數(shù)據(jù)碼后面增加校驗(yàn)碼,如循環(huán)冗余校驗(yàn)[6]。
鏈路層通信協(xié)議,即串口異步數(shù)據(jù)幀,如圖4所示。
圖4 鏈路層通信協(xié)議
上位機(jī)發(fā)送給下位機(jī)的數(shù)據(jù),按照應(yīng)用層協(xié)議組成數(shù)據(jù)包,發(fā)送時(shí)以二進(jìn)制形式按字節(jié)發(fā)送至串口;鏈路層協(xié)議為異步數(shù)據(jù)幀,上位機(jī)和下位機(jī)分別通過(guò)程序設(shè)置完成,包括端口號(hào)、波特率、數(shù)據(jù)位長(zhǎng)度、奇偶校驗(yàn)位,應(yīng)用層數(shù)據(jù)發(fā)送至串口的數(shù)據(jù)自動(dòng)按照鏈路層協(xié)議傳輸[7]。下位機(jī)接收到上位機(jī)數(shù)據(jù)以后,先分離地址碼,并與本機(jī)地址碼進(jìn)行比較,確認(rèn)為本機(jī)地址碼后,再接收數(shù)據(jù)標(biāo)志和數(shù)據(jù);若不是本機(jī)地址碼,則不接收后面的數(shù)據(jù)標(biāo)志和數(shù)據(jù)。下位機(jī)發(fā)送給上位機(jī)的數(shù)據(jù),也按照同樣的規(guī)則傳輸[8]。
3基于Proteus 的嵌入式工控網(wǎng)絡(luò)的實(shí)現(xiàn)與仿真
3.1功能要求
本文所設(shè)計(jì)的嵌入式工控網(wǎng)絡(luò)的主要功能要求是:主站(上位機(jī))發(fā)送數(shù)據(jù)至子站(下位機(jī)),控制子站LED燈的循環(huán)點(diǎn)亮與熄滅;子站接收來(lái)自主站的指令后,可以獨(dú)立工作,互不影響。此外,子站開關(guān)閉合后,可控制子站向主站發(fā)送文本信息。主站可以接收來(lái)自各個(gè)子站發(fā)送的信息并且加以顯示,同時(shí)不同的文本信息不會(huì)被擦除,以待分析對(duì)比。
3.2通信協(xié)議設(shè)置
應(yīng)用層通信協(xié)議設(shè)置:根據(jù)控制子站的個(gè)數(shù)和所發(fā)送指令的長(zhǎng)短,可自行確定通信協(xié)議中的數(shù)據(jù)幀長(zhǎng)度。本文以控制兩個(gè)子站為例,考慮到實(shí)際應(yīng)用中最多可控制32個(gè)子站,故設(shè)置子站地址碼為“00000”和“00001”,分別對(duì)應(yīng)子站1和子站2;數(shù)據(jù)標(biāo)志為2位,可以標(biāo)志出數(shù)據(jù)碼中1~4個(gè)有效字節(jié)數(shù),即“00”(1個(gè)有效字節(jié))、“01”(2個(gè)有效字節(jié))、“10”(3個(gè)有效字節(jié))、“11”(4個(gè)有效字節(jié));控制命令循環(huán)點(diǎn)亮LED為“1”,熄滅LED為“0”,控制命令作為數(shù)據(jù)碼,需要補(bǔ)零處理,可以組成2個(gè)有效字節(jié)。數(shù)據(jù)幀包如表1所示。
表1 數(shù)據(jù)幀組成
將這些數(shù)據(jù)幀包賦給data數(shù)組,由VB以二進(jìn)制形式發(fā)給子站。主站發(fā)送數(shù)據(jù)幀時(shí),子站接收主站的數(shù)據(jù)幀,然后對(duì)地址和數(shù)據(jù)進(jìn)行分離。判斷數(shù)據(jù)幀中的地址碼,如果是自己的地址碼,則根據(jù)數(shù)據(jù)幀中的控制指令作出相應(yīng)的反應(yīng)。
鏈路層通信協(xié)議設(shè)置:為了便于串行通信設(shè)置,下位機(jī)(AT89C51)晶振時(shí)鐘頻率為11.059 2 MHz。打開串行接口組件COMPIM屬性對(duì)話框,設(shè)置端口為COM5。該串口是使用軟件虛擬出來(lái)的,波特率為9 600 bit/s,有8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn),有1個(gè)停止位。上位機(jī)端口為COM4,其他設(shè)置與下位機(jī)一致。COM4、COM5由虛擬串口驅(qū)動(dòng)軟件(VSPD)構(gòu)建虛擬串口,可在一臺(tái)計(jì)算機(jī)上實(shí)現(xiàn)嵌入式工控網(wǎng)絡(luò)仿真。
3.3硬件實(shí)現(xiàn)
上位機(jī)使用VB構(gòu)建應(yīng)用界面,包括上位機(jī)對(duì)下位機(jī)所有控制按鈕及用于接收下位機(jī)發(fā)送過(guò)來(lái)的文本信息的文本框,執(zhí)行數(shù)據(jù)的發(fā)送與接收。下位機(jī)是由單片機(jī)組成的應(yīng)用系統(tǒng),其硬件在Proteus中實(shí)現(xiàn),主要完成硬件平臺(tái)的搭建和仿真效果的測(cè)試。
在Proteus ISIS環(huán)境中,調(diào)用2個(gè)AT89C51單片機(jī)、COMPIM組件(該組件設(shè)置單片機(jī)串口通信協(xié)議)等,組成單片機(jī)通信系統(tǒng)。COMPIM已經(jīng)自帶電平轉(zhuǎn)換功能,就不需要MAX232元件。在P1口接8個(gè)LED,單片機(jī)的P3.0、P3.1分別與串口元件COMPIM的RXD、TXD相連。同時(shí),單片機(jī)的P3.2分別連接一個(gè)按鈕,用于觸發(fā)外部中斷,使下位機(jī)發(fā)送文本信息至上位機(jī)。
3.4軟件實(shí)現(xiàn)
系統(tǒng)軟件的實(shí)現(xiàn)包括PC上位機(jī)軟件和下位機(jī)單片機(jī)系統(tǒng)軟件的實(shí)現(xiàn)。
(1)上位機(jī)控制程序設(shè)計(jì)。
上位機(jī)使用VB建立界面和通信程序,完成數(shù)據(jù)的發(fā)送與接收。在工程中添加MSCOMM控件,然后進(jìn)行相應(yīng)的屬性設(shè)置(波特率、奇偶校驗(yàn)、停止位、發(fā)送與接收事件的觸發(fā)方式、發(fā)送數(shù)據(jù)的類型等),就可以用它發(fā)送與接收二進(jìn)制數(shù)據(jù)或文本數(shù)據(jù)。上位機(jī)控制流程如圖5所示。
(2)下位機(jī)控制程序設(shè)計(jì)。
下位機(jī)中的單片機(jī)主要完成串口接收與發(fā)送。下位機(jī)的單片機(jī)程序在Keil軟件中編寫。Proteus中的單片機(jī)系統(tǒng)加載控制程序,可實(shí)現(xiàn)聯(lián)調(diào),以便對(duì)嵌入式工控網(wǎng)絡(luò)進(jìn)行評(píng)估、驗(yàn)證。此外,還可以通過(guò)改變?cè)骷?shù)優(yōu)化電路設(shè)計(jì)??刂屏鞒倘鐖D6所示。
圖5 上位機(jī)控制流程圖(發(fā)送數(shù)據(jù))
圖6 下位機(jī)控制流程圖(接收數(shù)據(jù))
3.5嵌入式工控網(wǎng)絡(luò)的仿真分析
啟動(dòng)Proteus和VB的仿真按鈕,點(diǎn)擊VB(主站)中相應(yīng)的按鈕,觀察分析仿真結(jié)果,如圖7所示。
圖7 嵌入式工控網(wǎng)絡(luò)的仿真結(jié)果
圖7中,電阻R的阻值為200Ω。上位機(jī)控制下位機(jī)2的LED燈被循環(huán)點(diǎn)亮。綜合其他仿真結(jié)果,分析說(shuō)明了該嵌入式工控網(wǎng)絡(luò)設(shè)計(jì)實(shí)現(xiàn)了上位機(jī)對(duì)下位機(jī)即多個(gè)單片機(jī)的獨(dú)立控制。單擊仿真電路里的K1(或K2)觸發(fā)外部中斷,下位機(jī)發(fā)送信息至上位機(jī)中的VB應(yīng)用程序。
本設(shè)計(jì)不僅實(shí)現(xiàn)了PC機(jī)控制多個(gè)下位機(jī)的任務(wù),同時(shí)還可以接收多個(gè)下位機(jī)發(fā)送來(lái)的信息,從而實(shí)現(xiàn)了嵌入式工控網(wǎng)絡(luò)中上位機(jī)與下位機(jī)之間的雙向通信。
4結(jié)束語(yǔ)
本文在串口通信的基礎(chǔ)上,設(shè)計(jì)了一種適應(yīng)于嵌入式工控網(wǎng)絡(luò)的通信協(xié)議。以Proteus虛擬環(huán)境為平臺(tái),采用AT89C51單片機(jī)設(shè)計(jì)了兩個(gè)子站(下位機(jī)),用VB設(shè)計(jì)主站(上位機(jī))程序,并借用虛擬串口驅(qū)動(dòng)軟件(VSPD)構(gòu)建虛擬串口。該設(shè)計(jì)在一臺(tái)PC上實(shí)現(xiàn)了上位機(jī)與下位機(jī)之間的通信。仿真結(jié)果表明,設(shè)計(jì)結(jié)果滿足嵌入式工控網(wǎng)絡(luò)的應(yīng)用要求。
參考文獻(xiàn)
[1] 王中偉.嵌入式工控機(jī)系統(tǒng)分析與設(shè)計(jì)[D].西安:西北工業(yè)大學(xué),2005.
[2] 李朝青,劉艷玲,沈怡麟,等.單片機(jī)與PC機(jī)網(wǎng)絡(luò)通信技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007:100-115.
[3] 從宏壽.電子設(shè)計(jì)自動(dòng)化:Proteus在電子電路與51單片機(jī)中的應(yīng)用.[M].西安:西安電子科技大學(xué)出版社,2012:240-246.
[4] 沙燕萍,金德鵬,皇甫偉,等.簡(jiǎn)單數(shù)據(jù)鏈路協(xié)議的同步性能[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2008,42(7):887-880.
[5] 吳凌云,王靜.串口通信數(shù)據(jù)的傳輸[J].數(shù)字技術(shù)與應(yīng)用,2013(2):35-36.
[6] 李煊,丁為.常用設(shè)備串口通信協(xié)議及其應(yīng)用[J].自動(dòng)化儀表.2011,32(10):82-86.
[7] 劉根賢,王海霞,劉振宇,等.嵌入式處理器片外訪存加密機(jī)制設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2014(22):92-96.
[8] 邵新華,金元郁,呂學(xué)芳.基于組態(tài)軟件與VB的實(shí)時(shí)監(jiān)控系統(tǒng)[J].控制工程,2003,10(5):439-440.
Research on Proteus Simulation for Embedded Industrial Control Network
從宏壽蔡嬈嬈
(安徽工業(yè)大學(xué)電氣與信息工程學(xué)院,安徽 馬鞍山243000)
摘要:以Proteus為平臺(tái),對(duì)同一窗口放置多個(gè)單片機(jī)構(gòu)成多個(gè)子站(下位機(jī))進(jìn)行了研究。采用COMPIM組件,結(jié)合物理串口或虛擬串口,應(yīng)用VB6.0、C51分別編寫上位機(jī)程序、下位機(jī)程序,實(shí)現(xiàn)子站(下位機(jī))與主站(上位機(jī))的通信,構(gòu)成嵌入式工控網(wǎng)絡(luò)。若采用虛擬串口,可在一臺(tái)PC上實(shí)現(xiàn)嵌入式工控網(wǎng)絡(luò)的仿真研究。設(shè)計(jì)結(jié)果滿足嵌入式工控網(wǎng)絡(luò)的應(yīng)用要求。
關(guān)鍵詞:Proteus串口通信通信協(xié)議通信模型嵌入式工控網(wǎng)絡(luò)單片機(jī)集散控制系統(tǒng)VB
Abstract:With Proteus as the platform,the scheme of placing multiple single chip computers in the same window to constitute a plurality of sub-stations(lower computers) is researched.By using COMPIM components and combining physical serial port or virtual serial port,and VB6.0,C51 for respectively writing program of host computer and lower computer program,the communication between substation(lower computer) and master station(host computer),and the embedded industrial control network is constituted.If virtual serial ports are used,the simulation research of embedded industrial control network can be implemented on one PC.The design result meets the application requirement of embedded industrial control network.
Keywords:ProteusSerial communicationCommunication protocolCommunication modelEmbedded industrial control networkMCUDistributed control system(DCS)VB
中圖分類號(hào):TP368;TH89
文獻(xiàn)標(biāo)志碼:A
DOI:10.16086/j.cnki.issn1000-0380.201604014
國(guó)家自然科學(xué)基金資助項(xiàng)目(編號(hào):51277003)。
修改稿收到日期:2015-05-30。
第一作者從宏壽(1971-),男, 2005年畢業(yè)于西安電子科技大學(xué)自動(dòng)化專業(yè),獲碩士學(xué)位,副教授;主要研究方向?yàn)榍度胧较到y(tǒng)和計(jì)算機(jī)控制。