論文格式
電氣工程 會計論文 金融論文 國際貿易 財務管理 人力資源 輕化工程 德語論文 工程管理 文化產業管理 信息計算科學 電氣自動化 歷史論文
機械設計 電子通信 英語論文 物流論文 電子商務 法律論文 工商管理 旅游管理 市場營銷 電視制片管理 材料科學工程 漢語言文學 免費獲取
制藥工程 生物工程 包裝工程 模具設計 測控專業 工業工程 教育管理 行政管理 應用物理 電子信息工程 服裝設計工程 教育技術學 論文降重
通信工程 電子機電 印刷工程 土木工程 交通工程 食品科學 藝術設計 新聞專業 信息管理 給水排水工程 化學工程工藝 推廣賺積分 付款方式
  • 首頁 |
  • 畢業論文 |
  • 論文格式 |
  • 個人簡歷 |
  • 工作總結 |
  • 入黨申請書 |
  • 求職信 |
  • 入團申請書 |
  • 工作計劃 |
  • 免費論文 |
  • 現成論文 |
  • 論文同學網 |
搜索 高級搜索

當前位置:論文格式網 -> 免費論文 -> 其他論文

指紋采集系統中USB接口的設計(四)

本論文在其他論文欄目,由論文格式網整理,轉載請注明來源www.donglienglish.cn,更多論文,請點論文格式范文查看
圖7  電壓調整電路
3.3.2  I2C總線的EEPROM電路
在前面電路設計中已經提到,當EZ-USB AN2131QC芯片上電時,EZ-USB的引導裝載器檢查I2C總線上是否存在EEPROM,如果檢測到EEPROM存在,裝載程序就會讀取EEPROM的第一個字節,以決定如何進行總線的枚舉。因此,整個硬件電路中EEPROM模塊電路是不可缺少的(當然對于調試可以沒有,但作為一個USB設備是不可缺少的)。
    選用具有I2C總線接口的EEPROM芯片24LC64。24LC64是8K字節的電可擦除的PROM,其工作電壓范圍為2.5V~5.5V。24LC64可以一次寫入32字節(一頁),可以任意的或連續讀出8K字節數據。其一種封裝類型管腳(SO1C)如圖8所示:

圖8  24LC64管腳
其中A2,A1,A0為用戶配置地址,在USB接口硬件系統中,此地址必須為0、0、1。WP為寫保護,SCL、SDA為I2C總線的時鐘和數據線。由于在AN2131QC中,I2C控制器是漏極開路的,因此使用中必須將SCL和SDA線經過電阻上拉。圖9為實現的EEPROM硬件電路。
圖9 I2C接口的EEPROM電路
3.3.3  串口電路(調試接口電路)
AN2131QC的固件程序開發編譯工具使用keil51,代碼調試過程中其與硬件電路的連接和通信是使用主機(PC機)RS232C串行總線通信接口。 
串行通信標準RS-232C
    RS-232C標準在物理接口上采用了9根信號(TxD、RxD、RTS、CTS、DSR、DTR、DCD、RI和GND)的電纜線,并對數據和控制信號標準作了定義。
在TxD和RxD上:邏輯1(MARK)=-3V~-15V
                邏輯0(SPACE)=+3V~+15V
在RTS、CTS、DSR、DTR、DCD和RI等控制線上:
                信號有效(接通,ON狀態,正電壓)=+3V~+15V
                信號無效(斷開,OFF狀態,負電壓)=-3V~-15V
    對于數據(信息碼):邏輯“1”的電平低于-3V,邏輯“0”的電平高于+3V;對于控制信號:接通狀態(ON)即信號有效的電平高于+3V,斷開狀態(OFF)即信號無效的電平低于-3V。
