硬幣的識別分為兩個(gè)方面:對于硬幣幣值的準確檢測;對于真幣、偽幣的準確鑒別。由于硬幣的復雜性,長(cháng)期以來(lái),對于硬幣的準確識別都難以很好的解決。目前,無(wú)論是國外還是國內,通常的解決方法都是基于單片機的電渦流檢測法。本文在電渦流檢測的基礎上,利用FPGA的快速處理特性和高可靠特性,對硬幣的厚度、直徑、材質(zhì)、電導率、磁導率等進(jìn)行了準確的檢測,以便準確地識別硬幣。 1 電渦流反射式互補檢測傳感器原理 電渦流檢測是建立在電磁感應原理基礎之上的一種無(wú)損檢測方法,它適用于導電材料,如果把一塊導體置于交變磁場(chǎng)之中,在導體中就有感應電流存在,即產(chǎn)生渦流,由于導體自身各種因素(如電導率、磁導率、形狀、尺寸和缺陷等)的變化會(huì )導致感應電流的變化,利用這種現象判知導體性質(zhì)、狀態(tài)的檢測方法,叫作電渦流檢測法。 在電渦流檢測中,是靠檢測線(xiàn)圈來(lái)建立交變磁場(chǎng)的;把能量傳遞給被檢導體,同時(shí)又通過(guò)渦流建立的交變磁場(chǎng)獲得被檢測導體中的質(zhì)量信息。 在本硬幣識別器中,采用探頭式線(xiàn)圈,由于硬幣在幣道中滾動(dòng)時(shí),其在徑向位置會(huì )產(chǎn)生微小的抖動(dòng),為了消除這種抖動(dòng)帶來(lái)的影響,在幣道兩邊都安裝有檢測線(xiàn)圈,進(jìn)行探頭互補式檢測。如圖1所示。 檢測線(xiàn)圈和檢測線(xiàn)路組成一個(gè)振蕩器,當硬幣通過(guò)幣道時(shí),線(xiàn)圈的電感會(huì )發(fā)生變化,引起檢測電路振蕩頻率發(fā)生變化。通過(guò)FPGA對振蕩頻率進(jìn)行檢測,以正確識別硬幣。 2 基于FPGA的等位移多點(diǎn)采樣原理 硬幣通過(guò)檢測線(xiàn)圈時(shí),會(huì )引起振蕩頻率發(fā)生變化,傳統的檢測方法通常是檢測變化的振蕩頻率的極值,即最大值。但這種檢測方法只有一個(gè)采樣點(diǎn),識別偽幣能力不強。也有人采用每過(guò)一段相同的時(shí)間取一次采樣點(diǎn),通過(guò)多采樣點(diǎn)提高識別效果。但是,當硬幣通過(guò)幣道時(shí),由于投幣力量、初始速度以及硬幣邊緣的光滑程度、硬幣的重量等的區別,并不是每一種硬幣通過(guò)檢測線(xiàn)圈時(shí)的速度都是一致的;同一種、甚至同一個(gè)硬幣,也并不是每次通過(guò)檢測線(xiàn)圈時(shí)的速度都是一致的。所以,若采取等時(shí)間間隔取樣,就會(huì )造成取樣時(shí),硬幣和檢測線(xiàn)圈的物理相對位置不一樣,引起檢測結果不一樣。這不僅會(huì )引起對偽幣可靠識別的準確性,也會(huì )影響對真幣的幣值檢測及真幣識別的可靠性,甚至把真幣當成偽幣來(lái)識別。正是由于這些問(wèn)題,在實(shí)際的硬幣識別器產(chǎn)品中,通常采用的是只采取一個(gè)采樣點(diǎn),即極值采樣法,但這種單點(diǎn)采樣法由于只在硬幣通過(guò)幣道的某一瞬間獲取硬幣的參數信息,有很大的局限性,識別偽幣能力不強。 在該設計中,采取等位移多點(diǎn)取樣法,完全克服了以上方法的缺點(diǎn),具有很高的識幣能力。同時(shí),還能對硬幣的直徑進(jìn)行檢測。 由于采樣時(shí)間和采樣間隔都很短,對系統的高速性和可靠性有較高的要求,用傳統的單片機難以滿(mǎn)足要求,在該設計中,通過(guò)FPGA完成對數據的高速采樣和處理。 2.1 系統原理 圖2為系統原理框圖。在幣道的不同位置安裝有幾個(gè)光電傳感器,通過(guò)基于FPGA的脈沖寬度測量,可檢測得到硬幣通過(guò)幣道中光電傳感器之問(wèn)距離的間隔時(shí)間。通過(guò)FPGA的高速數據處理,可得到硬幣的直徑、硬幣通過(guò)幣道時(shí)的加速度,并得到硬幣進(jìn)行等位移多點(diǎn)采樣的采樣時(shí)刻。當硬幣通過(guò)檢測線(xiàn)圈時(shí),就進(jìn)行基于 FPGA的多倍周期同步測頻。再由FPGA對數據進(jìn)行高速處理,得到硬幣的特征參數,再把該特征參數和E2PROM中的硬幣特征值進(jìn)行比較,就可以判別硬幣的幣值和真偽。 2.2 基于FPGA的間隔時(shí)間測量 圖3為基于FPGA的間隔時(shí)間測量原理示意圖,A,B,C三點(diǎn)為光電檢測點(diǎn)。當硬幣通過(guò)光電檢測點(diǎn)時(shí),光電檢測電路的輸出由低電平跳變?yōu)楦唠娖。圖4為硬幣通過(guò)幣道時(shí)A,B,C三個(gè)光電傳感器的輸出波形。 圖4中,ta為硬幣前沿通過(guò)A點(diǎn)到硬幣后沿經(jīng)過(guò)A點(diǎn)的間隔時(shí)間;tb為硬幣前沿通過(guò)A點(diǎn)到硬幣前沿通過(guò)B點(diǎn)的間隔時(shí)間;tc為硬幣前沿通過(guò)B點(diǎn)到硬幣前沿通過(guò)C點(diǎn)的間隔時(shí)間。 光電傳感器的輸出接到FPGA,由FPGA對標準頻率信號進(jìn)行計數,不難測得硬幣通過(guò)幣道時(shí)的間隔時(shí)間ta,tb,tc。在本設計中,FPGA的時(shí)鐘頻率為100 MHz,即標準頻率信號為100 MHz。經(jīng)過(guò)實(shí)際檢測,ta,tb,tc的最小時(shí)間為0.01 s,則可估算出最大測量誤差為: 可見(jiàn)有足夠高的精確度。 2.3 硬幣直徑檢測 通過(guò)光電傳感器實(shí)現硬幣直徑及通過(guò)幣道的加速度的檢測。如圖3,在幣道的A點(diǎn)、B點(diǎn)和C點(diǎn)分別安裝光電收發(fā)器。AB點(diǎn)和BC點(diǎn)的距離相等且為s。 硬幣通過(guò)幣道時(shí)做勻加速度運動(dòng),設加速度為a,下面通過(guò)由FPGA高速檢測得到的ta,tb,tc以及光電傳感器之間的距離s來(lái)求加速度a,并求出硬幣的直徑d。 設硬幣的前沿通過(guò)A點(diǎn),B點(diǎn),C點(diǎn)的速度分別為vA,vB,vc,則有: 由此可計算出硬幣通過(guò)幣道時(shí)的加速度a。設光電傳感器A距離幣道底部的垂直距離為h;光電傳感器A檢測點(diǎn)掃過(guò)硬幣的長(cháng)度為l。圖5為硬幣的半徑r和h,l的關(guān)系圖。由圖5可得如下公式: 硬幣的直徑為d=2r,由式(1)~式(6)可得: 式中:h和s是已知的;ta,tb,tc可通過(guò)FPGA檢測得到。 由此公式,就可通過(guò)測量硬幣通過(guò)的時(shí)間ta,tb,tc并計算得到硬幣的直徑d。 2.4 等距離多點(diǎn)采樣 見(jiàn)圖3,D,E點(diǎn)位置設在檢測線(xiàn)圈的邊緣,CD間的距離為s。當硬幣前沿通過(guò)D點(diǎn)時(shí),開(kāi)始采樣;當硬幣后沿通過(guò)E點(diǎn)時(shí),停止采樣。為了充分地采集硬幣在各個(gè)位置的參數信息,采樣點(diǎn)應足夠多。在本設計中,沿硬幣滾動(dòng)的方向每間隔0.1 mm位移采樣一次。 檢測線(xiàn)圈和檢測電路組成振蕩器,振蕩頻率既不能太高,也不能太低。在本設計中,振蕩頻率為200 kHz(此頻率指硬幣未通過(guò)線(xiàn)圈時(shí)的振蕩頻率)。經(jīng)實(shí)際測試,硬幣通過(guò)檢測線(xiàn)圈時(shí)的速度范圍為0.1~0.5 m/s?梢(jiàn),硬幣通過(guò)幣道時(shí)的速度有較大的變化范圍,同一硬幣多次投幣時(shí),通過(guò)檢測線(xiàn)圈同一點(diǎn)(比如:A點(diǎn))的速度也有區別。為了實(shí)現每次投幣多點(diǎn)采樣時(shí),檢測線(xiàn)圈和硬幣的相對位置都一樣,就必須采取等位移多點(diǎn)采樣。當硬幣的前沿通過(guò)D點(diǎn)時(shí)開(kāi)始采樣,以硬幣前沿通過(guò)D點(diǎn)的時(shí)刻作為采樣時(shí)間的零起始時(shí)刻,每過(guò)0.1 mm采樣一次。首先,需要計算出通過(guò)每一個(gè)0.1 mm位移所需要的時(shí)間t1,t2,t3,…。由于速度越來(lái)越快,必定有t1,>t2>t3>…,再每隔t1,t2,t3,…時(shí)間檢測采樣一次。圖6為采樣過(guò)程示意圖,tS為采樣時(shí)間。 由于硬幣在幣道中做勻加速度直線(xiàn)運動(dòng),設硬幣的前沿通過(guò)D點(diǎn)時(shí)的速度為vD,則有: 令s為0.1 mm,0.2 mm,0.3 mm,…,設需要的時(shí)間分別為t0.1,t0.2,t0.3,…。由2.3所述方法可求得a和vD,則通過(guò)求解一元二次方程可得到t0.1,t0.2, t0.3,…,若以硬幣通過(guò)D點(diǎn)作為零時(shí)間參考點(diǎn),則在t0.1,t0.2,t0.3,…采樣即可得到正確的等位移多采樣值。有:t1=t0.2-t0. 1,t2=t0.3-t0.2,…。 當硬幣后沿通過(guò)E點(diǎn)時(shí),停止采樣,D點(diǎn)和E點(diǎn)的沿幣道方向的距離為y,設通過(guò)E點(diǎn)的時(shí)刻為tE,則有: 由此即可計算出tE,即為硬幣通過(guò)幣道時(shí)最后一個(gè)采樣點(diǎn)。 根據式(9),要求得t,涉及到開(kāi)方運算。開(kāi)方運算的算法主要有Newton-Raphson算法、SRT-Redun-ant算法和Non-Redudant算法。這三種算法可以得到開(kāi)方運算的近似結果。關(guān)于上述三種算法的介紹參見(jiàn)參考文獻[1—3]。 為了有足夠高的檢測精度,要求t精確到1μs。另外,由于硬幣由C點(diǎn)到D點(diǎn)的最小時(shí)間為0.3 ms,所以必須在0.3 ms內完成上述的算法。通過(guò)FPGA不難實(shí)現這些要求,但是若采用單片機來(lái)實(shí)現就有一定的難度,如:若用51單片機,頻率12 MHz來(lái)實(shí)現,則機器周期就是1μs,要實(shí)現上述算法是不可能的。所以在該設計中采用FPGA實(shí)現。 2.5 基于FPGA的多倍周期同步測頻法 在該設計中,檢測線(xiàn)圈為電渦流反射式互補檢測,準確地測試出其輸出頻率是很重要的。對于頻率的測試,有測頻法、測周期法,但測量精度都不夠高,在該設計中,兩種測試方法誤差都比較大,所以采用等精度多倍周期同步測頻法,可達到較高的精度。 由于硬幣通過(guò)檢測線(xiàn)圈時(shí)的速度范圍為:0.1~0.5 m/s,要求每隔0.1 mm距離采樣一次,則采樣的時(shí)間間隔范圍為0.2~1ms。為了保證采樣的快速和準確性,采樣時(shí)間不能超過(guò)0.2 ms,本設計采樣時(shí)間取0.1 ms。 該設計中,FPGA的頻率為100 MHz,由檢測線(xiàn)圈及檢測電路組成的振蕩器頻率為200 kHz(此頻率指硬幣未通過(guò)線(xiàn)圈時(shí)的振蕩頻率)。 所謂測頻法,就是先給定一個(gè)閘門(mén)時(shí)間,在此閘門(mén)時(shí)間內,對被測頻率信號計數,由此即可計算出被測信號的頻率。在本設計中,閘門(mén)時(shí)間為0.1 ms,被測信號頻率為200 kHz左右,若用測頻法,則測量誤差為: 1/(0.1×10-3×200×103)=5% 所謂測周期法,就是在被測頻率信號的一個(gè)周期內,對參考頻率信號進(jìn)行計數,由此即可計算出被測信號的周期,在本設計中,參考頻率信號為100 MHz,被測信號頻率為200 kHz左右,若用測周期法,則測量誤差為: (200×103)/(100×106)=0.2% 由此可見(jiàn),都有較大的誤差,下面用等精度多倍周期同步測頻法,既可以在振蕩頻率變化的情況下保持精度的一致,又可以減少測量誤差,提高測試精度。 設被測信號頻率為fx,計數器CT1對fx進(jìn)行計數;參考信號頻率為fr,計數器CT2對fr進(jìn)行計數。 CT1的閘門(mén)開(kāi)放時(shí)間完全與fx的m個(gè)周期同步。閘門(mén)開(kāi)放時(shí)間T1=mtx。在fx的第一個(gè)上升沿和第m+1個(gè)上升沿之間的mtx時(shí)間間隔內,允許CT2對fr計數,計數值記為N。上述測頻的時(shí)序圖如圖7所示。 fx的計算公式如下: fx=m/Nfr 根據誤差傳遞公式,有: 式中:△fx,△fr,△N為絕對誤差。相對誤差δ=±(△fx/fx),由于fr由晶體振蕩器輸出,其穩定度較高,所以△fr非常小,可忽略不計!鱊極限是±1,故測量誤差δ為: 由式(13)可以看出,測量誤差與被測信號的頻率大小無(wú)關(guān),僅與閘門(mén)時(shí)間和標準頻率時(shí)間有關(guān)。標準頻率越高,閘門(mén)時(shí)間越長(cháng),測量誤差越小。 在本設計中,為了保證測量的速度,閘門(mén)時(shí)間比較短,在閘門(mén)時(shí)間不變的情況下,標準頻率越高,誤差越小。 為了提高測量頻率的精度,必須采用較高頻率的標準信號。在傳統的硬幣識別器設計中,多采用單片機測量頻率,但由于單片機受本身的時(shí)鐘頻率和若干指令運算的限制,難以得到較高的標準頻率信號,無(wú)法滿(mǎn)足高速、高精度的測量要求。采用高速、高精度、高可靠性的現場(chǎng)可編程陣列FPGA為實(shí)現高速、高精度的測頻提供了保證。 在本設計中,fr=100 MHz,T1=0.1 ms,則相對測量誤差δ為: 誤差遠小于測頻法和測周期法誤差。這就解決了瞬時(shí)、快速采樣的測量精度問(wèn)題。 若用傳統的單片機等精度多倍同步測頻方案,假設用常用的MCS-51單片機,設時(shí)鐘頻率為12 MHz,機器周期為1 MHz,則誤差為: δ1=1/(1 000 000×0.000 1)=0.01=1%(15) 可見(jiàn),用傳統的單片機采集頻率數據,誤差太大,難以滿(mǎn)足高精度測量的要求。 正是出于提高測量精度的考慮,在本設計里用了FPGA來(lái)完成頻率數據的采集工作。 3 結 語(yǔ) 在硬幣識別器的研究中,本文首先提出了基于FP-GA的等位移多點(diǎn)采樣法,并且提出基于FPGA 的光電檢測來(lái)對硬幣的直徑進(jìn)行準確測量的方法,具有一定的理論指導意義和較強的實(shí)際應用價(jià)值。通過(guò)這些方法,大大提高了硬幣識別的準確性和可靠性,特別是在對硬幣的制造材料不均勻的情況下,更能體現其優(yōu)越性。筆者曾對國外大公司,如:日本的GLORY公司、美國A&A公司生產(chǎn)的硬幣識別器進(jìn)行研究,由于其在硬幣識別方面為單點(diǎn)采樣法,所以其對一些不均勻硬幣(如:泰國的10銖硬幣)識別效果并不理想,由于本硬幣識別器采取等位移多點(diǎn)采樣法,所以識別效果較好,識別準確率可達到99.5%以上。另外,硬幣識別器在某些情況下,需要在比較惡劣的環(huán)境下使用,需要較強的抗干擾能力,如:在野外使用的投幣電話(huà),在公共汽車(chē)上使用的無(wú)人值守投幣機。由于FPGA的純硬件電路特性,抗干擾能力特別強,具有很高的可靠性。 |