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