基于CAN總線的集散控制系統(tǒng)智能節(jié)點(diǎn)的設(shè)計
引言
本文引用地址:http://butianyuan.cn/article/163649.htm現(xiàn)場總線是當(dāng)今自動化領(lǐng)域技術(shù)發(fā)展的一個熱點(diǎn),被譽(yù)為自動化領(lǐng)域的計算機(jī)局域網(wǎng)。它的出現(xiàn),標(biāo)志著工業(yè)控制技術(shù)領(lǐng)域又一個新時代的開始,并對該領(lǐng)域的發(fā)展產(chǎn)生了重要的影響。控制器局域網(wǎng)CAN(ControllerAeraNetwork)屬于現(xiàn)場總線的范疇,CAN總線的數(shù)據(jù)通信具有極高的可靠性、實(shí)時性和靈活性的特點(diǎn),是一種有效支持集散控制系統(tǒng)和實(shí)時控制的多主串行總線。
基于CAN總線的集散控制系統(tǒng)如圖1所示,采用現(xiàn)場總線式控制系統(tǒng)FCS(FieldbusControlSystem)結(jié)構(gòu),由上位機(jī)、CAN總線控制網(wǎng)絡(luò)、CAN智能節(jié)點(diǎn)組成。上位機(jī)主要完成在線系統(tǒng)監(jiān)控,上位機(jī)通過CAN適配卡與CAN總線相連;CAN智能節(jié)點(diǎn)完成數(shù)據(jù)采集及計算、節(jié)點(diǎn)設(shè)定、節(jié)點(diǎn)控制、運(yùn)行顯示等。上位機(jī)和智能節(jié)點(diǎn)之間通過CAN現(xiàn)場總線交換各種數(shù)據(jù)和管理控制信息。
2.CAN的性能特點(diǎn)
CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時刻主動地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通訊方式靈活,且無需站地址等節(jié)點(diǎn)信息。
CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級,可滿足不同的實(shí)時要求,高優(yōu)先級的數(shù)據(jù)最多可在134μs內(nèi)得到傳輸。
CAN采用非破壞性總線仲裁技術(shù),當(dāng)多個節(jié)點(diǎn)同時向總線發(fā)送信息時,優(yōu)先級較低的節(jié)點(diǎn)會主動的退出發(fā)送,而優(yōu)先級較高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時間。
CAN只需要通過報文濾波即可實(shí)現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無需專門的“調(diào)度”。
CAN的直接通信距離最遠(yuǎn)可達(dá)10km(速率5kbps以下);通信速率最高可達(dá)1Mbps(此時通信距離最長為40m)。
CAN上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動電路,目前可達(dá)110個,報文標(biāo)識符可達(dá)2032種(CAN2.0A),而擴(kuò)展標(biāo)準(zhǔn)(CAN2.0B)的報文標(biāo)識符幾乎不受限制。
CAN采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,具有極好的檢錯效果。
CAN的每幀信息都有CRC校驗及其他檢錯措施,保證了數(shù)據(jù)出錯率極低。
CAN通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活。
CAN節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。
3.CAN智能節(jié)點(diǎn)硬件設(shè)計
目前常用的CAN器件分為兩大類,一類是獨(dú)立的CAN控制器,如Philips的PCA82C250、SJA1000等,另一類是帶有CAN功能的微控制器,如PIC的DSPIC6014、TI的TMS320F2812、Motorola的MC9S12DT128等等。本文采用Intel的87C196KD微處理器和PHILIP的SJA1000CAN控制器完成CAN總線智能節(jié)點(diǎn)的設(shè)計。
圖2CAN智能節(jié)點(diǎn)硬件電路
CAN智能節(jié)點(diǎn)硬件電路如圖2所示。電路主要由五部分組成:微控制器87C196KD、獨(dú)立CAN控制器SJA1000、CAN總線收發(fā)器82C250、高速光電耦合器6N137、復(fù)位電路。
微控制器87C196KD是CAN智能節(jié)點(diǎn)的核心部分,87C196KD具有32K字節(jié)的ROM和1000字節(jié)的RAM,可用高級語言編程。87C196KD主要完成節(jié)點(diǎn)數(shù)據(jù)采集及計算、節(jié)點(diǎn)設(shè)定、節(jié)點(diǎn)控制、運(yùn)行顯示等功能,并與CAN控制器SJA1000之間發(fā)送、接收數(shù)據(jù)。
SJA1000芯片是一種應(yīng)用廣泛、性能優(yōu)異的CAN總線控制器。SJA1000負(fù)責(zé)完成CAN總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能。它有Basicmode和Pelimode兩種工作模式,與Basicmode模式相比,Pelimode工作模式支持?jǐn)U展幀,報文標(biāo)識符可達(dá)29位,提供了更加強(qiáng)大的功能。為減少每幀非數(shù)據(jù)字符的數(shù)量,提高信息交換速度,在實(shí)際應(yīng)用中宜采用Basicmode模式。在Basicmode模式下,SJA1000對于微處理器來說相當(dāng)于一個存儲器映像外圍設(shè)備,它的可尋址域由控制段和接收、發(fā)送緩沖器組成。SJA1000的AD0~AD7連接到87C196KD的P3口(數(shù)據(jù)總線),采用并口連接方式,數(shù)據(jù)讀寫速度快。87C196KD地址總線的P4.6、P4.7通過譯碼器與SJA1000的片選信號CS相連,SJA1000的RD、WR、ALE分別與87C196KD的RD、WR、ALE相連,SJA1000的INT經(jīng)過非門與87C196KD的EXINT相連,微控制器也可以通過中斷的方式訪問CAN控制器。
82C250是CAN控制器與物理總線之間的接口。82C250的CANL和CANH與CAN總線相連,若82C250處于CAN總線的網(wǎng)絡(luò)終端,CANL和CANH之間需加一個匹配電阻,用于消除反射信號的干擾。RS用于選擇三種不同的工作方式:高速、斜率控制和待機(jī),RS串接一個電阻后再接地,用于控制上升和下降斜率,減小射頻干擾。
為了進(jìn)一步提高系統(tǒng)抗干擾能力,在CAN控制器SJA1000和CAN總線收發(fā)器82C250之間加接高速光電耦合器6N137,并采用DC-DC變換器隔離電源,這樣就很好的實(shí)現(xiàn)了總線上各個CAN節(jié)點(diǎn)之間的 器隔離。
復(fù)位電路由看門狗MAX706和手動復(fù)位按扭組成。當(dāng)系統(tǒng)發(fā)生故障時,MAX706自動產(chǎn)生復(fù)位信號給87C196KD和SJA1000復(fù)位,若想重新啟動程序,可用手動復(fù)位按扭復(fù)位。
4.CAN智能節(jié)點(diǎn)軟件設(shè)計
CAN智能節(jié)點(diǎn)的軟件設(shè)計主要包括三部分:CAN初始化程序、報文發(fā)送程序、報文接收程序。下面給出了BasicCAN模式CAN智能節(jié)點(diǎn)軟件的程序框圖和C語言源程序。
a.CAN初始化部分
#include80c196kd.h>
/*應(yīng)包含的微控制器寄存器的定義*/
#include_SFR_H_
#include_FUNCS_H_
#defineBASE_CAN0Xa000/*定義CAN控制器基址*/
typedefstruct{
unsignedintid;/*報文標(biāo)識符*/
unsignedcharrtr;/*遠(yuǎn)程幀位*/
unsignedchardlen;/*數(shù)據(jù)長度*/
unsignedchardata[8];/*數(shù)據(jù)*/
?。齅SG_STRUCT;/*將CAN協(xié)議的幀用C語言的結(jié)構(gòu)表示*/
voidinit_can()
?。?/p>
*(unsignedchar*)(BASE_CAN+0)=0x01;/*SJA1000進(jìn)入復(fù)位狀態(tài)*/
?。╱nsignedchar*)(BASE_CAN+4)=0x00;/*初始化接收代碼寄存器ACR*/
*(unsignedchar*)(BASE_CAN+5)=0xff;/*初始化接收屏蔽寄存器AMR*/
?。╱nsignedchar*)(BASE_CAN+6)=0x00;/*初始化總線時序寄存器BTR0*/
*(unsignedchar*)(BASE_CAN+7)=0x14;/*初始化總線時序寄存器BTR1*/
?。╱nsignedchar*)(BASE_CAN+8)=0xfa;/*初始化輸出控制寄存器OCR*/
?。?/p>
評論