李洋曲阜師范大學(xué)工學(xué)院
?
CAN總線通信技術(shù)在洗煤廠皮帶綜合保護(hù)中的應(yīng)用
李洋
曲阜師范大學(xué)工學(xué)院
摘要:控制器局域網(wǎng)(CAN)與其他網(wǎng)絡(luò)的不同之處在于,它是供微控制器使用的網(wǎng)絡(luò),用于高噪聲環(huán)境下本地微控制器之間的通信。煤礦洗煤廠中由于使用的設(shè)備功率大且比較密集,屬于強(qiáng)噪聲工作環(huán)境,因而在設(shè)計(jì)控制系統(tǒng)時(shí)采用CAN總線通信技術(shù)具有很大的優(yōu)勢(shì)。文章主要介紹了使用具有CAN通信控制模塊的PICl8F248微處理器實(shí)現(xiàn)節(jié)點(diǎn)間通信的方法;給出了在洗煤廠皮帶綜合保護(hù)控制裝置中的應(yīng)用方案。本系統(tǒng)具有硬件設(shè)計(jì)簡(jiǎn)單、可靠性高等特點(diǎn),具有較強(qiáng)的應(yīng)用參考價(jià)值。
關(guān)鍵字:皮帶綜合保護(hù) CAN控制模塊 PICl8F248
CAN(Controller Area Network)控制器局域網(wǎng),主要應(yīng)用在微控制器之間需要彼此通信的場(chǎng)合。設(shè)計(jì)以PICl8F248單片機(jī)(內(nèi)部集成CAN模塊)為主的控制器,以PCA82C250實(shí)現(xiàn)與外部CAN總線的物理連接,形成一個(gè)CAN通信節(jié)點(diǎn),并將此應(yīng)用到洗煤廠皮帶綜合保護(hù)控制系統(tǒng)中,取得了較好的控制效果。
使用內(nèi)嵌CAN控制器的PICl8F248單片機(jī)構(gòu)建CAN通信網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),硬件設(shè)計(jì)簡(jiǎn)單,軟件編制也容易許多,系統(tǒng)的抗電磁干擾能力大大增強(qiáng),軟硬件設(shè)計(jì)也大大簡(jiǎn)化,降低了成本。
PICl8F248內(nèi)嵌的CAN模塊主要有如下特點(diǎn):
1)能夠支持CAN2.OA、o氣N2,oB協(xié)議規(guī)范;
2)數(shù)據(jù)信息支持標(biāo)準(zhǔn)幀和擴(kuò)展幀;
3)3個(gè)傳送信息緩沖器,2個(gè)接收信息緩沖器,6個(gè)有優(yōu)先級(jí)的接收過濾器。
系統(tǒng)中CAN通信部分的硬件構(gòu)成部分主要由PICl8F248、PCA82C250、6N137器件構(gòu)成,三個(gè)器件構(gòu)成一個(gè)CAN總線通信節(jié)點(diǎn),其中PICl8F248主要負(fù)責(zé)數(shù)據(jù)信息的收集、組織、發(fā)送和接收,保證節(jié)點(diǎn)之間的通信正常暢通;光電耦合器6N137實(shí)現(xiàn)外接總線和控制系統(tǒng)之間的完全電隔離,提高系統(tǒng)的抗電磁干擾能力。
系統(tǒng)中CAN節(jié)點(diǎn)通信部分的軟件設(shè)計(jì)主要就是初始化子程序、數(shù)據(jù)發(fā)送子程序、數(shù)據(jù)接收子程序。程序初始化部分包含CAN模塊工作方式配置、設(shè)置屏蔽寄存器與接收濾波器、設(shè)置波特率參數(shù)、設(shè)置發(fā)送優(yōu)先級(jí)和設(shè)置中斷允許寄存器等。數(shù)據(jù)發(fā)送程序是由CAN控制器據(jù)總線協(xié)議自動(dòng)完成的。其工作過程是先將發(fā)送緩沖器控制寄存器清零,然后將要發(fā)送的數(shù)據(jù)裝載到發(fā)送緩沖器中,在命令寄存器中將“發(fā)送請(qǐng)求標(biāo)識(shí)位”激活,當(dāng)檢測(cè)到總線可用時(shí),器件自動(dòng)開始發(fā)送數(shù)據(jù)。數(shù)據(jù)接收程序也是由CAN控制器自動(dòng)完成的,采用中斷方式接收數(shù)據(jù)。每當(dāng)接收到一條信息時(shí),該信息就會(huì)通過接收過濾器過濾,滿足條件的信息才送到接收緩沖器(RxBn)中,置位相應(yīng)的接收中斷標(biāo)志位(RXB n IF)并產(chǎn)生中斷;在接收數(shù)據(jù)中斷服務(wù)程序中,直接從接收緩沖器中將內(nèi)容取出并進(jìn)行相應(yīng)的處理即可。
皮帶綜合保護(hù)有如下部分構(gòu)成:主、副滾筒轉(zhuǎn)速,皮帶打滑、撕裂、跑偏、堆物、拉繩急停開關(guān)及其信息的綜合分析。主副滾筒轉(zhuǎn)速數(shù)據(jù)和打滑傳感器(安裝在皮帶上通過與皮帶摩擦而轉(zhuǎn)動(dòng)的測(cè)速裝置)輸出的數(shù)據(jù)用于判斷皮帶運(yùn)轉(zhuǎn)是否正常,當(dāng)主副滾筒轉(zhuǎn)速在正常范圍內(nèi),而打滑傳感器輸出不正常,可以判斷出皮帶打滑;撕裂、跑偏、堆物傳感器在出現(xiàn)故障時(shí)都是輸出開關(guān)量信號(hào)。本系統(tǒng)中數(shù)據(jù)長(zhǎng)度設(shè)置為8個(gè)字節(jié),第一字節(jié)表示皮帶序號(hào);主滾筒、副滾筒、皮帶打滑傳感器轉(zhuǎn)速分別使用一個(gè)字節(jié);撕裂、跑偏、堆物、拉繩急停占用四個(gè)字節(jié),每一個(gè)傳感器節(jié)點(diǎn)占用一位,傳感器動(dòng)作則相應(yīng)位置1,這四個(gè)字節(jié)中空余的位和字節(jié)用來擴(kuò)展測(cè)量點(diǎn)用。當(dāng)任意一個(gè)節(jié)點(diǎn)上出現(xiàn)異常系統(tǒng)就向CAN總線上發(fā)送數(shù)據(jù),每次發(fā)送8個(gè)字節(jié)的數(shù)據(jù)。當(dāng)正常運(yùn)行時(shí)每間隔1s也向CAN總線上發(fā)送8個(gè)字節(jié)的數(shù)據(jù)。
PICl8f248的CAN通信主要就是CAN模塊的配置,將CAN模塊的各個(gè)寄存器配置好后,需要發(fā)送數(shù)據(jù)時(shí)將發(fā)送緩沖器裝載好數(shù)據(jù)后,就可以直接請(qǐng)求發(fā)送;接收采用中斷方式接收數(shù)據(jù),當(dāng)PIR3bits.RXBOIF(注:此處使用接收緩沖器0)為1時(shí)表示緩沖器0接收到信息,由此引起中斷。以下是系統(tǒng)中CAN通信部分初始化子程序。voidinitcan(){TRjsB=(TRJSBIOx08)&Oxfb;∥設(shè)置RB3為輸入RB2為輸出/術(shù)以下是設(shè)置波特率為125kb(Fosc=4MHz)、同步時(shí)間段、傳輸時(shí)間段、相位緩沖時(shí)間段數(shù)值豐/CANCON=0x80:w“l(fā)e(cANs仉坷&0x80==0){;} ∥等待進(jìn)入
CAN配置模式
BRGCON1=0XOA:
BRGCON2=OX90:
BRGCON3=0X42:
/以下設(shè)置發(fā)送郵箱0標(biāo)識(shí)符和發(fā)送數(shù)據(jù)格式/
TxBOCON=0x03: //設(shè)置發(fā)送優(yōu)先級(jí)為最高級(jí)
(TXPIU=11)
T)(BOSIDH=OxFF: //設(shè)置發(fā)送緩沖器0的
采用標(biāo)準(zhǔn)標(biāo)識(shí)符
TXBOSIDL=0XEO:
TXBODLC=0x08://數(shù)據(jù)長(zhǎng)度為8個(gè)字節(jié)
/木采集的現(xiàn)場(chǎng)數(shù)據(jù)裝載到8發(fā)送緩沖器中木/
TXBODO=tempdatal;TXBODl=tempdata2;TXBO
D2=tempdata3;
TXBOD3=tempdata4;TXBOD4=tempdata5;TXB0
D5=teInpdata6;
TXBOD6=tempdata7;TXBOD72tempdata8;
/牢以下是接收郵箱0的標(biāo)識(shí)符配置和初始化接收
緩沖器數(shù)據(jù)術(shù)木木/
RXBOSIDH=0XFF: //接收標(biāo)準(zhǔn)標(biāo)識(shí)符高字節(jié)
RXB0sIDL=0xE0://對(duì)接收標(biāo)準(zhǔn)標(biāo)識(shí)符低字節(jié)
RXBOCOIN=Ox20: //RXB0采用過濾器0并僅
接收標(biāo)準(zhǔn)標(biāo)識(shí)符的有效信息位
RxBODLC=0x08: ∥接收緩沖器O的數(shù)據(jù)區(qū)長(zhǎng)
度8位
RXBOD0=0X00;RXBOD1=0XOO;RXBOD2=OXOO;
RXBOD3=0X00;RXBOD4=0X00;RXBOD5=0X00;
RXBOD6=OX00;RXBOD7=OXOO;
∥術(shù)接收過濾器O和接收屏蔽器的配置木//
RXFOSIDH=0xFF: //接收過濾器O標(biāo)準(zhǔn)標(biāo)識(shí)符
高字節(jié)
RXFOSIDL=0XE0:
低字節(jié)
RXMOSIDH=0X00:
高字節(jié)
RXMOSIDL=0XOO:
低字節(jié)
//接收過濾器0標(biāo)準(zhǔn)標(biāo)識(shí)符
//接收屏蔽字O標(biāo)準(zhǔn)標(biāo)識(shí)符
∥接收屏蔽字0標(biāo)準(zhǔn)標(biāo)識(shí)符
CIOCON=0x30;//cAN模塊I/O控制寄存器,
配置為隱性時(shí)cANTx引腳驅(qū)動(dòng)到VDD:使能cAN捕捉
//術(shù)配置CAN模塊中斷木∥
PIR3=0x00://將所有中斷標(biāo)志清除
PIE3=0x01: //使能接收緩沖器0的接收中斷
IPR3=Ox01: ∥接收緩沖器0的接收中斷為最高
優(yōu)先級(jí)
}
//術(shù)設(shè)置CAN進(jìn)入正常操作模式術(shù)//
CANCON=OX00;∥=0X00,正常操作模式
while(CANSTAT&0xEO!=0){;)
內(nèi)嵌CAN總線控制模塊的單片機(jī)PICl8F248組成的系統(tǒng),在開發(fā)CAN總線通信時(shí)具有硬件結(jié)構(gòu)簡(jiǎn)單、編程容易、系統(tǒng)抗電磁干擾能力強(qiáng)等優(yōu)點(diǎn),在未來的工程應(yīng)用中越來越受到重視。文章從硬件構(gòu)成和軟件編程兩方面對(duì)PICl8F248內(nèi)嵌的CAN模塊的使用進(jìn)行了詳細(xì)的介紹;并將此應(yīng)用到洗煤廠皮帶綜合保護(hù)應(yīng)用系統(tǒng)中,取得了良好的通信效果,對(duì)CAN總線系統(tǒng)開發(fā)有一定的實(shí)際參考價(jià)值。
參考文獻(xiàn)
[1]劉和平,劉林,余紅欣,等.PICl8Fx單片機(jī)原理及接口程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004.
[2]BrevB B.PICl8微控制器體系結(jié)構(gòu)、編程與接口設(shè)計(jì)(C語(yǔ)言與匯編語(yǔ)言版)[M].王俊華,肖亮,等,譯,北京:清華大學(xué)出版社,2009.
[3]張皆喜,王茂凌,張瑜.PIC系列單片機(jī)C語(yǔ)言編程與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2008.
[4]杜尚豐,曹曉鐘,徐津.CAN總線測(cè)控技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2007.
[5]孫韜,劉宗行,吳斌.基于CAN總線構(gòu)成的分布式通信網(wǎng)絡(luò)的應(yīng)用[J].重慶大學(xué)學(xué)報(bào)(自然科學(xué)版),2003,26(1):69—72.
[6]蔡純潔,楊維堅(jiān),伍先達(dá),等.PIC全系列單片機(jī)原理與開發(fā)[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2003.
[7]張俊.匠人手記——一個(gè)單片機(jī)工作者的實(shí)踐與思考[M].北京:北京航空航天大學(xué)出版社,2008.