0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于總線協(xié)議標(biāo)準(zhǔn)實現(xiàn)DeviceNet適配器的應(yīng)用設(shè)計

電子設(shè)計 ? 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:張戟 ? 2021-05-25 10:04 ? 次閱讀

DeviceNet是一個開放的網(wǎng)絡(luò)標(biāo)準(zhǔn)。規(guī)范和協(xié)議都是開放的——供應(yīng)商將設(shè)備連接到系統(tǒng)時,無需為硬件、軟件或授權(quán)付費;任何人都能以名義上的復(fù)制成本(目前為250美元+郵費)從開放式DeciceNet供應(yīng)商協(xié)會(ODVA)獲得DeviceNet規(guī)范。

本設(shè)計針對的DeviceNet從設(shè)備特性如下:屬于DeviceNet group 2 only 從設(shè)備;采用Predefine的通信連接;可通過硬件開關(guān)設(shè)置125 kbps、250 kbps、500 kbps波特率;可通過硬件開關(guān)設(shè)置0“63 MAC ID。在軟件、硬件設(shè)計前應(yīng)首先進(jìn)行從設(shè)備(泵/閥)I/O需求分析(即profile文檔設(shè)計)。由于篇幅關(guān)系本文從略。

1 通信適配器硬件系統(tǒng)設(shè)計

1.1 功能簡介

DeviceNet是基于CAN總線的一種總線協(xié)議標(biāo)準(zhǔn)。因此,DeviceNet從設(shè)備適配器硬件首先應(yīng)實現(xiàn)CAN總線的基本功能,主要包括:報文收發(fā)、訪問控制及其它物理層的諸多功能。此外,為實現(xiàn)DeviceNet協(xié)議,硬件應(yīng)具有足夠大的程序存儲空間,并具有足夠快的運行速度,以保證協(xié)議程序的順利執(zhí)行。

1.2 硬件原理

DeviceNet節(jié)點硬件主要由以下幾部分組成:電源、單片機(jī)系統(tǒng)、看門狗及掉電保護(hù)電路、CAN控制器SJA1000、CAN收發(fā)器82C251、撥碼開關(guān)及狀態(tài)LED顯示、雙口RAM IDT7005、AnyBus接口??傮w設(shè)計框圖如圖1所示。詳細(xì)硬件電路圖見本刊網(wǎng)站補充版。

pIYBAGCsW6iAJa2NAAA8R3SLhqU097.png

以下是主要部分功能介紹。

(1)單片機(jī)

DeviceNet適配器選用Winbond公司的高性能8位單片機(jī)W78E58。W78E58功能、引腳與80C52完全兼容,并提供256 B的內(nèi)部RAM以及32 KB的Flash EEPROM,從而使系統(tǒng)不需擴(kuò)展外部程序存儲器便可滿足DeviceNet協(xié)議程序的容量要求。W78E58最高可在40 MHz的主頻下運行,處理速度完全滿足DeviceNet節(jié)點通信的實時性要求。為減少芯片的數(shù)量及降低硬件成本,本系統(tǒng)只擴(kuò)展1片8 KB的雙口RAM,其前面7 KB用于外部數(shù)據(jù)存儲,最后 1 KB用于提供與其它應(yīng)用電路的通信接口。

(2)CAN控制器SJA1000

DeviceNet總線報文的收發(fā)以及媒體訪問控制等都是依據(jù)CAN總線協(xié)議的,而這些協(xié)議都要通過CAN控制器加以實現(xiàn)。DeviceNet通信節(jié)點選用目前比較流行的Philips CAN控制器SJA1000。由于DeviceNet總線協(xié)議采用11位的標(biāo)識符,因此應(yīng)使SJA1000工作在Basic CAN模式。

(3)CAN收發(fā)器82C251

CAN收發(fā)器(transceiver)82C251的主要作用是收發(fā)CAN總線上的信號:一方面將總線信號轉(zhuǎn)換為CAN控制器所需的信號;另一方面,將CAN控制器的輸出信號轉(zhuǎn)化為CAN總線信號。

(4)雙口RAM IDT7005

DeviceNet適配器通過1個具有中斷功能的雙口RAM IDT7005提供與其它應(yīng)用電路的通信接口。IDT7005具有2套完全獨立的數(shù)據(jù)線、地址線、讀寫控制線,允許2個CPU對雙口RAM的同一個單元在不同的時間進(jìn)行讀寫;具有2套完全獨立的中斷邏輯,實現(xiàn)2個CPU間的握手控制信號。IDT7005的最高2個字節(jié)1FFEH和1FFFH分別兼做2個端口的中斷邏輯單元。

