• 沒有找到結果。

分散式全向性平台控制系統

採用 Master/Slave 的方式,由一個 master 節點和四個 slave 節點所組成,master 節點主要以 DSP F2812 作為運算核心,slave 節點則以微控器 8051 作為核心,此

System Core [DSP F2812]

CAN Transceiver[SN65HVD232]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

CAN Bus

User [PC]

USB CAN

System Core [DSP F2812]

CAN Transceiver[SN65HVD232]

System Core [DSP F2812]

CAN Transceiver[SN65HVD232]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder Motor Driver

[S-Drive] DC Motor Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder Motor Driver

[S-Drive] DC Motor Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder Motor Driver

[S-Drive] DC Motor Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

Motor Driver

[S-Drive] DC Motor Encoder Motor Driver

[S-Drive] DC Motor Motor Driver

[S-Drive] DC Motor Encoder

2-Channel Decoder [HCTL 2032]

CAN Transceiver[PCA82C251] CAN Controller[SJA1000]CAN Transceiver[PCA82C251] CAN Controller[SJA1000]

Slave Core [MP 8051]

DAC [AD7541]

CAN Bus CAN Bus

User

圖 4-2 平台實體圖

主要作為系統的觀測之用。因此,整體系統架構如圖 4-1 所示,平台實體則如圖 4-2 所示,底下為 USB CAN、master 端和 slave 端的硬體架構說明。

4-1-1 USB CAN 介紹

為了讓電腦能具備 CAN 的通訊介面,常見的方式是透過 PCI 和 USB 的 CAN 介面卡,將 CAN bus 上的訊息封包加以轉換,以便透過電腦對網路狀態進行分析 與監控,本論文採用的是周立功單片機發展公司所開發的 USB CANII 智能 CAN 接口卡,USBCANII 提供兩個 CAN 介面,可同時連接兩個不同的網路,其外觀 和硬體規格如下:

(a)CAN 介面端 (b)USB 介面端 圖 4-3 USB CAN 外觀

硬體規格:

z USB 規格:USB1.1

z CAN controller:PHILIPS SJA1000

z CAN transceiver: PHILIPS PCA82C250 z CAN 網路傳輸速率:5Kbps~1Mbps

z CAN 介面:DB9,符合 Device NET 和 CANOpen 標準

z 支援 CAN 網路協定:支援 CAN 2.0B(兼容 CAN2.0A 協定),符合 ISO/IS 11898

z 最高 Frame 流量:每個通道 5000 Frame/sec

4-1-2 Master 端硬體介紹

Master 端主要進行速度規劃和速度命令之產生,主要硬體架構以 DSP F2812 搭配 CAN transceiver,作為命令傳送和網路管理的介面。

‹ eZdspTM F2812 DSK 介紹

本 論 文 master 端 所 採 用 的 運 算 核 心 為 德 州 儀 器 公 司 (TI) 所 生 產 的 DSP ’C2000 系列產品,此系列是專為控制應用最佳化而設計的,其中本論文 所使用的 F2812 晶片是目前此系列中運算速度最快的處理器,其特點在於擁 有 150 MHz (6.67ns cycle time)的快速處理能力,比 TI 早期出產的 DSP ‘C240 快 7 倍。在核心部分,算數邏輯單元(ALU)、累積器(ACC)均採用 32 位元定 點運算,為了提升數位訊號運算效能,以硬體方式實現乘法器、乘積位移器,

可在一個指令週期(instruction cycle)內完成乘加運算。在整數計算方面,為減 少數值計算所衍生如溢位(overflow)等問題,也採用硬體式的輸出倍率位移器 來提高軟體執行的精確度。

記憶體容量方面,F2812 (on chip)主要擁有 128K*16 Flash EEPROM、兩組 4K*16 Single-Access RAM (SARAM)、一組 8K*16 SARAM,並採用哈佛匯流排 (Harvard bus)架構。較舊型的 DSP 大部分將程式、資料、I/O 記憶體獨自分離(定 址位址重複),但 F2812 卻走向單獨的記憶體空間,包含了上述三種記憶體,使 用上更有彈性,也可減少不同記憶體之間搬動資料的指令集。

Spectrum Digital 公司為 TI 的第三方供應商,eZdspTM F2812 為此公司以 F2812 為主要核心,所開發之初學板(DSK, DSP started kit),其週邊主要有 16 個通道的 12 位元類比數位轉換器(ADC),串列傳輸支援了四種常用的型式:SPI (serial peripheral interface)、SCIs (two serial communications interface)、eCAN (enhanced controller area network)、McBSP (multi-channel buffered serial port),最高可支援 56 個 GPIO(general-purpose I/O)。

