機械社區(qū)

標題: 串口調(diào)試協(xié)議,請教 [打印本頁]

作者: robi    時間: 2011-3-10 16:05
標題: 串口調(diào)試協(xié)議,請教
最近購買了一套BALLUFF的射頻識別設(shè)備,不怎么理解他的通信協(xié)議,想請教各位社友。

# X4 ?% o& q; c' H5 K+ N/ H6 _
下圖是balluff說明書關(guān)于讀信息和寫信息的指令描述。

2 {$ n5 m8 Z+ R" j/ {  e$ D( B: }
我用串口調(diào)試助手試著寫了兩個指令:
L 0050 0010 11J
P 0050 0010 11R
這兩條指令跟說明書不一樣的地方在“11J”和“11R”,這是因為我用的是讀寫頭1,芯片的字節(jié)數(shù)是32byte。這個是沒有問題的。
串口調(diào)試助手設(shè)置如下:十六進制顯示

- j% N" v4 @! ?1 o
串口調(diào)試助手返回的信息如下。
1. 射頻芯片在讀寫頭附近時,和沒有射頻芯片在讀寫頭附近時,所采集的數(shù)據(jù)是一樣的。
L 0050 0010 11J
第一次點擊“手動發(fā)送”返回數(shù)據(jù)為
15 37 15 15 15 15 15 15 37
第二次點擊“手動發(fā)送”返回數(shù)據(jù)為
15 37 15 15 15 37
以后再點擊“手動發(fā)送”返回數(shù)據(jù)均為15 37 15 15 15 37
P 0050 0010 11R
第一次點擊“手動發(fā)送”返回數(shù)據(jù)為
15 37 15 15 37
第二次點擊“手動發(fā)送”返回數(shù)據(jù)為
15 37 15 15 15 15 15 37
有幾個問題請教各位社友,
1 說明書上畫紅線的地方,是什么意思?我百度HEX是十六進制的意思。70hex是指十六進制表示的70嗎?那和前面的‘1 2 3 4 5 6 7 8 9 A F’是什么關(guān)系呢?
2 串口調(diào)試助手返回的數(shù)據(jù)是什么意思呢?
謝謝!

作者: 舟航    時間: 2011-3-10 20:28
本帖最后由 舟航 于 2011-3-10 20:34 編輯
7 N) ]0 x( E; {) o+ M: `9 k+ I6 a$ k; Q4 t
BCC后面是十六進的效驗碼。具體還得仔細看下說明書。
作者: 舟航    時間: 2011-3-10 21:05
樓主不仔細看說明書啊,仔細看下P36,就沒問題了,我剛下載看了下,沒問題。
作者: 舟航    時間: 2011-3-10 21:14
舉例第一條紅線的算法:前面1、2、3、4、5、6、7、8、9、A經(jīng)過EXOR計算,得到F,換算成十六進為70HEX。
作者: robi    時間: 2011-3-10 21:19
回復(fù) 舟航 的帖子. z& m$ r) Q: X6 Z7 P

/ _  f+ j! _# n5 I8 q/ A呀,謝謝版主。]注意看這個。。
8 X$ H) f( b# k  A( d版主,那個The host system gives start command and data :<STX>'123453' 是什么意思呢?# B; e# I% G. o) k7 e
是說我如果發(fā)送‘P 0500 0005 20R’ 系統(tǒng)應(yīng)該會返回‘123453’嗎?
  ]/ l- F3 P5 _3 w% ~4 |
作者: robi    時間: 2011-3-10 21:26
回復(fù) 舟航 的帖子
; U6 f. l: C5 E6 L8 f
. T  e( \% a" K/ C. E- D我發(fā)現(xiàn)的的指令寫錯了。說明書上寫的P 0050 0005 20R,我改成了P 0050 0005 11,可是后面的BCC校驗還是寫的R。
1 v" c8 h# Y" V5 ]0 e8 c% [$ N/ y; F( ]2 t/ U. t2 ?
P 0050 0005 11R 這條指令本來就錯了~# P5 z% ~& D) W+ g

: Z' M) S( ?: v" r( F% X2 P- k謝謝版主,我明天再調(diào)一次看是什么情況~
9 V- l/ j3 {) ^! J  ]# Y2 y
作者: robi    時間: 2011-3-10 21:33
回復(fù) 舟航 的帖子2 T8 B7 h+ @+ q+ Y% Y9 E

' k; g  i! ?+ n/ A: `# S! T版主,我現(xiàn)在知道后面的3是33hex了。但是我不明白那整句話的意思。6 Y& e7 S, A' a# s
是說我把命令從host system發(fā)到設(shè)備的串口去,(因為我的指令只是告訴串口設(shè)備,我要讀信息,從哪個Byte到Byte的數(shù)據(jù)我都要讀。)那么是不是設(shè)備就會返回123453,告訴我收到我的指令,現(xiàn)在可以發(fā)數(shù)據(jù)了?是這個意思嗎?
  X  M) v! r  U! |  v: J7 V) i: F4 V因為我沒用過其他的串口通信設(shè)備,不知道他們的原理是不是就是我理解的這樣?. E; w. ]$ W: L3 E1 V: B8 N  {" Q5 ?9 n

作者: 苦逼設(shè)計    時間: 2012-8-9 15:26
學(xué)習(xí)下OOO




歡迎光臨 機械社區(qū) (http://mg7058.com/) Powered by Discuz! X3.4