CAN總線及其在UPS網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的應(yīng)用
out temp,data_can
splk #6, temp ;設(shè)置總線定時寄存器0
out temp,dress_can
splk #0c4h, temp ;tscl=10tclk,tclk為xtal
;的頻率周期(20mhz)
out temp,data_can ;不同總線控制器的時鐘
;振蕩器間的相對偏移為0
splk #7, temp ;設(shè)置總線定時寄存器1
out temp,dress_can
splk #0beh, temp ;設(shè)置tsyncseg=tscl,
;ttseg1=15tscl,ttseg2=4tscl
out temp,data_can ;位周期為20tscl,故在
;20mhz晶振情況下,設(shè)置波特率為100kbps
splk #8, temp ;設(shè)置輸出控制寄存器
out temp,dress_can
splk #1ah, temp ;正常輸出模式
out temp,data_can ;tx1懸空,tx0推挽式
can_work ldp #4
splk #0, temp ;設(shè)置模式寄存器(mod)
out temp,dress_can
splk #1ah, temp ;設(shè)置雙濾波接收方式,并
;返回工作狀態(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ā)送子程序
負責(zé)單節(jié)點信息的發(fā)送,發(fā)送時只需將待發(fā)送的信息按特定格式組合成一幀,送入sja1000發(fā)送緩存區(qū)中,然后啟動sja1000發(fā)送即可,當(dāng)然在往sja1000發(fā)送緩存區(qū)送信息之前必須先作一些查詢判斷,直到空閑時才能發(fā)送,發(fā)送子程序分發(fā)送遠程幀子程序和數(shù)據(jù)幀子程序兩種,遠程幀無數(shù)據(jù)場;
(3) 接收子程序
負責(zé)單節(jié)點信息的接收以及其它情況處理。當(dāng)can控制器接收到信息后向微控制器發(fā)出中斷響應(yīng)信號,微控制器在中斷程序中將接收到的信息讀入,再根據(jù)信息來控制節(jié)點的動作。接收子程序比發(fā)送子程序要復(fù)雜一些,因為在處理接收信息可能是諸如總線脫離、錯誤報警、接收溢出等中斷,要對其進行處理。
5 結(jié)束語
目前,該網(wǎng)絡(luò)監(jiān)控系統(tǒng)已經(jīng)在廣東某集團公司18kva-6*3kva可熱插拔模塊化不間斷電源上使用,經(jīng)過了運行和調(diào)試。驗證了使用can總線技術(shù)使系統(tǒng)布線更加靈活,具有通信質(zhì)量可靠、響應(yīng)速度快、實時性好的特點,滿足整個系統(tǒng)可熱插拔的要求。
參考文獻
[1] 瞿 坦. 計算機網(wǎng)絡(luò)及應(yīng)用[m]. 北京:化學(xué)工業(yè)出版社,2002.
[2] philips.sja1000 stand-alone can controller product specification.2000 jan 04.
[3] 張永強.ups的網(wǎng)絡(luò)監(jiān)控[j]. 電力學(xué)報,2002,16(1):54.
評論