针对目前电子计价秤软件作弊导致计量难、监管难的问题,设计一种八CS — 30电子计价秤输出截获系统,可 应用于电子计价秤作弊检测系统,实现电子计价秤作弊自动检测。该ACS — 30电子计价秤输出截获系统以八tmel SAM3X8E为控制核心,基于电子计价秤常用显示输出设备LCD显示屏、LED显示屏的驱动原理,对显示屏引脚进行 信号读取,经分析、处理后得到显示屏显示数值。实验结果表明,模拟载荷值为2. 0kg和10. 0kg时,该系统对带LED 显示屏的电子计价秤的输出截取错误率分别为0%、0. 2%,对带LCD显示屏的电子计价秤的输出截取错误率分别为 0%、0. 1%,再结合上位机进行二次校验,错误率低于百万分之一。该系统工作稳定,适用性强,可配合检测系统实现 对电子计价秤的自动化作弊检测。
0.引言
电子计价秤作为一种常用的计量器具,具 有称量方便、计算快捷、显示直观的优点,广泛应用 于超市、市场等交易场所的称重测量。然而,不法分子利用各种手段人为地修改称重结果,通过这些电子 秤作弊手法欺骗消费者的不法行为时有发生,严重影 响贸易结算的公平性。在各种电子秤作弊的实现方 式中,软件作弊由于其无需硬件改动和易恢复等特 点,使执法人员往往对其束手无策,出现了计量难、监 管难的问题3。对于电子计价秤软件作弊,由于几乎 不能获取源代码进行白盒分析,所以其检测方法通常 为穷举法。面对众多的密码组合方式,须采用自动 化检测方法,其中,自动截获电子计价秤重量显示器端的输出结果是实现自动化检测的重要环节。
针对上述电子计价秤软件作弊导致计量难、监管 难的问题,本文设计用于电子计价秤作弊检测的电子 计价秤输出截获系统,在分析LED和LCD显示屏显 示原理和特点的基础上,分别设计、实现基于 SAM3X8E的LED显示屏输出截取模块和LCD显示 屏输出截取模块,结合上位机实现电子称软件作弊检 测,具有很好的应用前景。
1.电子计价秤作弊检测系统
图1是电子计价秤作弊自动检测装置原理图。 为达到自动化测试要求,要求电子计价秤作弊检测系 统的硬件可以实现以下功能:1)键盘模拟,通过软件 对电子计价秤键盘输入进行模拟;)输出截获,截获 电子计价秤称重显示器端输出结果并传输给自动化 测试控制软件;3)模拟目标电子称的载荷信号。
图1电子计价秤作弊自动检测装置原理图 考虑上述硬件需求,本电子计价秤作弊检测系统 检测部分采用C/S构架,分为数据库服务器端、测试 机端和单片机采集端。其中,服务器端运行SQL SERVER数据库,作为系统的存储数据库;测试机端 运行上位机程序,作为作弊检测系统的控制部分; ARM单片机采集端用于获取电子秤屏幕显示信息、 执行电子秤按键闭合、模拟电子秤传感器输出数据 等。
上位机程序根据作弊码规则自动生成作弊码序 列,将该序列传送至单片机,单片机控制电子开关执 行键盘按钮闭合操作模拟物理按键按下,并给出模拟 的重量传感器信号,再由电子秤显示信息;此时,输出 截获模块抓取电子秤显示屏数据进行比较,以此判断 电子秤是否作弊,循环执行以下流程即可实现穷举测 试:)清零、去皮操作;2)给定模拟载荷,获取该载荷 下重量屏幕显示值,并记为W0;3)输入待测按键序 列;4)获取当前屏幕显示值W1,并与W0作比较,判 断该按键序列是否为作弊码。
2.电子计价秤输出截获系统
ACS — 30电子计价秤的显示一般分为“质量” “单价” “总价” 3个显示屏,常见的显示输出设备为LED数码管或LCD液晶屏。
显示屏输出截获可通过以下途径实现:)截获主 控芯片发送给驱动芯片的命令进行破译;2)直接捕捉 显示屏管脚信息进行破译。方法1)仅需少量接线便 可捕捉3个显示屏的信息,方便快捷,但需针对不同 驱动芯片进行编程适配;方法2)需较多的接线,但可 直接根据显示原理获取显示屏信息,无需针对不同驱 动芯片进行编程适配,通用性强。综合实际情况,本 文采用方法2)策略进行显示屏信息截获。下面分别 介绍LED数码管显示屏、LCD液晶屏的输出截获系 统设计。
2. 1 LED显示屏输出截获技术
2.1.1LED显示屏输出截获原理
LED数码管是由多个发光二极管封装成“8”字 型器件,引线已在内部连接,只需引出各笔划段引脚 及公共电极。各笔画段及公共电极分别由字母A、B、 C、D、E、F、G和DP来表示,如图2所示。
LED数码管按照结构分为共阴极、共阳极。共 阴极即COM端接低电平、相应各笔画段电极引脚接 高电平,即可点亮该段;共阳极即COM端接高电、相 应各笔画段电极引脚接低电平,即可点亮该段。
由于质量显示屏由多位数字组成(通常为5位), 为节省主控芯片的I/O 口,其驱动方式一般为动态扫 描驱动,即通过专用LED数码管驱动芯片,分时轮流 控制各LED数码管的COM端,使各数码管轮流受控 显示,每位元数码管的点亮时间约为1ms或更短。由 于人类视觉暂留现象及发光二极体的余辉效应,各数 码管轮流显示方式给人的印象就如一组不存在闪烁 感的数字。
质量显示屏中驱动LED接线方式为各位数码管 相同段电极引脚相互连接,然后连接至驱动芯片,各 COM引脚单独连接至驱动芯片,常见的LED驱动芯片有!A6932、BL1616s 等[6一。
通过逻辑分析仪捕捉LED数码管管脚电平可直 观看出其驱动原理,如图3所示。图中MyBus0[0]连 接电子计价秤重量显示屏中最左侧十位显示位的 COM引脚,其后分别连接该位数码管的G、F、A、B、 E、D引脚。可看出,当十位的COM端置零时,G、F、A、B、E、D引脚对应电平序列为“101111”,根据图2 可推断该位显示数字为“2”(对于纯数字显示,C引脚 电平不影响区分0?9数字显示);从图3还可看出该 显示屏各个位数码管点亮时间约为0. 2ms,完成一轮 扫描的时间约为 4ms。
LED数码管驱动芯片的COM引脚为开漏输出, 故选定该位时COM引脚为低电平,未选中该位时 COM引脚为高阻态。
通过上述分析,可得出LED数码管显示屏输出 截取方法,以共阴极为例,扫描各位数码管的COM 端,若该位COM端为低电平,读取各段引脚电平,根 据图2所示各段位置即可得出该位显示数值。此时, 完成所有位的COM引脚扫描即可得出重量显示屏 的输出数值。
2.1.2LED显示屏输出截获技术
基于上述LED数码管显示屏输出截取方法,设 计LED数码管显示屏输出截取模块,采用Atmel SAM3 X8E作为主控芯片,设置内部上拉模式(用于 区分高阻态与低电平)逐位读取各COM引脚电平, 当该位COM引脚为低电平时,读取各笔画段引脚电 平模拟值;通过阈值函数,读取该笔画段引脚模拟信 号值,模拟信号值超过设定阈值时返回1,否则返回 0。读取该位完毕后,返回的数值组成一个8位的字 节,并与0?9数字的目标字节进行匹配,便可得到该 位的显示数值。若返回字节与0?9数字的目标字节 不匹配,则返回Error。扫描完该显示屏所有COM引 脚,即可得到显示屏的显示值。图4是LED数码管 显示屏输出截取模块程序流程图。
该模块接受上位机的命令后执行上述截取程序, 获得显示屏的显示值后,控制板通过串口将该显示值 信息传送至上位机进行处理。
图4 LED数码管显示屏输出截取模块程序流程图
2.2LED显示屏输出截获
2.2.1 LCD 显示屏输出截获 段式LCD液晶屏管脚分为段电极(SEG)和背电 极(COM),与LED数码管驱动方式不同,LCD液晶 屏须采用交流电压驱动,以保持其稳定显示。背电极 (COM)电平一直处于交流变换状态,当某个背电极 (COM)和某个段电极(SEG)之间加上足够的交流电 压后,便将对应段点亮。常见的台式电子秤LCD驱 动芯片有HT1621、TM7711等。
图5所示为电子计价秤通常采用的LCD显示屏 引脚图,1?4管脚分别为COM1?COM4管脚,5?14 管脚分别为SEG1?SEG10管脚。若要使某一段显 示,需在对应的段电极(SEG)和背电极(COM)之间加 上足够的交流电压,即相应背电极(COM)为最高电 压值和对应段电极(SEG)为最低电压值,或背电极(COM)为最低电压值和对应段电极(SEG)为最高电 压值。结合表1所示五位段式LCD显示屏引脚功 能对照表,便可得到各个数字点亮的规则。
通过示波器分析LCD显示屏背电极(COM)管 脚,分析结果如图6所示,从上至下分别为COM1、 COM2、COM3、COM4的电平波形,COM1 口电平呈 周期变化,共有4种电平(电平个数取决于偏置设置 bias):最高、最低、次高和次低,每种电平持续时间约 2ms,最高电平比最低电平约高S 3V,COM1?COM4 按顺序逐个扫描。
图6 LCD背电极(COM1?COM4)电平示意图 通过上述分析,可得出LCD显示屏信息截取方 法:依次扫描4个背电极(COM1?COM4),电压最低 时,判断各段电极(SEG)是否为最高电平,若是最高 电平,则对应表1中的段点亮;若不是最高电平,则该 段不显示。扫描完所有位,再结合图6和表1的对应 规则则可获得显示屏的显示信息。
2.2.2 LCD显示屏输出截获技术
基于上述LCD显示屏信息截取算法,设计LCD 显示屏输出截取模块:采用八tmel SAM3X8E单片机 作为主控芯片,采集LCD显示屏各管脚模拟值信息, 按照上述LCD显示屏信息截取方法分析、处理后获 得显示屏信息,再通过串口传送至上位机进行处理。
编程实现LCD显示屏输出截获功能时,按照逐 位捕捉的方式,分别得到每位数字,然后组合成质量 显示数值。每位显示值均需2位段电极(SEG)和全 部4个背电极(COM)共同确定,故每一位显示值对应 的段电极分别为:左起第1位对应SEG1、SEG2,第2 位对应SEG3、SEG4,第3位对应SEG5、SEG6,第4 位对应SEG7、SEG8,第5位对应SEG9、SEG10。以 第5位捕捉为例,图7是其输出截取程序流程图,捕 捉其他位显示值程序流程与之类似。
图7 LCD第5位数字输出截取程序流程图 读取段电极(SEG)模拟值时,设置阈值函数,读 取段电极模拟信号值,模拟信号值超过阈值设定值时 返回1,否则返回0。读取该位完毕后,返回的数值组 成一个8位的字节,与0?9数字的目标字节进行匹 配,便可获得该位的显示数值;若返回字节与0?9数 字的目标字节不匹配则返回 Error。
整个LCD显示信息获取需读完所有位,其程序 流程图与LED输出截取模块相同,如图4所示。
3.系统实现和验证
通常电子计价秤输出截获的上位机程序采用 C#. net开发,通过串口与ARM单片机控制板通信, 并控制单片机控制板对电子计价秤进行模拟键盘输 入、输出截获、模拟载荷等操作。电子计价秤输出截 获系统集成5大模块:样品管理模块、按键序列生成
模块、作弊检测模块、键盘适配模块、历史作弊码模 块。电子计价秤输出截获系统能快速检测5位以内 位数的作弊码。图8是电子计价秤输出截获系统运 行界面。
下面对电子计价秤输出截获系统的输出截获效
果进行实验验证。给定电子计价秤一个特定并稳定 的载荷信号,调用电子计价秤输出截获系统的输出截 取模块,每隔2s读取1次输出显示值,分别测试1000 次。表2和表3分别该系统对带LED显示屏的电子 计价秤、带LCD显示屏电子计价秤的实验结果。
从表2和表3可以看出,未加校验的输出截获存 在一定的错误率,所以需在上位机上对数据进行2次 校验:即若两次截取值不同则重新截取,直至出现相 同值;并且在测试结束后,若判定电子计价秤存在作 弊,还需对判定的作弊密码进行复测。经校验后的错 误率低于百万分之一,则满足相关测试标准的要 求。
4.结束语
本文设计的电子计价秤输出截获系统通过直 接捕捉LED与LCD显示屏引脚信息实现显示屏输 出截取功能,与截取主控芯片发送给驱动芯片命令的 方式相比,具有更好的通用性。
电子计价秤输出截获系统分别对带LED显 示屏的电子计价秤和对带LCD显示屏的电子计价秤的输出截取错误率为0%、0. 2% (模拟载荷值为 2 0kg和1Q 0kg)和0%、0. 1%(模拟载荷值为2 0kg 和10. 0kg),再通过上位机进行2次校验,错误率低于 百万分之一。
3)电子计价秤输出截获系统稳定性较高,通过 上位机校验后,准确性满足相关测试标准的要求,可 应用于八CS — 30台式电子计价秤等电子计价秤的作 弊测试,实用性强。