• 沒有找到結果。

第四章 網路控制介面與機器人操作

4.1 網路控制

目前工業用機器人種類繁多,但根據其多軸控制系統的技術特點 一般可分為三種類型:1. 基於 PLC 的多軸控制系統;2. 基於 PC 的 多軸控制系統;3. 基於網路控制的多軸控制系統[18, 19]。其中,網 路控制系統具有數位信號傳輸、系統完全開放等優點,得到廣泛的應 用。CAN 網路[10,11]已實際應用工業機器人中,現場匯流排能夠傳送 多個過程變數,而傳統的 4~20mA 控制回路一般只能攜帶一個過程變 數。採用網路控制後,在傳輸變數過程的同時,儀錶的識別字和簡單 的診斷資訊也可一併傳送。

CAN-bus 是一種多主方式的串列通訊匯流排,基本設計規範要求 有高的位元速率、高抗電磁干擾性而且能夠檢測出產生的任何錯誤。

CAN- bus 匯流排在通信能力可靠性、即時性、靈活性、易用性、傳輸 距離遠、成本低等方面有著明顯的優勢,成為目前業界最有前途的現 場匯流排之一。

4.2 CAN 控制器區域網路

CAN 是一個簡易的雙線差動式序列匯流排系統。它在充滿雜訊的 電氣環境下仍具有高階的資料整合能力,不論是短距 (40 m) 的高速 (1 Mbits/s) 資料傳輸或是遠達 10,000 m 的低速 (5 kbits/s) 資料傳輸,

多主控端的 CAN 匯流排系統均可提供高度容錯、功能強大的偵錯與 設計處理能力。

CAN 匯流排,如圖 4.1,其特點為允許網路上的設備直接進行互 相通訊,而且網路上並不需要主機(Host)控制通訊。它為一序列匯流

38

排,提供高安全等級及有效率的即時控制,更具備了偵錯和優先權

判別的機制,在這樣的機制下,網路訊息的傳輸變的更為可靠而有效 率。並擁有高度的彈性調整能力,可以在既有的網路中增加站台而不 用在軟硬體上作修正與調整的作業,並且,資訊的傳遞不是建構在特 殊種類的站台上,增加了在升級網路時的便利性。

4.2.1 CAN Bus 協定模式

CAN 協定是參考 ISO/OSI 的七層協定模式而做定義的,但因它主 要是用來傳送簡短且簡單的訊號,而且是一封閉性的系統,並不需要 負責系統的安全、產生使用者介面的資料,以及監控網路的登入等動 作,因此只定義了實體層(Physical Layer)和資料鏈結層(Data Link Layer)。

1 實體層(Physical Layer)

CAN 實體層的作用在於規範位元元標記法(bit representation)、

位元時序及同步性(bit timing and synchronization),通常還包括 CAN-Bus

節點 1 節點 2 節點 3

節點 4 節點 5

圖 4.1 CAN 網路結構

39

腳位連接器和接線的型式。CAN 藉由兩條序列匯流排(CAN_H and CAN_L)即時傳輸資料,傳輸速率可高達 1M bits/sec。

CAN 通訊採用雙線差動(two-wire differential) 傳輸的技術規 格,只需要兩條信號線(CAN-H 和 CAN-L),就可進行正常的通訊,

如果是在干擾較強的地方,可能還需要用到 CAN-G,主要功能為 遮蔽干擾訊號。如圖 4.2,Bus 須能夠呈現兩種邏輯狀態(dominant

& recessive),當在隱性(recessive)狀態時,CAN-H 和 CAN-L 的輸 入電壓差為 0V,而當顯性(dominant)狀態時,CAN-H 和 CAN-L 的輸入電壓差為 2V。假如有兩個裝置同時對 bus 傳輸不同的邏輯 狀態的訊息時,只有傳送 dominant 狀態的裝置能夠成功傳輸資料 並繼續其動作。

2 資料鏈結層(Data Link Layer)

CAN 資料鏈結層可以說是 CAN 功能的核心,其目的在於建 立資料訊框(data frame)封包,在訊框內包含資料和控制資料。

在資料鏈結層中的主要功能之一,就是當系統中出現有兩個訊號 同時想使用網路中的相同資源時,如何防止衝突的發生,這就是

CAN-H

CAN-L 3.5V

2.5V 1.5V

時間 邏輯 1

邏輯 0 邏輯 1 圖 4.2 雙絞線差動傳輸信號 電壓

40

所謂 MAC(Medium Access Control)的功能。