以上電氣特性表明當傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3V~+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認為無意義。
四、USB接口的軟件設計
4.1  AN2131QC固件程序設計
指紋采集USB接口的固件程序由主程序、USB總線枚舉(設備請求)子程序和USB傳輸子程序構成。
4.1.1  主程序
主程序主要完成各種工作狀態標志,各種變量的RAM空間分配,功能模塊的初始化和各種中斷的設定。其框架結構流圖如圖10所示:
圖10  固件主程序圖
主程序工作過程如下:首先初始化內部的狀態變量,然后調用用戶初始化函數TD_Init(),此函故中包括對串口初始化和對指紋圖像傳感器OV7620的初始化函數的調用:此后,主程序電氣上模擬重連接,等待主機枚舉(即等待SETUP包出現)。與出現SETUP包后,就周而復始的進行任務調度:調用用戶函數TD_Poll(),執行功能任務(調用功能函數);有SETUP請求,分析請求類型并執行相應請求;如收到掛起信號,調用TD_Suspend()函數將外設掛起。
4.1.2  枚舉子程序
當USB設備插入主機后,主機要進行總線枚舉以獲取USB設備的信息,從而調入相應的客戶驅動程序以便應用程序能夠操作USB外設。枚舉的主要工作有:主機首先通過默認地址0和默認端點0(控制端點0)發出設備描述符請求以獲取USB設備的設備描述符;然后給USB外設分配一個唯一的地址(此后訪問設備就通過此地址),并發出配置描述符請求獲取設備的配置信息(設備返回配置描述符、接口描述符和端點描述符);最后主機根據設備的配置信息和USB設備的用途,向USB設備發出一個配置值。
由枚舉過程可以看出,枚舉本質上是些設備請求,是主機對描述符的獲取和對設備狀態的設定。因此合理設定USB設備的描述符表是整個枚舉能夠正確運行的關鍵。本指紋采集系統USB接口設備的部分描述符表實現(匯編形式)如下:
DeviceDscr: db DeviceDSCREnd- DeviceDscr ;; Descriptor length
db DSCR_DEVICE;;Decriptor type
dw 0001H  ;;Specification Version (BCD)
db OOH    ;;Device class
db 00H    ;;Device sub-class
db OOH    ;;Device sub-sub-class
db 64     ;;Maximum packet size
dw 4705H  ;;Vendor ID
dw 0210H  ;;Product ID-set to default example ID
dw 5153H  ;;Product 1D-set to QS ID
dw O100H  ;;Product version ID
db 0      ;;Manufacturer String index
db 0      ;;Product string index
db 0      ;;Serial number string index
db 1      ;;Number of configurations
deviceDscrEnd;
ConfigDscr: db ConfigDscrEnd-ConfigDscr ;; Descriptor length
db DSCR_CONFIG ;; Descriptor type
db StringDscr-ConfigDscr::Configuration+End Points length(LSB)
db (StringDscr-ConfigDscr)/256;(MSB)
db 1       ;;Number of interfaces
db 1      ;;Interface number
db 0      ;;Configuration string
db 10100000b;;Attributes (b7-buspwr,b6-selfpwr,b5-rwu)
db 0      ;;Power requirement (div 2 ma)
ConfigDscrEnd;
IntrfcDscr:
    db IntrfcDscrEnd-IntrfcDscr;;Descriptor length
    db DSCR_INTRFC;;Descriptor type
    db 0      ;;Zero-based index of this interface
    db 0      ;;Alternate setting
    db 2      ;;Number of end points
    db OffH   ;;Interface class
    db OOH    ;;Interface sub class
    db OOH    ;;Interface sub sub class
    db 0      ;;Interface descriptor string index
IntrfcDscrEnd:
EpInDscr:
    db EpInDscrEnd-EpInDscr;;Descriptor length
    db DSCR_ENDPNT;;Descriptor type
    db 82H    ;;Endpoint number, and direction
    db ET_BULK;;Endpoint type
    db 40H    ;;Maximun packet size (LSB)
    db OOH    ;;Max packect size (MSB)
    db OOH    ;;Polling interval
EpInDscrEnd:
EpOutDscr:
    db EpOutDscrEnd-EpOutDscr;;Descriptor length
    db DSCR_ENDPNT;;Descriptor type
    db 02H    ;;Endpoint number, and direction
    db ET_BULK;;Endpoint type
    db 40H    ;;Maximun packet size (LSB)
    db OOH    ;;Max packect size (MSB)
    db OOH    ;;Polling interval
EpOutDscrEnd:
     End
