單片機USB描述符
為了描述不同的數(shù)據(jù),就須以不同類型的USB描述符來加以描述,如圖1所示。雖然各個描述符都有不同的信息與數(shù)據(jù),但所有的描述符都有一些共同的特性,也即是由如表1所列的格式所組成。其中,所有的Byte o是以字節(jié)為單位的描述符長度,而所有的Byte 1 則放置如表2和表3所列的描述符類型值,緊接著的其他字節(jié),則隨著不同的描述符而不同。如果該描述符的長度比規(guī)范上所定義的還要小,那么主機將會忽略。如果此大小又比規(guī)范所定義的還要大,那主機也會忽略所超出的字節(jié),并在其回傳的真正描述符長度的尾 端開始尋找下一個描述符。
圖1 各種描述符的架構與類型
在圖1的描述符中,設備描述符(device descriptor)、配置描述符(configurationdescriptor)、接口描述符(interface descriptor)以及端點描述符(endpoint descriptor)是必須具有的。而其他的描述符,如字符串描述符(strtng descriptor)、 數(shù)種不同的群組描述符(class descriptor)以及報告描述符(report descriptor)則可以根據(jù)不同的設備加以添加或刪減。
表1 描述符的共同格式
表2 描述符類型值表一
表3 描述符類型值表二
各種描述符可以用如圖2所示的描述符層來作更深動的敘述。最上層的層是設各描述符。在設各描述符的bNumConfigurations 字段中,設置一個或多個下一層的配置描述符。在配置描述符的bNumlnterface字段中,設置一個或多個下一層的接口描述符。最后 在接口描述符的bNumEndpoints字段中,則設置最后一層的端點描述符。
因此,從設各描述符中,可以設置含有多少個配置描述符。而配置描述符,則可設置其包含了多少個接口描述符,當然從接口 描述符中,又可以再設置所含端點的數(shù)目。因此,在其中可以了解到僅有一個設各描述符而已,其余的描述符再依次設置。當然如圖 2所示,每一層至少須設置一個描述符。
圖2 USB描述符層圖
評論