傳統的投幣電話,都是以幾對紅外發射、接收對管作傳感器,利用硬幣遮光原理粗測幣的直徑。這種方法精度低,更無法識別相同直徑但不同材質的偽幣。
新一代投幣電話,如英國的藍寶石系列,能對硬幣的材質、厚度、直徑作精確的檢測,所以精確性與可靠性都大大提高。這類新型投幣電話中,需要一種微功耗、寬工作電壓范圍、能適應電話線路供電的高性能單片機作為智能化檢測、控制的核心。美國MICROChip公司的PIC16C71單片機能滿足這方面要求,且價格低廉。
其核心PIC16C71是一種低成本、高性能,以CMOS工藝制造,帶全靜態片內RAM、2 KB片內ROM、4路8位片內A/D轉換器的高性能單片機。在采用20 MHz時鐘時,每個指令周期僅0.2μS。字長14位的精簡指令集(RISC)共有35條高效指令,大多為單周期指令,執行比一般單片機快4倍以上。3~6 V的寬工作電壓范圍以及微功耗設計(3V、32 kHz時,工作電流僅15 μA,休眠維持電流小于lμA),使它特別適合于由電話線路供電的工作環境,不需要另配電源。此外,該機還具有防非法拷貝的程序保密位、防止受干擾后產生程序“脫軌”的“看門狗”(WDT)以及帶負載能力很強的I/O接口,能直接驅動20~25 mA的負載,大大簡化了系統結構,提高了可靠性。
AT24C01是一種新型、高性能的串行電可擦寫只讀存儲器(E2 PROM),價格低廉。在本系統中,它用于存儲投幣電話所適用的幣種、幣值以及對應的材質、厚度、直徑3個傳感信號參數值,停電后信息能保存100年,擦寫次數可達10萬次,靜態電流30 μA,容量為128字節,工作電壓2.6~6 V。由于采用串行工作方式,數據傳送只需兩根I/O線,這對I/O線資源有限的單片機特別適合;另一個優勢是能“在線”修改幣種、幣值以及3個傳感器參數值,以適應不同的地區、國家及不同的錢幣。雖然PIC16C71不具備I2C BUS,但和軟件很容易模擬I2C BUS的讀/寫時序,以完成數據的串行傳送。
二、電源
本系統的電源部分如圖3—5所示。取自電話線上的電源經橋式整流、濾波后,由一個三端穩壓器穩壓成6.4 V,對5個5#可充電電池(每個1.2 V)進行浮充,并作為系統電源。平常系統由電話線路供電即可正常工作,當執行收幣及剔除偽幣的動作時,高靈敏電磁鐵所需的較大電流(約15 mA)由可充電電池供應。另外該6.4 V電壓再經一個精密基準電壓源TL431穩壓到5.12 V,作為A/D轉換的參數電源vREF。PIC16C71的RA口引腳結構方式控制位設定為PCFGl-0,PCFGO -1。
取方式01,此時RAO、RA1、RA2引腳作模擬信號輸入,RA3作為基準參數電壓VREF的輸入引腳。
四、硬幣檢測
對幣厚度與直徑的檢測,現有的多種傳感器都可供選擇。主要應考慮以下幾點:要體積小,價格低,能進行非接觸式檢測。我們采用電容與渦流傳感器,對于幣的合金含量,可通過檢測其比重、電阻率、導磁率來間接測量。
以上三個傳感器(材質、厚度、直徑)來的信號經放大、鑒相、精密檢波、濾波、溫度補償等處理后,形成0~5,12 V的直流電壓信號,送入PIC16C71單片機的RAO、RA1、RA2三個引腳,以進行快速A/D轉換。
當上電復位時,程序從OOOOH地址開始,執行一條跳轉指令,轉至O010H開始的主程序。先執行初始化,然后由SLEEP指令進入“睡眠”微功耗狀態,以減少耗電。當硬幣從投幣口投入時,由于遮斷高靈敏微型紅外發射、接收對管之間的光通道,產生一個中斷申請脈沖信號。其上升沿觸發了單片機的RBO (INT)端,把單片機PIC16C71從“睡眠”中喚醒,進入地址為0004H的中斷服務程序入口。再經該處的一條跳轉指令,轉到檢測處理材質、厚度、直徑三個傳感器信號的程序模塊中。材質、厚度、直徑三個傳感器在硬幣滑道上是間隔順序排列的。為了簡化機械結構并提高檢測的速度,可采用對滾動的硬幣進行動態檢測的方法。經實驗測定,材質、厚度、直徑三個傳感器的信號電壓,在硬幣通過該傳感器的滾動過程中與時間的關系都具有如下圖所示的曲線形狀。
當信號電壓上升至某一門限電壓Vo時,說明硬幣已進入該傳感器檢測范圍。這時把每次采集的數據與前次比較,取其大者按順序存入片內RAM單元。當檢測到信號,電壓下降至某一門限電壓V2時,說明硬幣已滾離該傳感器。這時程序轉入對下一個傳感器信號的檢測。當三個傳感器信號都檢測完畢后,程序關閉A/D,轉人數字濾波,以消除干擾毛刺脈沖的影響,得到該傳感器信號的最大值Vl。接著進行溫度補償,以Vl值減去該傳感器空載值V空,以消除溫度影響。三個傳感器信號都處理完畢后,程序進入識,別模塊,快速掃描存于串行EPROM AT24C01中的各種幣參數(包括材質、厚度、直徑)。若所測的3個參數與預存的各種幣的3個參數不符(超過其上、下限),則認為是偽幣,PIC16C71的RB6引腳輸出一信號,驅動高靈敏、低功耗快速電磁鐵動作,把偽幣推出滾道。
識別確認后的硬幣,其幣種與幣值代碼經奇偶處理后,由RB1引腳以串行方式傳到費率管理上位機(例如80C31等)中,通信約定取異步方式,其數據結構如下圖所示。對應每個硬幣發一組數據,每組由3個數據字組成,其格式見下表。
幣種幣值代碼表
每組數據發送完畢后,程序把RB1由輸出方式轉成輸入方式,查詢等待費率管理上位機的應答信號。上位機在接收到一組數據,經奇偶校驗無誤后,將在1ms之內把數據線拉低作應答信號。PIC16C71在收到應答信號后,即進入SLEEP“睡眠”狀態,等待下次投幣喚醒。如在1ms內沒收到上位機應答信號,則PIC16C71將再重復送一組數據。如連續3次發送后均收不到應答信號,則程序轉入故障報警。
當投入硬幣達到規定值后,費率管理上位機經RB2發出一個信號,喚醒PIC16C71執行收幣動作,然后PIC16C71又進入“睡眠”狀態。
按照上述原理。下圖給出主程序框圖及動態檢測程序框圖。限于篇幅,程序清單略去。
本系統由于充分利用了高性能的PIC16C71單片機所提供的高速指令、快速AlD轉換、微低功耗、寬工作電壓、強帶負載能力、抗干擾看門狗等性能與資源,使系統結構十分簡潔,可靠性強,成本低,在實際應用中獲得較滿意的效果。
-
單片機
+關注
關注
6032文章
44517瀏覽量
633058 -
PIC16C71
+關注
關注
0文章
3瀏覽量
7873
發布評論請先 登錄
相關推薦
評論