4.1.3  USB傳輸子程序
當采集的指紋數據導入了由SRAM和CPLD構成的高速數據緩沖區后,要通過USB接口將數據發送到上位PC機,AN2131QC必須先將數據讀入到內部USB緩沖區。因此,AN2131QC將數據傳到內部USB緩沖區的速度將是整個USB數據傳輸速度快慢的關鍵。為了使USB數據傳輸(從外部讀入數據并將之傳到PC機)達到最快,需要采用很多措施。
    正常情況下,AN2131QC內核結構從外部讀入數據到USB的端點緩沖區,要使用的匯編程序為:
    movx  a,@dptr;讀外部數據到acc寄存器
    inc dptr;外部地址加1
    inc dps;切換DPTR指針(內核有雙DPTR指針,用dps進行切換)
    movx  @dptr,a;將acc內容放入USB緩沖區
    inc dptr;  USB緩沖區地址加1
    inc dps;切換DPTR指針
    由上述程序可知,數據在寄存器中完成操作后,都必須有一個“inc dptr”,和“inc dps”指令來完成16位地址的增加和緩沖區指針切換。為了消除這種內部消耗,使用AN2131QC提供的一種特殊的硬件指指(只能用于內部緩沖區),8051裝載USB緩沖區地址到兩個AUTOPTRH(高字節地址)和AUTOPTRL(低字節地址)寄存器中,向AUTODATA寫入的數據就直接存入由AUTOPTR/H-L指向的地址緩存區中,并且內核自動增加AUTOPTR/H-L中16位地址的值。這樣USB緩沖區可以像FIFO一樣來順序寫入數據,節省了每次寫內部USB緩沖區時的“inc dptr”指令。同時內核還提供一種快速模式(只用于對外部數據操作),此模式從外部讀數據“move a,@dptr”時,直接將外部數據總線和內部緩沖區連在一起,由于使用CPLD和SRAM構成的指紋高速緩沖區具有FIFO的性質,所以使用快速模式讀外部指紋數據時也節省了“inc dptr”指令。所以將上述兩種方式結合起來,讀外部數據到內部緩沖區程序就只需要一條指令:movx@ dptr,a(dptr存放AUTODATA寄存器地址),此指令只需要兩個8051機器周期(8個24MHz時鐘周期)。這樣,一個字節可以在333納秒內讀入到USB端點緩沖區。
    在USB接口數據傳輸一側,當PC機要對一特定端點進行讀數據并發送IN令牌,如果一個IN令牌到達時8051還沒有完成向USB端點緩沖區的數據裝載(讀外部數據),AN2131QC就發送一個NAK握手信號來響應IN令牌,表明PC機應該在稍后再發送一個IN令牌。為了解決這種等待從而達到最快的傳輸速度,可以使用雙緩沖技術(端點配對),使8051在前一個數據包在USB總線上傳輸的時候,同時裝載塊數據的下一個數據包到內部USB緩沖區。
根據以上策略實現的傳輸程序流程如圖11所示:

