摘? 要: 介紹了列車總線控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)中的CAN總線與485總線之間的互聯(lián)" title="互聯(lián)">互聯(lián)網(wǎng)關,CAN總線控制器INTEL82526的基本工作原理和功能,給出了CAN—485總線網(wǎng)關的軟、硬件具體實現(xiàn)方案。
關鍵詞: CAN總線? 485總線? 互聯(lián)? INTEL82526? CAN—485總線網(wǎng)關
?
隨著現(xiàn)場總線控制技術的發(fā)展和成熟,越來越多的集散控制系統(tǒng)采用現(xiàn)場總線來構建控制系統(tǒng)。在大規(guī)模、高性能的復雜大系統(tǒng)中存在著大量的被控設備,而且每個被控設備有著不同的實時性" title="實時性">實時性要求。從網(wǎng)絡化控制的角度分析可知,簡單地采用一條現(xiàn)場總線把復雜大系統(tǒng)中的所有被控設備聯(lián)接起來會降低整個系統(tǒng)的穩(wěn)定性和可控性,是性能不好的控制網(wǎng)絡拓撲形式。針對特定的現(xiàn)場總線,在不同的應用環(huán)境中,一條網(wǎng)絡段上通訊結點數(shù)有一個合理范圍,超出這個范圍將導致網(wǎng)絡控制性能的惡化[1~2]。另外,實時性差異較大的設備共存于一條網(wǎng)絡段也易于造成整個系統(tǒng)不穩(wěn)定。因而,在一個復雜的網(wǎng)絡化控制系統(tǒng)中,按實時性和功能性分段,構造多個現(xiàn)場總線段是一種較為合理的拓撲形式,利于整個系統(tǒng)的穩(wěn)定和性能的優(yōu)化[2]。從性價比角度看,兩段實時性差異較大的網(wǎng)絡段采用相同的現(xiàn)場總線構建是不劃算的,采用合適的兩種現(xiàn)場總線分別構建較為合理??刂凭W(wǎng)絡的分段和網(wǎng)段采用不同的現(xiàn)場總線構建帶來了兩個異種現(xiàn)場總線之間互聯(lián)的問題。本文所探討的列車總線中CAN總線與485總線網(wǎng)關為兩個異種現(xiàn)場總線間的互聯(lián)提供了一種解決方案。
1 網(wǎng)關硬件設計
1.1 INTEL 82526簡介
82526是INTEL公司生產(chǎn)的執(zhí)行CAN總線規(guī)范的CAN控制器,它包括CAN總線規(guī)范所規(guī)定的所有硬件模塊(傳輸層和目標層)。82526與微處理器或微控制器" title="微控制器">微控制器聯(lián)接時能夠完成物理層和數(shù)據(jù)鏈路層的基本功能。82526內部結構原理圖如圖1所示。82526采用分時復用的8位地址/數(shù)據(jù)總線,可與INTEL系列的微處理器或微控制器協(xié)同工作。片內雙口RAM作為CPU和接口管理處理器之間的通信緩存接口,CPU初始化全局的狀態(tài)和控制寄存器,并在雙口RAM內建立通信目標用以接收和發(fā)送報文。位流處理器控制接口管理處理器和總線之間的數(shù)據(jù)流。另外,位流處理器也控制收發(fā)控制邏輯和錯誤管理邏輯。總線定時邏輯則通過差分輸入比較器監(jiān)視總線并確定串行總線的位定時。接口管理處理器執(zhí)行主控制器命令并控制串行總線上的數(shù)據(jù)傳送、全局狀態(tài)和控制寄存器位。處理器接口單元是82526到CPU的接口。
?
?
1.2 網(wǎng)關的硬件結構
網(wǎng)關的硬件電路原理圖如圖2所示。整個硬件電路由三部分構成:微控制器及其外圍擴展電路,CAN總線控制器及CAN總線接口電路,異步串行通訊" title="串行通訊">串行通訊控制器和485總線接口電路。
?
?
1.2.1 微控制器及其外圍擴展電路
網(wǎng)關采用了ATMEL公司的AT89C51型微控制器。AT89C51是與8X51系列微控制器兼容的增強型微控制器,其內部集成了4K字節(jié)的FLASH ROM[3]。由于網(wǎng)關的軟件及參數(shù)查詢表所占用存儲空間小于4K,網(wǎng)關沒有在AT89C51外擴展程序存儲器。AT89C51是網(wǎng)關處理、控制和轉換總線數(shù)據(jù)的核心,其主要功能有三個:一是CAN總線控制器82526接收到CAN總線上其它通訊結點的數(shù)據(jù)后,交給AT89C51處理,將這些數(shù)據(jù)轉換為預先定義的485總線上傳輸數(shù)據(jù)的協(xié)議格式,由AT89C51控制異步串行通訊控制器通過485總線接口MAXIM485將這些數(shù)據(jù)發(fā)送到485總線上;二是AT89C51將MAXIM485接收到的485總線上的數(shù)據(jù)進行處理,按照82526數(shù)據(jù)組織的格式轉換這些數(shù)據(jù),將這些數(shù)據(jù)交給82526,由它將這些數(shù)據(jù)發(fā)送到CAN總線上;三是AT89C51按照預先定義的策略對通訊任務進行合理的任務調度。網(wǎng)關接收CAN或485總線來的數(shù)據(jù),應將這些數(shù)據(jù)緩沖存儲,才可以將這些數(shù)據(jù)進行處理、轉換和轉發(fā)。另外,通過CAN或485總線發(fā)送數(shù)據(jù)時需要緩沖發(fā)送的數(shù)據(jù),要開辟發(fā)送緩沖區(qū)?;谏鲜鲂枰?在AT89C51外擴展一片數(shù)據(jù)存儲器6264作數(shù)據(jù)暫存、緩沖使用。
1.2.2 CAN總線控制器及CAN總線接口電路
CAN總線控制器82526具有256個8位寄存器,只需8根地址線。網(wǎng)關將82526寄存器組配置在AT89C51片外數(shù)據(jù)存儲區(qū)的最高256個地址區(qū)域。82526兼容INTEL方式,其引腳AD0~AD7是分時復用的地址/數(shù)據(jù)總線,不需要通過地址鎖存器分離地址和數(shù)據(jù),只要直接將AD0~AD7聯(lián)接到AT89C51的P0.0~P0.7引腳,將ALE引腳與AT89C51的ALE引腳相聯(lián),就可分時得到正確的地址和數(shù)據(jù)。8輸入與非門74LS30的輸入端聯(lián)接到AT89C51的P2.0~P2.7高8位地址線引腳,輸出端聯(lián)接到82526的片選CS端,就將82526的寄存器組配置在AT89C51片外數(shù)據(jù)存儲區(qū)的最高256個地址區(qū)域。82526的INT引腳聯(lián)接到AT89C51的P3.2引腳,將82526的通訊事件配置為AT89C51的外部中斷0的事件。82526在處理通訊事件和數(shù)據(jù)的過程中,不能被訪問和存取數(shù)據(jù),通過RDY引腳上電平的高低來告知外界其是否處于可訪問狀態(tài),將RDY引腳聯(lián)接到AT89C51的P1.1引腳來控制AT89C51對82526的訪問。82C250是82526與實際物理總線間的接口。將82526的TX0引腳和RX0引腳分別與82C250的TXD引腳和RXD引腳相聯(lián),將82C250的RS引腳接地,使82C250在高速方式下工作。
1.2.3 串行通訊控制器和485總線接口電路
AT89C51片內集成了異步串行通訊模塊,不需在AT89C51片外擴展串行通訊控制器。網(wǎng)關中的485總線接口采用了MAXIM485。MAXIM485工作在半雙工方式下,因而需要對它處于接收狀態(tài)或發(fā)送狀態(tài)進行控制,將AT89C51的P1.0引腳與MAXIM485的DE引腳和RE引腳相聯(lián),可控制狀態(tài)的轉換。
2 網(wǎng)關軟件設計
網(wǎng)關軟件主要由四部分功能模塊構成:初始化模塊、通訊任務調度模塊、CAN總線通訊模塊和485總線通訊模塊。軟件由Franclin C51實現(xiàn)。
2.1 網(wǎng)關初始化
網(wǎng)關在正常工作前需對相關的參數(shù)進行設置,包括AT89C51的異步串行通訊控制器及其它部分的初始化和82526的初始化。網(wǎng)關將串行通訊設置為工作方式2,串行通訊的波特率設為9600bps,開放外部中斷0并選擇電平觸發(fā)中斷方式;設置82526的控制寄存器,置位復位請求、出錯中斷、傳送中斷、同步和運行位;復位82526狀態(tài)寄存器,設置82526總線定時寄存器,CAN總線的波特率設為1Mbps;設置82526的TX0、TX1引腳為常態(tài)方式輸出。
2.2 通訊任務調度
網(wǎng)關是485總線上的主設備,其余的設備均為從設備,所有的通訊任務都由網(wǎng)關發(fā)起。網(wǎng)關不斷地輪詢485總線上的從設備,獲得從設備的運行狀態(tài)數(shù)據(jù),通過CAN總線將這些數(shù)據(jù)轉發(fā)給列車控制器。在輪詢過程中,監(jiān)視是否有列車控制器發(fā)來的控制命令,優(yōu)先將控制命令發(fā)送給相應的從設備。網(wǎng)關采用帶優(yōu)先級的輪詢策略。設某一設備的優(yōu)先級為m級,則所有設備至少被訪問一次后該設備被訪問m次,且這m次平均分布在總的訪問次數(shù)中。網(wǎng)關采用4級優(yōu)先級,建立缺省的設備—優(yōu)先級表并存儲在AT89C51的FLASH ROM中。根據(jù)設備—優(yōu)先級表建立設備輪詢環(huán)并存儲在6264中。列車控制器可發(fā)修改設備優(yōu)先級的命令給網(wǎng)關,在線修改設備—優(yōu)先級表并重建設備輪詢環(huán)。當82526接收到CAN總線的數(shù)據(jù)時就觸發(fā)AT89C51的外部中斷0,外部中斷0的中斷服務程序置有控制命令標志,讀取82526中的數(shù)據(jù)并存儲在6264中開辟的控制命令FIFO隊列中,這就實現(xiàn)了對CAN總線上數(shù)據(jù)的監(jiān)控。通訊任務調度的流程如圖3和圖4所示。
?
?
2.3? CAN總線通訊
82526是一種執(zhí)行CAN規(guī)范的CAN控制器,其內部采用硬件實現(xiàn)了數(shù)據(jù)鏈路層的全部功能,因而這部分的程序只需將82526中的數(shù)據(jù)讀出和將數(shù)據(jù)寫入82526。對于發(fā)送報文部分,首先將485總線上設備的運行狀態(tài)數(shù)據(jù)按照在CAN總線傳輸數(shù)據(jù)的應用層協(xié)議進行組裝;然后將82526的IMP訪問位鎖定并檢查82526的CPU訪問位是否鎖定,若未鎖定則將組裝好的數(shù)據(jù)寫到選擇的82526的通信目標數(shù)據(jù)段;最后復位82526的發(fā)送狀態(tài)位和置位發(fā)送請求位并釋放IMP訪問位。由于網(wǎng)關選擇了82526接收到總線數(shù)據(jù)后給AT89C51一個外部中斷,因而對于接收報文部分,首先讀取82526的中斷指針,判斷中斷指針值與82526狀態(tài)寄存器的值是否相同,若不同則讀取82526中通信目標數(shù)據(jù)段中數(shù)據(jù),最后復位82526的傳送狀態(tài)位并清除中斷指針。
2.4 485總線通訊
485總線只定義了物理層通訊協(xié)議,因而基本的數(shù)據(jù)鏈路層協(xié)議由使用者來定義并由軟件實現(xiàn)。由于沖突檢測和同步通信功能無法由軟件實現(xiàn),因而485總線通常采用主從、異步式通信方式。要實現(xiàn)485總線可靠的多機通訊,應實現(xiàn)站點識別和錯誤校驗這兩項數(shù)據(jù)鏈路層的功能。網(wǎng)關采用握手協(xié)議實現(xiàn)站點識別,采用CRC校驗實現(xiàn)錯誤校驗。具體地說,對于站點識別采用地址握手,即對于51系列微控制器,在通訊方式設為多機通訊時,通過對串行控制器SCON的TB8置位或清零表示是地址幀還是數(shù)據(jù)幀。在數(shù)據(jù)通信前先進行地址通信,網(wǎng)關置位SCON的SM2和TB8,將欲與數(shù)據(jù)通信的從設備的地址發(fā)送出去,從設備接收到這個地址,與本機地址比較,若相同則將地址發(fā)送,作為對網(wǎng)關的應答,隨后將本機中SCON的SM2清零,若不同則保持不動作。網(wǎng)關收到相應從設備的應答后對本機中SCON的TB8清零,隨后就可以與相應的從設備進行數(shù)據(jù)通信,它們之間的數(shù)據(jù)通信不會影響其余的從設備,這樣就實現(xiàn)了站點識別。對于錯誤檢驗,采用了CRC—CCITT標準,校驗本原多項式為X16+X12+X5+1??紤]到采用基于微控制器的軟件實現(xiàn),不采用直接CRC模2除法算法,而采用串行通訊中XMODEM協(xié)議所使用的CRC查詢算法,這樣大大地提高了數(shù)據(jù)校驗的速度。CRC查詢算法要求構造查詢表,可預先在微機上采用高級語言編制直接CRC模2除法的程序,分別對最低兩個字節(jié)為0、最高字節(jié)為0~255的三字節(jié)數(shù)模2除校驗本原多項式計算余數(shù),這些余數(shù)構成一個256個雙字節(jié)的查詢表,然后將這個查詢表固化在AT89C51中的FLASH ROM中。上述方法實現(xiàn)了錯誤校驗。網(wǎng)關的485總線通訊流程如圖5所示。
?
?
在列車控制系統(tǒng)中,采用了本文的CAN-485總線網(wǎng)關,實現(xiàn)了列車中CAN總線與485總線的互聯(lián)。在實際應用中,網(wǎng)關有效地控制了CAN總線與485總線之間的數(shù)據(jù)流;針對實時性要求高的設備與實時性要求一般的設備對主干網(wǎng)絡的帶寬和吞吐量需求不同,實現(xiàn)了按數(shù)據(jù)的實時性級別動態(tài)地分配網(wǎng)絡資源和調度通信任務,有效地解決了列車總線控制系統(tǒng)的穩(wěn)定性問題,提高了系統(tǒng)的控制性能。
?
參考文獻
1 Gregory C.Walsh,Hong Ye.Scheduling of Networked Control?Systems. IEEE Control Systems Magazine, 2001(2)
2 Feng-Li Lian,James R.Moyne,Dawn M.Tilbury. Performance Evaluation of Control Networks: Ethernet,ControlNet and? DeviceNet. IEEE Control Systems Magazine, 2001(2)
3 余永權. ATMEL 89 系列(MCS-51兼容)Flash單片機原理及應用.北京:電子工業(yè)出版社,1997
4 鄔寬明.CAN總線原理和應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1996
5 陽憲惠.現(xiàn)場總線技術及其應用. 北京:清華大學出版社, 1999