郑培强
(福建省计量科学研究院,福建 福州 350012)
随着电子技术的迅速发展,不少商贩为谋取利益,采用改装、加装电路开关、遥控装置、加装芯片等作弊手段,坑害消费者利益。由于缺乏行之有效的监管手段,这些电子秤基本处于失控状态,对社会的公平公正造成了严重的影响。文中提出了一种基于Android和NFC技术的电子秤移动监管系统,该系统具有电子秤信息登记、激活授权、维修授权、拆开授权、检定登记、检定信息读取等监管功能,实现对电子秤高效便捷的监管。系统的所有操作均可以上传到后台管理系统,以方便监管人员进行追溯,从而防止电子秤作弊现象的发生。
Android系统是由Google发布的一款开源的智能移动终端操作系统,其对智能移动终端的迅速普及起着至关重要的作用。Android系统架构共包括四层。
2.1.1 应用程序层
该层存在着一些系统应用,例如电话、联系人、短信息等。开发人员开发的第三方应用也存在于该层,应用程序开发使用Java语言。
2.1.2 应用程序框架层
开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用。任何一个应用程序,都可以发布它的功能块供其它的应用程序引用(不过得遵循框架的安全性限制)。用户可以对系统提供的一些基础控件进行重新设计,以实现多样化、定制化的效果。
2.1.3 系统运行库层
该层包含了一些C/C++库,这些库能被Android系统中不同的组件使用,它们通过Android应用程序框架为开发者提供服务。该层还包含了一个Java核心库,该核心库提供了Java编程语言核心库的大部分功能。
2.1.4 Linux内核层
Android 的核心系统服务依赖于Linux 2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型,Linux内核也同时作为硬件和软件栈之间的抽象层。
近 场 通 信(Near Field Communication,NFC),又称近距离无线通信,是一种短距离的高频无线通讯术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英吋)内交换数据。这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体)、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。目前近场通信已通过成为ISO/IEC IS 18092国际标准、EMCA-340标准与ETSI TS 102 190标准。
本系统主要由防作弊电子秤、移动终端和后台监管平台组成。移动终端通过3G或WIFI接入互联网与监管系统平台进行通讯,监管系统将密钥和数据下发到移动终端,移动终端将数据上传到监管系统平台。电子秤和移动终端之间通过NFC协议进行通讯,移动终端将获得的密钥和数据下发到电子秤或者从电子秤中读取数据。
图1 系统整体结构
移动终端是电子秤和监管系统平台间通讯的桥梁,移动终端需支持NFC通讯。普通用户、监管机构、检定机构、生产厂家、维修厂家均可以通过移动终端进行相应的功能的操作,移动终端的主要功能有电子秤登记、电子秤激活、电子秤授权、拆开授权、检定登记、电子秤信息读取、检定登记等功能,通过这些功能,移动终端可以向电子秤和管理系统平台进行数据交换。
图2 电子秤移动监管总体流程
(1)电子秤生产厂家利用支持NFC的手持端进行电子秤登记(可逐台登记也可批量登记),由监管部门审核后,每台电子秤均生成电子秤ID和密钥。
(2)通过NFC手持端进行电子秤激活授权,把管理系统平台上生成的电子秤ID和密钥下发到电子秤,激活后的电子秤就可以进行检定登记,而后交付用户使用。
(3)如果电子秤内损坏需要维修或者部件需要更换可以进行电子秤授权,把新的电子秤信息更新到服务器并重新下发密钥。
(4)电子秤需要拆开可进行拆开授权,防止电子秤被非法拆开,非法拆开的电子秤无法使用。
(5)检定不合格的电子秤或者周检到期的电子秤无法使用,需进行检定授权后重新检定才能用。
表1 移动监管系统功能
4.3.1 NFC标签和移动终端的初始化
文中的NFC标签采用的是NTAG216,NTAG216具有888字节用户存储器,符合ISO/IEC14443类型A规范,工作频率为13.56 MHz,传输波特率为106 kb/s,具有低功耗、防干扰、快速读取等特点,在使用本系统前需对NFC标签中的存储内容进行地址分配,NFC标签中的存储内容包括电子秤硬件信息、厂家信息、检定信息等内容。移动终端的初始化如下图3所示:
图3 移动终端的初始化
4.3.2 WEBSERVIC服务连接的实现
智能终端是通过WEBSERVICE与管理系统平台进行通讯,以下代码实现了服务连接的类:
publicclassConnRequest {publicstaticStringbaseUrl= "http://esms.fjjl.net/WS/EscaleWS.asmx/";
publicStringTAG = getClass().getName();
voidConnLogin(Contextcontext,ConnHandle rconnHandler,StringuserId,StringmsCode)
{String operation = "Login";
if (!HttpCaller.isNetWorkStatus(context)) {
Toast.makeText(context, R.string.NetWorkAlarm, Toast.LENGTH_SHORT).show();}
else{HttpCallerhc = HttpCaller.getInstance();
Stringurl = baseUrl+operation+"?" + "us erId="+userId+"&msCode="+msCode;
Log.d("ConnLogin", "url : "+url);
LogingParse parse = newLogingParse(0,connHandler);
hc.request(url, connHandler, HttpOrder.CT_XML, parse);
LoadingActCotroller la = LoadingActCotroller.
getInstance(context, hc);
la.startLoading();
}}}
4.3.3 NFC通讯功能的实现
智能终端与电子秤之间采用的是NFC进行通讯,以下代码分别实现了读取标签和写入标签的功能:
/*读取标签内容*/
privatebyte[]readFormTag(int offset,int length) throwsIOException,
Exception {if (length == 0)returnnull;
byte[]result = null;
intloaction = 0;
int page = offset / 4;// 读取初始页面
intreadpages = (length - (16 -loaction)) / 16 + 1 + 1;// 需要读的页面
for (inti = 0; i }elseif (i == readpages - 1) {byte[]datas = null; datas = cutOutByte(this.tagUtil.readFourPage(intent,(byte) (page + i *4), false), 0, length- (16 - loaction) -(readpages - 2) * 16); result = getMergeBytes(result, datas); }else {byte[]datas = null; datas = this.tagUtil.readFourPage(intent,(byte) (page + i * 4),false); result = getMergeBytes(result, datas); } }return result;}}/*写入标签内容*/ privatevoidwriteToTag(int offset,byte[]data) throwsIOException, Exception { intloaction = offset % 4;// 在一个page中的位置 byte[]pByteA = null;// 在一个page中要写入初始位置前的数据 int page = offset / 4;// 写入页面的初始页 int length = data.length;// 数据的长度 this.tagUtil.writeTag(intent, (byte)(page),cutOutByte(data, 0, 4), false);// 写入第一页 intmore_pages = (length - 4) / 4 + 1;//继续写入的页数(总页数-1) for (inti = 1; i<= more_pages; i++) { if (i == more_pages) {// 最后一页 intwriteNum = (length - 4) % 4;// 最后一页写入的位数 this.tagUtil.writeTag(intent,(byte)(page + more_pages), getMergeBytes( cutOutByte(data, 4 * i, writeNum), this.readFormTag((page + more_pages) * 4 + writeNum, 4 - writeNum)), false); }else { this.tagUtil.writeTag(intent, (byte)(page + i), cutOutByte(data, 4 * i, 4), false); } }} 在Android系统中,程序布局由Layout文件夹中的XML文件进行设置,以下是部分应用页面的展示: 图4 应用界面展示 随着无线网络的不断发展,智能移动终端的迅速普及,基于Android和NFC技术已经在越来越多的领域得到了应用,比如门禁、车票、支付、海报、数据传输等。当前作弊电子秤越来越泛滥,已成为监管者越来越头疼的一个问题,文中设计的基于Android和NFC技术的电子秤监管系统实现了电子秤与监管平台之间的数据交换,为现场监管提供了一种有效、便捷的手段,保证市场的公平公正,维护消费者利益,树立消费者对计量器具的信心。 [1]郑培强.利用RFID技术对计量器具进行动态监管探讨[J].质量技术监督研究.2012(3). [2]周岸.防作弊电子计价秤的研制[J].衡器 2010.39(10).48-52. [3]孙业梅,成建生,刘家骏.防止数字指示秤技术作弊方法的分析和研究[J].计量技术,2013(10). [4]罗建,袁明春,黄榜.电子式贸易结算用计量器具计量管理方法研究[J].计量技术,2013(9). [5]侯有仁,曾理.电子秤计量防作弊的研究——基于物联网技术的防作弊电子秤和信息系统[C].//秤重科技——秤重技术研讨会.2011.5 应用界面展示
6 结束语