CAN總線通信技術(shù)在洗煤廠皮帶綜合保護(hù)中的應(yīng)用
0 引言
本文引用地址:http://www.ex-cimer.com/article/201610/306209.htmCAN(Controller Area Network)控制器局域網(wǎng),主要應(yīng)用在微控制器之間需要彼此通信的場合。設(shè)計(jì)以PIC18F248單片機(jī)(內(nèi)部集成CAN模塊)為主的控制器,以PCA82C250實(shí)現(xiàn)與外部CAN總線的物理連接,形成一個(gè)CAN通信節(jié)點(diǎn),并將此應(yīng)用到洗煤廠皮帶綜合保護(hù)控制系統(tǒng)中,取得了較好的控制效果。
1 內(nèi)嵌CAN控制器的PIC18F248單片機(jī)性能簡介
使用內(nèi)嵌CAN控制器的PIC18F248單片機(jī)構(gòu)建CAN通信網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),硬件設(shè)計(jì)簡單,軟件編制也容易許多,系統(tǒng)的抗電磁干擾能力大大增強(qiáng),軟硬件設(shè)計(jì)也大大簡化,降低了成本。圖1是該單片機(jī)的引腳情況,其23、24引腳分別是其內(nèi)嵌CAN模塊的發(fā)送和接收引腳。
PIC18F248內(nèi)嵌的CAN模塊主要有如下特點(diǎn):
1)能夠支持CAN2.0A、CA2N2.0B協(xié)議規(guī)范;2)數(shù)據(jù)信息支持標(biāo)準(zhǔn)幀和擴(kuò)展幀;3)3個(gè)傳送信息緩沖器,2個(gè)接收信息緩沖器,6個(gè)有優(yōu)先級(jí)的接收過濾器。
2 應(yīng)用系統(tǒng)中CAN通信部分的硬件電路設(shè)計(jì)
系統(tǒng)中CAN通信部分的硬件構(gòu)成部分主要由PIC18F248、PCA82C250、6N137器件構(gòu)成,圖2是其實(shí)際的電路連接情況。
三個(gè)器件構(gòu)成一個(gè)CAN總線通信節(jié)點(diǎn),其中PIC18F248主要負(fù)責(zé)數(shù)據(jù)信息的收集、組織、發(fā)送和接收,保證節(jié)點(diǎn)之間的通信正常暢通;光電耦合器6N137實(shí)現(xiàn)外接總線和控制系統(tǒng)之間的完全電隔離,提高系統(tǒng)的抗電磁干擾能力。
3 CAN通信系統(tǒng)的軟件設(shè)計(jì)流程
系統(tǒng)中CAN節(jié)點(diǎn)通信部分的軟件設(shè)計(jì)主要就是初始化子程序、數(shù)據(jù)發(fā)送子程序、數(shù)據(jù)接收子程序。
程序初始化部分包含CAN模塊工作方式配置、設(shè)置屏蔽寄存器與接收濾波器、設(shè)置波特率參數(shù)、設(shè)置發(fā)送優(yōu)先級(jí)和設(shè)置中斷允許寄存器等。圖3是初始化子程序流程圖。
數(shù)據(jù)發(fā)送程序是由CAN控制器據(jù)總線協(xié)議自動(dòng)完成的。其工作過程是先將發(fā)送緩沖器控制寄存器清零,然后將要發(fā)送的數(shù)據(jù)裝載到發(fā)送緩沖器中,在命令寄存器中將“發(fā)送請求標(biāo)識(shí)位”激活,當(dāng)檢測到總線可用時(shí),器件自動(dòng)開始發(fā)送數(shù)據(jù)。圖4是CAN節(jié)點(diǎn)數(shù)據(jù)發(fā)送程序流程圖。
數(shù)據(jù)接收程序也是由CAN控制器自動(dòng)完成的,采用中斷方式接收數(shù)據(jù)。每當(dāng)接收到一條信息時(shí),該信息就會(huì)通過接收過濾器過濾,滿足條件的信息才送到接收緩沖器(RXBn)中,置位相應(yīng)的接收中斷標(biāo)志位(RXBnIF)并產(chǎn)生中斷;在接收數(shù)據(jù)中斷服務(wù)程序中,直接從接收緩沖器中將內(nèi)容取出并進(jìn)行相應(yīng)的處理即可。圖5是CAN節(jié)點(diǎn)數(shù)據(jù)接收程序流程圖。
4 皮帶綜合安全保護(hù)問題分析
皮帶綜合保護(hù)有如下部分構(gòu)成:主、副滾筒轉(zhuǎn)速,皮帶打滑、撕裂、跑偏、堆物、拉繩急停開關(guān)及其信息的綜合分析。主副滾筒轉(zhuǎn)速數(shù)據(jù)和打滑傳感器(安裝在皮帶上通過與皮帶摩擦而轉(zhuǎn)動(dòng)的測速裝置)輸出的數(shù)據(jù)用于判斷皮帶運(yùn)轉(zhuǎn)是否正常,當(dāng)主副滾筒轉(zhuǎn)速在正常范圍內(nèi),而打滑傳感器輸出不正常,可以判斷出皮帶打滑;撕裂、跑偏、堆物傳感器在出現(xiàn)故障時(shí)都是輸出開關(guān)量信號(hào)。
本系統(tǒng)中數(shù)據(jù)長度設(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ò)展測量點(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ù)。
5 CAN通信配置程序
PIC18f248的CAN通信主要就是CAN模塊的配置,將CAN模塊的各個(gè)寄存器配置好后,需要發(fā)送數(shù)據(jù)時(shí)將發(fā)送緩沖器裝載好數(shù)據(jù)后,就可以直接請求發(fā)送;接收采用中斷方式接收數(shù)據(jù),當(dāng)PIR3bits.RXB0IF(注:此處使用接收緩沖器0)為1時(shí)表示緩沖器0接收到信息,由此引起中斷。以下是系統(tǒng)中CAN通信部分初始化子程序。
6 結(jié)束語
內(nèi)嵌CAN總線控制模塊的單片機(jī)PIC18F248組成的系統(tǒng),在開發(fā)CAN總線通信時(shí)具有硬件結(jié)構(gòu)簡單、編程容易、系統(tǒng)抗電磁干擾能力強(qiáng)等優(yōu)點(diǎn),在未來的工程應(yīng)用中越來越受到重視。文章從硬件構(gòu)成和軟件編程兩方面對(duì)PIC18F248內(nèi)嵌的CAN模塊的使用進(jìn)行了詳細(xì)的介紹;并將此應(yīng)用到洗煤廠皮帶綜合保護(hù)應(yīng)用系統(tǒng)中,取得了良好的通信效果,對(duì)CAN總線系統(tǒng)開發(fā)有一定的實(shí)際參考價(jià)值。
評(píng)論