(5)AnyBus接口

作為一種通用的現(xiàn)場總線通信節(jié)點,AnyBus提供了與其它應(yīng)用電路之間進(jìn)行數(shù)據(jù)交換的接口標(biāo)準(zhǔn),并對接口的引腳進(jìn)行了嚴(yán)格的定義。

2 DeviceNet總線通信協(xié)議

DeviceNet協(xié)議規(guī)范是描述DeviceNet設(shè)備之間實現(xiàn)連接和交換數(shù)據(jù)的一套協(xié)議。在DeviceNet規(guī)范中定義了DeviceNet通信協(xié)議,詳細(xì)介紹了連接、信息協(xié)議和與通信相關(guān)的對象。

(1)DeviceNet是基于連接的網(wǎng)絡(luò)

DeviceNet中的連接提供在多種應(yīng)用之間交換信息的路徑。當(dāng)建立1個連接時,與連接相關(guān)信息的傳送就會分配1個標(biāo)識符,稱為連接標(biāo)識符CID(Connection Identifier)。如果某個連接需要雙向數(shù)據(jù)交換,則應(yīng)該分配2個不同的連接標(biāo)識符。

DeviceNet通信協(xié)議是基于連接概念的協(xié)議。一旦建立了連接,就可以在網(wǎng)絡(luò)設(shè)備之間傳送I/O數(shù)據(jù)。此時,DeviceNet I/O報文的所有協(xié)議都包含在11位的CAN標(biāo)識符中,其它部分都是數(shù)據(jù)。

11位的CAN標(biāo)識符用來定義連接ID。DeviceNet將11位的CAN標(biāo)識符分為4組,前3組的連接ID包括了6位的媒體訪問控制標(biāo)識符(MAC ID)以及信息標(biāo)識符(Message ID)。信息組的定義如圖2所示。組4信息用于離線通信。

pIYBAGCsW6GANo0KAAD-nGV8cc0439.png

通過設(shè)計,DeviceNet系統(tǒng)中的節(jié)點能夠?qū)ψ约旱臉?biāo)識符進(jìn)行管理。這些標(biāo)識符交錯分布在整個范圍內(nèi)。所有的節(jié)點都有一個完整的它們能獲得的報文優(yōu)先權(quán)范圍,而與它們的MAC ID無關(guān)。重復(fù)MAC ID算法保證了CAN標(biāo)識符的唯一性,而不需要網(wǎng)絡(luò)集中工具或記錄。

(2)DeviceNet的報文傳送

DeviceNet使用更為有效的生產(chǎn)者/消費者模式,取代了傳統(tǒng)的源/目的的傳輸方式。該模式要求對報文打包,使它具有數(shù)據(jù)標(biāo)識位域。標(biāo)識符還提供解決多級優(yōu)先權(quán)(仲裁中使用)的手段,以便更高效地傳送I/O數(shù)據(jù),并供多個消費者使用。

DeviceNet定義了2種不同類型的報文,稱作 I/O報文和顯式報文。I/O報文適用于實時性要求較高和面向控制的數(shù)據(jù)。I/O報文數(shù)據(jù)幀中的8位數(shù)據(jù)場不包含任何與協(xié)議有關(guān)的位,只有當(dāng)I/O報文為大報文經(jīng)過分割后形成的I/O報文片段時,數(shù)據(jù)位域中有一位由報文分割協(xié)議使用。連接標(biāo)識符提供了I/O報文的相關(guān)信息,在I/O報文利用連接標(biāo)識符發(fā)送之前,報文的發(fā)送和接收設(shè)備都必須先進(jìn)行設(shè)定。設(shè)定的內(nèi)容包括源和目的對象的屬性,以及數(shù)據(jù)生產(chǎn)者和消費者的地址。顯式報文適用于2個設(shè)備間多用途的點對點報文傳遞,是典型的請求-響應(yīng)通信方式,常用于節(jié)點的配置、問題診斷等。顯示報文通常使用優(yōu)先級低的連接標(biāo)識符,并且該報文的相關(guān)信息包含在顯示報文數(shù)據(jù)幀的數(shù)據(jù)位域中,包括要執(zhí)行的服務(wù)和相關(guān)對象的屬性及地址。

(3)預(yù)定義的主/從連接組

