www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]介紹關(guān)于無驅(qū)動(dòng)型USB產(chǎn)品HID接口的設(shè)計(jì)過程,討論產(chǎn)品的軟硬件開發(fā)過程中的一些問題,給出參考示例代碼。

  摘要:USB作為一種新型的接口技術(shù)在電子商務(wù)平臺(tái)有其獨(dú)特的優(yōu)勢(shì)。本文主要介紹關(guān)于無驅(qū)動(dòng)型USB產(chǎn)品HID接口的設(shè)計(jì)過程,討論產(chǎn)品的軟硬件開發(fā)過程中的一些問題,給出參考示例代碼。

    關(guān)鍵詞:USB 人機(jī)接口設(shè)備(HID) 電子商務(wù) 安全認(rèn)證 接口技術(shù)

USB是由Compaq(康柏)、DEC、IBM、Intel、NEC、微軟以及Northern Telecom(北京電訊)等公司于1994年11月共同提出的,自1995年在Comdex上亮相以來至今已廣泛地為各PC廠家所支持,近年來應(yīng)用日益廣泛。

但是,國內(nèi)的USB產(chǎn)品還是相對(duì)較少。首先,是硬件開發(fā)系統(tǒng)的問題,國內(nèi)沒有自己USB芯片產(chǎn)品,所有的關(guān)于USB接口方面的芯片全部由國外供給,而國內(nèi)卻沒有任何技術(shù)方面的支持,因此開發(fā)進(jìn)度很難保證。面向芯片的開發(fā)系統(tǒng)更是相對(duì)的遲緩。其次,USB產(chǎn)品的軟件研發(fā)也并不是很容易的。USB協(xié)議將設(shè)備分為不同的類型,每個(gè)設(shè)備類型都定義了類似功能設(shè)備的共同行為和協(xié)議。例如,HID人機(jī)接口設(shè)備主指用于人控制計(jì)算機(jī)系統(tǒng)操作的器件。對(duì)設(shè)備進(jìn)行分類是了消除不同硬件廠商之間的差異,相同類型的設(shè)備都由一組標(biāo)準(zhǔn)定義的功能模塊組成。這樣,如果自己開發(fā)的一些設(shè)備類,可能是沒有驅(qū)動(dòng)程序的,就面臨著驅(qū)動(dòng)的開發(fā)問題;而驅(qū)動(dòng)開發(fā)是大家公認(rèn)的有難度的問題等待,都限制了國內(nèi)USB產(chǎn)品的開發(fā)。

USB產(chǎn)品同時(shí)也沖南昌著電子商務(wù)平臺(tái)?,F(xiàn)在電子商務(wù)在社會(huì)生產(chǎn)日益廣泛,但是網(wǎng)絡(luò)系統(tǒng)是一個(gè)開放的系統(tǒng),存在大量不安全的因素。因此,利用各個(gè)電子商務(wù)公司開發(fā)出的各種密鑰管理系統(tǒng)、證書系統(tǒng);同時(shí),利用計(jì)算機(jī)的USB接口特點(diǎn)開發(fā)出方便的硬件安全認(rèn)證證書,已經(jīng)成為各個(gè)認(rèn)證公司追求的安全解決方案。該產(chǎn)品以其方便、靈活、安全等特點(diǎn),在電子商務(wù)中已經(jīng)應(yīng)用,并且近年來在金融行業(yè)與智能卡逐漸形成并立的趨勢(shì)。

1 安全認(rèn)證模塊硬件結(jié)構(gòu)

圖1為認(rèn)證模塊的簡(jiǎn)要結(jié)構(gòu)框圖。

幾乎所有的硬件廠商都有USB接口芯片的相關(guān)產(chǎn)品,選擇也很多,這里選用的是PDIUSBD12。它是一種性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng)并與微控制器通過高速并行接口進(jìn)行通信,也支持本地DMA傳輸。該器件采用模塊化的方法實(shí)現(xiàn)一個(gè)USB接口,允許在眾多可用的微控制器中選擇最合適的作為系統(tǒng)微控制器;允許使用現(xiàn)存的體系結(jié)構(gòu)并使固件投資減到最小,是開發(fā)低成本且高效的USB外圍設(shè)備的解決方案。

