王文虎, 楊 峰
?
基于μCOS-II技術(shù)的考勤機(jī)設(shè)計(jì)
王文虎*, 楊 峰
(湖南文理學(xué)院 電氣與信息工程學(xué)院, 湖南 常德, 415000)
基于STM32系列微處理器的考勤系統(tǒng)終端, 硬件包括STM32F207最小系統(tǒng)、以太網(wǎng)通信單元、SD卡存儲(chǔ)單元、ID卡識(shí)別單元、攝像單元、TFT液晶觸摸單元、檢測(cè)及控制單元及電源供電電路; 軟件嵌入了實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ、LWIP輕型IP協(xié)議棧及用戶圖形界面μC/GUI. 終端采取無(wú)源ID卡識(shí)別與頭像數(shù)據(jù)采集同步進(jìn)行的方式記錄員工的出勤情況, 一方面將與ID卡對(duì)應(yīng)的頭像信息以文件形式保存至本地SD卡, 以供查詢; 另一方面將信息通過(guò)以太網(wǎng)傳送至上位機(jī), 并由上位機(jī)完成考勤統(tǒng)計(jì). 利用Keil MDK軟件及金龍STM32F207開(kāi)發(fā)板實(shí)驗(yàn)仿真表明: 終端運(yùn)行可靠, 傳輸穩(wěn)定, 操作界面友好, 實(shí)現(xiàn)了設(shè)計(jì)功能.
STM32F207; 考勤; 無(wú)源ID卡; μC/OS-Ⅱ; LWIP; μC/GUI
市面上, IC卡考勤機(jī)與指紋考勤機(jī)極大提高了考勤機(jī)制的管理效率[1—2], 然而, IC卡考勤機(jī)存在代考勤以及指紋考勤機(jī)存在指紋識(shí)別率低等弊端, 一款頭像抓拍與ID卡打卡兼顧的視頻考勤可以較好滿足新型考勤的需求.
如圖1所示終端結(jié)構(gòu)圖, 以微處理器STM32F207及攝像頭OV7670為核心, 集合以太網(wǎng)接口與SD卡存儲(chǔ)電路, 共同完成考勤功能. 其中, ID卡識(shí)別模塊提供無(wú)源ID卡的能量傳遞及數(shù)據(jù)讀取傳送功能. OV7670攝像模塊完成人臉數(shù)據(jù)的采集. SD卡存儲(chǔ)模塊存儲(chǔ)照片文件. 檢測(cè)控制電路包括電源管理模塊、光線檢測(cè)電路及電鈴控制接口, 光線檢測(cè)電路可在檢測(cè)到光線的條件下自動(dòng)打開(kāi)LED照明以保證拍照質(zhì)量; 電鈴控制接口可連接外部電鈴以完成定時(shí)響鈴工作. 人機(jī)交互接口提供TFT彩色液晶顯示屏支持及觸摸屏輸入支持. 以太網(wǎng)通訊部分完成圖片信息的上傳及控制指令的接收. 終端融合了FSMC、SPI總線、SDIO、USART、SCCB總線及以太網(wǎng)通訊.
終端采取無(wú)源ID卡識(shí)別與頭像數(shù)據(jù)采集同步進(jìn)行的方式記錄員工的出勤情況, 將頭像數(shù)據(jù)編碼成BMP圖片格式的文件存儲(chǔ)至本地SD卡中, 在網(wǎng)絡(luò)允許的條件下可將圖片通過(guò)TFTP協(xié)議發(fā)送至設(shè)定的服務(wù)器中進(jìn)行后期處理.
圖1 終端結(jié)構(gòu)圖
硬件包括STM32最小系統(tǒng)、攝像頭單元電路、TFT液晶及觸摸屏電路、以太網(wǎng)通信電路、檢測(cè)及控制單元電路及電源電路. STM32F207最小系統(tǒng)主要由時(shí)鐘電路、復(fù)位電路、SWD下載調(diào)試電路、啟動(dòng)配置電路構(gòu)成.
攝像單元電路(圖2)由圖像傳感器OV7670[3]及緩存芯片AL422B構(gòu)成. OV7670是一種圖像傳感器, 體積小, 工作電壓低, 提供單片VGA攝像頭和影像處理器的所有功能. 通過(guò)SCCB總線控制, 可以輸入整幀、子采樣、取窗口等方式的各種分辨率8位影像數(shù)據(jù). 該產(chǎn)品VGA圖像最高達(dá)到30 幀/s. OV7670將采集到的一幀圖像數(shù)據(jù)緩存到AL422B中, 等待微處理器的讀取. 這樣, 不管微處理器的速度快慢, 都能確保完整地讀取到一幀圖像數(shù)據(jù), 采用緩存芯片的攝像模塊也具有更高的通用性.
圖2 攝像頭單元電路
圖3 攝像頭單元電路
TFT液晶屏是2.8寸的37線國(guó)產(chǎn)手機(jī)屏, 控制器型號(hào)為常見(jiàn)的T7781或ili9320, 采用16位數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳送, 外部控制TFT背光點(diǎn)亮以實(shí)現(xiàn)節(jié)能. 在TFT上集成電阻觸摸屏以實(shí)現(xiàn)數(shù)據(jù)輸入與選擇功能, 觸摸屏為ADS7843的觸摸模數(shù)轉(zhuǎn)換芯片, 可將觸摸的位置信息轉(zhuǎn)換為數(shù)字信號(hào)以提供給MCU使用(圖3).
以太網(wǎng)通信電路主要是通過(guò)STM32F207的MAC接口與DP83848的PHY(物理層)接口, DP83848后通過(guò)網(wǎng)絡(luò)變壓器、RJ45與網(wǎng)絡(luò)相連[4—5].
檢測(cè)及控制單元電路主要由光線強(qiáng)度檢測(cè)電路、電鈴控制電路、LED照明電路構(gòu)成. 光線強(qiáng)度檢測(cè)電路通過(guò)光敏電阻將光線強(qiáng)度轉(zhuǎn)換為電壓信號(hào), 然后利用STM32F207內(nèi)部的A/D轉(zhuǎn)換電路將電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào), 電鈴控制電路通過(guò)三極管驅(qū)動(dòng)繼電器來(lái)控制電鈴的開(kāi)關(guān).
電源電路由外置的220 V轉(zhuǎn)5 V電源提供, 再經(jīng)過(guò)內(nèi)部穩(wěn)壓至3.3 V給裝置內(nèi)部進(jìn)行供電.
圖4 主程序流程圖
軟件上嵌入實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ[6]劃分系統(tǒng)任務(wù), 對(duì)系統(tǒng)硬件資源進(jìn)行了合理的分配, 使得程序執(zhí)行更加高效可靠; 在網(wǎng)絡(luò)傳輸模塊中嵌入輕型IP協(xié)議棧(LWIP), 使數(shù)據(jù)的傳輸結(jié)構(gòu)更加清晰明了, 并且嵌入上層的通訊協(xié)議TFTP, 使通訊更加方便可靠; 系統(tǒng)嵌入圖形界面μCGUI以方便操作; 系統(tǒng)嵌入文件系統(tǒng)(FATFS)以使存儲(chǔ)結(jié)構(gòu)更加合理, 對(duì)存儲(chǔ)空間管理更加高效.
主程序主要完成所有外設(shè)初始化、μC/OS-II內(nèi)核初始化、μC/OS-II節(jié)拍設(shè)置、μC/GUI初始化、LwIP協(xié)議棧初始化、多任務(wù)創(chuàng)建、郵箱申請(qǐng), 最后啟動(dòng)μC/OS-II多任務(wù), 剩下的事情就完全交給實(shí)時(shí)操作系統(tǒng)μC/OS-II處理(圖4).
系統(tǒng)嵌入實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II, 系統(tǒng)功能由多個(gè)任務(wù)協(xié)作完成[7], 系統(tǒng)的任務(wù)分配見(jiàn)表1.
起始任務(wù)(App_TaskStart)的優(yōu)先級(jí)最高, 通過(guò)起始任務(wù)創(chuàng)建其它任務(wù): GUI顯示任務(wù)(App_TaskGUI)、系統(tǒng)設(shè)置任務(wù)(App_SystemSet)、觸摸屏識(shí)別任務(wù)(App _TaskKbd)、拍照任務(wù)(APP_TakePictrue)、TFTP文件上傳任務(wù)(App_Task_TFTP)及LED指示任務(wù)(App_Task_LED).
程序通過(guò)創(chuàng)建信號(hào)量與郵箱的的方式解決任務(wù)間的通信, 如系統(tǒng)設(shè)置任務(wù)的運(yùn)行機(jī)制: 觸摸屏識(shí)別任務(wù)獲取外部信號(hào)后產(chǎn)生觸摸事件并將其發(fā)送給GUI任務(wù)進(jìn)行輸入信號(hào)的識(shí)別與處理, 處理完畢后通過(guò)郵箱將處理結(jié)果發(fā)送給系統(tǒng)設(shè)置任務(wù)使用.
表1 系統(tǒng)任務(wù)分配表
由于均要用到TFT液晶屏, 采用互斥的信號(hào)量來(lái)保證在同一時(shí)刻只有拍照任務(wù)與GUI顯示任務(wù)中的一個(gè)占用液晶屏資源. 拍照任務(wù)在拍攝完一張照片后通過(guò)信號(hào)量來(lái)告知TFTP文件上傳任務(wù)發(fā)送拍攝好的照片文件.
①拍照任務(wù)(APP_TakePictrue). 當(dāng)無(wú)源ID讀卡器采集到ID卡號(hào)時(shí), 拍照任務(wù)開(kāi)始采集當(dāng)前鏡頭影像, 采集完畢后則在液晶屏上實(shí)時(shí)顯示鏡頭影像及時(shí)間等信息(圖5).
②TFTP文件上傳任務(wù)(App_Task_TFTP). TFTP文件上傳任務(wù)的主要作用是將SD卡中的所有照片文件都發(fā)送至TFTP服務(wù)器進(jìn)行考勤數(shù)據(jù)統(tǒng)計(jì)與處理(人臉識(shí)別等). 在網(wǎng)絡(luò)允許的情況下, 該任務(wù)會(huì)將SD卡中所有照片文件發(fā)送到服務(wù)器中; 在沒(méi)有網(wǎng)絡(luò)連接的情況下在會(huì)將考勤照片存在本地SD中. 一旦有新的照片文件創(chuàng)建, 該任務(wù)也會(huì)立即啟動(dòng), 進(jìn)行照片的傳送(圖6).
圖5 拍照任務(wù)流程圖
圖6 TFTP文件上傳流程圖
串口中斷服務(wù)程序的作用在于接收無(wú)源ID讀卡器發(fā)送的ID卡號(hào)數(shù)據(jù). 讀卡器讀到的數(shù)據(jù)如表2所示.
表2 無(wú)源ID卡數(shù)據(jù)說(shuō)明
當(dāng)串口讀到前綴“0x02”時(shí), 開(kāi)始接收ID卡號(hào), 當(dāng)讀到“0x0D”時(shí)停止接收, 并將相應(yīng)計(jì)數(shù)清零. 以太網(wǎng)中斷用來(lái)接收以太網(wǎng)數(shù)據(jù)并將數(shù)據(jù)傳遞給上層協(xié)議.
在金龍STM32F207開(kāi)發(fā)板硬件平臺(tái)及Keil MDK軟件平臺(tái)下進(jìn)行了實(shí)驗(yàn)驗(yàn)證. 考慮到打卡的高效性及圖片分辨率大小, 采用了BMP圖片格式對(duì)拍攝的照片進(jìn)行編碼, 照片傳輸采用精簡(jiǎn)文件傳輸協(xié)議TFTP, 可靠地將考勤機(jī)裝置中的本地照片傳送至指定的服務(wù)中.
當(dāng)把ID卡置于讀卡器上方時(shí), “滴”的一聲過(guò)后, 液晶屏中的畫(huà)面定格, 同時(shí)ID卡號(hào)也顯示到屏幕上, 1 s過(guò)后, 完成照片拍攝. 隨后, 裝置將照片發(fā)送至TFTP服務(wù)器. 利用軟件Tftpd- 32將電腦作為T(mén)FTP服務(wù)器(IP地址: 172. 16.202.162), 并設(shè)定好文件存儲(chǔ)路徑(C:Users Administratorfiles)就可以開(kāi)始接收從考勤機(jī)裝置上傳的照片文件了(圖7).
照片文件命名的規(guī)則如下: 卡號(hào)+打卡日期與時(shí)間, 以.bmp作為文件名后綴. 可以看到照片中的時(shí)間、日期、卡號(hào)與文件名中的信息保持一致, 做到了真正的人、卡、時(shí)間的高度統(tǒng)一.
圖7 考勤機(jī)裝置文件上傳過(guò)程
裝置采取無(wú)源ID卡識(shí)別與頭像數(shù)據(jù)采集同步進(jìn)行的方式記錄員工的出勤, 將頭像數(shù)據(jù)編碼成BMP圖片格式的文件存儲(chǔ)至本地SD卡中, 在網(wǎng)絡(luò)允許的條件下可將圖片通過(guò)TFTP協(xié)議發(fā)送至設(shè)定的服務(wù)器中進(jìn)行后期處理. 實(shí)驗(yàn)表明終端能同時(shí)實(shí)現(xiàn)打卡與拍照的功能, 并能將帶有人員信息的照片發(fā)送至服務(wù)器, 達(dá)到了預(yù)期的效果.
[1] 朱高中. IC卡考勤系統(tǒng)設(shè)計(jì)[J]. 渭南師范學(xué)院學(xué)報(bào), 2011, 26(12): 68—72.
[2] 董國(guó)林, 劉鑫. 基于STC單片機(jī)的指紋考勤系統(tǒng)設(shè)計(jì)[J]. 工業(yè)控制計(jì)算機(jī), 2012, 25(11): 110—111.
[3] OmniVision Technologies, Inc.OV7670/OV7171 Cmos VGA(640X480) Camera Datasheet [EN/DB], 2005.
[4] 王文虎, 楊峰. 基于以太網(wǎng)技術(shù)的車橋追溯管理系統(tǒng)終端設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2013, 32(21): 72—74.
[5] 宋鑫, 郭勇, 謝興紅. RMII模式以太網(wǎng)PHY芯片DP83848C的應(yīng)用[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2010(8): 43—45.
[6] 邵貝貝. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II[M]. 北京: 北京航空航天大學(xué)出版社, 2003.
Design based on ethernet in axle tracing management terminal
WANG WenHu, YANG Feng
(Department of Electrical Engineering, Hunan University Arts & Science, Changde 415000, China)
Designed a attendance system terminal which used a STM32 microprocessor as the core. On the hardware side, the terminal includes the STM32F207 minimum system, Ethernet communication unit, SD card storage unit, ID card recognition unit, video unit, TFT LCD touch unit, detection and control unit and power supply circuit. On the software side, the terminal is embedded a real-time operating system (μC/OS-Ⅱ), the the the lightweight IP protocol stack(LWIP) and a graphical user interface (μC/GUI). On the one hand, the terminal corresponding to the ID card information stored in document form to the local SD card for the query; The other hand, the information is transmitted via Ethernet, and the host computer handles the attendance statistics, which garanteed the efficiency, fairness and truthfulness. Used the Keil MDK and the dragon STM32F207 development board to do the simulation experiment, these futrues make the terminal working reliable, transmissing stable and facing friendly, and basicly realized the attendence function.
STM32F207, attendance; passive ID card; μC/OS-Ⅱ; LWIP; μC/GUI
10.3969/j.issn.1672-6146.2014.03.018
TP 368.1; TN 929.5
1672-6146(2014)03-0079-04
email:cdwwh@126.com.
2014-03-10
(責(zé)任編校:劉剛毅)