射频识别技术在防作弊称重系统中的应用

2017-06-28


  1 前言
  在传统的地磅称重系统中,存在着较多的作弊行为。如在过磅称重时,客户A(货物单价高)冒充客户B(货物单价低)的身份,以达到减少提货单价的目的;或是货车A(重量小)冒充货车B(重量大)上磅称重,以达到降低提货重量的目的。这些行为都将导致最后的提货总金额比实际的金额要低,从而导致企业蒙受相应的经济损失。
  射频识别技术可以对客户以及车辆的身份进行识别,从而杜绝冒充用户提取货物、冒充车辆进行称重等一系列的作弊行为。
  2 射频识别技术
  射频识别(RFID)技术基于无线通信技术,一般的射频识别系统都包含两个部分:射频识别卡(应答器)和射频识别读卡器(阅读器)。射频识别卡中存储着指定的数据,而射频识别读卡器能够与射频识别卡在无需接触的情况下实现对卡内存储信息的读写操作。其基本原理如下:
  射频识别读卡器会在一定的区域内发出指定频率的射频信号,当射频识别卡进入到该区域内时,将接收到该射频信号,能够通过卡内线圈产生感应电流激活识别卡并向读卡器发送卡中的数据。从而实现了非接触式的无线数据交换。
  3 基于射频识别的系统设计与实现
  3.1 基于射频识别的称重流程
  RFID产品包含有源和无源两类,对于无源RFID,其工作的主要频率为13.56MHZ,可以进行近距离识别操作;而对于有源RFID,其工作的主要频率为433MHZ,能够进行远距离的识别。
  在本系统中,使用了两种RFID产品,其中无源RFID用来对客户的身份进行识别,需要客户手持卡片(M1卡)靠近读卡器进行识别。另外考虑到车牌自动识别在恶劣的天气或车牌模糊的情况下无法准确识别,因此在系统中使用了有源RFID对车辆的身份进行识别(在车辆的前车窗粘贴RFID标签进行远距离读写操作)。基于RFID的称重流程如图1所示。
  如图1所示称重流程,当货车停在地磅上进行称重时,客户手持M1卡(卡中包含客户的相关信息)到磅房的读卡器上进行刷卡。读卡器获取到客户的信息后进行比对,若不一致说明是冒充另外的客户进行提货,进行错误提示;若一致则从数据库中得到客户的提货单价,并通过远距离读卡器得到地磅上货车的电子标签信息(每辆货车的电子标签信息与M1卡的信息已在数据库中进行关联),并与M1卡的信息进行比对,如不一致,说明地磅上的货车与实际称重货车不同,属于作弊行为,进行错误提示;若一致则读取到提货重量并计算提货总金额,流程结束。
  3.2 M1卡的读写实现
  客户手持RFID识别卡为M1卡,该卡内部包含16个分区(编号为0-15),每个分区包含4个区块(编号为0-3),因此一共有64个区块可以用来存放相关信息,这64个区块进行统一编号0-63,其中0区块(0分区的0区块)用来固化出厂信息,用户无法修改。对于其他分区的各自4个区块,0-2区块中可存放用户数据,而3区块用于保存控制信息,存储了对0-2区块的存取策略。对M1卡的读写操作如图2所示。
  系统在.NET平台中进行实现,基于厂家的动态链接库进行操作。由于属于非托管代码,因此需要对动态链接库中的方法加上[DllImport]特性标注后再进行调用。具体实现代码说明如下:
  1)初始化操作
  Int ReaderNo=M1Oper.rfinit(0,0);//对设备进行初始化,并得到返回的设备编号
  2)寻卡操作
  int status=M1Oper.rfRequest(ReaderNo,1);//编号为ReaderNo设备的寻卡操作,该操作是一个循环操作。当返回的status为0时,说明感应区域内有M1卡,停止寻卡;不为0时,继续寻卡
  3)防冲突
  Int anticlooStatus= M1Oper.rfanticoll(ReaderNo, CardNo);//由于读卡器识别区域内可能同时存在多张M1卡,因此需要进行防冲突操作
  4)验证分区密码
  int success=M1Oper.rfAuthentication(ReaderNo,0,2);// 对于ReaderNo设备识别到的M1卡,验证0扇区的密码
  5)数据操作
  M1Oper.rfRead(ReaderNo,2,data);//对于ReaderNo设备识别到的M1卡,读取卡中区块编号为2的数据,并存储到data(字节数组)中
  4 总结
  本文介绍了应用射频识别技术实现对防作弊称重系统中客户以及货车身份进行识别的具体流程以及详细实现代码。通过射频识别技术,在简化系统操作的同时,能够杜绝冒充用户提取货物、冒充车辆进行称重等一系列的作弊行为,可以为称重企业挽回巨额经济损失,并提高企业管理水平。