工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

在嵌入式設(shè)備上實(shí)現(xiàn) USB 點(diǎn)對點(diǎn)通信

在嵌入式設(shè)備上實(shí)現(xiàn) USB 點(diǎn)對點(diǎn)通信

在嵌入式設(shè)備上實(shí)現(xiàn) USB 點(diǎn)對點(diǎn)通信

By Toradex Samuel Bissig

即使在物聯(lián)網(wǎng)時(shí)代的今天,你仍然需要通過本地連接來訪問和控制你的嵌入式設(shè)備。出于安全考慮,你不一定想要通過網(wǎng)絡(luò)來做一些關(guān)鍵的配置或者數(shù)據(jù)傳輸。亦或,你的設(shè)備需要一個(gè)特殊的維護(hù)接口。在這篇文章中,我將會分享通過USB 和你的嵌入式設(shè)備通信的方法。

在我們開始之前,讓我來解釋一些術(shù)語:在本文中,我將會討論USB “主機(jī)”和“客戶端”?!爸鳈C(jī)”是指用于連接你嵌入式設(shè)備的電腦,“客戶端”則是你的嵌入式設(shè)備。并且,我會討論只在 Windows CE 中的一些方法。Linux 也提供類似的方法。

 韜睿預(yù)先編譯好的 Windows CE 鏡像已經(jīng)支持一些 USB 連接的方法:

   - 大容量存儲設(shè)備: USB 客戶端被當(dāng)作 USB 閃存設(shè)備。

   - RNDIS 設(shè)備: USB 客戶端被當(dāng)作網(wǎng)絡(luò)適配器

   - 串行設(shè)備:USB 客戶端被當(dāng)作虛擬串口

如果你只需要在嵌入式設(shè)備上存取文件,那么大容量存儲設(shè)備會更加合適。因?yàn)?,用戶將嵌入式設(shè)備視為掛載到電腦上的普通存儲設(shè)備,所以你對于這整個(gè)過程掌控甚少。并且只有當(dāng) USB 設(shè)備插入后,嵌入式設(shè)備才能訪問文件。

RNDIS 則會表現(xiàn)地和普通用戶所期望的USB設(shè)備不一樣。當(dāng)連接USB設(shè)備后,所彈出的防火墻警報(bào)會令人摸不著頭腦。第三種方法,串行設(shè)備,就我個(gè)人而言,在很多應(yīng)用場合下都是最通用的方法。你可以完全控制嵌入式設(shè)備上的通信,無需顧慮前面兩種方法意想不到的影響。

讓我們重點(diǎn)關(guān)注串行設(shè)備的設(shè)置以及實(shí)現(xiàn)USB 串行通信所需要做的工作。無論是在主機(jī)還是客戶端上,都已經(jīng)有許多現(xiàn)成的支持方案,剩下的工作量就很小。我就大致介紹下所需的步驟:

客戶端(韜睿模塊):

   1. 禁用 ActiveSync,否則會占用串口連接,更多的信息請?jiān)L問韜睿開發(fā)者中心網(wǎng)站。

   2. 配置 Toradex WinCE 鏡像中的注冊表,使你的設(shè)備看起來像一個(gè)特定的產(chǎn)品,默認(rèn)情況下,主機(jī)上將會顯示 Microsoft USB Sync 設(shè)備。當(dāng)你開始銷售你的產(chǎn)品時(shí),你應(yīng)該修改這些配置,當(dāng)然在開始研發(fā)的時(shí)候,你也可以不進(jìn)行設(shè)置。請?jiān)L問MSDN網(wǎng)站產(chǎn)看所有相關(guān)注冊表配置。

   3. 開發(fā)應(yīng)用,在虛擬串口上發(fā)送命令和數(shù)據(jù)。在我們的開發(fā)者網(wǎng)站上你可以找到代碼例程。在調(diào)用CreateFile() 函數(shù)后,你就可以和操作其他文件句柄一樣進(jìn)行讀寫。

主機(jī):在主機(jī)上我們使用 WinUSB 和我們的嵌入式設(shè)備通訊

   1. 如果你在上面第二步中,修改客戶端上的廠商ID和產(chǎn)品ID,你就必須重新編譯自己的 INF 文件,匹配 idVendor 和 idProduct。在MSDN上獲取如何編譯自己的 WinUSB 驅(qū)動。

   2. 開發(fā)應(yīng)用,控制設(shè)備以及發(fā)起通信。在韜睿開發(fā)者網(wǎng)站上有用于主機(jī)上代碼例程。

正如你看到的一樣,USB 串口驅(qū)動是一種非常簡單的方法。你不必關(guān)心內(nèi)核級別的開發(fā),所有的事情都可以在應(yīng)用層完成。

提交

查看更多評論
其他資訊

查看更多

Verdin AM62 LVGL 移植

基于 NXP iMX8MM 測試 Secure Boot 功能

隆重推出 Aquila - 新一代 Toradex 計(jì)算機(jī)模塊

Verdin iMX8MP 調(diào)試串口更改

NXP iMX8MM Cortex-M4 核心 GPT Capture 測試