基于嵌入式紙幣識別系統(tǒng)的設計與實現
圖3 碼盤光耦信號收集電路
以上的硬件電路再加上傳動裝置等,就構成了采集系統(tǒng)的硬件基礎設備。
2.2 程序設計
本文設計的采集系統(tǒng),所采集的數據是紙幣上等距離點上的數據,采集到的數據作為RBF神經網絡分類器的輸入,并用它來判斷紙幣的真假,從而使紙幣識別系統(tǒng)決定是否接受被檢測的紙幣??梢?,能正確的取得紙幣的數據對這些算法來說是非常重要的。當紙幣的一端進入紙幣通道時,位置傳感器提示系統(tǒng),紙幣進入預定的開始進入位置,而后通過馬達和傳動裝置,紙幣就被卷入紙幣器中。馬達轉過相同的角度,紙幣也就移動相同的距離,而碼盤光耦電路每產生一個反饋信號,馬達轉過的角度是一個固定值,紙幣移動距離也就是一個固定值,那么根據這個反饋信號就能實現固定等距離點的采集, 所以硬件的設計是能保證,當紙幣上的定點到達紙幣識別系統(tǒng)特殊光發(fā)光部件和接收部件中間時,通知采集程序此時數據有效。馬達轉過多少角度碼盤光耦產生反饋信號,是由碼盤光耦的規(guī)格決定。
數據采集系統(tǒng)的程序部分要解決的問題,就是能夠及時根據碼盤光耦電路的反饋信號,實時的將特殊光傳感器中的數據讀出,而后保存。由于uClinux操作系統(tǒng)本身的限制,紙幣識別系統(tǒng)中只有一個實時任務即采集,所以考慮采用中斷的方式解決這個問題 。
在本系統(tǒng)中,根據采樣原理,每6毫秒采集一次數據,選用了適合本采集系統(tǒng)規(guī)格的馬達和碼盤光耦。為了使基于S3C4510B和uClinux的紙幣識別系統(tǒng)充分發(fā)揮同時采集和處理數據的能力,可以從S3C4510B的內存中開辟一個獨立的區(qū)域,該區(qū)域是用來提供給非實時程序和采集系統(tǒng)共享的內存,專門用來存儲采集數據,這樣非實時程序就不需要調用系統(tǒng)調用或者驅動程序去訪問采集到的數據,從而大大提高了將采集數據送給非實時程序的速度,提高了處理速度。
3 紙幣識別
3.1 紙幣識別硬件設計
根據前面討論的要求,采用S3C4510B芯片設計的紙幣識別器硬件結構如圖4所示,它包含的主要功能模塊有:S3C4510B中央處理器、系統(tǒng)時鐘和復位模塊、外擴存儲單元、板載電源模塊、串口通信模塊、網絡通信模塊、電機驅動模塊、紙幣檢測模塊以及相關的信號采集模塊。
圖4 紙幣器硬件結構圖
為了支持日常工作和智能升級的需要,外存存儲單元采用兩片FLASH存儲芯片和一片SDRAM, 串口通信模塊的設計時使用MDB和RS232,采用S3C4510B UART單元提供的兩個異步串行I/O端口分別給MDB和RS232各一個。在網絡接口設計時,由于S3C4510B內嵌一個以太網控制器,這里采用一個PHY芯片RTL8201BL與其搭配實現一個10M/100M以太網接口,對外接頭使用RJ45接頭。
3.2 紙幣識別軟件設計
3.2.1 軟件流程
整個系統(tǒng)的軟件設計采用模塊化結構,其主體框架是通信和識別分時共享。主程序主要以通信模塊為主,通過設置各種標志位,然后把相應模塊作為子程序嵌入其中。當紙幣未到時,程序工作在通信模塊中,通過檢測各個標志位執(zhí)行相應操作,保持與上位機的通信。 當上位機允許識別器識別的標志位有效,并且紙幣到的標志位有效時,程序轉入識別模塊,這時識別器與上位機的通信斷開,當識別處理完成后,喚醒通信模塊繼續(xù)通信。這樣整個系統(tǒng)分時共享,程序流程簡單明了,可讀性和可擴展性好。主程序流程為:
(1) 初始化部分 包括通信的初始化和識別的初始化。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論