針對目前電子計價秤軟件作弊導致計量難、監管難的問題,設計一種八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臺式電子計價秤等電子計價秤的作 弊測試,實用性強。