針對目前電子計價秤軟件作弊導(dǎo)致計量難、監(jiān)管難的問題,設(shè)計一種八CS — 30電子計價秤輸出截獲系統(tǒng),可 應(yīng)用于電子計價秤作弊檢測系統(tǒng),實現(xiàn)電子計價秤作弊自動檢測。該ACS — 30電子計價秤輸出截獲系統(tǒng)以八tmel SAM3X8E為控制核心,基于電子計價秤常用顯示輸出設(shè)備LCD顯示屏、LED顯示屏的驅(qū)動原理,對顯示屏引腳進行 信號讀取,經(jīng)分析、處理后得到顯示屏顯示數(shù)值。實驗結(jié)果表明,模擬載荷值為2. 0kg和10. 0kg時,該系統(tǒng)對帶LED 顯示屏的電子計價秤的輸出截取錯誤率分別為0%、0. 2%,對帶LCD顯示屏的電子計價秤的輸出截取錯誤率分別為 0%、0. 1%,再結(jié)合上位機進行二次校驗,錯誤率低于百萬分之一。該系統(tǒng)工作穩(wěn)定,適用性強,可配合檢測系統(tǒng)實現(xiàn) 對電子計價秤的自動化作弊檢測。
0.引言
電子計價秤作為一種常用的計量器具,具 有稱量方便、計算快捷、顯示直觀的優(yōu)點,廣泛應(yīng)用 于超市、市場等交易場所的稱重測量。然而,不法分子利用各種手段人為地修改稱重結(jié)果,通過這些電子 秤作弊手法欺騙消費者的不法行為時有發(fā)生,嚴重影 響貿(mào)易結(jié)算的公平性。在各種電子秤作弊的實現(xiàn)方 式中,軟件作弊由于其無需硬件改動和易恢復(fù)等特 點,使執(zhí)法人員往往對其束手無策,出現(xiàn)了計量難、監(jiān) 管難的問題3。對于電子計價秤軟件作弊,由于幾乎 不能獲取源代碼進行白盒分析,所以其檢測方法通常 為窮舉法。面對眾多的密碼組合方式,須采用自動 化檢測方法,其中,自動截獲電子計價秤重量顯示器端的輸出結(jié)果是實現(xiàn)自動化檢測的重要環(huán)節(jié)。
針對上述電子計價秤軟件作弊導(dǎo)致計量難、監(jiān)管 難的問題,本文設(shè)計用于電子計價秤作弊檢測的電子 計價秤輸出截獲系統(tǒng),在分析LED和LCD顯示屏顯 示原理和特點的基礎(chǔ)上,分別設(shè)計、實現(xiàn)基于 SAM3X8E的LED顯示屏輸出截取模塊和LCD顯示 屏輸出截取模塊,結(jié)合上位機實現(xiàn)電子稱軟件作弊檢 測,具有很好的應(yīng)用前景。
1.電子計價秤作弊檢測系統(tǒng)
圖1是電子計價秤作弊自動檢測裝置原理圖。 為達到自動化測試要求,要求電子計價秤作弊檢測系 統(tǒng)的硬件可以實現(xiàn)以下功能:1)鍵盤模擬,通過軟件 對電子計價秤鍵盤輸入進行模擬;)輸出截獲,截獲 電子計價秤稱重顯示器端輸出結(jié)果并傳輸給自動化 測試控制軟件;3)模擬目標電子稱的載荷信號。
圖1電子計價秤作弊自動檢測裝置原理圖 考慮上述硬件需求,本電子計價秤作弊檢測系統(tǒng) 檢測部分采用C/S構(gòu)架,分為數(shù)據(jù)庫服務(wù)器端、測試 機端和單片機采集端。其中,服務(wù)器端運行SQL SERVER數(shù)據(jù)庫,作為系統(tǒng)的存儲數(shù)據(jù)庫;測試機端 運行上位機程序,作為作弊檢測系統(tǒng)的控制部分; ARM單片機采集端用于獲取電子秤屏幕顯示信息、 執(zhí)行電子秤按鍵閉合、模擬電子秤傳感器輸出數(shù)據(jù) 等。
上位機程序根據(jù)作弊碼規(guī)則自動生成作弊碼序 列,將該序列傳送至單片機,單片機控制電子開關(guān)執(zhí) 行鍵盤按鈕閉合操作模擬物理按鍵按下,并給出模擬 的重量傳感器信號,再由電子秤顯示信息;此時,輸出 截獲模塊抓取電子秤顯示屏數(shù)據(jù)進行比較,以此判斷 電子秤是否作弊,循環(huán)執(zhí)行以下流程即可實現(xiàn)窮舉測 試:)清零、去皮操作;2)給定模擬載荷,獲取該載荷 下重量屏幕顯示值,并記為W0;3)輸入待測按鍵序 列;4)獲取當(dāng)前屏幕顯示值W1,并與W0作比較,判 斷該按鍵序列是否為作弊碼。
2.電子計價秤輸出截獲系統(tǒng)
ACS — 30電子計價秤的顯示一般分為“質(zhì)量” “單價” “總價” 3個顯示屏,常見的顯示輸出設(shè)備為LED數(shù)碼管或LCD液晶屏。
顯示屏輸出截獲可通過以下途徑實現(xiàn):)截獲主 控芯片發(fā)送給驅(qū)動芯片的命令進行破譯;2)直接捕捉 顯示屏管腳信息進行破譯。方法1)僅需少量接線便 可捕捉3個顯示屏的信息,方便快捷,但需針對不同 驅(qū)動芯片進行編程適配;方法2)需較多的接線,但可 直接根據(jù)顯示原理獲取顯示屏信息,無需針對不同驅(qū) 動芯片進行編程適配,通用性強。綜合實際情況,本 文采用方法2)策略進行顯示屏信息截獲。下面分別 介紹LED數(shù)碼管顯示屏、LCD液晶屏的輸出截獲系 統(tǒng)設(shè)計。
2. 1 LED顯示屏輸出截獲技術(shù)
2.1.1LED顯示屏輸出截獲原理
LED數(shù)碼管是由多個發(fā)光二極管封裝成“8”字 型器件,引線已在內(nèi)部連接,只需引出各筆劃段引腳 及公共電極。各筆畫段及公共電極分別由字母A、B、 C、D、E、F、G和DP來表示,如圖2所示。
LED數(shù)碼管按照結(jié)構(gòu)分為共陰極、共陽極。共 陰極即COM端接低電平、相應(yīng)各筆畫段電極引腳接 高電平,即可點亮該段;共陽極即COM端接高電、相 應(yīng)各筆畫段電極引腳接低電平,即可點亮該段。
由于質(zhì)量顯示屏由多位數(shù)字組成(通常為5位), 為節(jié)省主控芯片的I/O 口,其驅(qū)動方式一般為動態(tài)掃 描驅(qū)動,即通過專用LED數(shù)碼管驅(qū)動芯片,分時輪流 控制各LED數(shù)碼管的COM端,使各數(shù)碼管輪流受控 顯示,每位元數(shù)碼管的點亮?xí)r間約為1ms或更短。由 于人類視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),各數(shù) 碼管輪流顯示方式給人的印象就如一組不存在閃爍 感的數(shù)字。
質(zhì)量顯示屏中驅(qū)動LED接線方式為各位數(shù)碼管 相同段電極引腳相互連接,然后連接至驅(qū)動芯片,各 COM引腳單獨連接至驅(qū)動芯片,常見的LED驅(qū)動芯片有!A6932、BL1616s 等[6一。
通過邏輯分析儀捕捉LED數(shù)碼管管腳電平可直 觀看出其驅(qū)動原理,如圖3所示。圖中MyBus0[0]連 接電子計價秤重量顯示屏中最左側(cè)十位顯示位的 COM引腳,其后分別連接該位數(shù)碼管的G、F、A、B、 E、D引腳??煽闯觯?dāng)十位的COM端置零時,G、F、A、B、E、D引腳對應(yīng)電平序列為“101111”,根據(jù)圖2 可推斷該位顯示數(shù)字為“2”(對于純數(shù)字顯示,C引腳 電平不影響區(qū)分0?9數(shù)字顯示);從圖3還可看出該 顯示屏各個位數(shù)碼管點亮?xí)r間約為0. 2ms,完成一輪 掃描的時間約為 4ms。
LED數(shù)碼管驅(qū)動芯片的COM引腳為開漏輸出, 故選定該位時COM引腳為低電平,未選中該位時 COM引腳為高阻態(tài)。
通過上述分析,可得出LED數(shù)碼管顯示屏輸出 截取方法,以共陰極為例,掃描各位數(shù)碼管的COM 端,若該位COM端為低電平,讀取各段引腳電平,根 據(jù)圖2所示各段位置即可得出該位顯示數(shù)值。此時, 完成所有位的COM引腳掃描即可得出重量顯示屏 的輸出數(shù)值。
2.1.2LED顯示屏輸出截獲技術(shù)
基于上述LED數(shù)碼管顯示屏輸出截取方法,設(shè) 計LED數(shù)碼管顯示屏輸出截取模塊,采用Atmel SAM3 X8E作為主控芯片,設(shè)置內(nèi)部上拉模式(用于 區(qū)分高阻態(tài)與低電平)逐位讀取各COM引腳電平, 當(dāng)該位COM引腳為低電平時,讀取各筆畫段引腳電 平模擬值;通過閾值函數(shù),讀取該筆畫段引腳模擬信 號值,模擬信號值超過設(shè)定閾值時返回1,否則返回 0。讀取該位完畢后,返回的數(shù)值組成一個8位的字 節(jié),并與0?9數(shù)字的目標字節(jié)進行匹配,便可得到該 位的顯示數(shù)值。若返回字節(jié)與0?9數(shù)字的目標字節(jié) 不匹配,則返回Error。掃描完該顯示屏所有COM引 腳,即可得到顯示屏的顯示值。圖4是LED數(shù)碼管 顯示屏輸出截取模塊程序流程圖。
該模塊接受上位機的命令后執(zhí)行上述截取程序, 獲得顯示屏的顯示值后,控制板通過串口將該顯示值 信息傳送至上位機進行處理。
圖4 LED數(shù)碼管顯示屏輸出截取模塊程序流程圖
2.2LED顯示屏輸出截獲
2.2.1 LCD 顯示屏輸出截獲 段式LCD液晶屏管腳分為段電極(SEG)和背電 極(COM),與LED數(shù)碼管驅(qū)動方式不同,LCD液晶 屏須采用交流電壓驅(qū)動,以保持其穩(wěn)定顯示。背電極 (COM)電平一直處于交流變換狀態(tài),當(dāng)某個背電極 (COM)和某個段電極(SEG)之間加上足夠的交流電 壓后,便將對應(yīng)段點亮。常見的臺式電子秤LCD驅(qū) 動芯片有HT1621、TM7711等。
圖5所示為電子計價秤通常采用的LCD顯示屏 引腳圖,1?4管腳分別為COM1?COM4管腳,5?14 管腳分別為SEG1?SEG10管腳。若要使某一段顯 示,需在對應(yīng)的段電極(SEG)和背電極(COM)之間加 上足夠的交流電壓,即相應(yīng)背電極(COM)為最高電 壓值和對應(yīng)段電極(SEG)為最低電壓值,或背電極(COM)為最低電壓值和對應(yīng)段電極(SEG)為最高電 壓值。結(jié)合表1所示五位段式LCD顯示屏引腳功 能對照表,便可得到各個數(shù)字點亮的規(guī)則。
通過示波器分析LCD顯示屏背電極(COM)管 腳,分析結(jié)果如圖6所示,從上至下分別為COM1、 COM2、COM3、COM4的電平波形,COM1 口電平呈 周期變化,共有4種電平(電平個數(shù)取決于偏置設(shè)置 bias):最高、最低、次高和次低,每種電平持續(xù)時間約 2ms,最高電平比最低電平約高S 3V,COM1?COM4 按順序逐個掃描。
圖6 LCD背電極(COM1?COM4)電平示意圖 通過上述分析,可得出LCD顯示屏信息截取方 法:依次掃描4個背電極(COM1?COM4),電壓最低 時,判斷各段電極(SEG)是否為最高電平,若是最高 電平,則對應(yīng)表1中的段點亮;若不是最高電平,則該 段不顯示。掃描完所有位,再結(jié)合圖6和表1的對應(yīng) 規(guī)則則可獲得顯示屏的顯示信息。
2.2.2 LCD顯示屏輸出截獲技術(shù)
基于上述LCD顯示屏信息截取算法,設(shè)計LCD 顯示屏輸出截取模塊:采用八tmel SAM3X8E單片機 作為主控芯片,采集LCD顯示屏各管腳模擬值信息, 按照上述LCD顯示屏信息截取方法分析、處理后獲 得顯示屏信息,再通過串口傳送至上位機進行處理。
編程實現(xiàn)LCD顯示屏輸出截獲功能時,按照逐 位捕捉的方式,分別得到每位數(shù)字,然后組合成質(zhì)量 顯示數(shù)值。每位顯示值均需2位段電極(SEG)和全 部4個背電極(COM)共同確定,故每一位顯示值對應(yīng) 的段電極分別為:左起第1位對應(yīng)SEG1、SEG2,第2 位對應(yīng)SEG3、SEG4,第3位對應(yīng)SEG5、SEG6,第4 位對應(yīng)SEG7、SEG8,第5位對應(yīng)SEG9、SEG10。以 第5位捕捉為例,圖7是其輸出截取程序流程圖,捕 捉其他位顯示值程序流程與之類似。
圖7 LCD第5位數(shù)字輸出截取程序流程圖 讀取段電極(SEG)模擬值時,設(shè)置閾值函數(shù),讀 取段電極模擬信號值,模擬信號值超過閾值設(shè)定值時 返回1,否則返回0。讀取該位完畢后,返回的數(shù)值組 成一個8位的字節(jié),與0?9數(shù)字的目標字節(jié)進行匹 配,便可獲得該位的顯示數(shù)值;若返回字節(jié)與0?9數(shù) 字的目標字節(jié)不匹配則返回 Error。
整個LCD顯示信息獲取需讀完所有位,其程序 流程圖與LED輸出截取模塊相同,如圖4所示。
3.系統(tǒng)實現(xiàn)和驗證
通常電子計價秤輸出截獲的上位機程序采用 C#. net開發(fā),通過串口與ARM單片機控制板通信, 并控制單片機控制板對電子計價秤進行模擬鍵盤輸 入、輸出截獲、模擬載荷等操作。電子計價秤輸出截 獲系統(tǒng)集成5大模塊:樣品管理模塊、按鍵序列生成
模塊、作弊檢測模塊、鍵盤適配模塊、歷史作弊碼模 塊。電子計價秤輸出截獲系統(tǒng)能快速檢測5位以內(nèi) 位數(shù)的作弊碼。圖8是電子計價秤輸出截獲系統(tǒng)運 行界面。
下面對電子計價秤輸出截獲系統(tǒng)的輸出截獲效
果進行實驗驗證。給定電子計價秤一個特定并穩(wěn)定 的載荷信號,調(diào)用電子計價秤輸出截獲系統(tǒng)的輸出截 取模塊,每隔2s讀取1次輸出顯示值,分別測試1000 次。表2和表3分別該系統(tǒng)對帶LED顯示屏的電子 計價秤、帶LCD顯示屏電子計價秤的實驗結(jié)果。
從表2和表3可以看出,未加校驗的輸出截獲存 在一定的錯誤率,所以需在上位機上對數(shù)據(jù)進行2次 校驗:即若兩次截取值不同則重新截取,直至出現(xiàn)相 同值;并且在測試結(jié)束后,若判定電子計價秤存在作 弊,還需對判定的作弊密碼進行復(fù)測。經(jīng)校驗后的錯 誤率低于百萬分之一,則滿足相關(guān)測試標準的要 求。
4.結(jié)束語
本文設(shè)計的電子計價秤輸出截獲系統(tǒng)通過直 接捕捉LED與LCD顯示屏引腳信息實現(xiàn)顯示屏輸 出截取功能,與截取主控芯片發(fā)送給驅(qū)動芯片命令的 方式相比,具有更好的通用性。
電子計價秤輸出截獲系統(tǒng)分別對帶LED顯 示屏的電子計價秤和對帶LCD顯示屏的電子計價秤的輸出截取錯誤率為0%、0. 2% (模擬載荷值為 2 0kg和1Q 0kg)和0%、0. 1%(模擬載荷值為2 0kg 和10. 0kg),再通過上位機進行2次校驗,錯誤率低于 百萬分之一。
3)電子計價秤輸出截獲系統(tǒng)穩(wěn)定性較高,通過 上位機校驗后,準確性滿足相關(guān)測試標準的要求,可 應(yīng)用于八CS — 30臺式電子計價秤等電子計價秤的作 弊測試,實用性強。