引言
本文介紹了如何使用MCUXpresso Config Tools來快速生成一個可用的USB composite device的demo,以便節(jié)省時間直接進行USB應(yīng)用層的開發(fā),而不必關(guān)注USB協(xié)議棧及底層的配置。
文詳細介紹了如何利用Config Tools生成USB Composite Device工程的全部步驟,并且還會介紹,如何將這些代碼porting到IAR等不同IDE中進行開發(fā)。
組合設(shè)備介紹
USB的composite類是指在一個USB設(shè)備中,實現(xiàn)多個不同功能的特殊USB類,如一個設(shè)備實現(xiàn)鼠標加鍵盤或者U盤加鍵盤的功能。
實際上,USB composite類幾乎可以將任意的USB功能進行組合,并且組合的數(shù)量也不局限于兩個,只要端點資源夠多,可以組合三個或多個功能于一個設(shè)備上。
在USB中,還存在有一種compound device的概念,它與composite device都可以譯作復(fù)合設(shè)備或組合設(shè)備,但是它們是兩個完全不同的概念。
USB compound device(USB復(fù)合設(shè)備)中內(nèi)嵌Hub和多個功能,每個功能都是獨立的USB設(shè)備,有獨立的VID與PID,從實現(xiàn)層面上講就是一個物理設(shè)備實現(xiàn)了一個Hub和多個物理設(shè)備。
USB composite device(USB組合設(shè)備)中只有一套VID與PID,通過不同的接口將這同一個設(shè)備定義為不同的功能的組合。而不同功能的實現(xiàn)依賴于不同的類接口的合并。
環(huán)境搭建
本文使用i.MX RT1060-EVK板作為演示對象,所使用的MCUXpresso IDE(以下簡稱MCUX)版本為v11.4.0,其中內(nèi)置了v10.0.0版本的Config Tools,使用內(nèi)置的Config Tools所生成的工程,可以直接在MCUXpresso IDE內(nèi)編譯下載,下一章將會介紹如何將生成的代碼集成到IAR中進行編譯下載運行。
在使用MCUXpresso生成工程時需要加載SDK到MCUXpresso環(huán)境中,本文使用的SDK版本為2.10.0。
以下例子是生成了一個包含CDC VCOM、MSC、HID Mouse三個類功能的組合設(shè)備。
配置工程
首先需要創(chuàng)建工程。
進入MCUXpresso IDE界面后,點擊New project進入創(chuàng)建工程界面,選擇evkmimxrt1060板,點擊next,進入config界面,點擊middleware選項卡,選中USB Device和USB PHY選項, USB Common Header會被自動勾選,最后點擊Finish完成工程創(chuàng)建。
具體步驟如下圖:

完成工程的創(chuàng)建后,選擇ConfigTools選項卡下的Peripherals,進入工程配置界面,在左側(cè)Components窗口下,點擊Middleware右側(cè)的加號,彈出選擇界面,在選擇界面中選中USB,點擊OK。操作步驟如下圖所示。

此時,我們已經(jīng)將USB中間件添加進入配置,剛添加進入后會發(fā)現(xiàn)右下角的Problems界面內(nèi)會報兩條錯誤,為了解決其中的時鐘錯誤,首先還是在ConfigTools選項卡內(nèi),選擇Clocks,進入Clock配置界面,選擇Clock Outputs界面中的USBPHY1 PLLclock,然后在右側(cè)的Details界面內(nèi)Enable USBPHY1 clock output,具體步驟如下圖所示。

返回Peripherals界面,時鐘的錯誤已經(jīng)消除,下面開始添加USB的功能接口,在剛才添加的USB1的主界面內(nèi)根據(jù)自己的需求修改device的VID及PID。
點擊Supported interfaces選項旁邊的加號,添加一個interface,會生成一個interface0,默認新添加的interface的類都是DFU,在右側(cè)Class下拉菜單中選擇想要實現(xiàn)的組合設(shè)備中的第一個類。此處需要注意的是,CDC VCOM的實現(xiàn)需要用到兩個子類interface,分別是用于管理和控制的通信類接口CIC與用于傳輸數(shù)據(jù)的數(shù)據(jù)接口類DIC,在Config Tools中需要分別添加兩個interface組成來一個CDC VCOM的功能。
添加兩個interfaces,分別設(shè)置類為CIC VCOM及DIC VCOM。Config Tools添加interfaces時,是按照順序使用端點號及interface號,這里我們不修改任何參數(shù),直接使用默認的數(shù)據(jù),如果應(yīng)用層有特殊需要的,也可以修改端點的相關(guān)參數(shù)來滿足需求。
第一個CDC VCOM類的功能添加完成后,開始添加第二個MSC類的interface,仍然是點擊加號,修改Class為MSC,其余的配置都保持默認。
最后進行HID類的配置,仍然是點擊加號,添加新的interface,修改Class為HID,在右側(cè)的Present下拉框內(nèi)選擇Mouse,需要使用自定義HID報告的應(yīng)用可以選擇None,并且自己進行Endpoints和report的配置。
所有配置過程如下圖所示:

