專利名稱:自動化系統(tǒng)中的一種通信網(wǎng)關(guān)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對控制系統(tǒng)中不同的智能設(shè)備與主系統(tǒng)的通信連接,更具體地說涉及自動化系統(tǒng)中的一種通信網(wǎng)關(guān)。
背景技術(shù):
在大中型自動化系統(tǒng),包括變電站自動化系統(tǒng)、水電站自動化系統(tǒng)以及其他工業(yè)自動化系統(tǒng)中,往往經(jīng)常涉及到大量的智能設(shè)備實(shí)現(xiàn)被測控對象的監(jiān)控,而這些設(shè)備一般通過通信方式采用不同的通信接口與各種標(biāo)準(zhǔn)于非標(biāo)準(zhǔn)通信協(xié)議將對象的特性傳送到中央控制單元。
由于現(xiàn)場智能設(shè)備的制造廠家不同,被監(jiān)測對象與中心控制單元的距離遠(yuǎn)近不同,造成通信接口差異性很大,比較常見的工業(yè)自動化控制系統(tǒng)通信方式包括有線和無線通信方式,而有線包括光纖以太網(wǎng)通信接口、串行RS485、RS422、RS232以及CAN、LONWORK、PROFIBUS等物理接口,各種智能設(shè)備的通信接口需要采用不同的通信速率(通信波特率)進(jìn)行通信傳輸,(對于采用串口通信的設(shè)備一般情況下距離越遠(yuǎn),通信波特率越低)。因此在組成工業(yè)控制系統(tǒng)的時候,就要采用相應(yīng)的方法把不同通信特性的智能設(shè)備歸納到中央控制單元可以接受的統(tǒng)一通信平臺上。解決這種不同設(shè)備之間通信互連的裝置就是網(wǎng)關(guān),傳統(tǒng)意義上的網(wǎng)關(guān)根據(jù)復(fù)雜程度采用以下幾種方式其一,透明協(xié)議轉(zhuǎn)換。這種方式是把被接入設(shè)備的只進(jìn)行不同設(shè)備之間的通信物理接口轉(zhuǎn)換,不涉及協(xié)議解析,一般用于系統(tǒng)比較小的場合,需要中央控制單元進(jìn)行報(bào)文解析。
其二,高檔微處理芯片單片機(jī)基礎(chǔ)上的多功能通信網(wǎng)關(guān),一般采用高檔的單片微處理器,同時具有多個不同接口,采用通信中斷請求處理方式,單任務(wù)處理模式,但由于可掛接的設(shè)備多樣,同時需要具有較高的雙向通信處理能力和報(bào)文解析能力,因此處理器主頻要求比較高,成本比較高。
其三,采用嵌入式處理器和多任務(wù)操作系統(tǒng)基礎(chǔ)上的高檔通信網(wǎng)關(guān),同時具有多個擴(kuò)展通信接口功能,因?yàn)樘幚砥鞯闹黝l很高,同時采用多任務(wù)操作系統(tǒng),因此處理能力大大加強(qiáng),可靠性也得到根本的提高。但采用這種方式成本比較高,研制周期也比較長。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,設(shè)計(jì)一種制造成本低同時可避免高速大容量數(shù)據(jù)交換時產(chǎn)生數(shù)據(jù)碰撞現(xiàn)象的自動化系統(tǒng)中的一種通信網(wǎng)關(guān),它由以下技術(shù)方案來實(shí)現(xiàn)自動化系統(tǒng)中的一種通信網(wǎng)關(guān),包括上位通信模塊,用于通過系統(tǒng)內(nèi)部總線接收中央控制單元的訪問命令,根據(jù)該命令從雙口RAM的對應(yīng)數(shù)據(jù)區(qū)讀取相關(guān)現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù)并將該設(shè)備數(shù)據(jù)發(fā)送給中央控制單元,或?qū)⑺鲋噶钪械脑O(shè)置數(shù)據(jù)存入對應(yīng)數(shù)據(jù)區(qū)并向中央控制單元發(fā)送響應(yīng)報(bào)文;雙口RAM,用于通過數(shù)據(jù)總線(A1)和地址總線(B1)存放中央控制單元訪問命令中的設(shè)置數(shù)據(jù)、上位通信模塊的工作狀態(tài)信息,通信參數(shù),和通過數(shù)據(jù)總線(A2)和地址總線(B2)存放現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù)、下位通信模塊的工作狀態(tài)信息,通信參數(shù),現(xiàn)場智能設(shè)備的通信參數(shù),通信狀態(tài)信息。
下位通信模塊,用于通過現(xiàn)場智能設(shè)備總線主動向現(xiàn)場智能設(shè)備發(fā)出訪問指令,根據(jù)該指令采集相關(guān)現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù),并將其存入雙口RAM的對應(yīng)數(shù)據(jù)區(qū),或從雙口RAM的對應(yīng)數(shù)據(jù)區(qū)調(diào)用上位通信模塊寫入的相關(guān)設(shè)置數(shù)據(jù),組成報(bào)文發(fā)送至現(xiàn)場智能設(shè)備,并接收現(xiàn)場智能設(shè)備的應(yīng)答信息。
所述上位通信模塊包括上位單片機(jī)和與之通信連接的上位通信電路;所述下位通信模塊包括上位單片機(jī)和與之通信連接的下位通信電路。
所述上位單片機(jī)及下位單片機(jī)分別由單片機(jī)(CPU1)和地址鎖存器(UA6)及單片機(jī)(CPU2)和地址鎖存器(UB6)組成,單片機(jī)(CPU1、CPU2)的數(shù)據(jù)/地址端口分別與數(shù)據(jù)總線和地址鎖存器(UA6、UB6)的輸入端口連接,其地址端口和地址鎖存器(UA6、UB6)的輸出端分別與地址總線連接。
所述上位通信電路采用雙冗余結(jié)構(gòu),它包括CANBUS收發(fā)器(UA2、UA2′)、光電耦合隔離器(UA3、UA4、UA3′、UA4′)和CANBUS控制器(UA5、UA5′),CANBUS收發(fā)器(UA2、UA2′)的串行發(fā)送端口通過光電耦合隔離器(UA3、UA3′)與CANBUS控制器(UA5、UA5′)的串行接收端口連接,CANBUS收發(fā)器(UA2、UA2′)的串行接收端口通過光電耦合隔離器(UA4、UA4′)與CANBUS控制器(UA5、UA5′)的串行發(fā)送端口連接,CANBUS控制器(UA5、UA5′)的數(shù)據(jù)端口(AD0-AD7)與對應(yīng)的數(shù)據(jù)總線和地址總線連接。
所述下位通信電路采用雙冗余結(jié)構(gòu),它包括CANBUS收發(fā)器(UB2、UB2′)、光電耦合隔離器(UB3、UB4、UB3′、UB4′)和CANBUS控制器(UB5、UB5′),CANBUS收發(fā)器(UB2、UB2′)的串行發(fā)送端口通過光電耦合隔離器(UB3、UB3′)與CANBUS控制器(UB5、UB5′)的串行接收端口連接,CANBUS收發(fā)器(UB2、UB2′)的串行接收端口通過光電耦合隔離器(UB4、UB4′)與CANBUS控制器(UB5、UB5′)的串行發(fā)送端口連接,CANBUS控制器(UB5、UB5′)的數(shù)據(jù)端口與對應(yīng)的數(shù)據(jù)總線和地址總線連接。
或包括RS485通信收發(fā)器(UB2、UB2′)和光電耦合隔離器(UB3、UB3′、UB4、UB4′、UB5、UB5′),RS485通信收發(fā)器(UB2、UB2′)的串行接收端口、串行發(fā)送端口和控制端口分別通過光電耦合隔離器(UB3、UB3′、UB4、UB4′、UB5、UB5′)與下位單片機(jī)(CPU)的串行發(fā)送端口,串行接收端口和控制信號輸出端口連接。
本發(fā)明的有益效果1)采用雙CPU分別和中央控制單元和現(xiàn)場智能設(shè)備分別進(jìn)行通信,在同一個時間內(nèi)雙方各自負(fù)擔(dān)自己關(guān)聯(lián)的通信部分,避免了高速大容量數(shù)據(jù)交換時經(jīng)??赡艹霈F(xiàn)的數(shù)據(jù)碰撞現(xiàn)象;2)采用雙口RAM負(fù)責(zé)進(jìn)行網(wǎng)關(guān)內(nèi)的兩個CPU之間的數(shù)據(jù)信息交換;而上位單片機(jī)要讀取的數(shù)據(jù)正好是下位單片機(jī)寫入的數(shù)據(jù),反之亦然,這樣很好地解決了數(shù)據(jù)切換帶來的通信可靠性下降的問題;3)采用相對低廉的雙單片機(jī)和雙口RAM可以同時進(jìn)行兩個任務(wù)同時工作,提高了通信數(shù)據(jù)的處理能力,可完全替代現(xiàn)有采用高檔微處理器和多任務(wù)操作系統(tǒng)的高成本網(wǎng)關(guān),具有很好的經(jīng)濟(jì)效益。
圖1是通信網(wǎng)關(guān)與系統(tǒng)的結(jié)構(gòu)示意框圖。
圖2是通信網(wǎng)關(guān)的結(jié)構(gòu)示意框圖。
圖3是上、下位通信采用CANBUS的網(wǎng)關(guān)電路模塊結(jié)構(gòu)示意圖。
圖4是上、下位通信分別采用CANBUS、RS485的網(wǎng)關(guān)電路模塊結(jié)構(gòu)示意圖。
圖5是上位單片機(jī)模塊工作流程圖。
圖6是下位單片機(jī)模塊工作流程圖。
圖7是上位單片機(jī)模塊中斷服務(wù)流程圖。
圖8是下位單片機(jī)模塊中斷服務(wù)流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步說明。
對照圖1,主控制系統(tǒng)的中央控制單元與標(biāo)準(zhǔn)的IO模件通過主系統(tǒng)的內(nèi)部IO層總線實(shí)現(xiàn)通信連接,中央控制單元可以為冗余配置,以提高系統(tǒng)可靠性。通信網(wǎng)關(guān)的上位端接入主系統(tǒng)IO層總線,下位端接入由現(xiàn)場智能設(shè)備組成的總線網(wǎng)絡(luò),從而實(shí)現(xiàn)與現(xiàn)場智能設(shè)備的通信連接。通信網(wǎng)關(guān)可以為冗余配置,通信網(wǎng)關(guān)的上、下位通信接口均為冗余配置,這樣的設(shè)計(jì)可以提高現(xiàn)場智能設(shè)備通過通信網(wǎng)關(guān)與中央控制單元進(jìn)行數(shù)據(jù)交換的可靠性。中央控制單元通過對通信網(wǎng)關(guān)的訪問,間接的與現(xiàn)場智能設(shè)備發(fā)生數(shù)據(jù)交換,這樣就可以將現(xiàn)場各種智能設(shè)備成功的接入主控制系統(tǒng),實(shí)現(xiàn)主控制系統(tǒng)對現(xiàn)場智能設(shè)備及標(biāo)準(zhǔn)IO模件的控制一體化。通信網(wǎng)關(guān)的上、下位通信是相對獨(dú)立工作的,在內(nèi)部通過雙口RAM進(jìn)行數(shù)據(jù)交換,這樣保證了中央控制單元訪問現(xiàn)場智能設(shè)備的實(shí)時性要求。
對照圖2,通信網(wǎng)關(guān)由雙口RAM和與之通信連接的上、下位通信模塊組成,結(jié)構(gòu)比較簡單。而上、下位通信模塊分別由上、下位單片機(jī)和與之通信連接的對應(yīng)上、下位通信電路及相關(guān)輔助電路(電源管理、掉電保護(hù)、看門狗等電路)組成。
在實(shí)際應(yīng)用中,可以根據(jù)需求設(shè)計(jì)多種類型如圖2所示的通信網(wǎng)關(guān),以配合實(shí)際需要的現(xiàn)場智能設(shè)備。也就是說,通信網(wǎng)關(guān)中的下位通信模塊,理論上可根據(jù)不同的通信方式,如RS485串行鏈路的MODBUS通信方式,CANBUS通信方式等來設(shè)計(jì),采用相對應(yīng)的通信硬件電路和相應(yīng)的數(shù)據(jù)存儲方式、訪問方式,通信數(shù)據(jù)格式等的軟件設(shè)計(jì)。
圖3、圖4就是兩種不同下位通信方式的網(wǎng)關(guān)。在圖3中,中央控制單元總線和現(xiàn)場智能設(shè)備總線均為CANBUS;圖4中,中央控制單元總線、現(xiàn)場智能設(shè)備總線分別為CANBUS和RS485。
對照圖3,上位通信電路為冗余配置,它包括CANBUS收發(fā)器UA2、UA2′、光電耦合隔離器UA3、UA4、UA3′、UA4′和CANBUS控制器UA5、UA5′,CANBUS收發(fā)器UA2、UA2′的串行發(fā)送端口ua2-txd、ua2′-txd通過光電耦合隔離器UA3、UA3′與CANBUS控制器UA5、UA5′的串行接收端口ua5-rxd、ua5′-rxd連接,CANBUS收發(fā)器UA2、UA2′的串行接收端口ua2-rxd、ua2′-rxd通過光電耦合隔離器UA4、UA4′與CANBUS控制器UA5、UA5′的串行發(fā)送端口ua5-txd、ua5′-txd連接,實(shí)現(xiàn)CANBUS控制器與控制單元內(nèi)部總線上通信數(shù)據(jù)的交換。CANBUS控制器UA5、UA5′的數(shù)據(jù)端口AD0-AD7與對應(yīng)的數(shù)據(jù)總線和地址總線連接。
上位單片機(jī)由單片機(jī)CPU1和地址鎖存器UA6組成,單片機(jī)CPU1的數(shù)據(jù)/地址端口P0.0~P0.7分別與數(shù)據(jù)總線和地址鎖存器UA6的輸入端口連接,單片機(jī)CPU1的地址端口和地址鎖存器UA6的輸出端分別與地址總線連接。單片機(jī)CPU1通過其數(shù)據(jù)總線A1和地址總線B1與雙口RAM連接,地址鎖存器UA6及CANBUS控制器UA5,UA5′連接。下位通信電路與上位通信電路電路構(gòu)成基本相同,也為冗余配置。其中UB1,UB1′表示冗余的下位CANBUS。
對照圖4,上位通信電路與圖3中相同,都是采用了CANBUS,并為冗余配置。下位通信電路為RS485通信電路,包括RS485通信收發(fā)器UB2、UB2′和光電耦合隔離器UB3、UB3′、UB4、UB4′、UB5、UB5′,RS485通信收發(fā)器UB2、UB2′的串行接收端口ub2-rxd0、ub2′-rxd0、串行發(fā)送端口ub2-txd0、ub2′-txd0和控制端口ub2-re/de0、ub2′-re/de0分別通過光電耦合隔離器UB3、UB3′、UB4、UB4′、UB5、UB5′與下位單片機(jī)的串行發(fā)送端口cpu2-txd0、cpu2-txd1,串行接收端口cpu2-rxd0、cpu2-rxd1和P3.2,P3.3控制信號輸出端口連接。下位通信電路通過軟件設(shè)計(jì)可以設(shè)計(jì)為冗余配置,也可以設(shè)計(jì)為非冗余配置,接入不同的RS485總線,這可以根據(jù)實(shí)際需求和實(shí)際硬件工作能力進(jìn)行設(shè)計(jì)。
下位單片機(jī)的組成結(jié)構(gòu)與圖3所示的網(wǎng)關(guān)結(jié)構(gòu)中的下位單片機(jī)相同。由單片機(jī)CPU2和地址鎖存器UB6組成。單片機(jī)CPU2通過其數(shù)據(jù)總線A2和地址總線B2與雙口RAM,地址鎖存器(UB6)連接。UB1,UB1′表示下位RS485總線,通信網(wǎng)關(guān)通過RS485通信收發(fā)器UB2,UB2′接入到該網(wǎng)絡(luò)中。
通信網(wǎng)關(guān)的上、下位通信是相對獨(dú)立的,兩者間通過網(wǎng)關(guān)內(nèi)的雙口RAM共享現(xiàn)場智能設(shè)備的數(shù)據(jù)。另外,一些通信時需要使用的參數(shù),現(xiàn)場設(shè)備的信息,現(xiàn)場設(shè)備的通信狀態(tài)標(biāo)志等也存放在雙口RAM中供上下共享。
此外,在上、下位通信模塊中還有一些輔助電路。圖3、圖4中給出了掉電電路UB7、UB7′(數(shù)據(jù)可存儲芯片X5045)和LED通信狀態(tài)顯示電路UB8、UB8′。掉電數(shù)據(jù)可存儲芯片存放了一些重要信息,如現(xiàn)場智能設(shè)備信息,上、下位通信參數(shù)等等,這樣,通信網(wǎng)關(guān)發(fā)生掉電后,再次上電時就無需重新設(shè)置這些信息。
本發(fā)明網(wǎng)關(guān)的上位通信模塊的工作流程如圖5。上位單片機(jī)程序開始運(yùn)行時,首先對單片機(jī)和雙口RAM進(jìn)行初始化工作,上位單片機(jī)從掉電數(shù)據(jù)可存儲芯片中讀取事先寫入的現(xiàn)場智能設(shè)備的信息,上下位通信參數(shù)信息等,并將需要與下位單片機(jī)共享的數(shù)據(jù)存放入雙口RAM中供下位調(diào)用。同時一些數(shù)據(jù)交換時需要使用的標(biāo)志位被初始化,這些標(biāo)志位也都存放在雙口RAM中共享。在通信電路成功初始化之后,上位通信電路的通信口打開,開始監(jiān)視總線上是否有報(bào)文需要接收。
通信電路初始化之后有一個啟動定時器的步驟,該定時器是用來計(jì)時的,在整個程序運(yùn)行的過程中,定時器每累計(jì)時間300ms,就會去讀取下位單片機(jī)在雙口RAM中的一個工作狀態(tài)標(biāo)志,該標(biāo)志是由下位單片機(jī)設(shè)置的,在工作狀態(tài)下上位單片機(jī)對該標(biāo)志定時監(jiān)視。這個標(biāo)志是一個累加數(shù),下位單片機(jī)會不斷的累加這個標(biāo)志。上位單片機(jī)在300ms定時時間到時,會去讀取這個標(biāo)志并與上一次讀到的標(biāo)志進(jìn)行比較,如果兩次數(shù)值不一樣,則表示下位單片機(jī)正常工作,兩次數(shù)值一樣,則下位單片機(jī)對該標(biāo)志沒有做修改,表明下位單片機(jī)可能已故障,這時上位單片機(jī)會將下位單片機(jī)故障標(biāo)志位置1,如果下位單片機(jī)工作恢復(fù)正常,該標(biāo)志就被置0。只要定時時間設(shè)置合適,就可以保證上位單片機(jī)對下位單片機(jī)工作狀態(tài)的正確監(jiān)視,以防止下位單片機(jī)死機(jī)的情況。以上流程見圖5中判斷定時時間到300ms后的流程。
在上位單片機(jī)的工作流程中,程序每循環(huán)運(yùn)行一次,上位單片機(jī)還會去監(jiān)視下位單片機(jī)停止掃描標(biāo)志,以判斷下位單片機(jī)的掃描是不是已停止。如果發(fā)現(xiàn)下位掃描停止了,上位單片機(jī)會立刻關(guān)閉通信口,重新進(jìn)行全部初始化,程序重新開始。這樣,可以將掃描現(xiàn)場設(shè)備智能的任務(wù)立刻移交給冗余通信網(wǎng)關(guān),保證了掃描的可靠性和切換的及時性。
定時器啟動后,上位單片機(jī)就開始接收總線上來的數(shù)據(jù)。上位通信報(bào)文按功能分有兩種,一種是用來設(shè)置或讀取通信網(wǎng)關(guān)工作參數(shù)以及現(xiàn)場智能設(shè)備信息的調(diào)試命令,這種報(bào)文一般在通信網(wǎng)關(guān)出廠前調(diào)試時使用,一種是正常工作狀態(tài)下上位控制單元通過通信網(wǎng)關(guān)訪問現(xiàn)場智能設(shè)備的工作命令。通信網(wǎng)關(guān)在接收到報(bào)文后,會判斷報(bào)文是調(diào)試命令還是工作命令,分類處理。如果是調(diào)試命令,就對報(bào)文進(jìn)行進(jìn)一步解析,然后根據(jù)要求設(shè)置或讀取通信網(wǎng)關(guān)參數(shù)或現(xiàn)場設(shè)備信息,其中設(shè)置的信息會同時保存進(jìn)掉電數(shù)據(jù)可存儲芯片。在工作狀態(tài)下,上位控制單元在確認(rèn)通信網(wǎng)關(guān)已連接后,首先要發(fā)送的是通信網(wǎng)關(guān)啟動下位掃描命令,通信網(wǎng)關(guān)在接收到這個命令后,會將雙口RAM中啟動下位掃描標(biāo)志置1,下位讀該標(biāo)志,發(fā)現(xiàn)被置1后,才啟動掃描。不過,并不是收到啟動命令后,中央控制單元就能立刻訪問到現(xiàn)場智能設(shè)備數(shù)據(jù)的,必須在下位完成對現(xiàn)場智能設(shè)備的第一次全部掃描后,通信網(wǎng)關(guān)才會回應(yīng)上位控制單元對現(xiàn)場智能設(shè)備的訪問。這樣設(shè)計(jì)的目的,是為了保證上位控制單元訪問現(xiàn)場智能數(shù)據(jù)的有效性,防止上位控制單元因接收到無效的信息系統(tǒng)產(chǎn)生誤動作。
流程圖5中啟動掃描后的判斷選項(xiàng)均成立后,上位單片機(jī)解析來自上位控制單元的請求命令,從雙口RAM中獲得中央控制單元需要的下位掃描采集到的關(guān)于現(xiàn)場設(shè)備的數(shù)據(jù),或者將中央控制單元對現(xiàn)場智能設(shè)備的設(shè)置命令中的具體數(shù)值存入雙口RAM中,再做出相應(yīng)的應(yīng)答。
通信網(wǎng)關(guān)的上位數(shù)據(jù)接收工作是在上位通信中斷中進(jìn)行的。當(dāng)網(wǎng)關(guān)上位通信電路接收到數(shù)據(jù)后,會觸發(fā)上位單片機(jī)的外部中斷,這樣,單片機(jī)就進(jìn)入了如圖7所示的上位單片機(jī)通信中斷服務(wù)程序。通信中斷的原因有幾種,中斷程序首先判斷通信電路產(chǎn)生的哪種中斷,在發(fā)送完成中斷等中斷發(fā)生時,程序都會將通信電路軟復(fù)位一次,目的是保證通信電路長期運(yùn)行的可靠性,通信電路不至于出現(xiàn)通信死機(jī)現(xiàn)象。當(dāng)有數(shù)據(jù)接收中斷產(chǎn)生時,程序首先會將一個上位通信狀態(tài)標(biāo)志加1。這個標(biāo)志的設(shè)置目的與前面所述的下位工作狀態(tài)標(biāo)志設(shè)置目的相同,將會在介紹下位通信時詳細(xì)說明。然后判斷下位掃描是否未掃描到任何設(shè)備,這個也是去判斷一個由下位建立的標(biāo)志,設(shè)計(jì)目的是在下位掃描不到任何設(shè)備時,暫停對中央控制單元的響應(yīng)。然后,程序先取出報(bào)文的標(biāo)識信息,以判斷該報(bào)文是調(diào)試命令還是工作命令,如果是調(diào)試命令,就直接將報(bào)文轉(zhuǎn)存到接收緩沖區(qū),如果是工作命令,還要判斷上位控制單元要訪問的現(xiàn)場設(shè)備的當(dāng)前通信狀態(tài),如果狀態(tài)正常,就將報(bào)文存放到接收緩沖區(qū),如果不正常,直接丟棄報(bào)文,不做響應(yīng)。如此之多的判斷功能,主要目的是為了提高通信網(wǎng)關(guān)的工作效率,使中央處理單元及時發(fā)現(xiàn)現(xiàn)場智能設(shè)備和通信網(wǎng)關(guān)的工作故障,保證系統(tǒng)可靠性。
通信網(wǎng)關(guān)上位通信有冗余的兩個通信口,這兩個口的通信功能是相同的,中央控制單元在訪問某個口失敗時,會主動訪問另一個通信口以獲得數(shù)據(jù)。
本發(fā)明網(wǎng)關(guān)的下位通信模塊的工作流程如圖6。下位單片機(jī)程序開始運(yùn)行時,首先對單片機(jī)等進(jìn)行初始化操作,完成后,就監(jiān)視啟動下位掃描標(biāo)志,當(dāng)上位單片機(jī)將該標(biāo)志置1后,程序才會繼續(xù)進(jìn)行流程圖下面的內(nèi)容。在這個監(jiān)視過程中,下位單片機(jī)會將下位工作狀態(tài)標(biāo)志不斷的加1,使上位知道下位單片機(jī)是在正常運(yùn)行的。
當(dāng)下位單片機(jī)發(fā)現(xiàn)啟動掃描標(biāo)志置1后,程序讀取雙口RAM中下位通信必要的信息,如波特率,通信網(wǎng)關(guān)地址等,并將下位通信電路初始化,通過現(xiàn)場智能設(shè)備總線向冗余的通信網(wǎng)關(guān)發(fā)送停止掃描命令。這樣的停止命令會以一定的時間間隔發(fā)送4次,其中某次收到冗余網(wǎng)關(guān)回應(yīng)后停止發(fā)送。如果冗余網(wǎng)關(guān)接收到該命令并回應(yīng),則程序知道冗余網(wǎng)關(guān)將停止掃描,于是準(zhǔn)備啟動掃描,如果4次發(fā)送停止命令均未收到回應(yīng),程序?qū)⒄J(rèn)為冗余網(wǎng)關(guān)下位通信故障,仍將準(zhǔn)備啟動掃描。這樣的設(shè)計(jì)目的,是在冗余切換時,保證兩個網(wǎng)關(guān)下位通信始終一停一啟,不會發(fā)生兩個網(wǎng)關(guān)都在進(jìn)行下位掃描的情況。
啟動下位掃描前,冗余網(wǎng)關(guān)將讀取雙口RAM中掃描現(xiàn)場智能設(shè)備必要的信息,重新初始化通信電路,并啟動定時器1。這里的定時器1的作用與前面介紹上位的定時器的作用是類似的。主要是下位單片機(jī)用來定時監(jiān)視上位單片機(jī)工作狀態(tài)的。在下位循環(huán)掃描的過程中,當(dāng)程序發(fā)現(xiàn)定時時間到時,會去讀取上位單片機(jī)通信狀態(tài)標(biāo)志,這個標(biāo)志就是上位單片機(jī)在上位通信中斷服務(wù)程序里面累加的標(biāo)志,下位單片機(jī)讀取這個標(biāo)志然后與上次讀取的標(biāo)志比較,如果不同,表示上位通信正常,如果相同,表示上位通信故障,這時,程序會將雙口RAM中的停止掃描標(biāo)志位置1,使上、下位都停止掃描,網(wǎng)關(guān)發(fā)生切換。
在下位單片機(jī)循環(huán)掃描過程中,下位單片機(jī)會將下位工作狀態(tài)標(biāo)志不斷加1,供上位監(jiān)視,以表明目前下位是正常工作狀態(tài)。
循環(huán)掃描過程是通信網(wǎng)關(guān)下位單片機(jī)對現(xiàn)場智能設(shè)備總線上設(shè)備按照順序逐次進(jìn)行訪問的過程。每發(fā)送一個訪問請求,就會啟動定時器2,在一定的時間內(nèi)一直等待設(shè)備的響應(yīng)。如果接收到響應(yīng)報(bào)文,程序會對報(bào)文進(jìn)行解析,判斷報(bào)文的有效性,如果有效,則做出相應(yīng)的處理,同時會將設(shè)備對應(yīng)狀態(tài)標(biāo)志位置1表示對應(yīng)設(shè)備的數(shù)據(jù)交換正常,通信成功。如果在定時時間結(jié)束后,都沒有收到響應(yīng)數(shù)據(jù),程序會對該設(shè)備通信無回應(yīng)狀況記錄,然后按照如上的方式掃描下一個設(shè)備,直到掃描完所有設(shè)備。在掃描過程中,程序會讀取雙口RAM中的停止掃描標(biāo)志位,判斷是否需要立刻停止當(dāng)前掃描,如果該標(biāo)志置1,程序會立刻停下掃描工作,關(guān)閉通信口,重新初始化,重新等待啟動命令。
通信網(wǎng)關(guān)下位通信電路是冗余的,如同上面掃描過程一樣,如果在第一個通信口掃描設(shè)備無響應(yīng)情況發(fā)生時,程序會在第一個通信口掃描完成后,根據(jù)設(shè)備通信無回應(yīng)狀況記錄使用另一個通信口再次對現(xiàn)場智能設(shè)備再進(jìn)行一次完全相同的掃描。
當(dāng)使用冗余的兩個通信口都完成掃描后,程序會分析掃描結(jié)果,如果兩次都沒有掃描到任何設(shè)備,則掃描全部設(shè)備失敗標(biāo)志位置1,這時,上位通信中斷程序中就會丟棄所有的訪問現(xiàn)場智能設(shè)備的命令,暫停對中央控制單元的訪問。如果是有某些設(shè)備未掃描到,程序會判斷這些設(shè)備是否連續(xù)3次都沒有掃描到,如果是,就將對應(yīng)設(shè)備的通信故障標(biāo)志位置1,這樣上位通信中斷程序就會丟棄中央控制單元對該設(shè)備的工作命令,不做回應(yīng),以使上位控制單元得知該設(shè)備已故障。
當(dāng)完成第一次完整的掃描過程后,程序?qū)㈦p口RAM中的第一輪掃描完成標(biāo)志置1,以啟動上位單片機(jī)對中央控制單元工作命令的響應(yīng)。
通信網(wǎng)關(guān)的下位數(shù)據(jù)接收工作是在下位通信中斷中進(jìn)行的。當(dāng)網(wǎng)關(guān)下位通信電路接收到數(shù)據(jù)后,會觸發(fā)下位單片機(jī)的外部中斷,這樣,單片機(jī)就進(jìn)入了如圖8所示的下位單片機(jī)通信中斷服務(wù)程序。這個中斷服務(wù)程序類似于上位通信中斷服務(wù)程序,不過較為簡單。通信中斷的原因有幾種,中斷程序首先判斷通信電路產(chǎn)生的哪種中斷,在發(fā)送完成中斷等中斷發(fā)生時,程序都會將通信電路軟復(fù)位一次,目的是保證通信電路長期運(yùn)行的可靠性,通信電路不至于出現(xiàn)通信死機(jī)現(xiàn)象。當(dāng)有數(shù)據(jù)接收中斷產(chǎn)生時,程序直接將數(shù)據(jù)取出存入下位單片機(jī)在雙口RAM中開辟的報(bào)文接收緩沖區(qū),然后中斷就退出。具體的報(bào)文有效性判斷等在報(bào)文處理程序中進(jìn)行。
權(quán)利要求
1.自動化系統(tǒng)中的一種通信網(wǎng)關(guān),包括上位通信模塊,用于通過系統(tǒng)內(nèi)部總線接收中央控制單元的訪問命令,根據(jù)該命令從雙口RAM的對應(yīng)數(shù)據(jù)區(qū)讀取相關(guān)現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù)并將該設(shè)備數(shù)據(jù)發(fā)送給中央控制單元,或?qū)⑺鲋噶钪械脑O(shè)置數(shù)據(jù)存入對應(yīng)數(shù)據(jù)區(qū)并向中央控制單元發(fā)送響應(yīng)報(bào)文;雙口RAM,用于通過數(shù)據(jù)總線(A1)和地址總線(B1)存放中央控制單元訪問命令中的設(shè)置數(shù)據(jù)、上位通信模塊的工作狀態(tài)信息,通信參數(shù),和通過數(shù)據(jù)總線(A2)和地址總線(B2)存放現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù)、下位通信模塊的工作狀態(tài)信息,通信參數(shù),現(xiàn)場智能設(shè)備的通信參數(shù),通信狀態(tài)信息。下位通信模塊,用于通過現(xiàn)場智能設(shè)備總線主動向現(xiàn)場智能設(shè)備發(fā)出訪問指令,根據(jù)該指令采集相關(guān)現(xiàn)場智能設(shè)備的設(shè)備數(shù)據(jù),并將其存入雙口RAM的對應(yīng)數(shù)據(jù)區(qū),或從雙口RAM的對應(yīng)數(shù)據(jù)區(qū)調(diào)用上位通信模塊寫入的相關(guān)設(shè)置數(shù)據(jù),組成報(bào)文發(fā)送至現(xiàn)場智能設(shè)備,并接收現(xiàn)場智能設(shè)備的應(yīng)答信息。
2.根據(jù)權(quán)利要求1所述的自動化系統(tǒng)中的一種通信網(wǎng)關(guān),其特征在于所述上位通信模塊包括上位單片機(jī)和與之通信連接的上位通信電路;所述下位通信模塊包括上位單片機(jī)和與之通信連接的下位通信電路。
3.根據(jù)權(quán)利要求2所述的自動化系統(tǒng)中的一種通信網(wǎng)關(guān),其特征在于所述上位單片機(jī)及下位單片機(jī)分別由單片機(jī)(CPU1)和地址鎖存器(UA6)及單片機(jī)(CPU2)和地址鎖存器(UB6)組成,單片機(jī)(CPU1、CPU2)的數(shù)據(jù)/地址端口分別與數(shù)據(jù)總線和地址鎖存器(UA6、UB6)的輸入端口連接,其地址端口和地址鎖存器(UA6)的輸出端分別與地址總線連接。
4.根據(jù)權(quán)利要求3所述的自動化系統(tǒng)中的一種通信網(wǎng)關(guān),其特征在于所述上位通信電路采用雙冗余結(jié)構(gòu),它包括CANBUS收發(fā)器(UA2、UA2′)、光電耦合隔離器(UA3、UA4、UA3′、UA4′)和CANBUS控制器(UA5、UA5′),CANBUS收發(fā)器(UA2、UA2′)的串行發(fā)送端口通過光電耦合隔離器(UA3、UA3′)與CANBUS控制器(UA5、UA5′)的串行接收端口連接,CANBUS收發(fā)器(UA2、UA2′)的串行接收端口通過光電耦合隔離器(UA4、UA4′)與CANBUS控制器(UA5、UA5′)的串行發(fā)送端口連接,CANBUS控制器(UA5、UA5′)的數(shù)據(jù)端口(AD0-AD7)與對應(yīng)的數(shù)據(jù)總線和地址總線連接。
5.根據(jù)權(quán)利要求3所述的自動化系統(tǒng)中的一種通信網(wǎng)關(guān),其特征在于所述下位通信電路采用雙冗余結(jié)構(gòu),它包括CANBUS收發(fā)器(UB2、UB2′)、光電耦合隔離器(UB3、UB4、UB3′、UB4′)和CANBUS控制器(UB5、UB5′),CANBUS收發(fā)器(UB2、UB2′)的串行發(fā)送端口通過光電耦合隔離器(UB3、UB3′)與CANBUS控制器(UB5、UB5′)的串行接收端口連接,CANBUS收發(fā)器(UB2、UB2′)的串行接收端口通過光電耦合隔離器(UB4、UB4′)與CANBUS控制器(UB5、UB5′)的串行發(fā)送端口連接,CANBUS控制器(UB5、UB5′)的數(shù)據(jù)端口與對應(yīng)的數(shù)據(jù)總線和地址總線連接?;虬≧S485通信收發(fā)器(UB2、UB2′)和光電耦合隔離器(UB3、UB3′、UB4、UB4′、UB5、UB5′),RS485通信收發(fā)器(UB2、UB2′)的串行接收端口、串行發(fā)送端口和控制端口分別通過光電耦合隔離器(UB3、UB3′、UB4、UB4′、UB5、UB5′)與下位單片機(jī)的串行發(fā)送端口,串行接收端口和P3.2,P3.3控制信號輸出端口連接。
全文摘要
本發(fā)明涉及自動化系統(tǒng)中的一種通信網(wǎng)關(guān)。其技術(shù)方案為包括上位通信模塊,雙口RAM和下位通信模塊,所述上、下位通信模塊分別與雙口RAM通信連接。其優(yōu)點(diǎn)是1)采用雙CPU分別和中央控制單元和現(xiàn)場智能設(shè)備分別進(jìn)行通信,在同一個時間內(nèi)雙方各自負(fù)擔(dān)自己關(guān)聯(lián)的通信部分,避免了高速大容量數(shù)據(jù)交換時經(jīng)??赡艹霈F(xiàn)的數(shù)據(jù)碰撞現(xiàn)象;2)采用雙口RAM負(fù)責(zé)進(jìn)行網(wǎng)關(guān)內(nèi)的兩個CPU之間的數(shù)據(jù)信息交換,雙方的數(shù)據(jù)互為讀取與寫入信息,很好地解決了數(shù)據(jù)切換帶來的通信可靠性下降的問題;3)采用相對低廉的雙單片機(jī)和雙口RAM可以同時進(jìn)行兩個任務(wù)同時工作,提高了通信數(shù)據(jù)的處理能力,可完全替代現(xiàn)有采用高檔微處理器和多任務(wù)操作系統(tǒng)的高成本網(wǎng)關(guān),具有很好的經(jīng)濟(jì)效益。
文檔編號H04L12/66GK1889543SQ20061008838
公開日2007年1月3日 申請日期2006年7月17日 優(yōu)先權(quán)日2006年7月17日
發(fā)明者朱寧寧, 王丹麟, 唐衛(wèi)洲 申請人:朱寧寧, 楊衛(wèi)民, 吳勝華