**DeviceNet**是一種用在自動化技術的現場總線標準，由美國的Allen-Bradley公司在1994年開發。DeviceNet使用控制器區域網路（CAN）為其底層的通訊協定，其應用層有針對不同設備所定義的行規（profile）。主要的應用包括資訊交換、安全設備及大型控制系統。在美國的市場佔有率較高。

DeviceNet由開放DeviceNet廠商協会（英语：）（Open DeviceNet Vendors Association，ODVA）所維護，是該協會的通用工業協定（Common Industrial Protocol）中的一部份。

歷史
--

DeviceNet通訊協定是由美國的Allen-Bradley公司（後來被洛克威爾自動化公司合併）所開發，以Bosch公司開發的控制器區域網路（CAN）為其通訊協定的基礎。DeviceNet移植了來自ControlNet（另一個由Allen-Bradley公司開發的通訊協定）的技術，再配合控制器區域網路的使用，因此其成本較傳統以RS-485為基礎的通訊協定要低，但又可以有較好的強健性。

為了要推展DeviceNet在世界各地的使用，洛克威爾公司決定將此技術分享給其他廠商。後來DeviceNet通訊協定是由位在美國的獨立組織開放DeviceNet廠商協会（ODVA）管理。ODVA維護DeviceNet的規格、也提供一致化測試（英语：）），確保廠商的產品符合DeviceNet通訊協定的規格。

後來ODVA將DeviceNet通訊和其他相關的通訊協定整合成通用工业协定（CIP），其中包括以下的通訊協定

* EtherNet/IP（其N為大寫，此處的IP不是网际协议，為「Industrial Protocol」的簡稱）
* ControlNet
* DeviceNet
* CompoNet

技術簡介
----

1. 定義OSI模型七層架構中的物理层、数据链路层及应用层
2. 網路中除了信號外，也包括電源，支援網路自供電機能（一般用在小型的設備中，如光电监测器、限位開關或近接開關等）
3. 允許三種比特率：125 kbit/s、250 kbit/s及500 kbit/s，不同比特率下的主幹線（trunk）長度和比特率成反比
4. 網路中可以使用扁平电缆
5. 單一網路中最多可以有64個節點，節點地址（在DeviceNet中稱為MAC ID）由0到63
6. 有重複節點地址偵測的功能
7. 支援主站－從站（master-slave）及端對端（peer-to-peer）通訊架構，不過大部份的設備是在前者的網路架構下運作
8. 允許單一網路中多重主站的功能
10. 可以在高雜訊的環境下使用

架構
--

### 物理层

DeviceNet網路使用幹線（trunkline）-分支線（dropline）的網路拓撲，允許在網路中使用分接頭，一方面簡化配線及存取網路。而且要從網路中加入或移除設備都相當簡單，減少生產線停機及除錯的時間，提高網路的靈活性。

DeviceNet提供125 kbit/s、250 kbit/s及500 kbit/s三種不同的資料傳輸速度。依使用的通訊線種類不同，DeviceNet允許的通訊線長度也有所不同，若使用圓的粗電纜，通訊線長度最長可以到500公尺，一般的圓電纜長度可以到100公尺，扁平型的電纜在比特率125 kbit/s時可以到380公尺，500 kbit/s時則只能到75公尺。

### 数据链路层

DeviceNet使用控制器區域網路（CAN）為其数据链路层。CAN是一種差動的串列總線，其低成本及高干擾性為其優點。CAN的每一個訊息都有其對應的訊息標識符，訊息標識符可用來決定不同訊息的優先順序，網路上的設備也根據訊息標識符來判斷是否需處理此一訊息。DeviceNet使用訊息標識符為11位元的CAN 2.0A，CAN資料幀的格式如下

```
1 Bit = >幀啟始位元
11 Bits = >訊息標識符（ID）
1 Bit = >遠程需求（RTR）位元
6 Bits = >控制欄位
0-8 Bytes = >資料欄位
15 Bits = > CRC序列
1 Bit = > CRC分隔位元
1 Bit = >確認（ACK）位元
1 Bit = >確認分隔位元
7 Bits = >幀結束
>2 Bits = >幀間隔
```

在送出資訊幀時會先送出幀啟始位元進行同步，訊息標識符及遠程需求位元會用來決定訊息的優先權，CAN使用CSMA的技術，在網路空閒時，任何設備都可以試圖送出資料上傳，在送出資料時，設備也會同步確認網路上資料和送出資料是否一致，此作法可以避免多台設備同時試圖送出資料，也可以驗證送出資料的正確性。在二台或多台設備同時試圖送出資料時，會利用訊息標識符及遠程需求位元進行位元仲裁（Bitwise Arbitration），上述資料最小的訊息有優先權，可以繼續傳送，其他設備則會停止送出訊息，其到網路空閒時才會再次送出資料。

後面的六個位元為控制欄位，其中二個位元固定，後面四個位元標示實際資料的長度。資料欄位中則為實際的資料，長度可以由0到8個個位元組不等，需和控制欄位中標示的長度一致。在資料欄位後面的是15個位元循環冗餘校驗（CRC）欄位，可以在收到資料時確認資料是否正確。CAN提供了許多錯誤檢查及故障隔離（fault confinement）的機制，適合雜訊較大的環境下使用。

### 应用层