在 CAN 協定中,MAC 功能會讓具有最高優先權的資料訊框 先使用匯流排的網路資源,在網路的接取控制上有兩大方向,一 是先決式(determined),一是隨機式(random)。在先決式的接 取控制中,匯流排的使用權必須在節點接取匯流排前就預先定義 好,以確保不會發生任何衝突。此類的網路需要一個中央管控的 裝置來進行網路管理,但一旦此裝置失常,整個網路就無法運作 了;在隨機式的接取控制中,當匯流排閒置時,每個節點都能夠 要求使用網路資源。最常見的隨機式接取控制方式是載波偵測多 重存取(Carrier Sense Multiple Access,CSMA),CSMA 又分成 限制或防止訊號碰撞的 CSMA/CA 方式,和允許碰撞再進行處置 的 CSMA/CD 方式。由於 CSMA/CD 較浪費頻寬資源及會產生較 長的延遲性,CAN 採用的是 CSMA/CA 的方式,此作法又稱為非 破壞性的按位元仲裁(Non-Destructive Bit-Wise Arbitration)機制。

在 每 個 訊 號 訊 框 的 一 開 始處 就 存 在 有仲 裁 域 ( Arbitration Field),仲裁域中有一個識別碼(Identifier),當識別碼的數值愈 小時,表示其優先權限愈高。此作法能有效的利用匯流排資源,

其具有最高優先權的訊號,最大的延遲時間大約只有 150ms。

4.2.2 CAN Bus 訊框格式

訊框(Frame)是包含由傳送器送出的完整訊號的資料封包。在 CAN 協定中具有四種訊框,分別為傳送資料的 1)資料格式(Data Frame)、向遠端要求資料的 2) 遠端訊框(Remote Transmit Request Frame)、向節點報告出錯的 3) 誤碼訊框(Error Frame)、節點電路尚未 準備好會要求延遲傳送的 4) 額負載訊框(Overload Frame)。由於 CAN

41

是採差分訊號的形式來傳輸,所以訊號可分 CAN-L 跟 CAN-H,CAN-H 的訊號方向與 CAN-L 相反,下列敘述我們以 CAN-L 作為標準來分析 of Frame)、仲裁域(又包括識別碼和 RTR)、控制域(Control Field)

(又包括 IDE、r0 和資料長度碼)、資料欄(Data Field)、迴圈 冗 餘 碼 檢 驗 ( Cyclic Redundancy Check , CRC ) 域 、 確 認 域

(Acknowledgement Field),以及訊框終點(End of Frame)等。

(1) Start of frame

任何格式起始位元一定為 0,表示要求遠方傳資料回來。

(2) Arbitration Field

Identifier 為 11bits 主要功能是訊號發送時的順序排列,數值

圖 4.3 資料訊框

1

Start of frame ID10 ID0 RTR

Arbitration

42

越小優先權越高,而排列由 ID-10 至 ID-0,而 ID-10 至 ID-4 不可皆為 1。最後 RTR(Remote Transmit Request) 為傳送或遠 程要求的判斷位元,當 RTR=0 表示傳 Data 出去,RTR=1 表 示要求遠方傳資料回來。

(3) Control Field

控制段由 6 個位元組成,包括數據長度代碼和兩個將來作為 擴展格式用的保留位元。所發送的保留位元必需為 0。接收器 接收所有由 0 和 1 組合在一起的位元。如圖 4.4 控制段的 IDE 和 RB0 是保留位元一定是 0,後面的 4bit 只能是 0-8,表示後 續 data 段將傳幾個 bytes 的資料。

(4) Data Field

所需要傳的資料,先傳 MSB,只能傳 0-8 bytes 的 Data。

(5) CRC Field

如圖 4.5 所示,16bit CRC 驗證碼,最後一個 Del 為界定符,

固定為 1。

(6) Ack Field

此為接收端的回傳訊息,有兩個位元,最後一個 Del 為界定 符,固定為 1。若接收成功 Ack 就回傳 0,則傳送端就知道接 收端已接收到資料。

43

(7) END of Frame

1111111 表示結束。

2 擴展格式

如圖 4.6,資料訊框包含 Start of bit(SOB)、Arbitration Field、Control Field、.Data Filed、CRC Filed、ACK Filed、END of Frame 等七小

圖 4.5 CRC 檢驗欄與確認欄

DEL ACK DEL

Ack

IDE RB0 DLC3 DLC0

Reserived Bits

4 bits Data Length

Code

圖 4.4 控制欄與資料欄

44