DeviceNet提供了一個功能很強的應(yīng)用層協(xié)議,允許動態(tài)配置設(shè)備間的連接。但考慮到有些設(shè)備根本不需要也沒有資源去使用這一強大功能,DeviceNet指定了一套稱為預(yù)定義主/從連接組的連接標(biāo)識符,用來簡化主/從結(jié)構(gòu)中I/O和配置型數(shù)據(jù)的傳送。

許多傳感器和執(zhí)行器要實現(xiàn)的功能在設(shè)計時就已經(jīng)預(yù)先決定了(如感受壓力、啟動馬達(dá)等等),因此這些設(shè)備將要生產(chǎn)和/或消費的數(shù)據(jù)的類型和數(shù)量在上電前就已經(jīng)知道了。這些設(shè)備通常提供輸入數(shù)據(jù)或請求輸出數(shù)據(jù)和配置數(shù)據(jù)。預(yù)定義主/從連接組可以滿足設(shè)備的這些要求,它提供的連接對象的全部配置在設(shè)備上電時就完成了。在啟動數(shù)據(jù)流時,主機(jī)設(shè)備唯一必須執(zhí)行的一個步驟就是要廣播對從機(jī)內(nèi)該預(yù)定義連接組的所有權(quán)。

(4)DeviceNet對象模型與設(shè)備描述

① 對象模型。為管理和實現(xiàn)DeviceNet產(chǎn)品組件的屬性(數(shù)據(jù))、服務(wù)(方法或步驟)和行為提供了一個模板。模型為每個屬性提供了由4個數(shù)字組成的尋址方案,分別是節(jié)點地址(MAC ID)、對象類標(biāo)識符、實例編號和屬性編號。這4級地址與顯式報文連接相結(jié)合,將數(shù)據(jù)從DeviceNet網(wǎng)絡(luò)上的一點傳送到另一點。表1列出4個地址組件的范圍:

o4YBAGCsW5mAXV-3AAARSzWb9DE266.png

圖3是一個通用DeviceNet設(shè)備的對象模型;表2是DeviceNet產(chǎn)品中典型的對象類。

pIYBAGCsW5OAV7SGAABsRBfsD7M042.png

② 設(shè)備描述(Device Profiles)。DeviceNet規(guī)范不僅僅是一個物理連接協(xié)議規(guī)范。它通過定義標(biāo)準(zhǔn)的設(shè)備模型促進(jìn)不同廠商設(shè)備之間的互操作性。屬于同一設(shè)備模型的所有設(shè)備都必須支持共同的標(biāo)識和通信狀態(tài)數(shù)據(jù)。設(shè)備描述是針對各種設(shè)備而定義的。設(shè)備描述中包括設(shè)備各種特定的數(shù)據(jù)。符合設(shè)備類型描述的多個供貨商提供的簡單設(shè)備(例如:按鈕、馬達(dá)啟動器、光電池、氣動閥執(zhí)行器)在邏輯上是可互換的。

DeviceNet規(guī)范定義了一個電子數(shù)據(jù)文件(EDS)。EDS是一個簡單的文件格式,供貨商可以將產(chǎn)品的特殊信息提供給其它供貨商。這樣可以具有友好的用戶配置工具,可以很容易地更新,無需經(jīng)常修正配置軟件工具。

3 通信適配器軟件系統(tǒng)設(shè)計

下面主要介紹通信協(xié)議的設(shè)計。軟件的實現(xiàn)是以DeviceNet協(xié)議規(guī)范的2.0版本為指導(dǎo)的,不同的應(yīng)用有不同的具體實現(xiàn)。本文只給出設(shè)計的原理和指導(dǎo)思想及原則。

3.1 DeviceNet通信設(shè)備的上電狀態(tài)流圖

每個設(shè)備上電以前都有一個例行的狀態(tài)流轉(zhuǎn)過程。該過程描述了設(shè)備能夠在DeviceNet上通信之前必須完成的以下工作(例如重復(fù)MAC ID檢測等),以及對設(shè)備通信產(chǎn)生影響的網(wǎng)絡(luò)事件。

圖4是DeviceNet設(shè)備上電后的狀態(tài)流圖,其中一共有4個狀態(tài):發(fā)送重復(fù)MAC ID檢測報文狀態(tài)、等待重復(fù)MAC ID檢測報文狀態(tài)、在線狀態(tài)、通信出錯狀態(tài)。

pIYBAGCsW4yAZ6TzAAFy2FBU2KM062.png

3.2 CAN芯片的初始化

