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