由於 F2812 已內建 eCAN 的 CAN 控制器(CAN controller),其作用為提供 CAN 通訊協定,其特色如下:

z 高輸入阻抗,可允許 120 個網路節點 z 支援 CAN 2.0A 和 CAN 2.0B 通訊協定 z 支援最快傳輸速率 1Mbps

z 提供 32 個 mailbox,可作為傳輸與接收之用

z 提供多種工作模式,包含等待(standby)、睡眠(sleep)和自我測試(self-test) 等模式

其中每個 mailbox 可被設定為傳送或接收兩種類型,每個 mailbox 可獨立設定所 使用的訊息識別碼,以傳送類型來說,所設定的識別碼即為所傳送之 CAN 訊息 的識別碼;以接收類型來說,所設定的識別碼即為欲接收的訊息識別碼,此外,

每個接收用 mailbox 可設定獨立的訊息過濾機制,因此,在應用上,可利用不同 的 mailbox 將接收訊息加以分類。

eCAN 架構如所示,由於 eCAN 已提供 CAN 通訊協定,所以,只需 F2812 只需搭配 transceiver 即可進行通訊,本論文所用的 transceiver 為 SN65HVD232,

以下為其說明。

圖 4-4 F2812 eCAN 架構

‹ CAN Transceiver

F2812 內建的 CAN 控制器,主要是提供 CAN 的通訊協定,其輸出腳位為傳 送(TX)和接收(RX)兩種,然而,CAN 的實體訊號傳遞方式為差動訊號,因此,

必須透過 transceiver 將訊號轉換為差動訊號,此處所用之 transceiver 為同樣是 TI 所生產的 CAN transceiver SN65HVD232,其邏輯電路則如圖 4-5

圖 4-5 SN65HVD232 邏輯電路

(a) D 輸入真值表

(b) R 輸出真值表 表 4-1 SN65HVD232 邏輯真值表

所示,其中 D (driver)是將輸入訊號轉為 CAN 網路線上的 CAN_H 和 CAN_L,其 真值表如表 4-1(a),一旦輸入訊號為低準位,將轉換為網路線上的 dominant 位元,

否則轉為 recessive 位元,而由圖上也可看出 CAN_H 和 CAN_L 作為輸入而產生 輸出 R (receiver),因此,除了接收網路線上的訊息,當傳輸訊息時,可同時透過 R 輸出,比對傳出的訊息是否與線上的相同,進而進行 CAN 的仲裁機制,R 輸 出的真值表如表 4-1 所示。

4-1-3 Slave 端硬體介紹

Slave 端接收來自 CAN 網路的速度命令,並進行速度迴路控制,主要架構以 微控器 8051 為運算核心,並搭配 CAN 網路介面、DA 介面和 Decoder 介面所組 成。

‹ CAN 網路介面

CAN 介面的硬體架構可分兩種方式,一種為內建於處理器之中的 CAN controller,如 4-1-1 節中,內建於 F2812 中的 CAN controller,處理器本身即可進

行通訊;另一種則為獨立(stand-alone)的 CAN controller,處理器透過 IO 接腳控制 其運作,即可進行 CAN 的傳輸動作,至於細部的封包設定和傳輸行為,則由 CAN controller 負責處理。

在此,由於 slave 端所使用的 8051 並沒有內建 CAN controller,必須搭配獨 立的 CAN controller,此處所使用的是 Philips 半導體所生產的 SJA1000,為目前 最為常見的 CAN 通訊晶片,主要特色如下:

z 支援最高 1Mbps 傳輸速率

z 支援 CAN 2.0A 和 CAN 2.0B 兩種通訊規格 z 提供 64-byte FIFO 作為接收暫存器(receive buffer) z 提供兩種接收訊息過濾器(acceptance filter)

z 提供各類的網路錯誤偵測

其架構圖如圖 4-6 所示,其中 64-byte receive FIFO,可同時儲存多筆訊息,使得 程式設計上,將多筆訊息同時讀取並進行處理,增加處理器效能;訊息過濾器的 設定,可將不需要的訊息先行濾除,其概念是藉由 CAN 封包的識別碼和資料欄

圖 4-6 SJA1000 內部架構

框的資料內容,作為過濾的比對基準,根據預定接收的封包識別碼,規劃過濾器 設定值,下圖 4-7 為一範例,其中過濾器包含兩個部份:ACR (acceptance code register)和 AMR (acceptance mask register),ACR 給定欲比對的識別碼以及資料內 容;AMR 則與 ACR 格式相同,且與之相互對應,其主要作用為決定輸入訊息需 和 ACR 之中的位元進行比對,若 AMR 中的位元設定為 0,表示該位元所對應的 ACR 位元必須進行比對,進入 SJA1000 的訊息識別碼必須與此 ACR 設定值相 同,反之,若為 1 則不需比對,此範例中,訊息識別碼最低兩個位元(ID.19 和 ID.18) 以及 RTR 位元,所對應的 AMR 位元皆為 1 而不需進行比對,其餘的每個位元則 與必須和 ACR 中的相同,所以,在此設定之下,可接收的訊息是訊息識別碼 0x000 到 0x003 的資料或遙控欄框,其餘訊息皆被過濾而不進入 receive FIFO 中,如此 一來,便可提昇處理器的效率。