節。不過 Arbitration Field 的部分多了 18bit,而 SRR 與 IDE 皆為 1。

3 向遠端要求資料的遠程格式(Remote Transmit Request Frame)

如圖 4.7 所示,當 RTR=1,表示向遠端要求資料的遠程格式 Remote Transmit Request Frame,此時的 DLC3..DLC0 為所需回傳資料的 Data bytes。且此格式無 Data Filed。

圖 4.6 擴展格式資料訊框

1 1 0 0 0 1 1

ID28 ID18 SRR IDE ID17 ID0 RTR R1 R0 Del

DLC0

DLC3 ACK Del

32 bits Arbitration Field

6 bits Control Field

0 - 64 bits Data Field

15 bits

Reserived Bits

11 msb Identifier

18 lsb Identifier

Start of frame End of frame (7 bits)

45

Start of frame ID10 ID0 RTR IDE RB0 DLC3 DLC0 Del

Del ACK

Reserived Bits

6 bits

46

5 要求延遲傳送的過載格式(Overload Frame) 有兩個方式會產生過載格式:

(1) 節點的內部條件節點處理資料中,對於下一筆資料需要延 遲。

(2) 起始於第一個間歇期間位元。間歇期間檢測到’0’, 起始於檢 測到間歇期間為’0’的下一個位元。

如圖 4.9,過載標誌會發出六個’0’,此六個’0’會破壞間歇的格式,

使其他節點知道此時有節點發出過載標誌。當發送完過載標誌,

節點會發出 8 個’1’,其他節點也會在完成後發出 7 個’1’。

6 報文間的空隙(Interframe Space)

報文間的空隙分為間歇與 bus 空閒兩種。間歇為 3 個’1’,此期間 不可傳送任何訊息,除了過載格式例外。bus 空閒為各節點都未發 送資料,所以此長度示任意的,任何節點都可在此時發送自己的

圖 4.8 出錯格式

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Error

Flag

Error Delimiter

8 bits 6 bits

6~12 bits Superposition of

Error Flags

47

資料。當有節點處於錯誤被動,會在間歇後發出 8 個’1’,讓其他 的節點有機會重發自己的資訊。

4.2.3 訊息的優先權

訊息的優先權是由訊息封包的 message identifier 所決定的,

identifier 的屬性則是由系統一開始所給定的二進位數值決定,其數值 是不能一直改變的。數值越小,就享有越高的優先順位。

即時環境中使用的通訊協定優點:

 訊息有分優先次序

 有限度的訊息傳遞延遲

 訊息可多重發送、資料確保一致性

可分辨資料是網路傳送錯誤或是裝置不正常運作所造成,進 而將有問題的網路節點關閉

4.2.4 仲裁機制

圖 4.9 過載格式

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Overload

Flag

Overload Delimiter

8 bits 6 bits

6~12 bits Superposition of

Overload Flags

48

CAN base frame 一開始是 SOF(Start Of Frame),接著是仲裁區 Arbitration field( 包 含 identifier 和 遠 端 傳 輸 要 求 RTR(Remote Transmission Request)),之後的 IDE(Identifier Extension)用來分辨是 base frame 或 extended frame。DLC(Data Length Code)記錄了 data field 的大小。

當兩種格式同時存在於同一個匯流排時,11-bit 的訊息將會擁有 比 29-bit 的訊息較高的優先順位。可支援 extended frame 的 CAN controller 可正確的傳送 base frame 與 extended frame 的訊息,但是只 支援 base frame 的 controller 則無法正確的傳送 extended frame 的訊 息。

4.2.5 偵錯機制

CAN 提供了五種偵錯機制,使其錯誤發生率低於 4.7×10-11。當 一個以上的上述錯誤發生時,傳送中的傳輸將會失敗中止並且產生錯 誤封包,發訊端則會試著重新傳送訊息封包。各個節點將會重新爭取 優先權。

CAN 的五種偵測錯誤機制

 CRC) 校 驗 : CRC 在 訊 息 結 尾 處 加 上 一 個 FCS(frame check sequence)來確保訊息的正確。接收訊息端會將其 FCS 重新演算並 與所接收到的 FCS 比對,如果不相符,表示有 CRC 錯誤。

 Frame check: 檢查封包中幾個固定值的欄位以驗證該封包是否有 被訊號干擾導致內容錯誤

 ACK errors: 接收端在收到封包後會告知發訊端,發訊端若沒有收 到確認訊息,ACK 錯誤便發生。

 Monitoring: 傳一個 bit 到網路上,從網路上再讀進來檢查是否一

相關文件