《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 嵌入式指紋自動(dòng)識(shí)別系統(tǒng)USB接口的設(shè)計(jì)與實(shí)現(xiàn)

嵌入式指紋自動(dòng)識(shí)別系統(tǒng)USB接口的設(shè)計(jì)與實(shí)現(xiàn)

2008-07-10
作者:顏浩洋,,李見(jiàn)為,,顏永龍

??? 摘 要: 介紹一種基于單片機(jī)和USB服務(wù)芯片PDIUSBD12的USB接口設(shè)計(jì)。該接口應(yīng)用在嵌入式指紋識(shí)別系統(tǒng)中,用于嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)與計(jì)算機(jī)之間進(jìn)行用戶(hù)指紋數(shù)據(jù)庫(kù)的上傳和下載,。詳細(xì)介紹了USB接口的硬件設(shè)計(jì)和固件程序" title="固件程序">固件程序的實(shí)現(xiàn),。
??? 關(guān)鍵詞: 嵌入式指紋自動(dòng)識(shí)別系統(tǒng)" title="嵌入式指紋自動(dòng)識(shí)別系統(tǒng)">嵌入式指紋自動(dòng)識(shí)別系統(tǒng)? USB? PDIUSBD12? 固件程序

?

??? 在指紋自動(dòng)識(shí)別系統(tǒng)中,,嵌入式系統(tǒng)由于功耗低,、設(shè)備體積小、安全性高等優(yōu)點(diǎn),,已經(jīng)得到越來(lái)越廣泛的應(yīng)用,。通用串行總線(xiàn)(USB)是由Inter、Microsoft,、IBM和NEC等共同制定的微機(jī)總線(xiàn)接口規(guī)范,,具有較高的傳輸速率(USB 1.1支持最高傳輸速度為12Mb/s,而USB 2.0的傳輸速度最高可達(dá)到480Mb/s),,支持即插即用,,占用系統(tǒng)資源少,擴(kuò)展能力強(qiáng),。在嵌入式系統(tǒng)的應(yīng)用中,,幾乎不可避免與PC機(jī)的通信,由于通信速度的要求以及計(jì)算機(jī)硬件高速發(fā)展,,傳統(tǒng)的RS232接口已經(jīng)越來(lái)越不能滿(mǎn)足用戶(hù)的需求,,所以在嵌入式系統(tǒng)中USB接口的實(shí)現(xiàn)勢(shì)在必行,。
1 嵌入式指紋自動(dòng)識(shí)別系統(tǒng)
??? 本文所介紹的嵌入式指紋自動(dòng)識(shí)別系統(tǒng)采用DSP與單片機(jī)協(xié)同工作,以實(shí)現(xiàn)指紋自動(dòng)識(shí)別以及用戶(hù)服務(wù)系統(tǒng),。其中單片機(jī)選用Philps公司的P89C52,DSP處理器選用TI公司的TMS320C5416,。單片機(jī)具有系統(tǒng)控制能力強(qiáng),、結(jié)構(gòu)簡(jiǎn)單、擴(kuò)展方便等特點(diǎn),,適合作為系統(tǒng)的控制核心,;而DSP采用的增強(qiáng)型哈佛結(jié)構(gòu)、多級(jí)流水線(xiàn),、多處理單元以及特殊的指令(乘加指令等),,使得DSP具有強(qiáng)大的數(shù)據(jù)處理能力,并且TMS320C5416支持最高160MHz的時(shí)鐘頻率,,基于其強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,,所以將它作為系統(tǒng)的算法核心處理器。由單片機(jī)為核心的控制模塊" title="控制模塊">控制模塊主要完成用戶(hù)服務(wù)系統(tǒng)和系統(tǒng)通信接口,,由DSP為協(xié)處理器的算法模塊完成指紋采集和處理,。用戶(hù)通過(guò)鍵盤(pán)輸入控制整個(gè)系統(tǒng)的工作流程,通過(guò)LCD了解系統(tǒng)的工作狀態(tài)及處理結(jié)果,。DSP由其HPI(主機(jī)接口)與單片機(jī)以中斷方式進(jìn)行通信,。而整個(gè)系統(tǒng)通過(guò)USB接口與上位PC機(jī)之間進(jìn)行通信。其結(jié)構(gòu)如圖1,。

