概述
如需转载请注明出处,谢谢!
目录
前言
分类方式
通讯协议概述
数据传输帧格式
帧头和帧尾
帧长度
帧类型
数据
校验码
前言
各厂商的通讯协议都是不同的,但大同小异,整体格式都是一样的,本文只帮忙理解。
分类方式
国际电信联盟ITU划分的无线电频段,单位为Hz(赫兹)
带号 | 频带名称 | 频率范围 | 波段名称 | 波长范围 | 主要应用 |
---|---|---|---|---|---|
-1 | 至低频(TLF) | 0.03-0.3Hz | 至长波或千兆米波 | 10000 1000兆米(Mm) | 水中舰艇沟通 |
0 | 至低频(TLF) | 0.3-3Hz | 至长波或百兆米波 | 1000- 100兆米(Mm) | 水中舰艇沟通 |
1 | 极低频(ELF) | 3- 30Hz | 极长波 | 100- 10兆米(Mm) | 潜水艇进入/离开海底 |
2 | 超低频(SLF) | 30- 300z | 超长波 | 10- 1兆米(Mm) | 水中舰艇沟通 |
3 | 特低频(ULF) | 300-3000Hz | 特长波 | 1000- 100千米(km) | 矿场内使用,也可作堪探(km)地质和地震用 |
4 | 甚低频(VEF) | 3- 30kHz | 甚长波 | 100- 10千米(km) | 海岸潜艇通信;远距离通信;超远距离导航 |
5 | 低频(LF) | 30- 300kHz | 长波 | 10- 1千米(km) | 越洋通信;中距离通信;地下岩层通信;远距离导航 |
6 | 中频(MF) | 300- 3000kHz | 中波 | 1000-100米(m) | 船用通信;业余无线电通;)信移动通信;中距离导航 |
7 | 高频(HF) | 3一300MHz | 短波 | 100- 10米(m) | 远距离短波通信;国际定点通信 |
8 | 甚高频(VHF) | 30- 3000MHz | 米波 | 10- 1米(m) | 电离层散射(30- 60M0Hz) ;流星余迹通信;人造电离层通信 (30-1440z) ;对空间飞行体通信:移动通信 |
9 | 特高频(UHF) | 300- 3000MHz | 分米波 | 10- 1分米(dm) | 容里中继微波通信 (352- -420z) ;对流层散射通信( 700-10000) ;中容重微波通信(1700-24000MHz) |
10 | 超高频(SHF) | 3- 30GHz | 厘米波 | 10- 1厘米(cm) | 卫星通信;雷达、微波通信 |
11 | 极高频(EHF) | 30- 300GHz | 毫米波 | 10-1毫米(m) | 卫星通信:雷达 |
12 | 至高频(THF) | 300 - 3000GHz | 丝米波或亚毫米波 | 10-1丝米(am) |
表格标红的为RFID常用频段
- 低频(Low frequency,LF):低频标签成本低,但读取的距离近。
- 高频(High frequency,HF):高频标签具有更高的传输速率和距离,但成本也比低频标签贵。
- 超高频(Ultra high frequency,UHF):433 MHz、800/900MHz、2.45GHz、5.8GHz,超高频标签具有更高的传输速率,成本也较其他的高。
通讯协议概述
本文章以UHF RFID作为例子介绍
UHF RFID读写器与上位机采用异步串行接口(UART)进行数据通信, 串口波特率默认为 115200,8 位数据位,1 位停止位,无校验位,无硬件流控 制。数据按照固定的帧格式进行传输。
数据传输帧格式
数据帧由帧头、帧长度、帧类型、数据、校验码和帧尾组成。
帧头 | 帧长度 | 帧类型 | 数据 | 校验码 | 帧尾 |
---|---|---|---|---|---|
2字节 | 2字节 | 1字节 | N字节 | 1字节 | 2字节 |
帧头和帧尾
帧头代表数据包的开始,共 2 个字节,为固定值 0xA5、0x5A,帧尾表示数 据包的结束,共 2 个字节,为固定值 0x0d、0x0a(回车加换行)。
帧长度
帧长度为一帧数据的长度,其具体计算公式为:帧长度 = 2+2+1+N+1+2, N 为数据长度。
帧类型
帧类型用以区分不同的控制命令,读写器根据帧类型执行相应的操作。不同读写器厂家定义的帧类型不同,在此我依然只是举例
比如我工作中用到的提取几种拿出来分享
帧功能描述 | 帧类型 |
---|---|
获取读卡器硬件版本号 | 0x00 |
连续寻标签 | 0x82 |
连续寻标签应答 | 0x83 |
数据
根据帧类型,数据包含有数据和控制信息。对于命令帧,表示控制信息,如上图绿色标识。 对于应答帧,表示数据信息,如上图橙色标识。
校验码
每帧数据所有字节(除去帧头和帧尾)异或。
以连续寻标签举例例如: 0xA5 0x5A 0x00 0x15 0x83 0x24 0x00 0xe0 0x11 0x23 0x45 0x78 0x65 0x10 0x20 0xfe 0x83 0x01 0x79 0x0d 0x0a
数据 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
帧头 | 帧长度 | 帧类型 | PC(MSB) | PC(LSB) | EPC(MSB) | EPC(LSB) | RSSI (MSB) | RSSI (LSB) | 天线号 | 校验码 | 帧尾 |
0xA5 0x5A | 0x00 0x15 | 0x83 | 0x24 | 0x00 | 0xe0 0x11 0x23 0x45 0x78 0x65 0x10 0x20 | 0xfe | 0x83 | 0x01 | 0x79 | 0x0d 0x0a |
说明:
- LSB的意思是:全bai称为Least Significant Bit,在二进制数du中意为最zhi低有效位,一般来dao说,MSB位于zhuan二进制数的shu最左侧,LSB位于二进制数的最右侧。
- MSB的意思是:全称为Most Significant Bit,在二进制数中属于最高有效位,MSB是最高加权位,与十进制数字中最左边的一位类似。
- EPC 字段的长度由 PC 决定,PC 高 5bit ×2 为 EPC 的字节数,如 PC=0x2400, 高 5bit 为二进制0100,对应十进制 4,那么 EPC 的字节数为 4×2=8 字节。
int epcLength = (Integer.parseInt(len, 16) / 8) * 4;
- RSSI 以补码的形式表示,共 16bit,为实际值×10。如-12.3dBm,则 RSSI=fe83。
int rssi = ((Hb - 256 + 1) * 256 + (Lb - 256)) / 10;
int rssi1 = (0xffff - ((Hb << 8) + Lb)) / 10;
最后
以上就是狂野冥王星为你收集整理的Android与RFID的点点滴滴(二)RFID通讯协议的全部内容,希望文章能够帮你解决Android与RFID的点点滴滴(二)RFID通讯协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复