圖11 數據傳輸流程圖
在主程序初始化過程中,設定latch_f=1,使系統采集數據并存入由CPLD和SRAM構成的高速緩沖區,當采完一幀后,發出中斷請求,中斷服務子程序中設定latch_f=0,允許通過USB將采集的高速緩沖區上的數據上傳到PC機。
由以上流圖實現的USB批量數據傳輸(沒有其它USB設備與它總線競爭的情況下),每幀(USB幀,1ms)能傳輸17個批量數據包(每包64字節),傳輸速率可達8.704Mb/s(可使用CATA USB總線分析工具看到每幀傳輸的數據),占整個總線利用率的73%。根據CATA USB分析數據可以看到,在整個USB幀傳輸過程中沒有出現等待狀況(即沒有出現NAK應答),這表明在USB數據傳輸中,AN2131QC從外部讀數據到內部緩沖的速度能滿足USB傳輸的要求,并能使USB批量傳輸達到最大傳輸速度以適應指紋識別系統中數據傳輸的要求。(同時可以看到這種方式下AN2131QC從外部讀數據到內部緩沖的速度不是整個傳輸過程的瓶頸,相反,數據的傳輸速度取決于USB協議)。
4.2  驅動程序
如今大部分的PC主機所使用的系統都集成了USB1.1的驅動程序,本次論文開發的指紋采集系統USB接口所使用的設備驅動程序是windaws98和windows2000兼容的WDM內核模式的驅動程序。
一個WDM設備驅動程序,通常可以完成以下功能:
·初始化驅動程序;
·創建、刪除設備;
·處理Win32 I/O及控制請求;
·串行化對設備的訪問;
·訪問硬件;
·調用其他驅動程序;
·取消I/O請求;
·超時I/O請求;
·即插即用處理;
·處理電源管理;
·使用WMI向系統管理員報告等等。
將這些功能劃分為不同模塊其中,其中初始化模塊“Init.cpp”是必不可少的,它包含有一個驅動程序的初始化入口點;在實際工作中,所有設備驅動程序都有分發例程模塊“Dispatch.cpp”來處理用戶I/O請求;WDM設備驅動程序還需要一個t即插即用模塊“Pnp.cpp”來管理設備的添加、刪除等功能。其他模塊 “Devicelo.cpp”、“ Power.cpp”、“Wmi.cpp”和“EventLog.cpp”都是可選的。
下面對即插即用模塊進行簡單介紹:
即插即用模塊中一個重要的例程就是創建設備例程AddDevice,這個例程在插入新設備且安裝INF文件指示這個驅動程序是要運行的驅動程序時被調用。在創建設備后,為了使設備對于Win32可見,必須為每個設備創建符號鏈接。把設備注冊為一個特定的設備接口就創建了一個符號鏈接,用戶態設備便可以取得擁有此GUID的設備。部分創建設備的代碼如下:
……
do
{ntStatus=Ezusb_ CreateDeviceObject (DriverObject, &deviceObject, instance);
instance++;
} while (! NT_SUCCESS (ntStatus) && (instance<MAX_ EZUSB_DEVICES));
if (NT_SUCCESS (ntStatus))
{
 pdx=deviceObject->DeviceExtension;
 deviceObject->Flags&=~DO_ DEVICE_ INITIALIZING;
 deviceObject->Flags|= DO_DIRECT_IO;
deviceObject->Flags|=DO_POWER_PAGABLE:
pdx->PhysicalDeviceObject=PhysicalDeviceObject;
pdx->StackDeviceObject=
 IoAttachDeviceToDeviceStack (deviceObject, PhysicalDeviceObject);
ASSERT (pdx->StackDeviceObject! =NULL);
pdx->LastFailedUrbStatus=0; 

首頁 上一頁 1 2 3 4 5 下一頁 尾頁 4/5/5


相關論文
上一篇:黎曼積分與勒貝格積分的區別與聯系 下一篇:上海高校校園體育文化現狀調查及..
Tags:指紋 采集 系統 USB 接口 設計 【收藏】 【返回頂部】
人力資源論文
金融論文
會計論文
財務論文
法律論文
物流論文
工商管理論文
其他論文
保險學免費論文
財政學免費論文
工程管理免費論文
經濟學免費論文
市場營銷免費論文
投資學免費論文
信息管理免費論文
行政管理免費論文
財務會計論文格式
數學教育論文格式
數學與應用數學論文
物流論文格式范文
財務管理論文格式
營銷論文格式范文
人力資源論文格式
電子商務畢業論文
法律專業畢業論文
工商管理畢業論文
漢語言文學論文
計算機畢業論文
教育管理畢業論文
現代教育技術論文
小學教育畢業論文
心理學畢業論文
學前教育畢業論文
中文系文學論文
最新文章
熱門文章
計算機論文
推薦文章

本站部分文章來自網絡,如發現侵犯了您的權益,請聯系指出,本站及時確認刪除 E-mail:349991040@qq.com

論文格式網(www.donglienglish.cn--論文格式網拼音首字母組合)提供其他論文畢業論文格式,論文格式范文,畢業論文范文

Copyright@ 2010-2018 LWGSW.com 論文格式網 版權所有

感谢您访问我们的网站,您可能还对以下资源感兴趣:

论文格式网:毕业论文格式范文