?

?

??? 系統(tǒng)新用戶(hù)注冊(cè)時(shí),,通過(guò)鍵盤(pán)輸入注冊(cè)ID,然后系統(tǒng)由DSP控制指紋傳感器采集用戶(hù)指紋數(shù)據(jù),。如果采集到有效指紋,,經(jīng)過(guò)DSP進(jìn)行指紋處理得到指紋模板數(shù)據(jù)。系統(tǒng)將該指紋模板存入系統(tǒng)數(shù)據(jù)庫(kù)中,。如果需要,,也可以通過(guò)USB接口將用戶(hù)信息和對(duì)應(yīng)模板都上傳至PC機(jī)中備份。當(dāng)嵌入式系統(tǒng)數(shù)據(jù)丟失時(shí),,可以通過(guò)USB接口將PC機(jī)里所存?zhèn)浞菹螺d至系統(tǒng)中,。下面著重介紹系統(tǒng)的控制模塊和USB接口的設(shè)計(jì)。
2 系統(tǒng)控制模塊設(shè)計(jì)
??? 系統(tǒng)控制模塊的核心處理器為P89C52,,由于其接口有限,,同時(shí)完成系統(tǒng)控制和USB接口控制將十分困難。而從系統(tǒng)成本,、開(kāi)發(fā)時(shí)間周期和繼承性方面考慮,,換用其他處理器也不太方便,,所以必須考慮在此處理器的基礎(chǔ)上完成多項(xiàng)任務(wù)。由指紋自動(dòng)識(shí)別系統(tǒng)的特點(diǎn)來(lái)看,,系統(tǒng)在完成指紋錄入或登錄后才需要利用USB接口完成指紋模板和登錄信息的傳輸,,所以對(duì)于處理器來(lái)說(shuō),USB控制和系統(tǒng)控制可以采用時(shí)分復(fù)用的方式進(jìn)行,。由此,,利用一個(gè)電平轉(zhuǎn)換芯片和一個(gè)8總線(xiàn)收發(fā)器來(lái)控制數(shù)據(jù)的選通及流向,以保證系統(tǒng)能夠正常工作,。具體實(shí)現(xiàn)如圖2,。

?


??? SN74ALVC164245為5V~3.3V電平轉(zhuǎn)換芯片,負(fù)責(zé)控制單片機(jī)與DSP之間的數(shù)據(jù)流向以及電平轉(zhuǎn)換,。因?yàn)閱纹瑱C(jī)的IO電平為5V,,而DSP的IO電平為3.3V,所以必須進(jìn)行電平轉(zhuǎn)換,。另外,,SN74ALVC164245的OE和DIR腳聯(lián)合控制數(shù)據(jù)的流向,當(dāng)OE為高時(shí),,芯片兩邊的數(shù)據(jù)互相獨(dú)立,;當(dāng)OE為低時(shí),通過(guò)DIR的狀態(tài)來(lái)控制數(shù)據(jù)的流向,。74HC245為總線(xiàn)傳輸器,,用來(lái)控制單片機(jī)同LCD控制芯片KS0108的數(shù)據(jù)通信,其工作原理與SN74ALVC164245類(lèi)似,,只是沒(méi)有電平轉(zhuǎn)換功能,。同樣,USB服務(wù)芯片通過(guò)SUSPEND管腳來(lái)使能數(shù)據(jù)線(xiàn),,將SUSPEND腳置高電平時(shí),,整個(gè)PDIUSBD12處于休眠狀態(tài)。由此,,單片機(jī)就可以通過(guò)控制引腳的狀態(tài)來(lái)控制數(shù)據(jù)總線(xiàn),,以實(shí)現(xiàn)單片機(jī)數(shù)據(jù)總線(xiàn)的時(shí)分復(fù)用。
3 系統(tǒng)USB接口設(shè)計(jì)
3.1 USB接口硬件設(shè)計(jì)
????USB接口硬件主要以接口芯片PDIUSBD12為中心,,設(shè)計(jì)它與USB物理接口以及微控制器之間的連接,。接口模塊通過(guò)跳線(xiàn)選擇供電方式,可同時(shí)支持USB總線(xiàn)供電方式和外設(shè)供電方式,,為全速USB設(shè)備接口,。設(shè)計(jì)過(guò)程中充分考慮到可靠性、可測(cè)性以及電磁兼容性,。其接口電路如圖3所示,。

