熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于CAN總線的集散控制系統智能節點的設計

基于CAN總線的集散控制系統智能節點的設計

時間:2008-06-25 09:28:00來源:ronggang

導語:?本文介紹了基于CAN總線的集散控制系統的設計方法,給出了Intel 87C196KD微處理器和PHILIP SJA1000 CAN控制器組成的CAN總線智能節點的硬件電路和軟件程序
摘 要:本文介紹了基于CAN總線的集散控制系統的設計方法,給出了Intel 87C196KD微處理器和PHILIP SJA1000 CAN控制器組成的CAN總線智能節點的硬件電路和軟件程序。 關鍵詞:CAN總線、集散控制系統、SJA1000 引言   現場總線是當今自動化領域技術發展的一個熱點,被譽為自動化領域的計算機局域網。它的出現,標志著工業控制技術領域又一個新時代的開始,并對該領域的發展產生了重要的影響??刂破骶钟蚓WCAN(Controller Aera Network)屬于現場總線的范疇,CAN總線的數據通信具有極高的可靠性、實時性和靈活性的特點,是一種有效支持集散控制系統和實時控制的多主串行總線。 1. 基于CAN總線的集散控制系統
圖1 基于CAN總線的集散控制系統
  基于CAN總線的集散控制系統如圖1所示,采用現場總線式控制系統FCS(Fieldbus Control System)結構,由上位機、CAN總線控制網絡、CAN智能節點組成。上位機主要完成在線系統監控,上位機通過CAN適配卡與CAN總線相連;CAN智能節點完成數據采集及計算、節點設定、節點控制、運行顯示等。上位機和智能節點之間通過CAN現場總線交換各種數據和管理控制信息。 2. CAN的性能特點   CAN為多主方式工作,網絡上任一節點均可在任意時刻主動地向網絡上其他節點發送信息,而不分主從,通訊方式靈活,且無需站地址等節點信息。   CAN網絡上的節點信息分成不同的優先級,可滿足不同的實時要求,高優先級的數據最多可在134μs內得到傳輸。   CAN采用非破壞性總線仲裁技術,當多個節點同時向總線發送信息時,優先級較低的節點會主動的退出發送,而優先級較高的節點可不受影響地繼續傳輸數據,從而大大節省了總線沖突仲裁時間。   CAN只需要通過報文濾波即可實現點對點、一點對多點及全局廣播等幾種方式傳送接收數據,無需專門的“調度”。   CAN的直接通信距離最遠可達10km(速率5kbps以下);通信速率最高可達1Mbps(此時通信距離最長為40m)。   CAN上的節點數主要取決于總線驅動電路,目前可達110個,報文標識符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的報文標識符幾乎不受限制。   CAN采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。   CAN的每幀信息都有CRC校驗及其他檢錯措施,保證了數據出錯率極低。   CAN通信介質可為雙絞線、同軸電纜或光纖,選擇靈活。   CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響。 3. CAN智能節點硬件設計   目前常用的CAN器件分為兩大類,一類是獨立的CAN控制器,如Philips的PCA82C250、SJA1000等,另一類是帶有CAN功能的微控制器,如PIC的DSPIC6014、TI的TMS320F2812、Motorola的MC9S12DT128等等。本文采用Intel的 87C196KD微處理器和PHILIP的 SJA1000 CAN控制器完成CAN總線智能節點的設計。