在建立CAN總線的通信之前要預(yù)先有一些初始化過程。一般,獨立式CAN芯片SJA1000在上電后或者上電后進(jìn)行軟件功能重置時要初始化一下工作寄存器。當(dāng)系統(tǒng)上電后,處理器首先運行自己的特殊初始化過程,然后再進(jìn)入SJA1000的連接建立過程(SJA1000的17引腳獲得1個Reset低電平脈沖,并進(jìn)入Reset模式)。在初始化SJA1000的寄存器之前,主微處理器應(yīng)該檢測Reset的mode/request標(biāo)志。如果SJA1000已經(jīng)是Reset模式,因為所有的寄存器只能在Reset模式下進(jìn)行寫操作,所有的寄存器都將獲得相應(yīng)的配置信息。

在完成所有的初始化工作后,SJA1000就進(jìn)入工作模式,并且使CAN控制器的中斷功能有效。用C51編寫的SJA1000初始化及一個模擬發(fā)送、接收過程的程序請見本刊網(wǎng)站補充版。

3.3 報文收發(fā)程序和分段服務(wù)

這里所講的報文收發(fā)協(xié)議對不同的通信協(xié)議有不同的定義。另外,CAN的數(shù)據(jù)長度不能超過8個字節(jié),如何支持大于8個字節(jié)的報文要涉及到分段服務(wù)。分段協(xié)議信息由1個字節(jié)組成,其中高2位表示分段的類型,低6位作為分段的計數(shù)器,用來標(biāo)識每個數(shù)據(jù)包。其計算方式是:

fragmentCount=(fragmentcount+1) mod 64。 表3是具體的分段類型。

表2 DeviceNet產(chǎn)品中典型的對象類

o4YBAGCsW4SAIA6AAABPTFQlAe8240.png

因此在程序的設(shè)計中,應(yīng)當(dāng)加入對分段服務(wù)協(xié)議的支持。

發(fā)送報文的處理與接收的過程是一個逆向過程。需要注意的是編寫程序的時候要嚴(yán)格按照DeviceNet協(xié)議規(guī)范的定義,否則將產(chǎn)生不可預(yù)測的錯誤,為將來的協(xié)議一致性測試和底層調(diào)試都帶來許多麻煩。

3.4 DeviceNet通信適配器主程序的設(shè)計

軟件由頭文件、初始化程序、功能子程序和主程序組成。

軟件的組成結(jié)構(gòu)提供了硬件和軟件升級的方便。軟件中將對與主處理器、CAN控制器等硬件接口的部分進(jìn)行比較獨立的設(shè)計,而主程序和功能子程序主要集中在協(xié)議的完成。這對將來的硬件改型和可能的協(xié)議修改都提供了較大的方便。

軟件用Franklin C51語言編寫,通過偉福E51L單片機(jī)開發(fā)裝置進(jìn)行調(diào)試。

軟件結(jié)構(gòu)如圖5所示。

o4YBAGCsW3uAPSUCAABCjezWRVM129.png

