1. 前 言
上世紀(jì)90年代興起的現(xiàn)場(chǎng)總線技術(shù)是用于現(xiàn)場(chǎng)儀表與控制系統(tǒng)和控制室之間的一種全分散、全數(shù)字化、智能、雙向、多節(jié)點(diǎn)的通信系統(tǒng)結(jié)構(gòu),它是控制結(jié)構(gòu)的一次革命;系統(tǒng)把控制的權(quán)力很大部分交給了處于現(xiàn)場(chǎng)的智能節(jié)點(diǎn),交互信息通過(guò)現(xiàn)場(chǎng)總線傳送。現(xiàn)場(chǎng)總線式的控制系統(tǒng)正在逐步取代集散式的控制系統(tǒng)而成為主流系統(tǒng);其中,CAN總線由于可靠性高、穩(wěn)定性好、抗干擾能力強(qiáng)、通信實(shí)時(shí)性好、系統(tǒng)造價(jià)低廉、維護(hù)成本低等特點(diǎn)而具有廣泛的應(yīng)用前景。
2. CAN總線概述
CAN總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。CAN可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),且無(wú)主、從機(jī)之分;CAN可以用點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播幾種方式傳送和接收數(shù)據(jù);CAN直接通訊距離最遠(yuǎn)可達(dá)10km(傳輸率為5kbps),通訊速率最高可達(dá)1Mbps(傳輸距離為40m);CAN總線上節(jié)點(diǎn)數(shù)可達(dá)110個(gè)。
CAN根據(jù)優(yōu)先權(quán)進(jìn)行總線訪問(wèn)仲裁,總線中的數(shù)值為兩種互補(bǔ)邏輯數(shù)值之一:“顯形”或“隱性”。“顯形”數(shù)值表示邏輯“0”,而“隱性”表示邏輯“1”。“顯形”和“隱性”位同時(shí)發(fā)送時(shí),最后總線數(shù)值將為“顯形”。CAN總線數(shù)值信號(hào)內(nèi)部包含傳輸?shù)刂罚此^的標(biāo)識(shí)符(ID),標(biāo)識(shí)符還兼有識(shí)別優(yōu)先權(quán)的作用。當(dāng)許多節(jié)點(diǎn)一起開(kāi)始發(fā)送數(shù)據(jù)時(shí),首先發(fā)送標(biāo)識(shí)符,每個(gè)發(fā)送器將發(fā)送電平同總線上監(jiān)測(cè)到的電平進(jìn)行比較,若相等則發(fā)送器繼續(xù)發(fā)送;當(dāng)送出一個(gè)“隱性”電平,而監(jiān)測(cè)到的為“顯形”電平時(shí),表明節(jié)點(diǎn)丟失仲裁,并且不再發(fā)送更多位。顯而易見(jiàn),標(biāo)識(shí)符越低,節(jié)點(diǎn)優(yōu)先權(quán)越高。CAN總線信號(hào)傳輸為廣播式,所有的節(jié)點(diǎn)都可以監(jiān)聽(tīng)到總線上的信號(hào),當(dāng)節(jié)點(diǎn)監(jiān)測(cè)到總線上的數(shù)據(jù)幀的標(biāo)識(shí)符與自己的標(biāo)識(shí)符相符時(shí)就接收數(shù)據(jù)幀。錯(cuò)誤監(jiān)測(cè)和自動(dòng)隔離性能確保了總線正常工作。
3 .功率因素動(dòng)態(tài)補(bǔ)償系統(tǒng)
功率因素動(dòng)態(tài)補(bǔ)償系統(tǒng)對(duì)低壓電力系統(tǒng)的無(wú)功功率進(jìn)行實(shí)時(shí)監(jiān)測(cè)、動(dòng)態(tài)補(bǔ)償,對(duì)電網(wǎng)運(yùn)行狀態(tài)和負(fù)載用電狀態(tài)通過(guò)電壓、電流互感器間接監(jiān)測(cè)。本系統(tǒng)在保證系統(tǒng)可靠工作和降低成本的條件下,考慮到通用性、實(shí)時(shí)性和擴(kuò)展性等方面的因素,采用了主要由上位計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)節(jié)點(diǎn)模塊構(gòu)成的系統(tǒng)結(jié)構(gòu)。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。智能節(jié)點(diǎn)通過(guò)對(duì)各個(gè)模擬量和開(kāi)關(guān)量信息的采集檢測(cè),達(dá)到電力的合理調(diào)配,并且將有關(guān)參數(shù)通過(guò)CAN總線控制器由CAN總線傳遞給上位機(jī)。上位機(jī)完成故障錄波、自動(dòng)數(shù)據(jù)分析、人機(jī)界面顯示和報(bào)表打印等。補(bǔ)償單元是由電容器組和晶閘管觸發(fā)電路組成,它根據(jù)智能節(jié)點(diǎn)的解算值投入電容器來(lái)產(chǎn)生補(bǔ)償電流注入低壓電網(wǎng),以此補(bǔ)償無(wú)功功率。
4. CAN總線在功率因素動(dòng)態(tài)補(bǔ)償系統(tǒng)的應(yīng)用
上位計(jì)算機(jī)系統(tǒng)由通用個(gè)人計(jì)算機(jī)以及接通至通用PC機(jī)內(nèi)部的CAN總線通信接口適配卡PCCAN組成。該系統(tǒng)負(fù)責(zé)系統(tǒng)的總體調(diào)度,向網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送命令,接收節(jié)點(diǎn)數(shù)據(jù),并對(duì)節(jié)點(diǎn)信息加以分析、存儲(chǔ)、顯示及打印。智能節(jié)點(diǎn)負(fù)責(zé)對(duì)電流及功率進(jìn)行檢測(cè),并對(duì)無(wú)功功率進(jìn)行補(bǔ)償。智能節(jié)點(diǎn)模塊中采用以80C196KC微處理器為核心的硬件結(jié)構(gòu)。Intel公司的高性能16位單片機(jī)80C196采用CHMOS工藝,具有功耗低、運(yùn)行速度快、集成度高等優(yōu)點(diǎn)。該控制器硬件結(jié)構(gòu)CPU沒(méi)有采用習(xí)慣的累加器結(jié)構(gòu),改用寄存器-寄存器結(jié)構(gòu),消除了累加器存在時(shí)的瓶頸效應(yīng),提高了操作速度和數(shù)據(jù)吞吐能力。這些特點(diǎn)使得80C196很適合用于數(shù)據(jù)量大、功能復(fù)雜的現(xiàn)場(chǎng)控制器中。CAN通信接口采用SJA1000通信控制器和82C250總線接受器。SJA1000是PHILIPS公司生產(chǎn)的獨(dú)立CAN通信控制器,它是82C200的替代產(chǎn)品,引腳與82C200兼容。82C250是CAN控制器和物理總線間的接口芯片,它提供對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接受能力。CAN硬件接口電路如圖2所示:
SJA1000的AD0至AD7是分時(shí)復(fù)用地址/數(shù)據(jù)線,與單片機(jī)的系統(tǒng)總線引腳P1.0 至P1.7相連作為單片機(jī)的外部擴(kuò)展存儲(chǔ)器。SJA1000的INT腳與HSI.0腳相連,當(dāng)中斷允許時(shí),一旦有中斷發(fā)生,SJA1000的16腳INT就會(huì)被激活,出現(xiàn)一個(gè)由高電平到低電平的跳變,而80C196KC的外部中斷HSI.0接受這一中斷信號(hào)后,CPU隨即響應(yīng)中斷,由執(zhí)行其他任務(wù)轉(zhuǎn)向?yàn)閳?zhí)行該中斷任務(wù)。
上位機(jī)的CAN總線通信接口適配卡采用研華生產(chǎn)的pcl841板卡,pcl841能夠同時(shí)在兩套CAN網(wǎng)絡(luò)上運(yùn)行,提供4 KB的基地址空間,提供16 MHz的CAN控制頻率。同時(shí)提供的庫(kù)函數(shù)有七個(gè)子程序可供調(diào)用:
1 caninitHW() 初始化CAN接口
2 canExitHW() 釋放CAN節(jié)點(diǎn)
3 canReset() 復(fù)位CAN控制器
4 canConfig() 設(shè)置CAN命令字
5 canNormalR~n() 設(shè)置CAN工作模式
6 canSendMsg() 發(fā)送數(shù)據(jù)楨
7 canReceiveMsg() 接受數(shù)據(jù)楨
通過(guò)調(diào)用這七個(gè)子程序,可以完成CAN總線通訊軟件的大部分工作,極大地降低了開(kāi)發(fā)人員的工作難度,減小了工作量,縮短了開(kāi)發(fā)周期。
5. 控制系統(tǒng)通訊的軟件實(shí)現(xiàn)
因?yàn)镃AN控制器發(fā)送一個(gè)數(shù)據(jù)幀需要的時(shí)間是微秒級(jí),補(bǔ)償系統(tǒng)控制周期的時(shí)序是毫秒級(jí)(20毫秒),而上位機(jī)中斷頻率最高不過(guò)幾秒,因此,每個(gè)智能節(jié)點(diǎn)的微處理器在外部中斷服務(wù)程序中接受上位機(jī)發(fā)來(lái)的信息,在主程序內(nèi)不斷地向上位機(jī)傳輸數(shù)據(jù)信息,根據(jù)CAN協(xié)議ID標(biāo)識(shí)符越低其優(yōu)先權(quán)越高,所以通過(guò)定義不同的ID標(biāo)識(shí)符使上位機(jī)比智能節(jié)點(diǎn)優(yōu)先發(fā)送的數(shù)據(jù)。其主程序和外部中斷服務(wù)程序流程圖分別如圖3、圖4所示。
通過(guò)反復(fù)調(diào)試,已把通信部分的程序做成了模塊,在實(shí)際系統(tǒng)中的應(yīng)用良好。下面給出通信模塊程序的部分代碼(采用C96高級(jí)語(yǔ)言編寫(xiě))
main()
{
……
*CR=0x001b; /*開(kāi)始復(fù)位模式,開(kāi)放接收、出錯(cuò)、超載中斷,并置位
*ACR=0x02; /*初始化接受代碼寄存器
*AMR=0xfd; /*初始化接受屏蔽寄存器
*BTR0=0x00;
*BTR1=0x14; /*確定波特率、同步跳轉(zhuǎn)寬度、位周期長(zhǎng)度、采樣數(shù)目
*OCR=0xaa; /*選擇輸出方式
*CR=0x001a; /*初始化結(jié)束,SJA1000返回其工作模式
……
cansend:
temp2=*SR&0x04; /*查詢狀態(tài)寄存器
if(temp2==0x00)goto cansend;
sebuffer=(unsigned char*)0x800c;
*seid=0; /*發(fā)送數(shù)據(jù)的目的地
*sedlc=i1; /*發(fā)送數(shù)據(jù)的數(shù)目
for(i1=0;i1《6;i1++)
{
*sebuffer=a[i1];
sebuffer++;
} /*送數(shù)據(jù)至發(fā)送緩沖區(qū)
*CMR=0x05; /*發(fā)送數(shù)據(jù)
wait1:
temp2=*SR&0x00;
if(temp2==0x08)goto wait1 /*發(fā)送完畢否
callms( ); /*延時(shí)
goto cansend; /*繼續(xù)發(fā)送數(shù)據(jù)
}
6. 結(jié) 論
CAN通訊系統(tǒng)經(jīng)過(guò)充分的調(diào)試在功率因素動(dòng)態(tài)補(bǔ)償系統(tǒng)的控制和監(jiān)測(cè)中取得實(shí)際的應(yīng)用。實(shí)踐證明,CAN現(xiàn)場(chǎng)總線監(jiān)控系統(tǒng)具有全數(shù)字化通訊、抗干擾能力強(qiáng)、實(shí)時(shí)性能好、測(cè)量及控制精度高的優(yōu)點(diǎn),所以它必將隨自動(dòng)化監(jiān)控系統(tǒng)的發(fā)展而被廣泛采用。
責(zé)任編輯:gt
-
CAN總線
+關(guān)注
關(guān)注
145文章
1946瀏覽量
130726 -
現(xiàn)場(chǎng)總線
+關(guān)注
關(guān)注
3文章
519瀏覽量
38564 -
功率因素
+關(guān)注
關(guān)注
0文章
27瀏覽量
10075
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論