基于CAN總線的集散控制系統(tǒng)智能節(jié)點的設計

相關專題: 芯片

引言

現(xiàn)場總線是當今自動化領域技術發(fā)展的一個熱點,被譽為自動化領域的計算機局域網。它的出現(xiàn),標志著工業(yè)控制技術領域又一個新時代的開始,并對該領域的發(fā)展產生了重要的影響?刂破骶钟蚓WCAN(Controller Aera Network)屬于現(xiàn)場總線的范疇,CAN總線的數(shù)據通信具有極高的可靠性、實時性和靈活性的特點,是一種有效支持集散控制系統(tǒng)和實時控制的多主串行總線。

1. 基于CAN總線的集散控制系統(tǒng)

圖1 基于CAN總線的集散控制系統(tǒng)

基于CAN總線的集散控制系統(tǒng)如圖1所示,采用現(xiàn)場總線式控制系統(tǒng)FCS(Fieldbus Control System)結構,由上位機、CAN總線控制網絡、CAN智能節(jié)點組成。上位機主要完成在線系統(tǒng)監(jiān)控,上位機通過CAN適配卡與CAN總線相連;CAN智能節(jié)點完成數(shù)據采集及計算、節(jié)點設定、節(jié)點控制、運行顯示等。上位機和智能節(jié)點之間通過CAN現(xiàn)場總線交換各種數(shù)據和管理控制信息。

2. CAN的性能特點

CAN為多主方式工作,網絡上任一節(jié)點均可在任意時刻主動地向網絡上其他節(jié)點發(fā)送信息,而不分主從,通訊方式靈活,且無需站地址等節(jié)點信息。

CAN網絡上的節(jié)點信息分成不同的優(yōu)先級,可滿足不同的實時要求,高優(yōu)先級的數(shù)據最多可在134μs內得到傳輸。

CAN采用非破壞性總線仲裁技術,當多個節(jié)點同時向總線發(fā)送信息時,優(yōu)先級較低的節(jié)點會主動的退出發(fā)送,而優(yōu)先級較高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據,從而大大節(jié)省了總線沖突仲裁時間。

CAN只需要通過報文濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接收數(shù)據,無需專門的“調度”。

CAN的直接通信距離最遠可達10km(速率5kbps以下);通信速率最高可達1Mbps(此時通信距離最長為40m)。

CAN上的節(jié)點數(shù)主要取決于總線驅動電路,目前可達110個,報文標識符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的報文標識符幾乎不受限制。

CAN采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。

CAN的每幀信息都有CRC校驗及其他檢錯措施,保證了數(shù)據出錯率極低。

CAN通信介質可為雙絞線、同軸電纜或光纖,選擇靈活。

CAN節(jié)點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節(jié)點的操作不受影響。

3. CAN智能節(jié)點硬件設計

目前常用的CAN器件分為兩大類,一類是獨立的CAN控制器,如Philips的PCA82C250、SJA1000等,另一類是帶有CAN功能的微控制器,如PIC的DSPIC6014、TI的TMS320F2812、Motorola的MC9S12DT128等等。本文采用Intel的 87C196KD微處理器和PHILIP的 SJA1000 CAN控制器完成CAN總線智能節(jié)點的設計。

圖2 CAN智能節(jié)點硬件電路

CAN智能節(jié)點硬件電路如圖2所示。電路主要由五部分組成:微控制器87C196KD、獨立CAN控制器SJA1000、CAN總線收發(fā)器82C250、高速光電耦合器6N137、復位電路。

微控制器87C196KD是CAN智能節(jié)點的核心部分,87C196KD具有32K字節(jié)的ROM和1000字節(jié)的RAM,可用高級語言編程。87C196KD主要完成節(jié)點數(shù)據采集及計算、節(jié)點設定、節(jié)點控制、運行顯示等功能,并與CAN控制器SJA1000之間發(fā)送、接收數(shù)據。

SJA1000芯片是一種應用廣泛、性能優(yōu)異的CAN總線控制器。SJA1000負責完成CAN總線通信協(xié)議的物理層和數(shù)據鏈路層的功能。它有Basicmode和Pelimode兩種工作模式,與 Basicmode模式相比,Pelimode工作模式支持擴展幀,報文標識符可達29位,提供了更加強大的功能。為減少每幀非數(shù)據字符的數(shù)量,提高信息交換速度,在實際應用中宜采用Basicmode模式。在Basicmode模式下,SJA1000對于微處理器來說相當于一個存儲器映像外圍設備,它的可尋址域由控制段和接收、發(fā)送緩沖器組成。SJA1000的AD0~AD7連接到87C196KD的P3口(數(shù)據總線),采用并口連接方式,數(shù)據讀寫速度快。87C196KD 地址總線的P4.6、P4.7通過譯碼器與SJA1000的片選信號CS相連,SJA1000的RD、WR、ALE分別與87C196KD的RD、WR、ALE相連, SJA1000的INT經過非門與87C196KD的EXINT相連, 微控制器也可以通過中斷的方式訪問CAN控制器。

82C250是CAN控制器與物理總線之間的接口。82C250的CANL和CANH與CAN總線相連,若82C250處于CAN總線的網絡終端,CANL和CANH之間需加一個匹配電阻,用于消除反射信號的干擾。RS用于選擇三種不同的工作方式:高速、斜率控制和待機,RS串接一個電阻后再接地,用于控制上升和下降斜率,減小射頻干擾。

為了進一步提高系統(tǒng)抗干擾能力,在CAN控制器SJA1000和CAN總線收發(fā)器82C250之間加接高速光電耦合器6N137,并采用DC-DC變換器隔離電源,這樣就很好的實現(xiàn)了總線上各個CAN節(jié)點之間的 器隔離。

復位電路由看門狗MAX706和手動復位按扭組成。當系統(tǒng)發(fā)生故障時,MAX706自動產生復位信號給87C196KD和SJA1000復位,若想重新啟動程序,可用手動復位按扭復位。

4. CAN智能節(jié)點軟件設計

CAN智能節(jié)點的軟件設計主要包括三部分:CAN初始化程序、報文發(fā)送程序、報文接收程序。下面給出了Basic CAN模式CAN智能節(jié)點軟件的程序框圖和C語言源程序。

a.CAN初始化部分

#include <80c196kd.h>

/* 應包含的微控制器寄存器的定義*/

#include _SFR_H_

#include _FUNCS_H_

#define BASE_CAN 0Xa000 /*定義CAN控制器基址*/

typedef struct {

unsigned int id; /*報文標識符*/

unsigned char rtr; /*遠程幀位*/

unsigned char dlen; /*數(shù)據長度*/

unsigned char data[8]; /*數(shù)據*/

} MSG_STRUCT; /*將CAN協(xié)議的幀用C語言的結構表示*/

void init_can()

*(unsigned char*)(BASE_CAN + 0) = 0x01; /*SJA1000進入復位狀態(tài)*/

*(unsigned char*)(BASE_CAN + 4) = 0x00; /* 初始化接收代碼寄存器ACR */

*(unsigned char*)(BASE_CAN + 5) = 0xff; /* 初始化接收屏蔽寄存器AMR */

*(unsigned char*)(BASE_CAN + 6) = 0x00; /* 初始化總線時序寄存器BTR0 */

*(unsigned char*)(BASE_CAN + 7) = 0x14; /* 初始化總線時序寄存器BTR1 */

*(unsigned char*)(BASE_CAN + 8) = 0xfa; /* 初始化輸出控制寄存器OCR */

 

   來源:21ic
微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息