當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 網(wǎng)絡(luò)協(xié)議
[導(dǎo)讀]嵌入式USB的以太網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì) 隨著USB技術(shù)的迅速發(fā)展,人們對(duì)USB的期望也越來(lái)越高。雖然USB技術(shù)在臺(tái)式計(jì)算機(jī)領(lǐng)域的地位已經(jīng)固如磐石,但是由于其以主機(jī)為中心的拓?fù)浣Y(jié)構(gòu),任何一次USB的數(shù)據(jù)傳輸

嵌入式USB的以太網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì)

隨著USB技術(shù)的迅速發(fā)展,人們對(duì)USB的期望也越來(lái)越高。雖然USB技術(shù)在臺(tái)式計(jì)算機(jī)領(lǐng)域的地位已經(jīng)固如磐石,但是由于其以主機(jī)為中心的拓?fù)浣Y(jié)構(gòu),任何一次USB的數(shù)據(jù)傳輸都必須由主機(jī)來(lái)發(fā)起和控制,所有的 USB設(shè)備都只能與主機(jī)建立連接。不僅如此,軟件復(fù)雜性以及較高的功率要求,使得人們對(duì)嵌入式設(shè)備中使用USB的興趣與日俱增。嵌入式USB結(jié)合以太網(wǎng)技術(shù)可以將USB設(shè)備轉(zhuǎn)換到TCP/IP,讓USB 設(shè)備不再受距離限制,可以通過(guò)網(wǎng)絡(luò)隨時(shí)隨地訪問(wèn)USB設(shè)備,可以讓一個(gè)USB設(shè)備供多個(gè)用戶使用,從而提高USB設(shè)備的利用率。通過(guò)使USB設(shè)備具備聯(lián)網(wǎng)能力的設(shè)備聯(lián)網(wǎng)服務(wù)器,可以實(shí)現(xiàn)聯(lián)網(wǎng)使用USB存儲(chǔ)、USB視頻和USB打印等。本文提出了一種利用ARM7來(lái)實(shí)現(xiàn)嵌入式USB的方法,并結(jié)合以太網(wǎng)應(yīng)用技術(shù),使得通過(guò)網(wǎng)絡(luò)可以方便地訪問(wèn)USB設(shè)備。

1 系統(tǒng)組成及工作原理

系統(tǒng)硬件結(jié)構(gòu)如圖1所示,系統(tǒng)采用LPC2148控制嵌入式SL811HS和ENC28J60,實(shí)現(xiàn)了USB設(shè)備與以太網(wǎng)的連接,便于USB設(shè)備的網(wǎng)絡(luò)共享和數(shù)據(jù)的遠(yuǎn)距離傳輸。SL811HS主要實(shí)現(xiàn)USB HOST的功能,它能夠識(shí)別USB設(shè)備,并能夠?qū)υ撛O(shè)備進(jìn)行讀寫(xiě)操作。ENC28J60主要完成系統(tǒng)的網(wǎng)絡(luò)通信,實(shí)現(xiàn)對(duì)系統(tǒng)USB設(shè)備的遠(yuǎn)程訪問(wèn)。



2 系統(tǒng)模塊設(shè)計(jì)

LPC2148是一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-STM CPU的微控制器,并帶有512KB嵌入的高速片內(nèi)FLASH存儲(chǔ)器。片內(nèi)128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大的時(shí)鐘頻率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可以使用16位Thumb模式將代碼降低超過(guò)30%,而犧牲的性能卻很小。LPC2148具有較小的64腳封裝,最多可以使用46個(gè)GPIO。其極低的功耗、多個(gè)32位定時(shí)器、多路10位ADC、1路DAC以及豐富的接口使其特別適合于工業(yè)控制、醫(yī)療系統(tǒng)、訪問(wèn)控制嵌入式MODEM等各種類(lèi)型的應(yīng)用。選用LPC2148的原因是它片內(nèi)集成了FLASH、RAM、SPI接口,使得外圍電路簡(jiǎn)單,性價(jià)比高。