此外,SJA1000 同樣必須搭配 transceiver 將訊號轉換為差動訊號,在此,所 使用的 transceiver 為同樣是 Philips 半導體生產的 PCA82C251,其架構與上節所 提到的 SN65HVD232 類似,主要差別在於允許的輸入準位和驅動能力不同,前 者主要搭配 5 伏特的處理器,最多支援 110 個節點,後者則是用於 3.3 伏特的處 理器中,最多可支援 120 節點,此處,由於 SJA1000 為 5 伏特輸出,所以,使用 PCA82C251 為 transceiver,所組成的 CAN 介面電路如圖 4-8。

n 0 1(upper 4bits) 2 3

ACRn( binary ) 0000.0000 0101.0000 1010.1010 0000.1111 AMRn( binary ) 0000.0000 0111.1111 1111.1111 1111.1111 Accepted messages

( ID.28…ID.18, RTR ) 0000.0000 0xxx

圖 4-7 SJA1000 訊息過濾器範例

圖 4-8 Slave 端 CAN 網路介面

‹ DA 介面

本論文所使用的馬達驅動器是以類比電壓作為控制輸入,進而控制馬達轉 速,所以,必須建立 DA 介面將數位命令轉為電壓輸入,此處所使用的 DA 元件 為 Analog Devices 公司所生產的 AD7541,為 12 位元數位輸入的 DA 元件,其特 色為隨著提供的參考電壓不同,可進行±25 伏特之間的電壓轉換。

在 DA 元件完成轉換後,輸入到驅動器之前,為了避免控制電路和馬達電路 之間的干擾,必須透過緩衝(buffer)加以隔離,在此所使用的是 TI 所生產的 TLC2274,為 Rail-to-Rail 的運算放大器,以此設計緩衝電路作為 DA 電路輸出級,

所設計之 DA 介面電路如圖 4-9 所示,由於 DA 輸入為 12 位元,因此,必須使用 兩組 8051 輸出埠進行控制,所得之類比輸出電壓(

V

out):

) 2 1

4096

D

(

Out Out

V

out = − (4-8)

其中

D

為數位命令值,即 DA 的 12 位元輸入;

Out

1 Out− 2為類比參考電壓,此 處為 5 伏特,因此,類比輸出值將在 0~5 伏特之間改變。

圖 4-9 DA 介面電路

‹ Decoder 介面

平台各軸接收速度命令後,進行閉迴路速度控制,為了獲得輪子的轉速,

藉由輪軸上的增量型編碼器(encoder),在輪子轉動時,進行編碼而產生對應 的正交編碼器脈衝(QEP, quadrature encoder pulse),QEP 訊號通常包含 A、B 相,兩者相位相差 90 度,造成不同的編碼組合,用以表示馬達的轉動方向,

而 QEP 的脈衝數則與馬達轉動速度成正比。

因此,藉由將 QEP 訊號進行解碼,便可了解馬達的轉動方向與對應的轉 速,此處所使用的解碼器(decoder)為 Agilent 公司所生產的 HCTL 2032,其主 要特色如下:

z 最高 33 MHz 的時脈頻率 z 支援雙軸(Dual Axis)同時計數 z 支援 32 位元上下計數

z 高雜訊免疫性:施密特(Schmitt)觸發器、數位雜訊濾波器

z 8 位元並列式計數值輸出

所設計之 decoder 介面電路如圖 4-10 所示,而由於 8051 之 IO 埠有限,P0 埠 同時作為 SJA1000 和 2032 的存取介面,因此,必須透過額外電路切換兩個元 件的使用,在此,使用解多工器 SN74LS139 進行切換動作,以達到兩組電路 的存取。

圖 4-10 Decoder 介面

4-2 平台運動模型[25]

為了進行平台之運動控制,本節定義移動平台的相關參數和座標系統轉換,

接著以此推導其運動模型。

圖 4-11 全向性平台座標系統與符號定義

‹ 全向性平台座標系統與相關符號定義

圖 4-11 為全向性平台的座標系統和符號定義,各個符號所代表之意義如下:

XW、YW、OW:世界座標(world coordinate)X 軸、Y 軸與原點

XW、YW、OW:世界座標(world coordinate)X 軸、Y 軸與原點

相關文件