DeviceNet是一個以連接（connection）概念為基礎的通訊協定，若要與一設備通訊，就需要和設備建立連接，可以透過未連接訊息管理器（UCMM）和未連接埠來建立連接，之後就可以和此設備進行通訊。設備藉由連接可以傳送或接收顯式（Explicit）訊息及I/O訊息。

顯式訊息的資料包括有資料及協議內容，一般會用請求/應答的方式進行。典型的顯式訊息包括組態資料及對沒有及時性要求的資料。I/O訊息也稱為隱式（imlicit）訊息，一般都是有及時性要求的資料，資料中不包含通訊協議，因此傳送端及接收端都需事先知道訊息中資料的定義，其優點是通訊的效率較高。在DeviceNet中，二個設備要建立隱式訊息連接之前，需要先透及用顯式訊息進行設定，只要連結設定完成，即可透過CAN識別符將訊息傳送給對應的節點。

一致性測試
-----

DeviceNet設備的製造商可透過一致性測試，宣告其產品和DevicNet規範相容。ODVA在全球有三個獨立的測試實驗室，製造商可將其產品送交進行認證。

廠商在進行一致性測試前，需向ODVA進行註冊供應商，索取供應商ID，再購買DeviceNet規範及一致性測試的軟體及對應的硬體界面卡。廠商可以自行測試其DeviceNet產品，在自行測試完成後提交ODVA的測試實驗室再作驗證。若驗證未通過，廠商需再進行修改及測試，直到通過測試實驗室的獨立驗證為止。

參見
--

* 控制器區域網路（CAN）
* CANopen：另一種以CAN為基礎的工業通訊協定
* 通用工业协定
	+ EtherNet/IP
	+ ControlNet

外部連結
----

* DeviceNet通訊協定簡介（页面存档备份，存于）（英文）
* DeviceNet技术及其产品开发（页面存档备份，存于）

參考資料
----

1. ↑ .  [2011-03-22]. （原始内容存档于2008-07-02）.  Controller Area Network Solutions FAQ (Frequently Asked Questions).
2. 1 2   （页面存档备份，存于）, *DeviceNet Technology Overview*.
3. 1 2 .  [2011-03-30]. （原始内容存档于2011-01-22）.  CAN协议及其高层协议DeviceNet和CANopen的比较
4. 1 2 .  [2011-03-22]. （原始内容存档于2008-07-02）.  Controller Area Network Solutions FAQ (Frequently Asked Questions)], *What is DeviceNet?*
5. ↑  "DeviceNet Technical Overview" （页面存档备份，存于） from Open DeviceNet Vendor Association, Inc.（ODVA）
6. ↑  張戟、程旻、謝劍英.. 西安電子科技大學出版社. 2004. ISBN 7-5606-1388-8.
7. ↑  李正軍.. 機械工業出版社. 2005: p482. ISBN 7-111-15510-6.  引文格式1维护：冗余文本 (link)

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
自動化通訊協定 |
| --- |
|  |
| 程序自动化 | 
* AS-i
* BSAP（英语：）
* CC-Link
* CIP
* CAN
	+ CANopen
	+ DeviceNet
* ControlNet
* DF-1（英语：）
* DirectNET（英语：）
* EtherCAT
* Ethernet Global Data (EGD)（英语：）
* Ethernet Powerlink
* EtherNet/IP
* Factory Instrumentation Protocol（英语：）
* FINS（英语：）
* Foundation現場總線
	+ H1（英语：）
	+ HSE
* GE SRTP（英语：）
* HART
* Honeywell SDS（英语：）
* HostLink
* INTERBUS
* MECHATROLINK
* MelsecNet（英语：）
* Modbus
* IO-Link
* Optomux（英语：）
* PieP（英语：）
* Profibus
* PROFINET IO
* RAPIEnet（英语：）
* SERCOS interface（英语：）
* SERCOS III（英语：）
* Sinec H1（英语：）
* SynqNet（英语：）
* TTEthernet（英语：）

 |
|  |
| 工业控制系统 | 
* MTConnect（英语：）
* OPC DA（英语：）
* OPC HDA（英语：）
* OPC UA

 |
|  |
| 智能建筑 | 
* 1-Wire
* BACnet
* C-Bus（英语：）
* DALI（英语：）
* DSI（英语：）
* DyNet（英语：）
* Factory Instrumentation Protocol（英语：）
* KNX（英语：）
* LonTalk
* Modbus
* oBIX（英语：）
* VSCP（英语：）
* X10
* xAP（英语：）
* xPL（英语：）
* ZigBee

 |
|  |
| 电力系统（英语：） | 
* IEC 60870-5-103
	+ IEC 60870-5（英语：）
	+ IEC 60870-6（英语：）
* DNP3（英语：）
* Factory Instrumentation Protocol（英语：）
* IEC 61850（英语：）
* IEC 62351（英语：）
* Modbus
* Profibus

 |
|  |
| 自動抄錶 | 
* ANSI C12.18
* IEC 61107
* DLMS/IEC 62056
* M-Bus（英语：）
* Modbus
* ZigBee

 |
|  |
| 車用網路（英语：） | 
* AFDX
* ARINC 429（英语：）
* CAN
	+ ARINC 825（英语：）
	+ SAE J1939（英语：）
	+ NMEA 2000（英语：）
	+ FMS
* FlexRay（英语：）
* IEBus（英语：）
* J1587
* J1708
* KWP2000
* UDS
* LIN
* MOST
* VAN（英语：）

 |

 |