摘要:主要介紹CAN總線的原理及如何用87C196NT單片機實現(xiàn)基于CAN總線的網(wǎng)絡(luò)通信;對其硬件和軟件設(shè)計作詳細的分析,最后給出下位機程序。
關(guān)鍵詞:單片機 CAN總線 87C196NT PCA82C200
1 CAN總線簡介
CAN(Controller Area Network)即控制器局域網(wǎng),主要用于各種設(shè)備監(jiān)測及控制的一種現(xiàn)場總線。CAN總線最初是由德國Bosch公司為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計的。CAN總線具有獨特的設(shè)計思想,良好的功能特性和極高的可靠性,現(xiàn)場抗干擾能力強。具體來講,CAN總線具有如下特點:
*結(jié)構(gòu)簡單,只有2根線與外部相連,且內(nèi)部含有錯誤探測和管理模塊。
*通信方式靈活?梢远嘀鞣绞焦ぷ,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其它節(jié)點發(fā)送信息,而不分主從。
*可以點對點、點對多點及全局廣播方式發(fā)送和接收數(shù)據(jù)。

*網(wǎng)絡(luò)上的節(jié)點信息可分成不同的優(yōu)先級,可以滿足不同的實時要求。
*CAN總線通信格式采用短幀格式,每幀字節(jié)數(shù)最多為8個,可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)也不會占用總線時間過長,從而保證了通信的實時性。
*采用非破壞性總線仲裁技術(shù)。當(dāng)2個節(jié)點同時向總線上發(fā)送數(shù)據(jù)時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù)。這大大地節(jié)省了總線仲裁沖突時間,在網(wǎng)絡(luò)負載很重的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓。
*直接通信距離最大可達10km(速率5kb/s以下),最高通信速率可達1Mb/s(此時距離最長為40m);節(jié)點數(shù)可達110個,通信介質(zhì)可以是雙絞線、網(wǎng)軸電纜或光導(dǎo)纖維。
*CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等多項工作。
*CAN總線采用CRC檢驗并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。
CAN總線的以上特點,為工業(yè)控制系統(tǒng)中高可靠性的數(shù)據(jù)傳送提供了一種新的解決方案。其在國外工業(yè)測控領(lǐng)域已經(jīng)有了廣泛的應(yīng)用,現(xiàn)國內(nèi)的許多工業(yè)控制領(lǐng)域也開始使用基于CAN的現(xiàn)場總線。CAN總線已成為最有發(fā)展前途的4種現(xiàn)場總線之一。
2 單片機控制系統(tǒng)硬件設(shè)計
本設(shè)計采用Intel 196系列中的87C196NT單片機。87C196NT具有1MB的尋址空間,本身不帶CAN控制器,所以要實現(xiàn)與CAN總線之間的通信,需外加CAN控制器和CAN驅(qū)動芯片。在本設(shè)計中我們采用LTL-CAN。LTL-CAN是一種CAN總線控制、驅(qū)動隔離收發(fā)器,由CAN控制器芯片PCA82C200、CAN驅(qū)動芯片PCA82C250、16MHz的晶振及光隔電路用厚膜封裝而成。它只支持標(biāo)準(zhǔn)信息幀格式,其內(nèi)部邏輯功能如圖1所示。LTC-CAN引腳定義如表1所列。
表1 LTL-CAN引腳定義
| 引 腳 | 符 號 | 功 能 | 引 腳 | 符 號 | 功 能 |
| 1 | Vcc | 電源Vcc | 16 | INT | CAN中斷 |
| 2 | GND | 地GND | 17 | NC | 空 |
| 3 | CS | CAN片選 | 18~27 | NC | 未引出 |
| 4 | ALE | 地址鎖存 | 28 | CANH | CANH |
| 5 | RD | CAN讀 | 29 | CANL | CANL |
| 6 | WR | CAN寫 | 30 | ISOGND | ISO GND |
| 7~14 | AD7~0 | 數(shù)據(jù)線 | 31 | ISOVDD | ISO VDD |
| 15 | RST | CAN復(fù)位 | 32 | NC | 空 |