在實現(xiàn)所有的功能模塊以后,最重要的是如何構(gòu)造一個有機(jī)的主程序模塊,將這些零散的模塊組織起來,進(jìn)行系統(tǒng)的初始化工作。另外,還要設(shè)計一個優(yōu)化的循環(huán)體并周期性地執(zhí)行以對DeviceNet網(wǎng)絡(luò)上的報文產(chǎn)生動作。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17400

    瀏覽量

    248762
  • 適配器
    +關(guān)注

    關(guān)注

    8

    文章

    1899

    瀏覽量

    67768
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
收藏 人收藏

    評論

    相關(guān)推薦

    基于DeviceNet總線的智能配電應(yīng)用

    報警記錄。 連接PC串口和DeviceNet總線的是泗博公司自主研發(fā)的產(chǎn)品SC100適配器。電量相關(guān)數(shù)據(jù)采集由EM200完成。由于該產(chǎn)品的端口為RS485或者RS232,所以MD21被使用來
    發(fā)表于 03-21 16:32

    Ginkgo USB-CAN接口適配器

    USB-CAN接口適配器同時進(jìn)行工作(最多可支持100個);- 支持ZLG CANalyst-II分析儀CANpro協(xié)議分析平臺最新版本(V1.46)實現(xiàn)對高層協(xié)議數(shù)據(jù)的解析和分析;-
    發(fā)表于 10-09 15:09

    快速使用Ginkgo CAN適配器教程

    1.1 概述Ginkgo USB-CAN總線適配器是帶有USB2.0接口和2路CAN接口的CAN總線適配器,可進(jìn)行雙向數(shù)據(jù)傳送。Ginkgo USB-CAN
    發(fā)表于 10-11 15:21

    緯圖Ginkgo USB-CAN接口適配器

    。 ZLG_CANtest:CAN數(shù)據(jù)的發(fā)送接收顯示軟件。源碼完全公開的應(yīng)用實例基于Ginkgo USB-CAN接口適配器實現(xiàn)的CAN總線bootloader上位機(jī)軟件,利用該軟件可實現(xiàn)
    發(fā)表于 11-03 09:49

    快速使用Ginkgo CAN適配器教程

    1.1 概述Ginkgo USB-CAN總線適配器是帶有USB2.0接口和2路CAN接口的CAN總線適配器,可進(jìn)行雙向數(shù)據(jù)傳送。Ginkgo USB-CAN
    發(fā)表于 12-17 09:30

    Ginkgo USB-CAN總線適配器的使用

    1.1 概述Ginkgo USB-CAN總線適配器是帶有USB2.0接口和2路CAN接口的CAN總線適配器,可進(jìn)行雙向數(shù)據(jù)傳送。Ginkgo USB-CAN
    發(fā)表于 02-21 11:37

    PD電源適配器是什么

    意思為電源傳輸管理.PD充電協(xié)議是USB-IF組織公布的功率傳輸協(xié)議,USB-Power Delivery可以將type-c接口提高到100W.   USB TpyeC是USB的接口標(biāo)準(zhǔn) “USB TypeC”Type C PD
    發(fā)表于 04-28 15:09

    適配器模式實現(xiàn)

    目錄第一章 適配器模式介紹第二章 適配器模式實現(xiàn)(類適配器)2.1、關(guān)系依賴圖2.2、創(chuàng)建交流電2.3、定義直流電2.4、創(chuàng)建充電器2.5、創(chuàng)建手機(jī)類2.6、測試充電器2.7、點評該模
    發(fā)表于 09-15 07:11

    RS-232轉(zhuǎn)CAN總線協(xié)議適配器的設(shè)計

    本文介紹一種設(shè)計RS-232 轉(zhuǎn)CAN 總線協(xié)議適配器的方法,采用STC89C51 作為微處理器,MCP2510 作為CAN 總線控制器。詳細(xì)介紹了本設(shè)計的工作原理,硬件電路以及軟件設(shè)
    發(fā)表于 01-13 14:09 ?87次下載

    透射適配器

    透射適配器 透射適配器(TMA)也叫透掃描適配器、光罩或是透掃描精靈,主要用于平板式
    發(fā)表于 12-29 11:26 ?605次閱讀

    藍(lán)牙適配器總線類型

    藍(lán)牙適配器總線類型              總線類型可分為ISA總線、PCI
    發(fā)表于 01-06 13:47 ?1335次閱讀

    一種高速CAN—LonWork總線互聯(lián)適配器的設(shè)計與實現(xiàn)

    摘要:針對目前國內(nèi)測控領(lǐng)域流行的CAN總線與LonWorks總線通信標(biāo)準(zhǔn)互不兼容的問題,提出了一種高速CANLonWorks總線互聯(lián)適配器
    發(fā)表于 02-27 15:14 ?27次下載

    基于控制網(wǎng)絡(luò)的多協(xié)議通信適配器的設(shè)計_田海

    基于控制網(wǎng)絡(luò)的多協(xié)議通信適配器的設(shè)計_田海
    發(fā)表于 01-16 14:04 ?0次下載

    電源適配器認(rèn)證有哪些標(biāo)準(zhǔn)

    、CQC認(rèn)證、CE認(rèn)證、CB認(rèn)證、PSE認(rèn)證、FCC認(rèn)證、RoHS認(rèn)證、SASO認(rèn)證、SAA認(rèn)證等等…… 電源適配器檢測標(biāo)準(zhǔn): 國內(nèi)標(biāo)準(zhǔn):GB4943.1-2011、GB4706.1-2005
    的頭像 發(fā)表于 08-16 11:11 ?2506次閱讀

    電源適配器出口各國需要辦理什么認(rèn)證?電源適配器檢測標(biāo)準(zhǔn)是什么?

    、FCC認(rèn)證、RoHS認(rèn)證、SASO認(rèn)證、SAA認(rèn)證等等 電源適配器檢測標(biāo)準(zhǔn): 國內(nèi)標(biāo)準(zhǔn):GB4943.1-2011、GB4706.1-2005、GB4706.1-2005、GB8898-2011
    的頭像 發(fā)表于 09-08 14:33 ?2638次閱讀