ENC28J60是美國(guó)微芯科技公司于2005年推出的全球首枚28引腳獨(dú)立以太網(wǎng)控制器,可為嵌入式應(yīng)用提供低引腳數(shù)、低成本且高效易用的遠(yuǎn)程通信解決方案。此外,ENC28J60以太網(wǎng)控制器采用業(yè)界標(biāo)準(zhǔn)的SPI串行接口,只需很少的連線即可與主控芯片機(jī)連接,使如圖2所示。其中的CS和RESET接到主控芯片是為了使軟件設(shè)計(jì)更靈活。



SL811HS是Cypress公司設(shè)計(jì)的嵌入式USB主機(jī)設(shè)備控制器,在嵌入式系統(tǒng)中應(yīng)用很廣泛,能通過(guò)軟件控制選擇主從方式,支持低速和全速傳輸并自動(dòng)檢測(cè)低速或全速設(shè)備,通過(guò)A0區(qū)分地址和數(shù)據(jù),并支持地址自增模式。SL811HS與主控芯片的接口電路如圖3所示。



3 軟件設(shè)計(jì)

系統(tǒng)軟件主要由嵌入式TCP/IP程序和嵌入式USB兩個(gè)部分組成。系統(tǒng)程序通過(guò)收到的以太網(wǎng)數(shù)據(jù)包的類(lèi)型來(lái)進(jìn)行相應(yīng)的處理,完成特定的功能。例如通過(guò)以太網(wǎng)遠(yuǎn)程登陸的方式瀏覽和修改本地?cái)?shù)據(jù),達(dá)到本地?cái)?shù)據(jù)網(wǎng)絡(luò)共享的目的。

3.1 嵌入式TCP/IP實(shí)現(xiàn)

嵌入式TCP/IP實(shí)現(xiàn)包括以太網(wǎng)控制器ENC28J60底層驅(qū)動(dòng)、TCP/IP協(xié)議。ENC28J60 可與許多主控制器上的SPI接口直接相連。此器件只支持SPI 的0,0模式。另外,SPI 端口要求SCK 在空閑狀態(tài)時(shí)為低電平,不支持時(shí)鐘極性選擇。在SCK 的每個(gè)上升沿移入數(shù)據(jù),命令和數(shù)據(jù)通過(guò)SI 引腳送入器件。 ENC28J60在SCK的下降沿從SO引腳輸出數(shù)據(jù)。當(dāng)執(zhí)行操作時(shí)CS 引腳必須保持低電平,當(dāng)操作完成時(shí)返回高電平。

3.1.1ENC28J60底層驅(qū)動(dòng)

在使用ENC28J60發(fā)送和接收數(shù)據(jù)包前,必須對(duì)器件進(jìn)行初始化設(shè)置。根據(jù)應(yīng)用的不同,一些配置選項(xiàng)可能需要更改。通常初始化任務(wù)會(huì)在復(fù)位之后立即完成,并且不再需要更改。初始化任務(wù)主要包括:(1)初始化接收緩沖器:在接收數(shù)據(jù)包前,必須編程ERXST和ERXND指針來(lái)對(duì)接收緩沖器進(jìn)行初始化。ERXST與ERXND之間的存儲(chǔ)空間專(zhuān)供接收硬件使用。(2)初始化發(fā)送緩沖器:所有未被用作接收緩沖器的存儲(chǔ)空間都將作為發(fā)送緩沖器,故不需要專(zhuān)門(mén)對(duì)發(fā)送緩沖器進(jìn)行專(zhuān)門(mén)的初始化。(3)等待OST:如果在上電復(fù)位后立即進(jìn)行初始化,應(yīng)查詢ESTAT.CLKRDY位,確保在開(kāi)始修改MAC和PHY寄存器前已經(jīng)經(jīng)過(guò)足夠長(zhǎng)的時(shí)間。(4)PHY初始化:PHY寄存器不能通過(guò)SPI控制接口直接訪問(wèn),而是通過(guò)一組帶有MIIM的特殊MAC控制寄存器來(lái)完成的。程序中在配置LED時(shí)用到了PHY寫(xiě)函數(shù)。寫(xiě)PHY寄存器時(shí),先將PHY寄存器的地址寫(xiě)入MIREGADR,然后將要寫(xiě)入高低8位的內(nèi)容分別寫(xiě)入MIWRH、MIWRL即可。

