uCAN設計說明 通訊協議xGoogle Code

2022-05-12 07:48:04 字數 3597 閱讀 2578

ucan設計說明包括硬體設計說明,嵌入式軟體設計說明,pc軟體設計說明,以及通訊協議設計說明。本文屬於通訊協議設計說明。

本文針對ucan裝置與pc通訊的通訊協議做了詳細描述,包括通訊幀格式,資料內容定義,以及通訊命令定義。

《can2.0規範》

無ucan裝置通過全速usb2.0介面與pc進行通訊,傳輸型別為批量傳輸方式,理論速度可達12mbps,採用批量傳輸時實際速度可達900kbps。足夠滿足兩個can以最大1mbps的速度。

ucan和pc的通訊採有兩種形式:

● 資料流:用於傳輸大量的can資料幀,乙個資料流可以由乙個或多個usb幀組成。每一路can對應兩個資料流,乙個用於接受pc上傳送的資料,另外乙個用於向pc傳輸接收到的can資料。

● 資料報:用於向裝置傳送命令或者獲取裝置狀態。資料報由報頭以及資料組成,且不可大於乙個usb幀長。

資料報占用了兩個端點,乙個端點用於接收pc傳送的命令,另乙個端點用於裝置向pc報告當前裝置狀態。乙個usb幀能且只能傳輸乙個資料報。

資料流和資料報分別通過不同的端點傳輸,這樣可以簡化程式處理,但是缺點是需要占用了更多的端點。

資料流的長度必須是4的整數倍,資料流由整數個can幀資訊報文組成,如圖 1所示。

圖 1 資料流與can幀關係

資料流由上行(裝置到pc)與下行(pc到裝置)兩種傳輸方向,其中下行和上行資料流中can幀資訊格式是不同的,下面兩節將詳細介紹下行和上行資料流的can幀資訊格式。

下行資料流用於傳輸pc需要往can網路傳送的資料,其具體格式如圖 2所示。

圖 2 下行資料幀格式

表 1 下行資料幀格式字典

由圖 2可以看出,乙個can長度範圍為8-16位元組。

下行資料流用於傳輸裝置往pc傳輸can網路上的資料,其具體格式如圖 3所示。

圖 3 上行資料幀格式

表 2 上行資料幀格式字典

由圖 3可以看出,乙個can幀最大長度範圍是12-20位元組(dlc大於4且rtr不等於1時),最小長度為12位元組(dlc為0或者rtr等於1時)。

資料報每次傳輸的最大長度為乙個usb幀長度,可以用於向裝置傳送命令以及接收裝置狀態。乙個usb幀能且只能傳輸乙個資料報。

圖 4 乙個usb幀中包含多個資料報

資料報包含報頭和引數,其中報頭的長度為四個位元組,而引數的長度根據其由報頭中的長度欄位來指示,其具體格式如圖 5所示。資料報的下行與上行格式相同,都是採用報頭加資料的形式來傳輸。

圖 5 資料報格式

表 3 資料報格式字典

資料報的互動有如下幾種情況:

1、 pc傳送資料報,裝置無需應答;

2、 pc傳送資料報,裝置做出響應;如返回引數或者執行結果等;

端點定義如表 4所示。

表 4 系統端點功能定義

本小節描述裝置支援的所有命令,每一條命令都將描述資料報命令的各個字段,除了id欄位。該字段的詳細說明可見表 3 資料報格式字典。

命令字:

0x8000-0x8003,最後兩位表示can埠號

擴充套件字段含義:

當前報文包含的can幀數量,1-3有效

資料長度:

16-48位元組

資料:1-3個can報文資料,格式同資料流中的can傳送幀格式。

0-15位元組存放第乙個can報文

16-31位元組存放第乙個can報文(如果有)

32-47位元組存放第乙個can報文(如果有)

響應:擴充套件字段:傳送成功的幀數量

資料字段:無

命令字:

0x8010-0x8013,最後兩位是can埠號

擴充套件字段:

無意義,填0

資料長度:

8位元組資料:

data[0-3]對應mod暫存器

