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 通訊格式 傳輸方式是指乙個資料幀內一系列獨立...