發(fā)送數(shù)據(jù)包時(shí),ENC28J60會(huì)自動(dòng)生成前導(dǎo)符和幀起始定界符。此外MAC還可以根據(jù)配置自動(dòng)生成填充和CRC字段。主控制器要生成所有其他幀字段,并將他們寫(xiě)入緩沖器,以待發(fā)送。此外,ENC28J60還要求在待發(fā)送的數(shù)據(jù)包前添加一個(gè)包的控制字節(jié)。接收數(shù)據(jù)包時(shí)可以使用中斷的方式,也可以使用查詢的方式。由于本設(shè)計(jì)對(duì)實(shí)時(shí)性要求不是很高,故采用查詢的方式。如果有數(shù)據(jù)包到達(dá),ENC28J60將置位EIR寄存器的PTKIF位。程序運(yùn)行時(shí)不斷地查詢?cè)撐灰耘袛嘤袩o(wú)數(shù)據(jù)包到達(dá)。

3.1.2 以太網(wǎng)數(shù)據(jù)包處理

網(wǎng)絡(luò)協(xié)議通常是在不同的協(xié)議層上進(jìn)行開(kāi)發(fā),每一層負(fù)責(zé)不同的通信功能。TCP/IP 協(xié)議是一組不同層次上的多個(gè)協(xié)議的組合。當(dāng)系統(tǒng)收到以太網(wǎng)的數(shù)據(jù)時(shí),數(shù)據(jù)就開(kāi)始從協(xié)議中由數(shù)據(jù)鏈路層逐層剝離其中各層協(xié)議所加的首部。主程序按照以太網(wǎng)數(shù)據(jù)幀分用的思路進(jìn)行編制,程序框架如圖4所示。



3.2  嵌入式USB實(shí)現(xiàn)

嵌入式USB軟件主要分成4個(gè)部分:SL811HS初始化、USB設(shè)備的識(shí)別及配置、海量存儲(chǔ)協(xié)議和FAT文件系統(tǒng)。SL811HS共有16個(gè)配置寄存器,其中00-04H、08H-0CH是USB-A、USB-B的工作配置寄存器,05H是控制寄存器1,06H是中斷使能寄存器,07H的各位均為保留位,0DH為狀態(tài)寄存器,0EH為SOF計(jì)數(shù)寄存器,0FH為SOF計(jì)數(shù)寄存器的高位和控制寄存器2。在SL811HS上電開(kāi)始工作之后,首先將寄存器05H的第3位置1,延時(shí)30 ms后清零,便可以對(duì)USB總線復(fù)位;然后在06H寄存器中寫(xiě)入61H,使能設(shè)備檢測(cè)中斷。

當(dāng)有設(shè)備插入時(shí),會(huì)使SL811HS的D+管腳置高,SL811HS的寄存器0DH的第7位置1并產(chǎn)生中斷,系統(tǒng)會(huì)識(shí)別到有USB設(shè)備插入,即可對(duì)USB設(shè)備進(jìn)行配置了。通過(guò)標(biāo)準(zhǔn)設(shè)備請(qǐng)求函數(shù)ClearFeaure()、GetConfiguraTIon()、GetDescriptor()、SetAddress()等函數(shù)完成對(duì)設(shè)備的配置。

本系統(tǒng)可以檢測(cè)U盤(pán)的狀態(tài)(如接入、拔出),通過(guò)網(wǎng)絡(luò)對(duì)U盤(pán)的訪問(wèn),包括創(chuàng)建文件、目錄和讀寫(xiě)文件等,實(shí)現(xiàn)了USB設(shè)備網(wǎng)絡(luò)共享的目的。 但是由于不同USB設(shè)備的驅(qū)動(dòng)通常也不同,USB作為嵌入式應(yīng)用時(shí)不可能像PC機(jī)操作系統(tǒng)把所有的驅(qū)動(dòng)都裝上。但是隨著嵌入式技術(shù)的發(fā)展,可以采用網(wǎng)絡(luò)更新驅(qū)動(dòng)的方式,只要某種USB設(shè)備接上就可以通過(guò)更新系統(tǒng)的固件,達(dá)到識(shí)別該設(shè)備和使用該設(shè)備的目的。這也是本系統(tǒng)目前這也是本系統(tǒng)目前需要完善的地方。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