在所有類的interfaces添加完成后,點擊上方菜單中的UpdateCode,在彈出的對話框中,可以看到本次配置對哪些文件產(chǎn)生了影響,此處需要注意的是,需要前兩個board文件夾下的4個文件的默認勾選去除掉,然后點擊OK,完成代碼的生成。
具體步驟如下圖所示。

在生成完成代碼后,MCUX會自動跳轉(zhuǎn)回工程開發(fā)界面,打開source目錄下的與工程同名的.c文件,在頭文件處添加’ #include "usb_device_composite.h"’,并且將主循環(huán)里的內(nèi)容替換為USB_DeviceTasks();。
修改的步驟如下圖所示。

完成上述修改后即可編譯下載到RT1060-EVK板上進行測試。下載完成后按下EVK板的reset鍵,連接USB1口到PC的USB口,打開設(shè)備管理器可以看到生成了一個新的composite device,并且同時,還可以在各個設(shè)備類下面查找到實現(xiàn)的相應(yīng)的設(shè)備,并且這些設(shè)備的PIDVID相同,都是在配置界面內(nèi)所配置的PIDVID,如下圖所示。

移植到IAR環(huán)境
先要準備一個IAR的工程。
在SDK生成器中下載一個帶有完整的USB stack的SDK包,然后在同樣的頁面內(nèi)下載一個Standalone的示例工程,如下圖所示。

根據(jù)所要生成的Composite Device所含的類的種類,選擇SDK中的某單一類的工程,例如,本應(yīng)用筆記中的Composite Device包含了三個類,在生成單獨的工程時,選擇dev_hid_mouse_bm的工程。
接下來需要添加和刪除一些文件
上一節(jié)中生成的工程中,只包含了HID類的相關(guān)文件,所以我們需要朝工程內(nèi)添加兩部分的文件,以實現(xiàn)composite device的功能。
第一部分的文件是USB stack相關(guān)的文件,這也是為什么我們需要一個完整的SDK包的原因,從SDK包的middlewareusboutputsourcedeviceclass目錄中將MSC類及CDC類相關(guān)的文件添加到工程中。如下圖所示。

第二部分文件是由Config Tools生成的文件,這部分文件在MCUX的工程目錄下能夠找到,將Config Tools生成的文件復(fù)制到IAR工程目錄下,并且如下圖所示將它們添加進工程。

在完成文件的添加后還需要把原本source目錄下的文件從工程中去除,以免除本來工程里的文件與工具所生成的文件產(chǎn)生的沖突。由于使用的基工程是HID Mouse的demo工程,還需要將usb目錄下的dcd目錄下的文件從工程中去除,否則工程會報錯。
需要注意的是,在把所有的文件添加進工程以后,需要在配置里將保存相應(yīng)頭文件的目錄添加到include directories中。
完成上述工作后,即可編譯下載,運行效果與前一章的效果一致。
來源:恩智浦MCU加油站
審核編輯:湯梓紅
-
usb
+關(guān)注
關(guān)注
60文章
8369瀏覽量
281517 -
環(huán)境搭建
+關(guān)注
關(guān)注
0文章
56瀏覽量
9412 -
mcuxpresso
+關(guān)注
關(guān)注
1文章
46瀏覽量
4698
發(fā)布評論請先 登錄
恩智浦MCU MCXN947 基于MCUXpresso Config tools創(chuàng)建IIC的教程步驟
【匯總篇】小草手把手教你 LabVIEW 串口儀器控制
手把手教你SIMULINK代碼生成
手把手教您筆記本的系統(tǒng)安裝
手把手教你安裝Quartus II
手把手教你學(xué)LabVIEW視覺設(shè)計
手把手教你開關(guān)電源PCB排板
如何用MCUXpresso Config Tools來快速生成一個可用的USB
MCUXpresso Config Tools Windows 64bit package 軟件下載

手把手帶您使用MCUXpresso Config Tools生成USB組合設(shè)備
評論