[align=center]
圖2 CAN智能節點硬件電路[/align]   CAN智能節點硬件電路如圖2所示。電路主要由五部分組成:微控制器87C196KD、獨立CAN控制器SJA1000、CAN總線收發器82C250、高速光電耦合器6N137、復位電路。   微控制器87C196KD是CAN智能節點的核心部分,87C196KD具有32K字節的ROM和1000字節的RAM,可用高級語言編程。87C196KD主要完成節點數據采集及計算、節點設定、節點控制、運行顯示等功能,并與CAN控制器SJA1000之間發送、接收數據。   SJA1000芯片是一種應用廣泛、性能優異的CAN總線控制器。SJA1000負責完成CAN總線通信協議的物理層和數據鏈路層的功能。它有Basicmode和Pelimode兩種工作模式,與 Basicmode模式相比,Pelimode工作模式支持擴展幀,報文標識符可達29位,提供了更加強大的功能。為減少每幀非數據字符的數量,提高信息交換速度,在實際應用中宜采用Basicmode模式。在Basicmode模式下,SJA1000對于微處理器來說相當于一個存儲器映像外圍設備,它的可尋址域由控制段和接收、發送緩沖器組成。SJA1000的AD0~AD7連接到87C196KD的P3口(數據總線),采用并口連接方式,數據讀寫速度快。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串接一個電阻后再接地,用于控制上升和下降斜率,減小射頻干擾。   為了進一步提高系統抗干擾能力,在CAN控制器SJA1000和CAN總線收發器82C250之間加接高速光電耦合器6N137,并采用DC-DC變換器隔離電源,這樣就很好的實現了總線上各個CAN節點之間的電器隔離。   復位電路由看門狗MAX706和手動復位按扭組成。當系統發生故障時,MAX706自動產生復位信號給87C196KD和SJA1000復位,若想重新啟動程序,可用手動復位按扭復位。 4. CAN智能節點軟件設計   CAN智能節點的軟件設計主要包括三部分:CAN初始化程序、報文發送程序、報文接收程序。下面給出了Basic CAN模式CAN智能節點軟件的程序框圖和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; /*數據長度*/   unsigned char data[8]; /*數據*/  ?。?MSG_STRUCT; /*將CAN協議的幀用C語言的結構表示*/   void init_can()   {  ?。╱nsigned char*)(BASE_CAN + 0) = 0x01; /*SJA1000進入復位狀態*/  ?。╱nsigned char*)(BASE_CAN + 4) = 0x00; /* 初始化接收代碼寄存器ACR */   *(unsigned char*)(BASE_CAN + 5) = 0xff; /* 初始化接收屏蔽寄存器AMR */  ?。╱nsigned char*)(BASE_CAN + 6) = 0x00; /* 初始化總線時序寄存器BTR0 */  ?。╱nsigned char*)(BASE_CAN + 7) = 0x14; /* 初始化總線時序寄存器BTR1 */  ?。╱nsigned char*)(BASE_CAN + 8) = 0xfa; /* 初始化輸出控制寄存器OCR */   }   b.報文發送部分
  unsigned char can_send(MSG_STRUCT smsg)  ?。?   unsigned char v;   int i;   v=*(unsigned char*)(BASE_CAN + 2);   if( v &0x08) /*判斷是否可以發送數據*/  ?。?v=smsg.id>>3; /*標識符送識別碼寄存器*/  ?。╱nsigned char*)(BASE_CAN + 10) = v;   v=*(unsigned char*)(BASE_CAN + 10);   v=smsg.id & 7; /*識別碼0-2位、RTR、DLC*/   v<<=5;   v+=smsg.dlen;  ?。╱nsigned char*)(BASE_CAN + 11) = v;   for(i=0;i  ?。?*(unsigned char*)(BASE_CAN + 12+i) = smsg.data[i]; }   *(unsigned char*)(BASE_CAN + 1) = 0x01;   return(1);  ?。?   else  ?。?return(0);}   }   c.報文接收部分   
  unsigned char can_receive()  ?。?   MSG_STRUCT rmsg;   int i;   unsigned char buf1,buf2;   while((*(unsigned char*)(BASE_CAN + 2)) & 0x01)/*判斷是否有可接收信息*/  ?。鸼uf1 = *(unsigned char*)(BASE_CAN + 20); /*將一幀信息取出*/   buf2 = *(unsigned char*)(BASE_CAN + 21);   rmsg.dlen = buf2 & 0x0f; /*數據長度*/   for(i=0; i< rmsg.dlen; i++) /*取出數據*/  ?。鹯msg.data[i]=*(unsigned char*)(BASE_CAN + 22 + i); }  ?。╱nsigned char*)(BASE_CAN + 1) = 0x04; /*釋放接收緩沖器*/   rmsg.rtr = (buf2 >> 4) & 0x01; /*遠程幀*/   rmsg.id = buf1; /*取出報文標識符*/   rmsg.id <<= 3;   rmsg.id |= (buf2 >> 5) & 0x06;   switch (rmsg.id) /*按標識符轉入不同的數據處理程序*/   case ……  ?。?   ……}   break;   case ……   }  ?。? 5. 結束語   本文的創新點在于:將現場總線引入到集散控制系統中,克服了傳統的串行通訊集散控制系統的實時性不強,通訊可靠性差的問題。所給出的CAN智能節點已應用于某發電廠的集散控制系統中,經過一年多的運行情況發現該設計方案具有較好的可靠性、實時性和靈活性。CAN智能節點不僅可以應用于集散控制系統,還可以用于其它分布式控制系統。 參考文獻:   1. 鄔寬明.CAN總線原理與應用系統設計.北京:北京航空航天大學出版社,1996.   2. 蘇榮艷,常久鵬,邵力清,鄧康耀.基于CAN總線的發動機測控系統接口通訊卡的設計.微計算機信息.2005,1:101-103   3. 來清民.基于CAN總線的多功能大型糧倉遠程監控系統.微計算機信息.2005,7:51-52.   4. ‘PHILIPS SJA1000 Stand-alone CAN controller DATA SHEET’,2000.   5. ‘PHILIPS 82C250 CAN controller interface DATA SHEET’,2000.   6. ‘INTEL 87C196KD DATA SHEET ’,1995

標簽:

點贊

分享到:

上一篇:速度控制開關磁阻直線電機及...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 娄烦县| 和田县| 黄梅县| 伊通| 三原县| 灵山县| 株洲市| 桓仁| 姜堰市| 容城县| 邛崃市| 金沙县| 开原市| 盘山县| 兖州市| 曲阳县| 疏勒县| 会宁县| 舟山市| 苏尼特右旗| 出国| 澄江县| 广州市| 靖西县| 泰顺县| 永顺县| 栾城县| 龙山县| 高碑店市| 灵武市| 屏东市| 榆树市| 疏附县| 彭阳县| 浑源县| 革吉县| 耒阳市| 镇沅| 丘北县| 集贤县| 靖远县|