第四章 視覺導航車實驗結果
4-1-5 USB-CAN[18]
1、簡介 USB-CAN
USB CAN可以讓PC透過USB介面連接到CAN網路上面,使得PC也變成 CAN網路上面的一個節點,透過USB CAN方便讓電腦收集和分析CAN網路 上面的訊息,或是透過USB CAN傳達訊息到CAN網路上各節點。本研究採 用的USB CAN為周立功單片機發展有限公司所開發出來的USBCANII智能
CAN網路上面,並且附有ZLGVCI接口函式庫,方便使用者搭配不同開發程 式開發符合自己需求的產品,以下 圖4.11 為USBCANII外觀和硬體規格:
圖4.11 USBCANII 外觀
硬體規格:
¾ PC 接口:USB1.1
¾ CAN 控制器:PHILIPS SJA1000
¾ CAN 收發器: PHILIPS PCA82C250
¾ CAN 網路傳輸速率:5Kbps~1Mbps
¾ CAN 通訊接口:DB9,符合 DeviceNET 和 CANOpen 標準
¾ 支援 CAN 網路協定:支援 CAN 2.0B(兼容 CAN2.0A 協定),符合 ISO/IS 11898
¾ 最高 Frame 流量:每個通道 5000 Frame/sec
¾ 供電方式:USB 供電或是外接+9V~+25V,400mA 的電源
2、網路監控程式
圖4.12 網路監控程式主畫面
圖4.12 為網路監控程式的主要畫面,總共分成三個部份:
(a) 控制 USBCAN 節點屬性:
當要開始使用監控程式的時候,需先設定USBCAN 相關參數好。首先,
先點下Open 按鈕後會跳出參數設定視窗如圖,此畫面可以讓我們設定 ID 遮 罩,濾波器形式,工作模式還有傳輸速度,由於本 USBCAN 使用的 CAN Controller 為 PHILIPS SJA-1000,因此參數的詳細設定,可以直接參考 SJA-1000 的說明文件。此 USBCAN 有兩組 CAN 節點,所以有兩組參數可 供設定,Device Index 是當 PC 不只接上一台 USBCAN 時,可以讓我們選擇 想要控制的裝置。當設定好參數之後,選擇OK 跳回主畫面,此時再按 Start
圖4.13 USB CAN 系統參數設定畫面
(b) 監聽 CAN BUS 訊息的顯示部份:
監控程式將在 CAN Bus 上面監聽到的訊息會在此部份顯示出來,在此 我們可以看到訊息的
(1)direction: 傳 遞 方 向 , 讓 我 們 知 道 該 訊 息 是 由 PC 端 接 收 或 是 發 送。
(2) CAN : 接收或傳送節點,由於USBCANII 可以讓 PC 擁有兩個 CAN 節點,此部份可以顯示出是哪個節點收發該訊息。
(3) Time ID: 顯示時間 Tag
(4)Frame ID: 顯示該訊息的識別碼,此 ID 是將接收此訊息的識別 ID,可 以藉由Frame ID 來斷該訊息的去處。
(6) Type: 資料欄框的訊息格式,該看訊息是 Extend 或是 Standard 的格式
(7) Length: 該訊息所帶的資料長度
(8) Data : 該 訊 息 所 攜 帶 的 資 料 內 容 , 可 搭 配(c) 部 份 的 Receive Type 來顯示該資料對應的格式。
(c) 傳送訊息部份:
傳送部份可以讓 PC 節點不只扮演監聽的角色,也可讓 PC 主動發出訊 息,藉由 PC 發出訊息來看對應的節點是否有對該訊息做出正常的反應。在 此部份可以設定訊息傳送的種類,由哪個節點發出,等相關設定。同時也可 以指定該節點,每隔多久時間所送多少筆訊息。
3、USB-CAN 傳輸測試
介紹完程式各部份之後,我們來看看實際使用的狀況。圖 4.14(a)為PC 端傳送命令的傳輸畫面,檢查是否真的有把駕駛命令傳送出去。此外,觀察 傳輸的過程,發現並無delay的現象存在。圖 4.14 中顯示出Data經由第二個節 點接收到PC端所傳的命令,該命令的ID為 1,長度為 2Bytes。命令包含了兩 個部份:(1)前 13bits代表馬達要轉的量 (2)後 3bits代表方向盤順/逆時針轉 動,方向上的定義為:+(順時針) → 001;-(逆時針) → 010。
(a) PC 傳送訊息至 USB CAN 畫面擷取
(b) 訊息說明
圖4.14 傳輸畫面擷取及說明
4-1-6 DSP 端的工作情形
1、工作原理
當PC 端送出命令時,會透過 USB-CAN 傳送至 CAN 的節點上,之後由 負責接收/傳送 CAN 節點上的訊息的電路抓取訊息,最後在經由此電路傳到 DSP。
DSP 端的控制器部分利用很簡單的 PI 控制器,當訊息到達時,經過控制 器後的電壓輸出,會對應到相對的電壓,使馬達轉動。
_ ( ) _ ( ) _
_ ( ) _ ( 1) ( p i) _ ( ) ( p) _ ( 1) P error k P command k P now
V command k V command k K K P error k K P error k
= −
= − + + × + − × −
V _command k( ):電壓輸出
PI 控制器的參數:Kp =0.001,Ki =0.00000005
2、測試馬達的轉動位置
此目的除了檢查在 DSP 端的馬達位置是否有轉到最後 PC 端所給的命
題,是否會有應該要左轉卻發生右轉的現象發生或是會以某個基準值轉動。