單片機(jī)兼容USB2.0規(guī)范的描述符
發(fā)布時(shí)間:2008/12/18 0:00:00 訪問次數(shù):539
除了上述所介紹的描述符類型外,若用戶想要將1.x規(guī)范的設(shè)各兼容2.0規(guī)范,就必須對(duì)描述符作若干的修正。在雙速度設(shè)各中,如 何通過讀取其描述符來檢測(cè)設(shè)備的目前速度,就是一個(gè)非常重要的課題。
如表1所列,為1.x規(guī)范設(shè)備要與2.0規(guī)范設(shè)備兼容時(shí),所須修改的描述符字段。其中,用戶會(huì)發(fā)現(xiàn)僅具各等時(shí)端點(diǎn)的設(shè)各須去修 改等時(shí)端點(diǎn)描述符的內(nèi)容,而在設(shè)備描述符中,唯一也是僅須去修改的字段是bcddevice,且將其更改為0200h。
在此須知道,設(shè)備的預(yù)設(shè)上,必須要求無等時(shí)的帶寬。這是因?yàn)檫@些接口并沒有使
用等時(shí)傳輸?shù)臄?shù)據(jù),若設(shè)各想要去執(zhí)行等時(shí)傳輸,它必須支持至少一個(gè)接口設(shè)置,其中還須內(nèi)含至少一個(gè)端點(diǎn)描述符。而有部分1.x 設(shè)備也已經(jīng)符合了這個(gè)要求。所以說,若沒有使用等時(shí)傳輸,也就無須更改這些字段設(shè)置值。
在2.0規(guī)范中對(duì)于已存在的字段的若干位,增加了2個(gè)新的描述符與功能。但是如表1所列,所使用到的新描述符僅用在雙速度的設(shè) 各上。而所存在的描述符也與規(guī)范1.x向下兼容。
表1 1.x規(guī)范與2.0規(guī)范兼容所須改變的描述符類型及其字段
而高速設(shè)備必須以全速的方式來響應(yīng)設(shè)備列舉的標(biāo)準(zhǔn)要求的過程,以及也可能具備與全速完全兼容的功能。
前面的章節(jié)有提及過,如果一個(gè)具備與高速兼容的設(shè)備連接至1.x規(guī)范主機(jī),或如果介于主機(jī)與設(shè)備之間使用1.x規(guī)范集線器,就必 須使用全速的功能。
而對(duì)于應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序通常無須知道這雙速度設(shè)備是使用何種速度,因?yàn)樗械膽?yīng)用程序與設(shè)備驅(qū)動(dòng)程序若與速度相關(guān)的 都可以以較低階的方式來加以處理。事實(shí)上,windows操作系統(tǒng)沒有直接的方法可以知道設(shè)備的速度是什么,但是,還是有一些小技巧,可以讓主機(jī)知道有一些設(shè)備仍可提供相關(guān)信息。
例如,如果設(shè)備具有批量端點(diǎn),用戶即可通過設(shè)備列舉,以主動(dòng)的方式去取得并檢查端點(diǎn)描述符的信息。其中,對(duì)maxpacksize字段 來說,若設(shè)置為512(個(gè)字節(jié)),即可知道目前所連接上的是高速設(shè)備。這是因?yàn)槿僭O(shè)備不能設(shè)置這個(gè)數(shù)值。若以此方式來推演, 假設(shè)沒有批量端點(diǎn),也可以使用中斷端點(diǎn)與等時(shí)端點(diǎn)所設(shè)置的maxpacksize字段,同樣地,用戶也可用來判斷此設(shè)備是屬于哪一種速 度。其中,針對(duì)中斷端點(diǎn)的maxpacksize字段來說,若設(shè)置超過64的數(shù)值,就可表示目前是高速設(shè)備。但是,若高速設(shè)各也有可能設(shè) 置為64,或更低的maxpacksize值。再者同樣的道理,對(duì)于等時(shí)端點(diǎn)的maxpacksize字段來說,若設(shè)置為1 024的數(shù)值,表示目前連接 上的是一個(gè)高速設(shè)各。但是,相對(duì)的高速設(shè)備也有可能設(shè)置為l 024或更低的maxpacksize值。因此,這種方式并不能絕對(duì)保證此設(shè)備 一定是高速設(shè)備。
如果用戶曾經(jīng)編寫過固件程序代碼,用戶可以通過配置描述符或other_speed_configuration描述符,利用可選擇性的配置字符串 索引來添加一些與速度相關(guān)的信息。例如,以cypress ez-usb fx2(usb 2.0)的固件范例程序代碼bulkloop來說明。以下列出其描 述符文件的內(nèi)容。
從這個(gè)程序范例碼中觀察到,可以把描述符分成:highspeedconfigdscr與full-speedconfigdscr兩組,分別設(shè)置高速與全速的各種描述符。其中,設(shè)備描述符的bcd-device字段設(shè)置成:dw 0002h方式(因?yàn)槭莑ittle endian),用來表示高速設(shè)備。
在稍前所敘述的usb設(shè)備描述符的“設(shè)備群組”字段以及“設(shè)備次群組”字段中,定義了設(shè)備群組。那什么是設(shè)各群組呢?在usb的 文件中,定義了將某種相同屬性的設(shè)備整合在一起的群體,稱之為群組(class)。而將這些相同屬性的設(shè)備組合在一起的優(yōu)點(diǎn)是, 可以同時(shí)開發(fā)該群組以pc主機(jī)為主的驅(qū)動(dòng)程序。
例如,鼠標(biāo)是屬于人工接口設(shè)備的一種,其群組驅(qū)動(dòng)程序已包含在操作系統(tǒng)下。如果鼠標(biāo)也遵循了設(shè)備群組規(guī)范,那么鼠標(biāo)的制造 商在出售時(shí),根本就無須另外再附一套驅(qū)動(dòng)程序。也就是可以直接使用windows 98 se或windows 2000所內(nèi)建的人工接口設(shè)備的驅(qū)動(dòng) 程序。這樣,硬件的制造商只須專心開發(fā)其硬件電路即可。相對(duì)的,倘若該設(shè)備并不符合人工接口設(shè)備群組,就必須使用含有win32 api調(diào)用的vb、c++或delphi等高級(jí)程序,另外再編寫其驅(qū)動(dòng)程序。
以下列出usb規(guī)范中所定
除了上述所介紹的描述符類型外,若用戶想要將1.x規(guī)范的設(shè)各兼容2.0規(guī)范,就必須對(duì)描述符作若干的修正。在雙速度設(shè)各中,如 何通過讀取其描述符來檢測(cè)設(shè)備的目前速度,就是一個(gè)非常重要的課題。
如表1所列,為1.x規(guī)范設(shè)備要與2.0規(guī)范設(shè)備兼容時(shí),所須修改的描述符字段。其中,用戶會(huì)發(fā)現(xiàn)僅具各等時(shí)端點(diǎn)的設(shè)各須去修 改等時(shí)端點(diǎn)描述符的內(nèi)容,而在設(shè)備描述符中,唯一也是僅須去修改的字段是bcddevice,且將其更改為0200h。
在此須知道,設(shè)備的預(yù)設(shè)上,必須要求無等時(shí)的帶寬。這是因?yàn)檫@些接口并沒有使
用等時(shí)傳輸?shù)臄?shù)據(jù),若設(shè)各想要去執(zhí)行等時(shí)傳輸,它必須支持至少一個(gè)接口設(shè)置,其中還須內(nèi)含至少一個(gè)端點(diǎn)描述符。而有部分1.x 設(shè)備也已經(jīng)符合了這個(gè)要求。所以說,若沒有使用等時(shí)傳輸,也就無須更改這些字段設(shè)置值。
在2.0規(guī)范中對(duì)于已存在的字段的若干位,增加了2個(gè)新的描述符與功能。但是如表1所列,所使用到的新描述符僅用在雙速度的設(shè) 各上。而所存在的描述符也與規(guī)范1.x向下兼容。
表1 1.x規(guī)范與2.0規(guī)范兼容所須改變的描述符類型及其字段
而高速設(shè)備必須以全速的方式來響應(yīng)設(shè)備列舉的標(biāo)準(zhǔn)要求的過程,以及也可能具備與全速完全兼容的功能。
前面的章節(jié)有提及過,如果一個(gè)具備與高速兼容的設(shè)備連接至1.x規(guī)范主機(jī),或如果介于主機(jī)與設(shè)備之間使用1.x規(guī)范集線器,就必 須使用全速的功能。
而對(duì)于應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序通常無須知道這雙速度設(shè)備是使用何種速度,因?yàn)樗械膽?yīng)用程序與設(shè)備驅(qū)動(dòng)程序若與速度相關(guān)的 都可以以較低階的方式來加以處理。事實(shí)上,windows操作系統(tǒng)沒有直接的方法可以知道設(shè)備的速度是什么,但是,還是有一些小技巧,可以讓主機(jī)知道有一些設(shè)備仍可提供相關(guān)信息。
例如,如果設(shè)備具有批量端點(diǎn),用戶即可通過設(shè)備列舉,以主動(dòng)的方式去取得并檢查端點(diǎn)描述符的信息。其中,對(duì)maxpacksize字段 來說,若設(shè)置為512(個(gè)字節(jié)),即可知道目前所連接上的是高速設(shè)備。這是因?yàn)槿僭O(shè)備不能設(shè)置這個(gè)數(shù)值。若以此方式來推演, 假設(shè)沒有批量端點(diǎn),也可以使用中斷端點(diǎn)與等時(shí)端點(diǎn)所設(shè)置的maxpacksize字段,同樣地,用戶也可用來判斷此設(shè)備是屬于哪一種速 度。其中,針對(duì)中斷端點(diǎn)的maxpacksize字段來說,若設(shè)置超過64的數(shù)值,就可表示目前是高速設(shè)備。但是,若高速設(shè)各也有可能設(shè) 置為64,或更低的maxpacksize值。再者同樣的道理,對(duì)于等時(shí)端點(diǎn)的maxpacksize字段來說,若設(shè)置為1 024的數(shù)值,表示目前連接 上的是一個(gè)高速設(shè)各。但是,相對(duì)的高速設(shè)備也有可能設(shè)置為l 024或更低的maxpacksize值。因此,這種方式并不能絕對(duì)保證此設(shè)備 一定是高速設(shè)備。
如果用戶曾經(jīng)編寫過固件程序代碼,用戶可以通過配置描述符或other_speed_configuration描述符,利用可選擇性的配置字符串 索引來添加一些與速度相關(guān)的信息。例如,以cypress ez-usb fx2(usb 2.0)的固件范例程序代碼bulkloop來說明。以下列出其描 述符文件的內(nèi)容。
從這個(gè)程序范例碼中觀察到,可以把描述符分成:highspeedconfigdscr與full-speedconfigdscr兩組,分別設(shè)置高速與全速的各種描述符。其中,設(shè)備描述符的bcd-device字段設(shè)置成:dw 0002h方式(因?yàn)槭莑ittle endian),用來表示高速設(shè)備。
在稍前所敘述的usb設(shè)備描述符的“設(shè)備群組”字段以及“設(shè)備次群組”字段中,定義了設(shè)備群組。那什么是設(shè)各群組呢?在usb的 文件中,定義了將某種相同屬性的設(shè)備整合在一起的群體,稱之為群組(class)。而將這些相同屬性的設(shè)備組合在一起的優(yōu)點(diǎn)是, 可以同時(shí)開發(fā)該群組以pc主機(jī)為主的驅(qū)動(dòng)程序。
例如,鼠標(biāo)是屬于人工接口設(shè)備的一種,其群組驅(qū)動(dòng)程序已包含在操作系統(tǒng)下。如果鼠標(biāo)也遵循了設(shè)備群組規(guī)范,那么鼠標(biāo)的制造 商在出售時(shí),根本就無須另外再附一套驅(qū)動(dòng)程序。也就是可以直接使用windows 98 se或windows 2000所內(nèi)建的人工接口設(shè)備的驅(qū)動(dòng) 程序。這樣,硬件的制造商只須專心開發(fā)其硬件電路即可。相對(duì)的,倘若該設(shè)備并不符合人工接口設(shè)備群組,就必須使用含有win32 api調(diào)用的vb、c++或delphi等高級(jí)程序,另外再編寫其驅(qū)動(dòng)程序。
以下列出usb規(guī)范中所定
上一篇:ARM微處理器特點(diǎn)
熱門點(diǎn)擊
- National Semiconductor
- 3D憶阻器混合芯片面世 實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)
- 單片機(jī)USB設(shè)備登錄編輯器
- 單片機(jī)端點(diǎn)描述符
- 單片機(jī)設(shè)備描述符
- 單片機(jī)USB描述符
- 單片機(jī)配置描述符
- 單片機(jī)接口描述符
- 單片機(jī)NXP接口芯片
- 單片機(jī)兼容USB2.0規(guī)范的描述符
推薦技術(shù)資料
- 硬盤式MP3播放器終級(jí)改
- 一次偶然的機(jī)會(huì)我結(jié)識(shí)了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究