我們越來越依賴可穿戴和互聯(lián)技術(shù),但在沒有人機(jī)界面的情況下,應(yīng)如何配置設(shè)備?
一個例子是我們現(xiàn)在用于視頻會議的無線耳機(jī)。設(shè)備的初始設(shè)置具有挑戰(zhàn)性,為了實現(xiàn)設(shè)備與手機(jī)或PC配對,按鈕順序有時看起來是隨機(jī)的。把USB充電口連接到PC,然后在瀏覽器里進(jìn)行配置,不是更簡單嗎?
另一個例子是打印機(jī)管理。通常使用USB電纜連接打印機(jī)到PC,通過主機(jī)端專用應(yīng)用程序?qū)崿F(xiàn)打印機(jī)配置,如WiFi或IP地址,紙張類型和打印質(zhì)量等,同時顯示狀態(tài)信息。
我們在J-Link調(diào)試器中也使用相同的技術(shù)來管理IP地址等配置。
事實上,幾乎所有具有USB充電口的物聯(lián)網(wǎng)設(shè)備都可以從嵌入式Web服務(wù)器中受益,以改進(jìn)和簡化人機(jī)界面。
在產(chǎn)品中實現(xiàn)這種功能已經(jīng)有一段時間了,然而傳統(tǒng)的方法是在嵌入式控制器中添加web服務(wù)器,以及USB和TCP/IP協(xié)議棧,這需要相當(dāng)大的處理能力、能耗,占用更多的代碼空間和RAM資源。
如何減少代碼和RAM占用,同時實現(xiàn)易用性?
剔除TCP/IP協(xié)議棧,利用USB批量連接,基于emUSB-WEB協(xié)議棧可以將網(wǎng)頁傳送到主機(jī)端的瀏覽器。一個簡單的主機(jī)應(yīng)用程序(SEGGER示例:https://www.segger.com/downloads/emusb-device/SEGGER_USB_Webserver_Windows.zip)可以輕松地將USB HTTP通信連接到瀏覽器。一旦連接到交互網(wǎng)頁,即可通過主機(jī)瀏覽器顯示配置,狀態(tài)或測量數(shù)據(jù)等。
嵌入式應(yīng)用可以充分利用瀏覽器的所有功能來調(diào)整大小,滾動和導(dǎo)航等,以增強(qiáng)用戶體驗。包括鏈接到云端資源(如圖形和動畫),為用戶界面添加額外的維度,無需將它們嵌入到有限的代碼空間中,并提供遠(yuǎn)程更新外觀的機(jī)會。
如何工作?
USB web服務(wù)器由PC應(yīng)用和嵌入式應(yīng)用程序兩部分組成。
PC應(yīng)用程序負(fù)責(zé)打開一個socket,瀏覽器可以連接并通過USB轉(zhuǎn)發(fā)瀏覽器請求到嵌入式應(yīng)用。
嵌入式應(yīng)用接收HTTP請求,并使用集成的web服務(wù)器處理。響應(yīng)通過USB發(fā)送,由PC應(yīng)用接收,并轉(zhuǎn)發(fā)到默認(rèn)瀏覽器。
設(shè)備識別
PC應(yīng)用必須能夠識別它與其通信的USB設(shè)備。
因此,嵌入式應(yīng)用程序必須提供具備下列特性的USB接口:
· USBclass ID: 0xFF(特定于廠商)
· USB subclass ID: 0x57 (ASCII“W”)
· USB協(xié)議ID: 0x45 (ASCII“E”)
· 字符串描述符需包含" http "
瀏覽器連接是如何工作的?
PC應(yīng)用和嵌入式應(yīng)用程序之間通過USB Bulk通信,它必須包含至少一個USB Bulk IN和一個USB Bulk OUT端點。
枚舉完成后,嵌入式應(yīng)用程序開始監(jiān)聽來自PC應(yīng)用的命令,這些命令包含一個8字節(jié)的頭,描述數(shù)據(jù)包。
在讀取報頭后,嵌入式應(yīng)用將數(shù)據(jù)傳遞給嵌入式web服務(wù)器。
協(xié)議棧結(jié)構(gòu)
在下面的示例使用了SEGGER中間件, emUSB和emNET,也可以根據(jù)需要使用其他組件。
使用TCP/IP協(xié)議棧的典型配置如下所示。
注意emNET協(xié)議棧通過USB實現(xiàn)IP連接。雖然這是一種可靠的技術(shù)解決方案,但其增加的復(fù)雜性和所需的資源可能不適合嵌入式應(yīng)用。
使用USB web瀏覽器配置,如emUSB-WEB,嵌入式協(xié)議棧變得更簡單,更小,看起來類似于只需要一個USB協(xié)議棧和嵌入式web服務(wù)器。
節(jié)省代碼和內(nèi)存
如果我們看一下運行在SEGGER emPower評估板(基于Kinetis K66 Arm Cortex-M4 160Mhz MCU)在上的web服務(wù)器應(yīng)用程序,示例下載:https://www.segger.com/downloads/emusb-device/Trial_emPower_emUSBD_USB_Webserver_GUI.zip
注意,項目沒有針對緩沖區(qū)大小等進(jìn)行優(yōu)化,但給出了一個很好的參考。
我們可以看到代碼減少了大約32%,RAM減少了大約38%。
審核編輯:劉清
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44625瀏覽量
373241 -
人機(jī)界面
+關(guān)注
關(guān)注
5文章
526瀏覽量
44140 -
嵌入式控制器
+關(guān)注
關(guān)注
0文章
65瀏覽量
15180 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
304瀏覽量
23739 -
J-Link
+關(guān)注
關(guān)注
0文章
84瀏覽量
22142
原文標(biāo)題:如何使用emWeb實現(xiàn)與無頭設(shè)備的互動?
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論