??? 接口電路供電通過(guò)撥盤(pán)開(kāi)關(guān)K1選擇,,當(dāng)K1接MVCC時(shí),系統(tǒng)為自供電方式,;當(dāng)K1接UVSB時(shí),,為總線(xiàn)供電方式。當(dāng)系統(tǒng)處于自供電方式情況下,,系統(tǒng)通過(guò)EOT_N引腳來(lái)檢測(cè)VUSB是否存在,,并接上一個(gè)1M?贅的放電電阻來(lái)減弱充電,以確保當(dāng)VUSB移開(kāi)時(shí)EOT_N變?yōu)榈?,并且此時(shí)自供電電源與USB總線(xiàn)之間只能共地,同時(shí)設(shè)備不能通過(guò)USB口向VBNS輸出電流,。
??? 在單片機(jī)與PDIUSBD12的控制通信方面,,單片機(jī)通過(guò)對(duì)PDIUSBD12的A0腳的狀態(tài)控制來(lái)指示并行數(shù)據(jù)總線(xiàn)P0上傳輸內(nèi)容為命令還是數(shù)據(jù)。此時(shí),,PDIUSBD12上用于數(shù)據(jù)地址總線(xiàn)復(fù)用的ALE引腳一直接地,。中斷引腳INT_N是系統(tǒng)的關(guān)鍵,幾乎所有USB的活動(dòng)在設(shè)備接口端都是由PDIUSBD12接收,,然后通過(guò)中斷通知單片機(jī)完成,。PDIUSBD12上的掛起SUSPEND為一個(gè)雙向引腳,由此保證USB設(shè)備既能被設(shè)備主控(單片機(jī))也能被上位PC機(jī)喚醒,,而PDIUSBD12工作時(shí)連續(xù)3次沒(méi)有檢測(cè)到SOP就將掛起腳置高,。
??? PDIUSBD12片上GL_N引腳通過(guò)外接發(fā)光二極管來(lái)指示系統(tǒng)工作狀態(tài),在USB枚舉過(guò)程中,,LED指示根據(jù)通信狀況間歇閃爍,;當(dāng)PDIUSBD12成功枚舉和配置后,LED指示將一直點(diǎn)亮,;隨后與PDIUSBD12之間成功地傳輸(帶應(yīng)答)將關(guān)閉LED,;處于掛起狀態(tài)時(shí)LED將會(huì)關(guān)閉。
??? 片上時(shí)鐘發(fā)生電路采用6MHz晶振" title="晶振">晶振,,匹配一個(gè)22pF和一個(gè)68pF的無(wú)源電容,。采用6MHz晶振也是為了降低產(chǎn)品制造過(guò)程中產(chǎn)生EMI(電磁干擾效應(yīng))的風(fēng)險(xiǎn),因?yàn)橥獠烤€(xiàn)路的頻率越高,,其EMI效應(yīng)也會(huì)越強(qiáng),,而在片外電路采用較低頻率并在芯片內(nèi)部進(jìn)行倍頻的措施將既不影響芯片的處理速度,又能提高在外部布線(xiàn)的安全性,。使用兩個(gè)不同容值電容的目的是為了使晶體能夠快速起振,,經(jīng)過(guò)測(cè)量,晶振的啟動(dòng)時(shí)間在2ms左右,。
??? PDIUSBD12可采用5V和3.3V兩種工作電壓,。由于主控單片機(jī)的IO電壓為5V,,所以對(duì)PDIUSBD12也使用5V的工作電壓。此時(shí)在接入5V至PDIUSBD12 VCC腳的同時(shí),,要將PDIUSBD12上的VOUT腳空出,,接去耦電容。另外,,為了減小系統(tǒng)的EMI,,在USB連接器輸入側(cè)的VBUS和地線(xiàn)上增加磁珠,如圖3的BLM21P,,并且在USB的屏蔽罩與地之間使用容性耦合,。
??? 由于USB通信協(xié)議的復(fù)雜性,相當(dāng)一部分工作由硬件電路來(lái)完成,,所以對(duì)硬件電路設(shè)計(jì)的準(zhǔn)確性要求非常嚴(yán)格,,布線(xiàn)要合理要盡量減少分布電容和電磁干擾的影響,硬件電路的質(zhì)量將直接影響到數(shù)據(jù)能否正常傳輸,。
3.2 USB設(shè)備固件程序的開(kāi)發(fā)
??? 固件程序主要由主程序和中斷服務(wù)程序組成,。USB設(shè)備請(qǐng)求包括標(biāo)準(zhǔn)設(shè)備請(qǐng)求和廠(chǎng)商請(qǐng)求。標(biāo)準(zhǔn)設(shè)備請(qǐng)求用來(lái)完成USB設(shè)備枚舉的命令,,而廠(chǎng)商請(qǐng)求則是根據(jù)具體USB設(shè)備來(lái)完成特殊任務(wù)的命令,。對(duì)于本文采用的USB服務(wù)芯片PDIUSBD12,其片內(nèi)的SIE(串行接口引擎)實(shí)現(xiàn)了全部的USB協(xié)議層,,且完全由硬件實(shí)現(xiàn)而不需要固件的參與,,所以對(duì)于USB固件程序來(lái)說(shuō),USB協(xié)議的具體實(shí)現(xiàn)就可以根據(jù)PDIUSBD12所提供的命令字來(lái)完成,。最后剩下的就是硬件層上讀寫(xiě)數(shù)據(jù)的程序?qū)崿F(xiàn),。其總體結(jié)構(gòu)如圖4。

