文中从系统整体结构设计、移动监管系统的总体流程设计、功能和关键技术的实现等方面,阐述了如何基于 Android 和 NFC 技术实现电子秤移动监管系统。该系统可满足政府部门对电子秤监管的需要,保护市场的公平公正,维护消费者的利益。
1.引言
随着电子技术的迅速发展,不少商贩为谋取利益,采用改装、加装电路开关、遥控装置、加装芯片等作弊手段,坑害消费者利益。由于缺乏行之有效的监管手段,这些电子秤基本处于失控状态,对社会的公平公正造成了严重的影响。文中提出了一种基于 Android 和 NFC 技术的电子秤移动监管系统,该系统具有电子秤信息登记、激活授权、维修授权、拆开授权、检定登记、检定信息读取等监管功能,实现对电子秤高效便捷的监管。系统的所有操作均可以上传到后台管理系统,以方便监管人员进行追溯 , 从而防止电子秤作弊现象的发生。
2 Android 系统及 NFC 技术简介
2.1 Android 系统简介
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 内核也同时作为硬件和软件栈之间的抽象层。
2.2NFC 技术简介
近 场 通 信(Near Field Communication,NFC),又称近距离无线通信,是一种短距离的高频无线通讯术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9 英吋)内交换数据。这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体)、诺基亚和索尼共同研制开发,其基础是 RFID 及互连技术。目前近场通信已通过成为 ISO/IEC IS 18092 国际标准、EMCA-340 标准与 ETSI TS 102 190 标准。
3.系统整体结构设计
本系统主要由防作弊电子秤、移动终端和后台监管平台组成。移动终端通过 3G 或 WIFI 接入互联网与监管系统平台进行通讯,监管系统将密钥和数据下发到移动终端,移动终端将数据上传到监管系统平台。电子秤和移动终端之间通过 NFC 协议进行通讯,移动终端将获得的密钥和数据下发到电子秤或者从电子秤中读取数据。
移动终端是电子秤和监管系统平台间通讯的桥梁,移动终端需支持 NFC 通讯。普通用户、监管机构、检定机构、生产厂家、维修厂家均可以通过移动终端进行相应的功能的操作,移动终端的主要功能有电子秤登记、电子秤激活、电子秤授权、拆开授权、检定登记、电子秤信息读取、检定登记等功能,通过这些功能,移动终端可以向电子秤和管理系统平台进行数据交换。
4.移动监管系统的实现
4.1 电子秤移动监管总体流程
(1)电子秤生产厂家利用支持 NFC 的手持端进行电子秤登记(可逐台登记也可批量登记),由监管部门审核后,每台电子秤均生成电子秤 ID 和密钥。(2)通过 NFC 手持端进行电子秤激活授权,把管理系统平台上生成的电子秤 ID 和密钥下发到电子秤,激活后的电子秤就可以进行检定登记,而后交付用户使用。
(3)如果电子秤内损坏需要维修或者部件需要更换可以进行电子秤授权,把新的电子秤信息更新到服务器并重新下发密钥。
(4)电子秤需要拆开可进行拆开授权,防止电子秤被非法拆开,非法拆开的电子秤无法使用。
(5)检定不合格的电子秤或者周检到期的电子秤无法使用,需进行检定授权后重新检定才能用。
4.2移动监管系统功能简介
4.3 系统关键技术的实现
4.3.1 NFC 标签和移动终端的初始化
文中的 NFC 标签采用的是 NTAG216,NTAG216具有 888 字节用户存储器,符合 ISO/IEC14443 类型 A 规范,工作频率为 13.56 MHz,传输波特率为 106 kb/s,具有低功耗、防干扰、快速读取等特点,在使用本系统前需对 NFC 标签中的存储内容进行地址分配,NFC 标签中的存储内容包括电子秤硬件信息、厂家信息、检定信息等内容。移动终端的初始化如下图 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();} e l s e { H t t p C a l l e r h c = H t t p C a l l e r .
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;// 读取初始页面
i n t r e a d p a g e s = ( l e n g t h - ( 1 6 - 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;
d a t a s = t h i s . t a g U t i l . 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);
}
}}
5.应用界面展示
Android 系统中,程序布局由 Layout 文件夹中的 XML 文件进行设置,以下是部分应用页面的展示:
6.结束语
随着无线网络的不断发展,智能移动终端的迅速普及,基于 Android 和 NFC 技术已经在越来越多的领域得到了应用,比如门禁、车票、支付、海报、数据传输等。当前作弊电子秤越来越泛滥,已成为监管者越来越头疼的一个问题,文中设计的基于 Android 和 NFC 技术的电子秤监管系统实现了电子秤与监管平台之间的数据交换,为现场监管提供了一种有效、便捷的手段,保证市场的公平公正,维护消费者利益,树立消费者对计量器具的信心。