日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
USB安全鑰功能擴(kuò)展與優(yōu)化設(shè)計(jì)
USB安全鑰功能擴(kuò)展與優(yōu)化設(shè)計(jì)
 更新時(shí)間:2008-8-4 4:55:38  點(diǎn)擊數(shù):45
【字體: 字體顏色
bmRequestTypebRequestwValueLwValueHwIndexwLengthData
00100001B($21)Set_Report($09)ZeroFeature($03)Zero8KeyID

2.3 如何設(shè)計(jì)安全鑰端新功能的USB固件

USB 固件(Firmware),就是USB安全鑰硬件上采用的單片機(jī)和其他處理器中有關(guān)USB通信的程序。這里采用Motorola公司的8位單片機(jī) MC68HC908JB8作為USB安全鑰的控制器芯片。MC68HC908JB8帶有USB接口,8K的Flash,支持USB 1.1版本中的低速(Low Speed)設(shè)備,資源有限,主要用于實(shí)現(xiàn)USB通信,價(jià)格比較低廉。因此,很適合于USB安全鑰。MC68HC908JB8中USB通信的程序模塊,包含在實(shí)現(xiàn)MC68HC908JB8所有功能的匯編程序中。

圖2是經(jīng)典的USB固件的流程圖。考慮到USB安全鑰中USB數(shù)據(jù)通信量很小,不需要考慮通信時(shí)間,采用中斷傳輸方式。整個(gè)程序就是在等待數(shù)據(jù)傳輸要求的中斷到來,從而進(jìn)入數(shù)據(jù)傳輸模塊。讀/寫數(shù)據(jù)緩沖區(qū),往USB端點(diǎn)(Endpoint)中讀/寫數(shù)據(jù),交給USB模塊收發(fā)數(shù)據(jù)。當(dāng)USB安全鑰不需要傳輸數(shù)據(jù)時(shí),就進(jìn)入掛起狀態(tài)(Suspend)。在得到PC主機(jī)遠(yuǎn)程喚醒后啟動(dòng),繼續(xù)工作。

新增功能中,主要完成的兩個(gè)功能就是KeyID的讀取和修改,即實(shí)現(xiàn)Get_KeyID和Set_KeyID功能。程序構(gòu)思大致是:對(duì)于 Get_KeyID,在接收到PC端發(fā)來的讀取KeyID的中斷后,立即從端點(diǎn)1發(fā)送8字節(jié)的KeyID,這一段沒有什么特別之處;對(duì)于 Set_KeyID,在接收到信號(hào)后,立即轉(zhuǎn)入Set_KeyID子程序。首先將存儲(chǔ)KeyID的Flash去保護(hù),然后寄存器置位,即在硬件上給 Flash一個(gè)高電平,接著進(jìn)行擦除,再將保存于緩沖區(qū)的PC發(fā)來的新KeyID存儲(chǔ)到Flash中。最后,置Flash狀態(tài)寄存器位,給Flash加保護(hù)。

2.4 PC端新增功能的USB驅(qū)動(dòng)程序設(shè)計(jì)

Windows 98的驅(qū)動(dòng)程序從結(jié)構(gòu)上來說分為兩層:內(nèi)核層和用戶層。USB的客戶驅(qū)動(dòng)程序?qū)儆谟脩魧,而USB類驅(qū)動(dòng)程序和底層驅(qū)動(dòng)程序則屬于內(nèi)核層。目前,USB還屬于起步階段,Windows對(duì)USB的支持還不夠完善,僅支持內(nèi)核層。USB開發(fā)人員所要做的,就是開發(fā)客戶驅(qū)動(dòng)程序,直接與類驅(qū)動(dòng)程序打交道。

HID 屬于USB設(shè)備類中的一個(gè)子類,Windows對(duì)它提供了非常強(qiáng)大的支持,尤其是在用戶層提供了Hid.dll,其中包含了用戶層驅(qū)動(dòng)程序與類驅(qū)動(dòng)程序通信需要的各種功能模塊,將它們以API的形式提供給用戶函數(shù)接口。這樣,在編寫客戶驅(qū)動(dòng)程序的時(shí)候就可以直接調(diào)用這些API函數(shù)來完成諸如IN、OUT等功能,大大降低了編寫驅(qū)程序的難度。

HID客戶驅(qū)動(dòng)程序訪問HID類驅(qū)動(dòng)程序,由HID類驅(qū)動(dòng)程序完成大多數(shù)工作,而硬件交互由HID小驅(qū)動(dòng)程序HidUsb.sys處理,HID小驅(qū)動(dòng)程序調(diào)用USB底層驅(qū)動(dòng)程序USBD.sys訪問設(shè)備。

這里介紹用戶模式的HID客戶驅(qū)動(dòng)程序設(shè)計(jì)過程。它主要包括三個(gè)方面的工作:

·查找所有HID設(shè)備;

·對(duì)于查找到的每一個(gè)HID設(shè)備,檢查其功能,判斷是否為感興趣的設(shè)備;

·根據(jù)用戶需要讀取HID輸入Report(Feature)或者寫HID輸出Report(Feature)。

程序流程如下:

(1)查找USB安全鑰設(shè)備;

(2)讀取HID設(shè)備功能;

(3)具體實(shí)現(xiàn)Get_KeyID和Set_KeyID子函數(shù);

BOOL CusbKey::GetKeyID() //Get_KeyID子程序{…

result=HidD_GetFeature(HidDevice,ReadBuffer,0x09);

//調(diào)用此函數(shù),獲取從端點(diǎn)1發(fā)來的8字節(jié)KeyID的16進(jìn)制檢查代碼

for(i=0;i<8;i++)

WriteBuffer[i+1]=DataBuffer[2*i]+DataBuffer[2*i+1];

result=HidD_SetFeature(HidDevice,WriteBuffer,0x09);

return TRUE;

}

(4)程序運(yùn)行結(jié)果。

編譯連接之后,最終會(huì)生成可執(zhí)行文件KEYDEMO.exe。執(zhí)行它即可SK通信,實(shí)現(xiàn)各種功能。



  • 上一篇: 如何利用集成功放構(gòu)成BTL電路
  • 下一篇: PCI總線接口技術(shù)及其在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1