条形码和二维码
条形码也叫一维条形码,只是在一个方向表达信息,其一定的高度通常是为了便于阅读器的对准。条形码能储存的信息比较少且只能记录数字和字母,且所占用的面积比较大。
二维码的信息容量更大,一般常见大小的二维码图像中,双色单层(如黑白)的一般是数十K的容量。
最基本的原理就是白0黑1,剩下的工作其实都是编解码的细节(总结于附录)。
仅从功能考虑,RFID可以看成是强化版的条形码。由于不依赖可见光,所以不会有弄脏、遮挡的问题,也不需要平整表面。
磁卡和IC卡
磁卡怕磁,IC卡怕静电。
磁卡关键是表面的黑色磁条,IC卡则是嵌入卡体的铜片。
磁卡和机械硬盘,IC卡和平时电脑用的存储设备,感觉还是有点像的。
RFID的组成
标签、阅读器+天线。
RFID工作流程
标签如果接收到阅读器发出的特殊射频信号,
凭借感应电流所获得的能量发送出存储在芯片中的产品信息(无源标签或被动标签),
或者主动发送某一频率的信号(有源标签或主动标签),
阅读器读取信息并解码后,送至中央信息系统进行有关数据处理。
RFID与IPV6
每粒沙子都能有自己的IPV6地址。结合RFID,实现万物互联就已经有了理论可能。
RFID的起源
二战英国空军的敌我识别器,算是主动RFID。
存储原理
标签中有EEPROM,电可擦可编程只读存储器。
RFID频率
频率决定原理、体积、用途。微波段到短波段,频率范围10e6到10e10。
低频的距离1m,天线匝数多,数据少,传输慢。主要用于门禁,汽车开锁和停车场,畜牧业,马拉松等。
高频的距离1m,防碰撞。主要用于会议通道,货书架,物流,生产线,燃气瓶,自动抄表。
超高频4-6m,速度快,2048bit以内。主要用于供应链,物流,生产线。
RFID碰撞
传统网络中也有这个问题,但RFID场景下,
- 标签间不能相互通信
- 标签不具有碰撞检测功能
因此所有仲裁和指挥都要由阅读器完成。一般采用Time Division Multiplexing Address解决这个问题。
ALOHA是碰撞了就延迟随机时间,S-ALOHA是碰撞了就延迟随机帧。
Frame-S-ALOHA(FSA)是RFID主流冲突解决方法,简要流程如下:
- 阅读器广播帧长f
- 各标签随机在0~f-1之间选一个数
- 轮到自己选的数的时候就发送
由于标签的数量是变化的,帧长f也需要动态调整。调整细节可以参考EPCglobal gen2中的Q算法。
此外,二进制树算法也可用于解决碰撞。基本原理是如果某个时隙发生碰撞,则将碰撞的标签分为两部分,其中一部分等待。据说是中序遍历,但我没有理解到这一点。
附录
二维码编解码
https://coolshell.cn/articles/10590.html
编码完成之后,按列顺序填到数据区,把纠错码也按列顺序填到数据区。
再经过mask处理,避免单个黑白块过大,就形成了最终图案。
至于二维码中间的图像,是因为纠错码的存在,即使部分遮挡也能不丢失信息。