?


??? 其工作流程大致為:主循環(huán)完成一些初始化工作,,轉(zhuǎn)入等待中斷的循環(huán)中,;當(dāng)USB總線(xiàn)上有事務(wù)發(fā)生時(shí),PDIUSBD12將會(huì)自動(dòng)產(chǎn)生相應(yīng)的中斷來(lái)通知固件程序,;然后固件程序轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序處理中斷,,主循環(huán)通過(guò)讀取中斷服務(wù)程序中設(shè)定的事件標(biāo)志和循環(huán)數(shù)據(jù)緩沖區(qū)來(lái)決定轉(zhuǎn)入相應(yīng)的請(qǐng)求響應(yīng);響應(yīng)程序通過(guò)再下層的PDIUSBD12命令接口程序控制PDIUSBD12完成相應(yīng)數(shù)據(jù)或命令操作,。此積木式結(jié)構(gòu)的固件程序組合完成了USB接口設(shè)備從初始化到數(shù)據(jù)傳輸?shù)娜縐SB活動(dòng),。
??? 本文根據(jù)USB1.1協(xié)議由其服務(wù)芯片PDIUSBD12和單片機(jī)P89C52完成了嵌入式指紋自動(dòng)識(shí)別系統(tǒng)的USB接口硬件和固件程序的研究和開(kāi)發(fā),并結(jié)合上位PC機(jī)的驅(qū)動(dòng)程序和應(yīng)用程序?yàn)檎麄€(gè)嵌入式系統(tǒng)提供了一個(gè)穩(wěn)定性好,、傳輸速度快,、使用方便的USB接口。達(dá)到嵌入式系統(tǒng)與PC機(jī)之間靈活通信,,使本嵌入式指紋自動(dòng)識(shí)別系統(tǒng)得到了更廣范的應(yīng)用,。
參考文獻(xiàn)
[1] Philps.PDIUSBD12 Datasheet.http://www.21icsearch.com/searchpdf/default.asp?admin=.
[2] Walter Oney.Programming the Microsoft Windows Driver?Model[M].Microsoft Press,,1999.
[3] Compaq,Intel,,Microsoft,,NEC.Universal serial bus specification Revision 1.1.http://www.8easy.cn/Soft_Show.asp?SoftID=91.
[4] 夏瑋瑋.嵌入式系統(tǒng)關(guān)鍵技術(shù)分析與開(kāi)發(fā)應(yīng)用,2003,,2.
[5] PDIUSBD12固件編程指南.http://www.zlgmcu.com.
[6] 王朔,,李剛.USB接口器件PDIUSBD12的接口應(yīng)用設(shè)計(jì),天津:天津大學(xué).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected]