關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于CAN總線的集散控制系統智能節點的設計

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

        作者: 時間:2009-08-14 來源:網絡 收藏

        引言

        本文引用地址:http://www.104case.com/article/163649.htm

          現場是當今自動化領域技術發展的一個熱點,被譽為自動化領域的計算機局域網。它的出現,標志著工業控制技術領域又一個新時代的開始,并對該領域的發展產生了重要的影響。控制器局域網(ControllerAeraNetwork)屬于現場的范疇,的數據通信具有極高的可靠性、實時性和靈活性的特點,是一種有效支持和實時控制的多主串行總線。

        1.總線的


        圖1CAN總線的

          CAN總線的集散控制系統如圖1所示,采用現場總線式控制系統FCS(FieldbusControlSystem)結構,由上位機、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的SJA1000CAN控制器完成CAN總線智能節點的


        圖2CAN智能節點硬件電路

          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初始化程序、報文發送程序、報文接收程序。下面給出了BasicCAN模式CAN智能節點軟件的程序框圖和C語言源程序。

          a.CAN初始化部分
          

          #include80c196kd.h>

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

          #include_SFR_H_

          #include_FUNCS_H_

          #defineBASE_CAN0Xa000/*定義CAN控制器基址*/

          typedefstruct{

          unsignedintid;/*報文標識符*/

          unsignedcharrtr;/*遠程幀位*/

          unsignedchardlen;/*數據長度*/

          unsignedchardata[8];/*數據*/

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

          voidinit_can()

          {

          *(unsignedchar*)(BASE_CAN+0)=0x01;/*SJA1000進入復位狀態*/

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

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

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

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

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

          }

         


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉龙| 调兵山市| 德州市| 定远县| 上思县| 当雄县| 张掖市| 闻喜县| 古交市| 贵阳市| 博罗县| 磴口县| 米林县| 荥阳市| 双城市| 洛扎县| 建宁县| 玉门市| 田林县| 黑河市| 阳山县| 保定市| 咸丰县| 文安县| 南阳市| 合水县| 定州市| 西乌珠穆沁旗| 长春市| 江门市| 杨浦区| 正阳县| 阿瓦提县| 河北区| 鱼台县| 乐平市| 宝山区| 许昌市| 凉城县| 彭阳县| 蓬安县|