微處理器和EEPROM是市場(chǎng)上已經(jīng)成熟的硬件產(chǎn)品,這里采用Atmel公司的單片機(jī)和Xicor公司的EEPROM芯片。

2 HID設(shè)備類固件程序設(shè)計(jì)

USB1.1協(xié)議定義了11種標(biāo)準(zhǔn)請(qǐng)求,同時(shí)定義了6種有關(guān)HID控制流程的特定請(qǐng)求。其中:set_report,get_report,給主機(jī)和設(shè)備提供了一條相互傳遞數(shù)據(jù)的途徑。

USB單片機(jī)控制程序一般須實(shí)現(xiàn)三個(gè)步驟:

①初始化單片機(jī)和所有的外圍電路(包括PDIUSBD12),然后進(jìn)入主程序循環(huán);

②在接口要求中斷后必須進(jìn)入相應(yīng)的中斷服務(wù)程序;

③固件程序須完成鑒權(quán)、加密、解密的算法。

圖2是模塊程序處理的總體流程圖,可以比較直觀地顯示程序結(jié)構(gòu)。

2.1 系統(tǒng)啟動(dòng)必須執(zhí)行的通信過程

在沒有安裝驅(qū)動(dòng)程序時(shí),主機(jī)提取51固件程序中設(shè)備描述表,然后設(shè)置USB地址。啟動(dòng)驅(qū)動(dòng)程序(如果沒有正確的驅(qū)動(dòng)程序,則啟動(dòng)安裝先導(dǎo)),驅(qū)動(dòng)程序讀取設(shè)備描述表、配置描述符等,設(shè)置配置,即發(fā)出連接USB命令后,PC先讀取設(shè)備描述符,然后發(fā)出設(shè)置USB地址SETUP包。設(shè)置USB地址后,進(jìn)行PC客戶驅(qū)動(dòng)與設(shè)備初始化。

2.2 USB設(shè)備啟動(dòng)流程

①USB設(shè)備接入U(xiǎn)SB口,發(fā)出連接USB命令。

②主機(jī)發(fā)出讀設(shè)備描述符兩次。

③主機(jī)根據(jù)設(shè)備描述符—廠商ID、產(chǎn)品ID,啟動(dòng)相應(yīng)設(shè)備驅(qū)動(dòng)程序。

④設(shè)備驅(qū)動(dòng)程序初始化USB設(shè)備:

a讀設(shè)備描述符;

b讀配置描述符;

c選擇接口、端點(diǎn)(管道),確定傳輸方式。

注意:在發(fā)送配置[,接口(1),端點(diǎn)(1),接口(2),端點(diǎn)(2),…,類,廠商等]聯(lián)合描述表時(shí),各描述表的先后順序可隨意,主機(jī)USBD根據(jù)描述表類型標(biāo)識(shí)區(qū)分各種分描述表。

2.3 固件主程序通信主程序

中斷后主程序主要是通過中斷事件標(biāo)志判斷并且執(zhí)行相應(yīng)的程序代碼。主程序流程簡(jiǎn)圖如圖3所示。

主程序的示例程序代碼見網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。

2.4 處理主機(jī)標(biāo)準(zhǔn)控制請(qǐng)求

由于中斷程序是通過USB接口芯片觸發(fā)的,因此它必須判斷是何種中斷,是否進(jìn)行處理等情況。中斷程序流程簡(jiǎn)圖如圖4所示。

2.5 系統(tǒng)中斷程序中斷處理代碼示例

unsigned char ENDPOINT_A0_FIFO[8];

//判斷輸入的是SETUP請(qǐng)求,并將其讀入緩沖區(qū)ENDPOINT_A0_FIFO...

if((ENDPOINT_A0_FIFO[0]&0b01100000)= =0x00){

if(ENDPOINT_A0_FIFO[1]<=0x0C){

(*StandardFunctionTable[ENDPOINT_A0_FIFO[1]])();

return;

}

}

[1]處理主機(jī)標(biāo)準(zhǔn)控制請(qǐng)求:

