1、引言
隨著網絡的普及,網絡的可靠性越來越受到人們的關注,而影響網絡可靠性的關鍵是網絡系統中的電源系統的可靠穩(wěn)定,要求能對其運行狀態(tài)進行實時監(jiān)控,及時發(fā)現異常情況和事故隱患,在出現異常和故障時迅速進行診斷并予以修復,最大限度地減少ups的停機時間即成必要。針對不間斷電源系統,將can總線技術應用到系統的網絡監(jiān)控中,并充分利用can能夠以較低的成本、較高的實時處理能力在強電磁干撓環(huán)境下可靠地工作的優(yōu)點,開發(fā)出ups網絡監(jiān)控系統。
2、can總線概況
can全稱為controller area network即控制器局域網,是國際上應用最廣泛的現場總線之一。can最初出現在80年代末的汽車工業(yè)中,由德國bosch公司最先提出。最初被設計作為汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置ecu之間交換信息形成汽車電子控制網絡,發(fā)動機管理系統、變速箱控制器、儀表裝備、電子主干系統中均嵌入can控制裝置。現在它已發(fā)展為一種有效支持分布式控制或實時控制的串行通信網絡。
2.1 can總線特點
can具有十分優(yōu)越的特點,使人們樂于選擇,這些特性包括:
(1) 多主方式工作
網絡上任意節(jié)點可以在任何時刻主動的向任何其他節(jié)點發(fā)送消息,而不分主從;通信方式靈活,無需站地址等節(jié)點信息,可構成多機備份系統;
(2) 采用非破壞性總線仲裁技術
節(jié)點信息分成不同優(yōu)先級,滿足不同實時要求。當幾個節(jié)點同時向網絡發(fā)送消息時,運用逐位仲裁原則,利用幀中開始部分的標識符,優(yōu)先級低的節(jié)點主動停止發(fā)送數據,而優(yōu)先級高的節(jié)點則不受任何影響的發(fā)送信息;
(3) 借助接受濾波的多點傳送
只需通過報文濾波可實現點對點、一點對多點,以及全局廣播等方式傳送,無需專門調度;
(4) 高速率、遠距離、低出錯率
can總線通信最高波特率可高達1mbps(采用雙絞線通訊距離40m)、最遠通訊距離為10km(可達5kbps),can協議采用crc校驗并提供相應的錯誤信息處理功能;
(5) 通信介質選擇靈活
通信介質可以是雙絞線、同軸電纜或光纖,選擇靈活;
(6) 半雙工方式工作
can總線以半雙工的方式工作,一個節(jié)點發(fā)送消息,多個節(jié)點接收消息;
(7) 抗干擾性能強
它采用集散控制技術,既可以滿足控制的實時性和數據的實時采集及處理,又可以簡化系統接線、提高控制網絡的抗干擾能力。
2.2 can總線工作原理
can的通信介質為帶優(yōu)先級的cs-ma/ca,網絡上任意節(jié)點可以在任何時刻主動的向任何其他節(jié)點發(fā)送消息,而不分主、從,即當發(fā)現總線空閑時,各節(jié)點都有權使用網絡。而當發(fā)生沖突時,采用非破壞性總線優(yōu)先仲裁技術,由于每個節(jié)點的can總線接口必須接收總線上出現的所有信息,因此必然需要設置一個接收寄存器。先將信息接收,再根據接收的信息標識符決定是否需要讀取信息包中的數據。同時為了避免不必要的頻繁中斷,需要設置一個屏蔽寄存器來濾掉那些所在節(jié)點設備不感興趣的信息,獨立的can控制器sja1000裝配了一個多功能的驗收濾波器,該濾波器允許自動檢查id和數據字節(jié),使用這些有效的濾波方法,對于某個節(jié)點來說,無效的信息可被防止存儲在接收緩沖器里,因此降低了主控制器的處理負載。由驗收代碼和屏蔽寄存器根據數據表給定算法來控制,接收到的數據會和驗收代碼寄存器中的值進行逐位比較,接收屏蔽寄存器定義與比較相關的位的位置(“0”=相關,“1”=不相關),只有收到信息的相應的位與驗收代碼寄存器相應的位相同,這條信息才會被接收。
can總線傳遞的信息以信息包的形式出現:
(1) 信息的消息標識符(11bit);
(2) 遠地傳送請求(1bit);
(3) 數據長度表 (4bit);
(4) 數據(0-8個bit)。
標識符既用來表明信息的類型(數據幀,遠程幀),也用來表明信息的優(yōu)先級;遠地傳送請求指需要數據的節(jié)點可以請求另一個節(jié)點發(fā)送一個相應的數據幀,該數據幀和對應的遠程幀以相同的標識符id命名。
2.3 接口電路
圖1為can總線控制器與can通信網絡的接口電路。從圖1中可以看出,此部分電路主要由三部分所構成:獨立can總線控制器sja1000t、總線收發(fā)器82c250和高速光電耦合器6n137。各部分功能如下:
(1) can控制器sja1000t
sja1000t內部集成了can總線的協議,與用戶端控制器一起完成can的各項功能,起到中間協調作用;
(2) 總線收發(fā)器82c250
sja1000與can物理總線之間的接口為82c250,它可提供對總線的差動發(fā)送能力和對can控制器的差動接收能力,具有較強的抗干擾能力。通過對腳8(rs)的不同連接可以實現三種不同的工作方式:高速、斜率控制和待機,本系統中采用斜率控制,以降低射頻干擾;
(3) 高速光耦6n137
為了增強can總線節(jié)點的抗干擾能力,sja1000 的tx0和rxo并不是直接與82c250的txd和rxd相連,而是通過高速光耦6n137后與82c250相連,這樣就很好的實現了總線上各can節(jié)點間的電氣隔離, 不過應該特別說明的一點是光耦部分電路所采用的兩個電源vcc和vdd必須完全隔離,否則采用光耦也就失去了意義,電源的完全隔離可采用小功率電源隔離模塊或帶多5v隔離輸出的開關電源模塊實現,這些部分雖然增加了節(jié)點的復雜但是卻提高了節(jié)點的穩(wěn)定性和安全性;
(4)82c250與can總線的接口部分
采用了一定的安全和抗干擾措施。82c250 的canh和canl引腳各自通過一個5ω的電阻與can總線相連,電阻可起到一定的限流作用,保護82c250免受過流的沖擊;canh和canl與地之間并聯了2個100pf的電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力;在兩根can總線接入端與地之間分別反接了一個保護二極管,當can總線有較高的負電壓時,通過二極管的短路可起到一定的過壓保護作用。
3、系統簡介
系統的結構圖如圖2所示。
圖2中本地pc監(jiān)控機及遠程網監(jiān)控機完成對該系統的數據實時監(jiān)視及控制;顯示監(jiān)控模塊在系統的面板上,與ups1、ups2、ups3(僅列舉3個,實際做到6個)通過can總線組成canbus網絡,顯示監(jiān)控模塊主要通過can總線完成對下面各ups相關數據的采集,并與系統機顯示模塊、本地pc監(jiān)控機、遠程網監(jiān)控機進行通信;ups1、ups2、ups3為本系統的可單獨運行供電的不間斷電源。canbus網絡通過can_h和can_l及外加在兩端的電阻rt(rt=124ω)組成,其上的節(jié)點can_h和can_l分別接在canbus網絡的can_h和can_l上,目前canbus網絡上最多可接110個節(jié)點。
鑒于本系統的要求,ups1、ups2、ups3及顯示監(jiān)控模塊的控制芯片均采用ti公司生產的tms320f240dsp,can控制器采用philip公司生產的sja1000t。
3.1 dsp與can總線控制器硬件接口
dsp與can控制器sja1000t之間的接口電路如圖3所示。
sja1000t的存儲空間映射在微控制器dsp的i/o空間,對sja1000存儲空間的尋址必須用指令in和out。在intel方式下讀寫sja1000時,地址和數據是分時傳送的,地址在前,數據在后。根據dsp對外設端口的邏輯時序及sja1000t要求的讀寫邏輯時序,除了dsp的基本讀寫引腳we、w/r外,我們還選用a14、a15、is為控制腳,控制sja1000地址空間和數據空間的選通,當a15=1、a14=0時為地址空間,選通ale和cs;當a15=1、a14=0時為數據空間,此時對于dsp來說,寫則選通sja1000t的wr和cs, 讀則選通sja1000t的rd/w和cs,從而完成了dsp與sja1000t之間的數據傳遞。
另外,由于接收數據采用中斷方式,故在dsp上選用外部中斷xint1作為中斷源,而sja1000t是低有效,故通過一個上拉電阻接vcc。
4、can通信網絡軟件設計
單個can節(jié)點通信的功能主要是將本節(jié)點的數據信息傳送給can通信網絡其它節(jié)點,以及接收網絡上其它節(jié)點傳送來的信息。can總線單個節(jié)點的軟件設計主要包括三大部分:can節(jié)點初始化、信息的發(fā)送和信息的接收。設計時將can初始化、發(fā)送信息(數據和遠程幀)設計為子程序,發(fā)送信息采用查詢方式,接收信息采用中斷方式。
(1) 初始化子程序
sja1000的初始化只有在復位模式下才可以進行,初始化主要包括工作方式的設置、接收濾波方式的設置、接收屏蔽寄存器amr和接收代碼寄存器acr的設置、波特率參數設置和中斷允許寄存器ier的設置等。在完成sja1000的初始化設置以后,sja1000就可以回到工作狀態(tài),進行正常的通信任務,其源程序如下:
data_can .set 0c000h
dress_can .set 8000h
can_start:
ldp #4
splk #0,temp ;控制寄存器(mod)設置
out temp,dress_can
splk #1bh, temp ;復位模式
out temp,data_can ;sja1000進行初始化
splk #0, temp
out temp,dress_can
in temp,data_can
bit temp,bit0
bcnd can_reset,ntc
splk #4,canflag ;設置驗收代碼寄存器
out temp,dress_can
splk #01h,canflag
out temp,data_can
splk #5, temp ;設置驗收屏蔽寄存器
out temp,dress_can
splk #000h, temp
out temp,data_can
splk #31, temp ;設置時鐘分頻寄存器(cdr)
out temp,dress_can
splk #48h, temp ;選擇basiccan模式,關
;閉時鐘(clkout)
out temp,data_can
splk #6, temp ;設置總線定時寄存器0
out temp,dress_can
splk #0c4h, temp ;tscl=10tclk,tclk為xtal
;的頻率周期(20mhz)
out temp,data_can ;不同總線控制器的時鐘
;振蕩器間的相對偏移為0
splk #7, temp ;設置總線定時寄存器1
out temp,dress_can
splk #0beh, temp ;設置tsyncseg=tscl,
;ttseg1=15tscl,ttseg2=4tscl
out temp,data_can ;位周期為20tscl,故在
;20mhz晶振情況下,設置波特率為100kbps
splk #8, temp ;設置輸出控制寄存器
out temp,dress_can
splk #1ah, temp ;正常輸出模式
out temp,data_can ;tx1懸空,tx0推挽式
can_work ldp #4
splk #0, temp ;設置模式寄存器(mod)
out temp,dress_can
splk #1ah, temp ;設置雙濾波接收方式,并
;返回工作狀態(tài)
out temp,data_can
splk #0, temp
out temp,dress_can
in temp,data_can
bit temp,bit0
bcnd can_work,tc
ret
(2) 發(fā)送子程序
負責單節(jié)點信息的發(fā)送,發(fā)送時只需將待發(fā)送的信息按特定格式組合成一幀,送入sja1000發(fā)送緩存區(qū)中,然后啟動sja1000發(fā)送即可,當然在往sja1000發(fā)送緩存區(qū)送信息之前必須先作一些查詢判斷,直到空閑時才能發(fā)送,發(fā)送子程序分發(fā)送遠程幀子程序和數據幀子程序兩種,遠程幀無數據場;
(3) 接收子程序
負責單節(jié)點信息的接收以及其它情況處理。當can控制器接收到信息后向微控制器發(fā)出中斷響應信號,微控制器在中斷程序中將接收到的信息讀入,再根據信息來控制節(jié)點的動作。接收子程序比發(fā)送子程序要復雜一些,因為在處理接收信息可能是諸如總線脫離、錯誤報警、接收溢出等中斷,要對其進行處理。
5、結束語
目前,該網絡監(jiān)控系統已經在廣東某集團公司18kva-6*3kva可熱插拔模塊化不間斷電源上使用,經過了運行和調試。驗證了使用can總線技術使系統布線更加靈活,具有通信質量可靠、響應速度快、實時性好的特點,滿足整個系統可熱插拔的要求。
責任編輯:gt
評論
查看更多