• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于dsPIC30F4011單片機(jī)實(shí)現(xiàn)的CANopen協(xié)議

      2012-03-27 07:31:32賈文超王競(jìng)恒劉柏松
      關(guān)鍵詞:標(biāo)識(shí)符字典報(bào)文

      賈文超, 王競(jìng)恒, 劉柏松, 張 嘉

      (1.長(zhǎng)春工業(yè)大學(xué)電氣與電子工程學(xué)院,吉林長(zhǎng)春 130012;2.長(zhǎng)春天然氣有限責(zé)任公司,吉林長(zhǎng)春 130033)

      0 引 言

      CANopen是CAN總線通信模型中的應(yīng)用層協(xié)議。其可靠性、實(shí)時(shí)性、抗干擾性、容錯(cuò)性等多方面優(yōu)勢(shì)明顯,CAN總線和CANopen協(xié)議已經(jīng)成為汽車(chē)工業(yè)、工廠自動(dòng)化、分布式控制系統(tǒng)等眾多領(lǐng)域的應(yīng)用標(biāo)準(zhǔn)[1]。CANopen協(xié)議定義了完備的設(shè)備模型,包括標(biāo)準(zhǔn)的通信協(xié)議、對(duì)象字典和設(shè)備應(yīng)用子協(xié)議。其中,通信協(xié)議遵循CiA DS301協(xié)議,針對(duì)不同的設(shè)備CANopen制定了不同設(shè)備的應(yīng)用子協(xié)議。這些子協(xié)議已經(jīng)得到廣泛的認(rèn)可并成為行業(yè)規(guī)范。CANopen完備的體系結(jié)構(gòu)保證了不同廠商產(chǎn)品之間互聯(lián)的兼容性。

      CANopen包括3個(gè)主要組成部分:通信模型(Communication)、對(duì)象字典(Object Dictionary)和設(shè)備子協(xié)議。文中對(duì)CANopen協(xié)議的各部分進(jìn)行了詳細(xì)的分析,重點(diǎn)講述利用dsPIC30F4011單片機(jī)建立符合CANopen協(xié)議的從站節(jié)點(diǎn),通過(guò)試驗(yàn)對(duì)數(shù)據(jù)進(jìn)行分析和驗(yàn)證[2]。

      1 CANopen協(xié)議簡(jiǎn)介

      在CANopen協(xié)議推出之前,歐洲公司推出了一個(gè)名為CAL的CAN總線高層協(xié)議。CAL定義了4種CAN總線應(yīng)用層功能:CMS(基于CAN的報(bào)文應(yīng)用),NMT(網(wǎng)絡(luò)控制),DBT(動(dòng)態(tài)分配),LMT(層參數(shù)管理)。由于CAL對(duì)CMS對(duì)象的內(nèi)容沒(méi)有進(jìn)行規(guī)定,而CANAopen對(duì)其進(jìn)行了定義。CANopen基于CAL的架構(gòu)應(yīng)用了CAL通訊和服務(wù)協(xié)議的子集。

      CANopen網(wǎng)絡(luò)遵循主從結(jié)構(gòu)(masterslave),系統(tǒng)有且只有一個(gè)NMT主站,NMT主站對(duì)所有的從站進(jìn)行狀態(tài)控制。一條CAN總線上最多可有128個(gè)節(jié)點(diǎn),其中0號(hào)地址節(jié)點(diǎn)為NMT主站,其余為NMT的從站,不同設(shè)備可通過(guò)CAN總線進(jìn)行組網(wǎng)。CANopen設(shè)備模型如圖1所示[3]。

      圖1 定位系統(tǒng)結(jié)構(gòu)圖

      CANopen通信協(xié)議遵循DS301標(biāo)準(zhǔn),每一個(gè)節(jié)點(diǎn)都有一個(gè)狀態(tài)機(jī),NMT主站可通過(guò)發(fā)送相應(yīng)對(duì)象的報(bào)文使從站工作在不同的狀態(tài),節(jié)點(diǎn)也可在特殊情況下進(jìn)行狀態(tài)的轉(zhuǎn)換。在應(yīng)用層面上不同的節(jié)點(diǎn)之間以發(fā)送通信對(duì)象的方式實(shí)現(xiàn)通信,主要的通信對(duì)象有NMT,PDO,SDO和特殊功能對(duì)象。其中PDO用于實(shí)時(shí)的數(shù)據(jù)傳遞,SDO用于訪問(wèn)對(duì)象字典,NMT用于發(fā)送主站管理命令。

      對(duì)象字典(OD:Object Dictionary)是CANopen的核心,不同的設(shè)備其對(duì)象字典的定義是不同的。實(shí)際上,OD是一個(gè)有序的對(duì)象組:對(duì)象用一個(gè)16位的索引進(jìn)行尋址,同時(shí),每個(gè)索引使用一個(gè)8位的子索引來(lái)尋址數(shù)據(jù)結(jié)構(gòu)中的單個(gè)元素。在軟件編程過(guò)程中,可以定義一個(gè)結(jié)構(gòu)體數(shù)組以實(shí)現(xiàn)對(duì)象字典。

      2 CANopen節(jié)點(diǎn)的硬件設(shè)計(jì)

      CANopen協(xié)議從站硬件的核心是一片MICROCHIP公司生產(chǎn)的dsPIC30F4011芯片,該芯片具有24位寬的指令,16位寬的數(shù)據(jù)總線,48K的程序存儲(chǔ)空間,2K的RAM,1K的EEPROM,帶有17位*17位的硬件乘法器,性能優(yōu)越,可滿(mǎn)足高頻率、高精度的要求。此外,dsPIC30F4011外設(shè)的功能豐富,帶有QEI模塊、PWM模塊、A/D模塊,以及UART,SPI,I2C,CAN等通信接口。

      硬件設(shè)計(jì)分為3個(gè)部分:CAN通信模塊、CPU控制、外圍I/O??刂破髂K和CAN總線收發(fā)器之間使用高速光耦進(jìn)行光電隔離,避免了模塊之間的相互干擾,具有良好的電磁兼容性。CANopen節(jié)點(diǎn)硬件框圖如圖2所示。

      dsPIC30F4011片內(nèi)外設(shè)含2個(gè)CAN控制器模塊,實(shí)現(xiàn)了CAN2.0A/B協(xié)議。設(shè)置C1NTE中斷使能寄存器的值,可使能或屏蔽相應(yīng)中斷,并通過(guò)讀取C1INTF中斷標(biāo)志寄存器的值來(lái)判斷當(dāng)前中斷的中斷源。

      PCA82C25對(duì)CAN總線提供差動(dòng)發(fā)送、差動(dòng)接收功能,是CAN協(xié)議控制器和物理總線的接口。PCA82C250完全符合“ISO11898”標(biāo)準(zhǔn),最高速達(dá)1Mbps,具有抗瞬間干擾和熱保護(hù)的能力,可連接110個(gè)節(jié)點(diǎn)。有3種工作模式可供選擇:高速、待機(jī)、斜率控制。

      使用3個(gè)旋轉(zhuǎn)撥碼開(kāi)關(guān)對(duì)CAN總線的波特率和CANopen從站的節(jié)點(diǎn)地址進(jìn)行設(shè)置;使用2個(gè)LED燈指示CANopen從站的運(yùn)行狀態(tài)和錯(cuò)誤警報(bào)。預(yù)留QEI模塊、PWM模塊、AD模塊等I/O。

      圖2 CANopen節(jié)點(diǎn)硬件框圖

      3 CANopen節(jié)點(diǎn)的軟件設(shè)計(jì)

      軟件設(shè)計(jì)分為CANopen通訊對(duì)象的定義、對(duì)象字典的創(chuàng)建以及設(shè)備子協(xié)議3個(gè)部分軟件實(shí)現(xiàn)。節(jié)點(diǎn)標(biāo)識(shí)符分配采用CANopen的預(yù)定義連接集。每個(gè)對(duì)象的標(biāo)識(shí)符有兩部分組成:功能碼和節(jié)點(diǎn)ID。

      3.1 節(jié)點(diǎn)的通信對(duì)象說(shuō)明

      CANopen節(jié)點(diǎn)通信對(duì)象見(jiàn)表1。

      表1 CANopen節(jié)點(diǎn)通信對(duì)象

      設(shè)置節(jié)點(diǎn)地址,發(fā)送的對(duì)象標(biāo)識(shí)符為:功能碼+節(jié)點(diǎn)ID。節(jié)點(diǎn)地址的范圍為1~127,下面以節(jié)點(diǎn)地址06進(jìn)行說(shuō)明。NMT對(duì)象為主站發(fā)送的網(wǎng)絡(luò)管理命令000H;SYNC對(duì)象標(biāo)識(shí)符為080H,當(dāng)從站收到一個(gè)SYNC報(bào)文時(shí),發(fā)送一個(gè)同步報(bào)文;TPOD1對(duì)象的標(biāo)識(shí)符為(180+6)H,發(fā)送報(bào)文的內(nèi)容為實(shí)時(shí)數(shù)據(jù);RPDO1對(duì)象標(biāo)識(shí)符為(200+6)H,用于接受實(shí)時(shí)數(shù)據(jù)。SDO對(duì)象采用服務(wù)器/客戶(hù)的通信模式,分為加速傳輸和分段傳輸兩種傳輸機(jī)制。一個(gè)客戶(hù)的請(qǐng)求一定有來(lái)自服務(wù)器的應(yīng)答,例如,如果想訪問(wèn)地址為06這個(gè)節(jié)點(diǎn)的對(duì)象字典,那么訪問(wèn)的節(jié)點(diǎn)就是一個(gè)客戶(hù),標(biāo)識(shí)符為600+節(jié)點(diǎn)地址,06節(jié)點(diǎn)做為一個(gè)服務(wù)器,標(biāo)識(shí)符為(580+6)H;EMCY對(duì)象為緊急對(duì)象,在節(jié)點(diǎn)發(fā)生錯(cuò)誤時(shí)發(fā)送緊急報(bào)文,緊急報(bào)文包含了錯(cuò)誤代碼和錯(cuò)誤信息,標(biāo)識(shí)符為(080+6)H;除此之外,還有一個(gè)NMT錯(cuò)誤控制對(duì)象,它通過(guò)發(fā)送心跳報(bào)文來(lái)報(bào)告節(jié)點(diǎn)所處的狀態(tài),標(biāo)識(shí)符為(700+6)H。

      3.2 對(duì)象字典的實(shí)現(xiàn)

      對(duì)象字典的有關(guān)范圍在0x1000~0x9FFF之間,索引值低于0x0FFF的范圍僅僅是一些數(shù)據(jù)類(lèi)型的定義。對(duì)象字典描述了節(jié)點(diǎn)設(shè)備和它的網(wǎng)絡(luò)行為的所有參數(shù)。一個(gè)節(jié)點(diǎn)的對(duì)象字典是在電子數(shù)據(jù)文檔(EDS)中或記錄在紙上。一個(gè)標(biāo)準(zhǔn)的對(duì)象字典實(shí)體的格式如下[3]:

      索引 子索引 對(duì)象 名稱(chēng) 類(lèi)型 屬性 訪問(wèn)類(lèi)型

      不同設(shè)備對(duì)象字典的定義是不同的,DS301對(duì)通訊部分的對(duì)象字典做了詳細(xì)的說(shuō)明,有些實(shí)體的定義是強(qiáng)制性的。對(duì)象字典大體分為3個(gè)部分:

      1)通訊子協(xié)議區(qū)(0x1000~0x1FFF),描述了設(shè)備的類(lèi)型、錯(cuò)誤寄存器、支持PDO參數(shù)等。對(duì)于不同的設(shè)備子協(xié)議來(lái)說(shuō),其定義的PDO數(shù)量可能是不同的。

      2)制造商特定子協(xié)議區(qū)(0x2000~0x5FFF),設(shè)備的制造商可以自行定義所需的實(shí)體。

      3)標(biāo)準(zhǔn)的設(shè)備子協(xié)議區(qū)(0x6000~0x9FFF),實(shí)體的定義必須符合標(biāo)準(zhǔn)的設(shè)備子協(xié)議,如符合DS401,DS406等。

      程序中對(duì)象字典可通過(guò)一個(gè)結(jié)構(gòu)體數(shù)組實(shí)現(xiàn),儲(chǔ)存在單片機(jī)的非易失性存儲(chǔ)器中。具體形式為:

      其中,pData的值為EEPROM的地址,對(duì)象字典的實(shí)體數(shù)據(jù)值存放在EEPROM中。

      以設(shè)備子協(xié)議DS401為例說(shuō)明對(duì)象字典的建立:首先對(duì)對(duì)象字典中的內(nèi)容在頭文件中進(jìn)行預(yù)定義,例如屬性、實(shí)體內(nèi)容。

      索引為0x1A00H中映射PDO參數(shù)預(yù)定義:

      這樣在對(duì)象字典實(shí)體的定義中,可用相應(yīng)的預(yù)定義的名稱(chēng)代替屬性代碼和數(shù)據(jù)值。

      定義實(shí)體的具體格式為:

      PDO1通信參數(shù)設(shè)置見(jiàn)表2[4]。

      表2 PDO1通信參數(shù)設(shè)置

      其在程序中的實(shí)體定義為:

      PDO1映射參數(shù)設(shè)置見(jiàn)表3。

      表3 PDO1映射參數(shù)設(shè)置

      3.3 程序流程

      程序分為3個(gè)部分:初始化、主程序、中斷。具體流程如圖3所示。

      圖3 CANopen節(jié)點(diǎn)流程

      程序的初始化包括單片機(jī)硬件模塊的初始化、用戶(hù)程序的初始化設(shè)置、復(fù)位通信節(jié)點(diǎn)、中斷的初始化設(shè)置。主程序包括外圍接口的檢測(cè),節(jié)點(diǎn)地址和波特率的輸入,判斷節(jié)點(diǎn)工作狀態(tài),數(shù)據(jù)的采集和發(fā)送流程[5]。

      初始化完成后程序發(fā)送一個(gè)BOOT-UP報(bào)文,并進(jìn)入預(yù)操作狀態(tài),當(dāng)收到NMT主站命令后進(jìn)入操作狀態(tài)。報(bào)文的接收和發(fā)送是通過(guò)中斷進(jìn)行的,當(dāng)CAN模塊接收到報(bào)文后即產(chǎn)生接收中斷,程序根據(jù)報(bào)文的標(biāo)識(shí)符來(lái)判斷接收到報(bào)文的對(duì)象種類(lèi),進(jìn)行報(bào)文長(zhǎng)度和數(shù)據(jù)的錯(cuò)誤檢測(cè),然后,復(fù)制到相應(yīng)的接收數(shù)字中并置位接收?qǐng)?bào)文的標(biāo)志位[6]。當(dāng)有新報(bào)文發(fā)送而CAN模塊正被占用時(shí),新報(bào)文會(huì)被存入發(fā)送緩沖數(shù)組并置位新標(biāo)志位和新報(bào)文計(jì)數(shù)器,當(dāng)前報(bào)文發(fā)送完后即進(jìn)入發(fā)送中斷,程序檢查新報(bào)文標(biāo)志位并將計(jì)數(shù)器減1,隨后進(jìn)行報(bào)文發(fā)送直到計(jì)數(shù)器為0。

      PDO報(bào)文和心跳報(bào)文是以事件觸發(fā)模式發(fā)送的,事件為1s定時(shí)發(fā)送,定時(shí)器設(shè)置為1ms中斷,每次中斷后計(jì)數(shù)器加1,當(dāng)計(jì)數(shù)器計(jì)滿(mǎn)1 000個(gè)數(shù)后進(jìn)行PDO報(bào)文和心跳報(bào)文的發(fā)送[7-8]。

      3.4 試驗(yàn)驗(yàn)證

      搭建CAN總線網(wǎng)絡(luò),上位機(jī)由一臺(tái)PCICAN卡實(shí)現(xiàn),通過(guò)軟件實(shí)現(xiàn)數(shù)據(jù)的收發(fā)試驗(yàn),搭建實(shí)驗(yàn)板,對(duì)PIC單片機(jī)進(jìn)行在線調(diào)試,對(duì)單片機(jī)端口的I/O量進(jìn)行傳送,結(jié)果見(jiàn)表4[4]。

      表4 節(jié)點(diǎn)傳輸數(shù)據(jù)

      節(jié)點(diǎn)在上電后進(jìn)入預(yù)操作狀態(tài),心跳報(bào)文發(fā)送的狀態(tài)代碼為0x7F。從站接收NMT,主站發(fā)送網(wǎng)絡(luò)控制命令,進(jìn)入操作狀態(tài),進(jìn)行PDO報(bào)文的發(fā)送,心跳報(bào)文顯示了節(jié)點(diǎn)工作在操作狀態(tài)。

      4 結(jié) 語(yǔ)

      文中針對(duì)分布式網(wǎng)絡(luò)系統(tǒng),應(yīng)用高性能的16位PIC單片機(jī)實(shí)現(xiàn)了一種CANopen協(xié)議的從站節(jié)點(diǎn),具有較高的可靠性和通用性。試驗(yàn)結(jié)果表明,系統(tǒng)傳輸?shù)臄?shù)據(jù)精確、有效,有較強(qiáng)的抗干擾性,并且降低了系統(tǒng)成本,易于實(shí)現(xiàn)調(diào)試和擴(kuò)展。此外,CANopen從站有利于國(guó)內(nèi)自主開(kāi)發(fā)智能型從站設(shè)備。

      [1] 饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003:379-403.

      [2] 梁濤,張江濤,孫鶴旭,等.CANOPEN總線智能多路溫度采集從站的研制[J].儀表技術(shù)與傳感器,2009(10):61-63.

      [3] Ci A.CANopen:Application layer and communication profile[Z].DraftDtandard 301,2002.

      [4] Ci A.CANopen:Device Profile for Generic I/O Modules[Z].CiA Draft Standard 401,2002.

      [5] 孫樹(shù)文,楊建武,張慧慧,等.基于CANopen協(xié)議的分布式控制系統(tǒng)I/O從站設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(12):1706-1707.

      [6] 劉永木,李慧,付志勇.CAN總線系統(tǒng)節(jié)點(diǎn)模塊的一種設(shè)計(jì)[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2002,23(3):16-18.

      [7] 李秋菊,田秋艷.基于CAN總線的車(chē)身控制系統(tǒng)設(shè)計(jì)[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(2):226-229.

      [8] 戴宏亮.基于CAN總線的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2003,24(4):53-55.

      猜你喜歡
      標(biāo)識(shí)符字典報(bào)文
      開(kāi)心字典
      家教世界(2023年28期)2023-11-14 10:13:50
      開(kāi)心字典
      家教世界(2023年25期)2023-10-09 02:11:56
      淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識(shí)符更新技術(shù)
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      基于底層虛擬機(jī)的標(biāo)識(shí)符混淆方法
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      基于區(qū)塊鏈的持久標(biāo)識(shí)符系統(tǒng)①
      淺析反駁類(lèi)報(bào)文要點(diǎn)
      數(shù)字美術(shù)館“數(shù)字對(duì)象唯一標(biāo)識(shí)符系統(tǒng)”建設(shè)需求淺議
      我是小字典
      津市市| 临城县| 宾阳县| 临猗县| 临安市| 荥经县| 定西市| 无极县| 上饶市| 南宁市| 盐源县| 嘉黎县| 定日县| 正安县| 北碚区| 阳春市| 湘阴县| 盖州市| 凉山| 宜良县| 左贡县| 百色市| 晋江市| 原平市| 邓州市| 灵璧县| 连南| 四会市| 莆田市| 东光县| 米易县| 沈阳市| 当雄县| 阿合奇县| 揭西县| 新营市| 平阴县| 瓮安县| 巴彦淖尔市| 南郑县| 襄垣县|