void SetAddress(void){

if(ENDPOINT_A0_FIFO[0]= =0b00000000){

//保存USB地址x80|ENDPOINT_A0_FIFO[2];

}

}

注:SetAddress請(qǐng)求實(shí)際可分成三個(gè)階段:第一階段,Setup包被送至設(shè)備;第二個(gè)階段是可有可無的階段,數(shù)據(jù)在設(shè)備與主機(jī)之間傳送;第三階段,狀態(tài)信息在主機(jī)與設(shè)備之間傳送。

數(shù)據(jù)與狀態(tài)傳送的方向要看是主機(jī)發(fā)數(shù)據(jù)給設(shè)備還是設(shè)備發(fā)數(shù)據(jù)給主機(jī)。狀態(tài)的傳送方向總是與數(shù)據(jù)傳送方向是相反的。如果沒有數(shù)據(jù)傳輸階段,則狀態(tài)由設(shè)備傳向主機(jī)。

Setup包傳送以后的兩個(gè)階段的地址保持與Setup包傳送階段一致。USB設(shè)備只有在Status階段過后才能改變?cè)O(shè)備地址。

獲取設(shè)備描述符的程序網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。

2.6 數(shù)據(jù)通信處理以及安全認(rèn)證處理程序

由于本模塊的主要功能是作為電子商務(wù)中的鑰匙和證明書,因此是關(guān)鍵技術(shù)。其中以內(nèi)部密鑰的處理過程及加密解密算法模塊為核心技術(shù)。

get_report和set_report是HID類設(shè)備與主機(jī)通信的特定方式,HID規(guī)范定義的特定的標(biāo)準(zhǔn)請(qǐng)求。當(dāng)主機(jī)與HID設(shè)備通過get_report(主機(jī)從設(shè)備獲?。┗騭et_report(設(shè)備接受數(shù)據(jù))傳遞數(shù)據(jù)時(shí),必須有一個(gè)密鑰的傳送遞鑒定過程。圖5是主機(jī)和模塊讀取數(shù)據(jù)的過程描述。

值得指出的是,EEPROM中的數(shù)據(jù)都是經(jīng)過CPU加密寫入的,同時(shí)對(duì)重要數(shù)據(jù)設(shè)置了保護(hù),即使別人獲取也很難短破譯;用戶只要申請(qǐng)丟失,即可馬上報(bào)廢。

3 HID類應(yīng)用軟件設(shè)計(jì)

建立設(shè)備驅(qū)動(dòng)程序與Windows應(yīng)用程序接口有兩種方法:

① 設(shè)備驅(qū)動(dòng)程序創(chuàng)建內(nèi)核設(shè)備名和符號(hào)連接名,Widows應(yīng)用程序調(diào)用。

CreateFile(" u31526符號(hào)連接名",

GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE,

NULL,OPEN_EXISTING,F(xiàn)ILE_ATTRIBUTE_NORMAL,NULL);

②設(shè)備驅(qū)動(dòng)程序創(chuàng)建設(shè)備接口。Windows應(yīng)用程序可調(diào)用下列包裝好的函數(shù),打開一個(gè)設(shè)備,見網(wǎng)絡(luò)補(bǔ)充版。

③應(yīng)用API函數(shù)進(jìn)行應(yīng)用程序和硬件設(shè)備的通信,常用方法:ReadFile WriteFile DeviceIoControl CloseHandle。

為應(yīng)用USB_Createfile需包含下列頭文件:

#include Setupapi.h

#include initguid.h

#include winioctl.h

結(jié)語

USB接口硬件認(rèn)證模塊裝上計(jì)算機(jī)后會(huì)立刻被系統(tǒng)識(shí)別為HID類設(shè)備,并且自動(dòng)裝上驅(qū)動(dòng)程序。實(shí)際證明,該無驅(qū)動(dòng)的認(rèn)證模塊已經(jīng)在我公司的應(yīng)用中起到了不可替代的作用,時(shí)它的安全性、控制的靈活性、無驅(qū)動(dòng)的方便性也使客戶非常滿意。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