摘 要:在工業(yè)監(jiān)控系統(tǒng)中,建立高速、可靠的數(shù)據(jù)通信通道是其中的關(guān)鍵技術(shù)。針對實際監(jiān)控系統(tǒng)超過500個現(xiàn)場節(jié)點的要求,應(yīng)用可靠快捷的CAN總線組網(wǎng)技術(shù),并對各種CAN總線擴展組網(wǎng)方案進行研究,分析各組網(wǎng)方案的原理,比較其優(yōu)缺點,在實際系統(tǒng)中采用通過多串口卡擴展CAN通道組網(wǎng)方案,充分利用計算機高速分時采集數(shù)據(jù)、處理數(shù)據(jù)的特點,提高系統(tǒng)的可靠性。并給出系統(tǒng)中部分電路原理圖和軟件程序流程圖。
關(guān)鍵詞:CAN總線;多串口卡;轉(zhuǎn)換卡;流程圖
中圖分類號:TP273 文獻標識碼:A
文章編號:1004-373X(2008)06-095-04
Research on Multi-channel CAN Bus Networking
SONG Yuqin 2,GONG Chao3,ZHANG Wanjiang4
(1.College of Automation,Northwestern Polytechnical University ,Xi′an,710072,China;
2.College of Electronics and Information,Xi′an Polytechnical University,Xi′an,710048,China;
3.Sale Department,Xi′an Coal Mining Machinery Plant,Xi′an,710032,China;4.Xi′an Electric Power Institute,Xi′an,710032,China)
Abstract:Building high-speed and reliable communication channel is crucial technology in industry monitor system.Aiming at requirements over 500 field nodes in practical monitor system,the reliable and fast CAN bus technology is used.Various extended CAN bus networking schemes are studied.The theories of schemes are analyzed.Advantages and disadvantages are compared.The extended networking project through multi-serial port card is adopted in the practical system.It makes good use of the computer characteristics of high speed and time-sharing dada collection and processing.The reliability of system is improved.Parts of circuit theory chart and program flow chart are illustrated.
Keywords:CAN bus;multi-serial port card;conversion card;flow chart
1 引 言
在工業(yè)過程的數(shù)據(jù)采集、監(jiān)控管理及分布式控制中,要求車間監(jiān)控室通過高速數(shù)據(jù)通道對生產(chǎn)現(xiàn)場的運行數(shù)據(jù)進行實時、準確監(jiān)控,從而改善控制性能,提高控制精度,有效進行設(shè)備故障檢測和診斷,及時反映企業(yè)生產(chǎn)狀況,提高企業(yè)的生產(chǎn)效率。因此在監(jiān)控系統(tǒng)中采用何種技術(shù)組建網(wǎng)絡(luò)數(shù)據(jù)通道就成為一個關(guān)鍵問題,由于采用CAN現(xiàn)場總線技術(shù)構(gòu)建網(wǎng)絡(luò)通道具有良好的故障隔離能力和可靠性,因此在工業(yè)控制系統(tǒng)中得到了廣泛的應(yīng)用。本文根據(jù)實際監(jiān)控系統(tǒng)超過500個現(xiàn)場節(jié)點的要求,對各種CAN總線擴展組網(wǎng)方案進行了比較研究,最終采用擴展多通道串口CAN總線組網(wǎng)方案,提高系統(tǒng)通信速度和可靠性,完全滿足系統(tǒng)要求。
2 多通道CAN總線組網(wǎng)方案
監(jiān)控系統(tǒng)采用CAN總線作為數(shù)據(jù)通道,具有數(shù)據(jù)傳輸速率快、可靠性高的優(yōu)點。但CAN總線組網(wǎng)節(jié)點有限,網(wǎng)絡(luò)中最多只能有110個節(jié)點,在系統(tǒng)節(jié)點眾多時,采用單一CAN總線網(wǎng)絡(luò)就無法滿足系統(tǒng)要求,必須對CAN總線網(wǎng)絡(luò)進行擴展。
(1) 組網(wǎng)方案1:采用多個CAN卡進行直接組網(wǎng)。
購買市場上成熟的CAN卡產(chǎn)品,把多個CAN卡直接插入到監(jiān)控室PC機的擴展插槽中,利用CAN卡組成多個CAN網(wǎng)絡(luò),實現(xiàn)對現(xiàn)場節(jié)點的監(jiān)控。例如對于具有150個節(jié)點的系統(tǒng),可以采用2塊CAN卡,每塊CAN卡實現(xiàn)對75個節(jié)點數(shù)據(jù)的監(jiān)控。這種方案,系統(tǒng)結(jié)構(gòu)簡單,組網(wǎng)方便,但對于節(jié)點眾多的監(jiān)控系統(tǒng),卻難以實現(xiàn)。如本系統(tǒng)要求對500多個現(xiàn)場節(jié)點進行監(jiān)控,至少需要5塊CAN卡,而PC機的擴展插槽有限,因此本系統(tǒng)只適用于網(wǎng)絡(luò)節(jié)點數(shù)較少的系統(tǒng)。
(2) 組網(wǎng)方案2:采用分級監(jiān)控的方案。
采用單路輸出的CAN卡和CAN中間轉(zhuǎn)換系統(tǒng)組成一級CAN總線網(wǎng)絡(luò),再通過CAN中間轉(zhuǎn)換系統(tǒng)和現(xiàn)場節(jié)點組成二級CAN網(wǎng)絡(luò),從而擴展了現(xiàn)場監(jiān)測系統(tǒng)的節(jié)點數(shù),級數(shù)越多,可監(jiān)控的現(xiàn)場節(jié)點數(shù)也就越多。分級擴展的方案可擴充的節(jié)點多,但由于需要中間轉(zhuǎn)換系統(tǒng),使系統(tǒng)的級數(shù)增加,現(xiàn)場信息必需經(jīng)過中級才能傳送到主計算機處理,信息傳送速率較慢,且在中間級出現(xiàn)故障時會使系統(tǒng)局部癱換,此種方案適用與監(jiān)測節(jié)點在千點以上的系統(tǒng)。
(3) 組網(wǎng)方案3:通過擴展串行端口,結(jié)合多路RS 232轉(zhuǎn)CAN總線的轉(zhuǎn)換卡,實現(xiàn)對CAN網(wǎng)絡(luò)的擴展。
即購買多路輸出的串口卡,比如MOXA公司生產(chǎn)的4路或8路輸出的多串口卡C104P/C168P,再配以多路RS 232輸入多路CAN總線輸出的轉(zhuǎn)換卡,分時對各路掛接的節(jié)點掃描監(jiān)測,從而擴展所監(jiān)測的節(jié)點數(shù)。采用多串口卡的方案,可充分利用計算機高速分時采集數(shù)據(jù)、處理數(shù)據(jù)的特點,多路“同時”發(fā)送及接收數(shù)據(jù),采集現(xiàn)場數(shù)據(jù)快捷及時,即采集數(shù)據(jù)的速率高。并且由于每路的CAN總線直接與現(xiàn)場監(jiān)測系統(tǒng)相連,可以很好地實現(xiàn)現(xiàn)場數(shù)據(jù)的分散采集,主計算機對數(shù)據(jù)的集中處理,系統(tǒng)的危險分散,可靠性高。但此種方案需要購買多串口卡,并對每個串口輸出配置RS 232轉(zhuǎn)CAN的轉(zhuǎn)換卡。此種方案最適用于一千個節(jié)點以下的系統(tǒng)。系統(tǒng)組網(wǎng)結(jié)構(gòu)圖如圖1所示。
(4) 組網(wǎng)方案4:通過單一串口,配置RS 232轉(zhuǎn)CAN的專用轉(zhuǎn)換卡,實現(xiàn)多通道CAN總線組網(wǎng)。
為此,在系統(tǒng)中采用模擬開關(guān),如4路雙向模擬開關(guān)CD4066,低電壓雙路模擬開關(guān)MAX4684等。當(dāng)模擬開關(guān)導(dǎo)通時,導(dǎo)通電阻低,相當(dāng)于接通電路;模擬開關(guān)截止時,呈現(xiàn)很高的阻抗,可以看成為開路。計算機通過命令來選擇所要監(jiān)控數(shù)據(jù)的通道,由RS 232轉(zhuǎn)CAN轉(zhuǎn)換卡上的微處理器控制模擬開關(guān)的通斷,從而選中所要采集數(shù)據(jù)的通道,實現(xiàn)對通道切換。這種設(shè)計將使系統(tǒng)簡單,占用系統(tǒng)資源少,系統(tǒng)組成就具有很大的靈活性。但模擬開關(guān)接通時有一定的電阻,相當(dāng)于在CAN回路中串聯(lián)了電阻,如果該接通電阻很大,信號在模擬開關(guān)處的損耗變大,造成信號衰減,影響CAN信號的通信距離和效果,為此,在實際組網(wǎng)過程中要選用低接通阻值的模擬開關(guān)。同時由于增加了對模擬電子開關(guān)的控制,所以系統(tǒng)軟件編程較復(fù)雜。系統(tǒng)組網(wǎng)原理框圖如圖2所示。
3 RS 232轉(zhuǎn)CAN總線轉(zhuǎn)換卡
根據(jù)對以上方案的綜合比較,由于本監(jiān)控系統(tǒng)需要對現(xiàn)場500多個節(jié)點實現(xiàn)實時監(jiān)控,因此組網(wǎng)方案3與組網(wǎng)方案4都可以考慮,方案4雖然簡化了系統(tǒng)結(jié)構(gòu),但當(dāng)模擬電子開關(guān)出現(xiàn)故障時,整個網(wǎng)絡(luò)都會陷入癱瘓狀態(tài),而且軟件編程較復(fù)雜,因此本系統(tǒng)采用方案3實現(xiàn)多通道CAN總線組網(wǎng)。
在此,使用MOXA公司提供的C168P八端口串行通信卡,擴展8路串行通信端口。C168P多端口串行通信卡,用于PC/AT總線,采用ASIC芯片代替了傳統(tǒng)的ICS芯片。其傳輸速度范圍可達到50~115.2 b/s。支持RS 232標準電平信號,8個端口可以分配不同中斷向量或同一中斷向量。并且,MOXA公司提供了基于Microsoft Win32 API函數(shù)下開發(fā)的PComm軟件庫,可用于上層多進程或多線程串行通信的軟件開發(fā),適用于VB,VC,Delphi等高級語言軟件開發(fā)環(huán)境。由于其性能優(yōu)良,使用方便,所以被廣泛應(yīng)用于多端口串行通信中。該卡具體設(shè)置如表1所示:
由于擴展的8路串行通信端口都為RS 232標準接口。所以他與CAN現(xiàn)場總線不能直接相連,每一路串行端口都需通過轉(zhuǎn)換卡進行轉(zhuǎn)換。此外,CAN現(xiàn)場總線是以報文幀為單位進行數(shù)據(jù)通信的,且每個報文幀均攜帶對應(yīng)的ID標識符,而RS 232是以字節(jié)為單位的。所以,需要將RS 232的字節(jié)轉(zhuǎn)換成CAN的報文幀形式,或者將CAN的報文幀分解,以字節(jié)的形式發(fā)送給計算機。這就需要設(shè)計一塊由RS 232轉(zhuǎn)為CAN總線的轉(zhuǎn)換卡。此轉(zhuǎn)換卡應(yīng)能將計算機要發(fā)送的數(shù)據(jù)轉(zhuǎn)換成CAN的格式,通過總線發(fā)送出去。而且也能將其他節(jié)點的數(shù)據(jù)轉(zhuǎn)換成RS 232信號傳送給計算機。為了將計算機轉(zhuǎn)換成為CAN格式,在轉(zhuǎn)換卡中使用AT89C51作為處理器。其中1路轉(zhuǎn)換卡的具體電路圖見圖3所示,其他7路與此相同。
圖3中將串口RS 232電平經(jīng)過MAX202轉(zhuǎn)化為TTL電平,然后經(jīng)過光耦6N137進行光電隔離后和AT89C51的串口相連。此轉(zhuǎn)換卡的核心器件為CAN控制器SJA1000。CAN控制器用來執(zhí)行完整的CAN協(xié)議,完成CAN通信功能。圖3中AT89C51和CAN控制器SJA1000相連。SJA1000有2種模式,分別是Intel模式和Motorola模式。SJA1000的MODE腳決定選用何種模式;當(dāng)該腳接高電平時,SJA1000是Intel模式,當(dāng)該腳接低電平時,SJA1000是Motorola模式。本系統(tǒng)中,SJA1000 的MODE腳接高電平,選用的是SJA1000的Intel模式。圖3中使用PCA82C250CAN驅(qū)動器作為CAN總線收發(fā)器。PCA82C250是CAN控制器與物理總線之間的接口,該器件可以提供對總線的差動發(fā)送和接收功能;他能夠抗瞬間干擾,具有保護總線能力和斜率控制降低射頻干擾功能;具備熱保護功能;實現(xiàn)總線與電源及地之間的短路保護;掉電能夠自動關(guān)閉輸出;并可與多達110個節(jié)點相連接。CAN接收發(fā)送器實現(xiàn)將CAN控制器送出的邏輯電平轉(zhuǎn)化為總線上的物理電平。
此轉(zhuǎn)換卡的工作原理為:當(dāng)PC機向其他節(jié)點發(fā)送數(shù)據(jù)時,PC機發(fā)出的數(shù)據(jù)經(jīng)過MAX202先變成TTL電平送入89C51。89C51接收到PC機發(fā)來的全部數(shù)據(jù)后,按照SJA1000要求格式把這些數(shù)據(jù)重新組裝,通過SJA1000發(fā)送給82C250。最后82C250把這些數(shù)據(jù)發(fā)送到CAN總線上。PC機接收數(shù)據(jù)的過程則與此相反。
4 系統(tǒng)通信軟件設(shè)計
4.1 PC機通信程序
PC機上安裝的監(jiān)控程序要求能夠?qū)崿F(xiàn)對各現(xiàn)場節(jié)點數(shù)據(jù)的實時監(jiān)控與采集,通信過程是通過擴展串行口進行的。在Windows操作系統(tǒng)提供的串行通信驅(qū)動程序的基礎(chǔ)上,利用Windows API函數(shù)就可實現(xiàn)串行口的編程。但在本系統(tǒng)中,使用VC++為編程環(huán)境, 基于MOXA公司提供的Pcomm軟件庫實現(xiàn)串口數(shù)據(jù)采集。他把Win32 API封裝在自己的軟件包內(nèi),簡化編程步驟,縮短了編程時間。PComm對串口進行編程通信涉及下面的4步處理過程:打開一個要通信的串行端口; 配置串口;通過串口收發(fā)數(shù)據(jù);釋放串口。函數(shù)形式如下所示:
(1) sio_open (port);
(2) sio_ioctl (port,B38400,P_NONE | BIT_8 | STOP_1 );
(3) sio_write (port,\"ABCDE\",5); sio_read (port,ibuf,length);
(4) sio_close (port);
掌握了對串口通信的關(guān)鍵步驟后,在PC機與現(xiàn)場節(jié)點之間還需要建立通信協(xié)議,以保證數(shù)據(jù)收發(fā)的正確性。本系統(tǒng)定義的通信數(shù)據(jù)幀共24個字節(jié),包含地址區(qū)、命令區(qū)、數(shù)據(jù)區(qū)和校驗區(qū)4個部分,其中校驗采用校驗和的方法。在軟件監(jiān)控程序中自定義通信函數(shù),程序其他部位需要通信時,只要給此函數(shù)傳遞適合的參數(shù),正確調(diào)用函數(shù),就可實現(xiàn)通過串口收發(fā)數(shù)據(jù)。PC機通信函數(shù)流程圖如圖4所示。
4.2 轉(zhuǎn)換卡通信程序
RS 232轉(zhuǎn)CAN總線轉(zhuǎn)換卡一方面要將PC機發(fā)送的數(shù)據(jù)幀通過SJA1000發(fā)送到本轉(zhuǎn)換卡組成的CAN網(wǎng)絡(luò)上;同時對于現(xiàn)場節(jié)點送回的數(shù)據(jù),轉(zhuǎn)換卡也需要接收后轉(zhuǎn)發(fā)給PC機;因此轉(zhuǎn)換卡通信程序是整個系統(tǒng)中非常重要的部分。轉(zhuǎn)換卡中,接收PC機擴展串行口發(fā)來的數(shù)據(jù)和回送給PC機的數(shù)據(jù)都是通過單片機89C51的串口通信完成,采用單片機串口中斷的方式進行。而轉(zhuǎn)換卡和現(xiàn)場節(jié)點之間的數(shù)據(jù)發(fā)送和接收采用CAN總線通信完成,因為數(shù)據(jù)幀共有24個字節(jié),但CAN控制器SJA1000每次最多只能發(fā)送和接收8個字節(jié),要完成每個數(shù)據(jù)幀24個字節(jié)的通信,SJA1000需要發(fā)送或接收3次才能實現(xiàn)。轉(zhuǎn)換卡中SJA1000發(fā)送和接收都采用中斷方式,中斷信號連接到轉(zhuǎn)換卡單片機的外部中斷1上,單片機在外部中斷程序中完成數(shù)據(jù)的發(fā)送和接收。因此轉(zhuǎn)換卡上通信程序主要包括:單片機串口發(fā)送/接收中斷服務(wù)程序、SJA1000的發(fā)送/接收中斷服務(wù)程序。單片機串口通信程序較為常用,在此不進行詳述。圖5給出了SJA1000發(fā)送中斷服務(wù)程序流程圖,SJA1000接收中斷服務(wù)程序流程圖原理與此相似。
5 結(jié) 語
當(dāng)監(jiān)控系統(tǒng)中CAN網(wǎng)絡(luò)節(jié)點數(shù)超過110個時,必須采用多通道組網(wǎng)方式。本文針對各種多通道CAN總線組網(wǎng)方式進行了研究,在系統(tǒng)實際組網(wǎng)中選擇通過多串口卡擴展CAN通道組網(wǎng)方案,很好地實現(xiàn)了CAN總線工業(yè)監(jiān)控網(wǎng)絡(luò)的數(shù)據(jù)通信和現(xiàn)場監(jiān)控管理功能。
參考文獻
[1]夏繼強,邢春香.現(xiàn)場總線工業(yè)控制網(wǎng)絡(luò)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[2]陽憲惠.工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2003.
[3]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
作者簡介 宋玉琴 女,1972年出生,安徽合肥人,西安工程大學(xué)講師,西北工業(yè)大學(xué)在讀博士研究生。研究方向為故障診斷與容錯控制、智能控制、嵌入式系統(tǒng)等。