data[4-7]對應btr暫存器

響應:無

備註:執行該命令會導致can埠復位,裝置端會先將can進入狀態再設定相應的值。

設定順序為:先復位,再設定btr,最後設定mod

命令字:

0x0010-0x0013,最後兩位是can埠號

擴充套件字段含義:

無意義,填0

資料長度:

0資料:

無響應:擴充套件字段含義:

無意義,填0

資料長度:

40資料:

data[0-3]對應mod暫存器

data[4-7]對應btr暫存器

data[8-11]對應icr暫存器

data[12-15]對應gsr暫存器

data[16-19]表示can匯流排資料過載次數(由於cpu未能及時響應報文,硬體自動丟棄)

data[20-23]表示can丟棄個數(因為usb緩衝區已滿,導致無法繼續處理,軟體丟棄)

data[24-27]表示控制器復位次數(因為錯誤而導致的復位)

data[28-31]表示匯流排錯誤發生次數

data[32-35]最後錯誤**,0表示無錯誤

data[36-37]物理層介面型別

data[38-39]保留

由於cpu未能及時響應報文,而導致硬體自動丟棄的過載次數統計

命令字:

0x8010-0x8013,最後兩位是can埠號

擴充套件字段含義:

無意義,填充0

長度:4資料:

需要設定的值

響應: 無

由於usb緩衝區已滿,導致無法繼續處理,軟體主動丟棄的過載次數統計

命令字:

0x8020-0x8023,最後兩位是can埠號

擴充套件字段含義:

無意義,填充0

長度:4資料:

需要設定的值

響應: 無

該復位次數是指由於匯流排錯誤而導致的復位

命令字:

0x8030-0x8033,最後兩位是can埠號

擴充套件字段含義:

無意義,填充0

長度:4資料:

需要設定的值

響應: 無

命令字:

0x8040-0x8043,最後兩位是can埠號

擴充套件字段含義:

無意義,填充0

長度:4資料:

需要設定的值

響應: 無

命令字:

0x8050-0x8053,最後兩位是can埠號

擴充套件字段含義:

無意義,填充0

長度:8資料:

需要設定的值,注意計數器有效長度是6位元組的,最前面兩個位元組保留

響應: 無

該命令用於獲取裝置總體資訊。

命令發起:

該命令由pc發起。

命令字:

0x0000

擴充套件字段含義:

無長度:

0資料:

無響應:

必須做出響應,返回裝置版本號。

命令字:

0x07

擴充套件字段含義:

無長度:

16資料:

data[0]軟體主版本(bcd編碼)

data[1]軟體次版本(bcd編碼)

data[2]硬體主版本(bcd編碼)

data[3]硬體次版本(bcd編碼)

data[4-5]生產年份

data[6]生產月份

data[7]生產日期

data[8-15]產品序列號

通訊協議設計

一 網路的總體設計 網路中的幀有 資料幀 確認幀。資料幀分為 定位資料幀和報警資料幀 定位卡用定位資料幀向基站傳送位置資訊,基站收到資料幀後向定位卡傳送確認幀。二 各種幀的結構 資料幀的結構 資料字段 確認幀的結構 幀控制域 實現的功能 協調器實現的功能有 接收路由器的加入並為其分配位址。作為路由器...

AIBUS通訊協議說明

aibus通訊協議說明 v7.0 aibus是廈門宇電自動化科技 為ai系列顯示控制儀表開發的通訊協議,能用簡單的指令實現強大的功能,並提供比其它常用協議 如modbus 更快的速率 相同波特率下快3 10倍 適合組建較大規模系統。aibus採用了16位的求和校正碼,通訊可靠,支援4800 9600...

標準MODBUS通訊協議說明書 外發

1 我公司現有產品中需要和組態軟體進行通訊的有二種產品 匯流排探頭 控制器主機。二種產品分別使用了二種不格式的modbus協議。但是其都符合modbus的通訊格式 1.1 介面標準 介面標準 tia eia 485 硬體連線 2線模式 非4線模式 1.2 通訊格式 傳輸方式是指乙個資料幀內一系列獨立...