91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

干貨 | TCP/IP Over USB 用USB傳輸以太網(wǎng)數(shù)據(jù),給你的MCU加個網(wǎng)卡

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:YXQ ? 2019-07-31 09:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RNDIS和ECM的熱插拔問題

最近修復(fù)了一波RNDIS 和 ECM的熱插拔通信異常問題,添加了通過menuconfig配置RNDIS delay linkup的配置選項。問題修復(fù)點如下:

RNDIS:

當(dāng)存在通信鏈接時 熱插拔 Windows會發(fā)送REMOTE_NDIS_RESET_MSG,該指令未實現(xiàn),現(xiàn)已實現(xiàn)。

當(dāng)存在通信鏈接時 熱插拔 eth_tx線程大幾率會死等傳輸完成的信號量通知,導(dǎo)致LWIP卡死。

當(dāng)存在通信鏈接時 熱插拔 eth_rx的接收緩沖未重置,導(dǎo)致接收數(shù)據(jù)異常。

ECM:

當(dāng)存在通信鏈接時 熱插拔 eth_tx線程大幾率會死等傳輸完成的信號量通知,導(dǎo)致LWIP卡死。

當(dāng)存在通信鏈接時 熱插拔 eth_rx的接收緩沖未重置,導(dǎo)致接收數(shù)據(jù)異常。

現(xiàn)已測試stm32f469i-discovery / LWIP2.0.2 / Windows 10 1903下 RNDIS,iperf傳輸過程中反復(fù)熱插拔后功能正常, delay linkup宏開啟前后功能正常,連續(xù)熱插拔功能正常。

現(xiàn)已測試stm32f469i-discovery / LWIP2.0.2 / MacOS Mojave 10.14.2下 ECM,iperf傳輸過程中反復(fù)熱插拔后功能正常。

關(guān)于NDIS

RNDIS全稱Remote NDIS 是Microsoft定義的一種USB以太網(wǎng)卡模型,說到RNDIS 必須要說說另一個東西,NDIS。

NDIS(Network Driver Interface Specification)是網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范的簡稱。它橫跨傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,定義了網(wǎng)卡或網(wǎng)卡驅(qū)動程序與上層協(xié)議驅(qū)動程序之間的通信接口規(guī)范,屏蔽了底層物理硬件的不同,使上層的協(xié)議驅(qū)動程序可以和底層任何型號的網(wǎng)卡通信。NDIS為網(wǎng)絡(luò)驅(qū)動程序創(chuàng)建了一個完整的開發(fā)環(huán)境,只需調(diào)用NDIS函數(shù),而不用考慮操作系統(tǒng)的內(nèi)核以及與其他驅(qū)動程序的接口問題,從而使得網(wǎng)絡(luò)驅(qū)動程序可以從與操作系統(tǒng)的復(fù)雜通訊中分離,極大地方便了網(wǎng)絡(luò)驅(qū)動程序的編寫。另外,利用NDIS的封裝特性,可以專注于一層驅(qū)動的設(shè)計,減少了設(shè)計的復(fù)雜性,同時易于擴(kuò)展驅(qū)動程序棧。

而RNDIS 就是NDIS這種規(guī)范基于USB的一種具體實現(xiàn),RNDIS目前可以在Windows7 or later(講道理Vista也是可以的)上自動加載驅(qū)動,無需第三方驅(qū)動。而對于Linux和MacOS來說RNDIS則需要安裝第三方驅(qū)動了,部分Linux發(fā)行版內(nèi)置了RNDIS的驅(qū)動(誰叫Windows用的人多了)。至于Linux Mac 下如何使用RNDIS這里不跟你多解釋,因為我提供了另一種解決方案--------CDC-ECM。

CDC-ECM(Ethernet Networking Control Model)是USB聯(lián)盟定義的標(biāo)準(zhǔn)USB以太網(wǎng)控制器模型(很遺憾,Windows下沒有驅(qū)動),絕大部分Linux發(fā)行版和MacOS都支持該種USB設(shè)備的驅(qū)動。這里講的絕大多數(shù)包括了各種pi,當(dāng)然如果你自己編譯的linux手動剔除了這份驅(qū)動就沒辦法了。

如何在RT-Thread上使用這個功能

要用這玩意 首先你的RT-Thread bsp得有usb驅(qū)動 -- 推薦大家使用下面的bsp或者仿照下面的bsp對STM32F4系列的USB驅(qū)動進(jìn)行快速移植。(超簡單)

bsp/stm32/stm32f469-st-disco

有正點原子 L4 IOT Board的朋友也可以用相關(guān)的bsp。

大概的操作步驟如下:

1) 如果你的bsp的menuconfig有配置USB的驅(qū)動加載開關(guān)(比如bsp/stm32/stm32f469-st-disco),那么把它打開。

這里不是每一個bsp都有此配置,有些bsp直接通過usb組件是否開啟來判斷是否使用usb驅(qū)動

2) 把LWIP打開

這里必須先打開LWIP才能在USB Device找到RNDIS/ECM

3)把RNDIS/ECM打開

RNDIS:

ECM:

4)編譯下載插USB。

然后你的Windows/Mac/Linux 上就能看到網(wǎng)卡了。是不是超簡單。

FAQ

Q

為什么設(shè)備上不了網(wǎng)?

因為你只是和電腦連起來了而已,并沒有路由器,甚至沒有DHCP,Windows上可以使用網(wǎng)絡(luò)共享或者網(wǎng)絡(luò)橋接的方式,如果是用Linux的人。我估計也不用我多嗶嗶。

Q

如果想要板子做DHCP怎么辦?

menuconfig里面開DHCP 然后在網(wǎng)卡linkup后調(diào)用 dhcpd_start("u0"); ECM的代碼里面做了如果開DHCP的選項就會自動啟動DHCP服務(wù)器,可以做參考。

Q

速度怎么樣?

鏈接速度為FS 12Mbps HS 480Mbps,當(dāng)然實際上是達(dá)不到這個速度的。不過延遲那是相當(dāng)?shù)牡汀?/p>

Q

可以干嘛?

臨時取代一些調(diào)試麻煩得網(wǎng)絡(luò)接口(WIFI,以太網(wǎng))來調(diào)試一些網(wǎng)絡(luò)應(yīng)用,也可以用來給有USB卻沒有以太網(wǎng)的芯片擴(kuò)展一種上網(wǎng)方式,也可以內(nèi)置一個web服務(wù)器用于配置設(shè)備等等等等....發(fā)揮你的想象力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18949

    瀏覽量

    398908
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    41

    文章

    6020

    瀏覽量

    180969
  • 網(wǎng)卡
    +關(guān)注

    關(guān)注

    4

    文章

    341

    瀏覽量

    28943

原文標(biāo)題:TCP/IP Over USB 用USB傳輸以太網(wǎng)數(shù)據(jù),給你的MCU加個網(wǎng)卡

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    USB3.0千兆網(wǎng)卡芯片CH398,多平臺高效聯(lián)網(wǎng)利器

    CH398是一款高集成度的USB3.0千兆網(wǎng)卡芯片,采用沁恒自研青稞RISC-V處理器,芯片架構(gòu)針對網(wǎng)絡(luò)應(yīng)用優(yōu)化,充分釋放5Gbps超高速USB和1000M以太網(wǎng)
    的頭像 發(fā)表于 03-05 15:01 ?285次閱讀
    <b class='flag-5'>USB</b>3.0千兆<b class='flag-5'>網(wǎng)卡</b>芯片CH398,多平臺高效聯(lián)網(wǎng)利器

    新品 | StamPLC PoE,以太網(wǎng)拓展模塊 Atom DTU NB-IoT2 V1.1,可編程數(shù)據(jù)傳輸單元

    TCP/IP協(xié)議棧,具備8路獨立硬件Socket、10/100M以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物理層(PHY),支持UDP、TCP等主流網(wǎng)絡(luò)通
    的頭像 發(fā)表于 01-16 19:06 ?1020次閱讀
    新品 | StamPLC PoE,<b class='flag-5'>以太網(wǎng)</b>拓展模塊 Atom DTU NB-IoT2 V1.1,可編程<b class='flag-5'>數(shù)據(jù)傳輸</b>單元

    Amphenol單對以太網(wǎng)(SPE)IP20連接器及電纜組件:工業(yè)以太網(wǎng)新選擇

    Amphenol單對以太網(wǎng)(SPE)IP20連接器及電纜組件:工業(yè)以太網(wǎng)新選擇 在工業(yè)自動化和物聯(lián)網(wǎng)蓬勃發(fā)展的今天,高效、可靠且經(jīng)濟(jì)的網(wǎng)絡(luò)連接解決方案至關(guān)重要。Amphenol的單對以太網(wǎng)
    的頭像 發(fā)表于 12-12 10:40 ?682次閱讀

    TCP/UDP 三模式!遠(yuǎn)程監(jiān)控以太網(wǎng)溫濕度傳感器,響應(yīng)快至 1ms

    高科技POE供電以太網(wǎng)溫濕度傳感器深度解析:精準(zhǔn)感知與智能控制的融合創(chuàng)新 一、核心技術(shù)架構(gòu)解析 1. 網(wǎng)絡(luò)通訊技術(shù)突破 ? RJ45+TCP/IP 全棧設(shè)計 :采用 10/100M 自適應(yīng)以太
    的頭像 發(fā)表于 12-04 15:04 ?873次閱讀
    <b class='flag-5'>TCP</b>/UDP 三模式!遠(yuǎn)程監(jiān)控<b class='flag-5'>以太網(wǎng)</b>溫濕度傳感器,響應(yīng)快至 1ms

    以太網(wǎng)通訊在FPGA上的實現(xiàn)

    協(xié)議的載體,IP協(xié)議規(guī)定了數(shù)據(jù)傳輸時的基本單元和格式。其位于以太網(wǎng)MAC幀格式的數(shù)據(jù)段,IP協(xié)議內(nèi)容由I
    發(fā)表于 10-30 07:45

    USB 擴(kuò)展網(wǎng)卡全方位指南:從選購到使用

    在無線網(wǎng)絡(luò)普及的當(dāng)下,有線網(wǎng)絡(luò)憑借更穩(wěn)定的傳輸速率和更低的延遲,仍是游戲、直播、大型文件傳輸等場景的首選。而USB擴(kuò)展網(wǎng)卡(又稱USB千兆
    的頭像 發(fā)表于 10-24 15:37 ?1466次閱讀
    <b class='flag-5'>USB</b> 擴(kuò)展<b class='flag-5'>網(wǎng)卡</b>全方位指南:從選購到使用

    基于FPGA的USB數(shù)據(jù)傳輸

    你也許會有疑問,明明有這么多通信方式和數(shù)據(jù)傳輸(SPI、I2C、UART、以太網(wǎng))為什么偏偏使用USB呢?
    的頭像 發(fā)表于 08-06 14:47 ?4893次閱讀
    基于FPGA的<b class='flag-5'>USB</b><b class='flag-5'>數(shù)據(jù)傳輸</b>

    USB上網(wǎng)實戰(zhàn)教程:RNDIS驅(qū)動一鍵配置!

    ?想要通過USB線快速連接網(wǎng)絡(luò)?本文詳解RNDIS驅(qū)動的安裝與配置步驟。從Linux系統(tǒng)檢測到設(shè)備虛擬網(wǎng)卡,僅需幾個命令即可實現(xiàn)TCP/IP ove
    的頭像 發(fā)表于 08-04 15:46 ?1612次閱讀
    <b class='flag-5'>USB</b>上網(wǎng)實戰(zhàn)教程:RNDIS驅(qū)動一鍵配置!

    SR9900 低功耗USB 2.0轉(zhuǎn)10/100M 快速以太網(wǎng)數(shù)據(jù)說明書

    SR9900是一個高集成度、超低功耗、單芯片USB 2.0轉(zhuǎn)10/100M以太網(wǎng)控制電路。為各類應(yīng)用增加低成?本、小型封裝、即插即用的快速以太網(wǎng)功能,可用于臺 式電腦、筆計本電腦、超便攜式電腦、平板
    發(fā)表于 07-25 17:44 ?3次下載

    Modbus轉(zhuǎn)以太網(wǎng)終極方案:三步實現(xiàn)老舊設(shè)備智能升級

    一、為什么90%的工廠急需Modbus轉(zhuǎn)以太網(wǎng)? 工業(yè)設(shè)備聯(lián)網(wǎng)數(shù)據(jù)顯示,Modbus RTU等設(shè)備仍占現(xiàn)存設(shè)備的68%,但面臨三大致命瓶頸: ? 距離限制:RS485近距離傳輸 vs 以太網(wǎng)
    發(fā)表于 04-24 10:37

    釋放無限可能!支持WAN和LAN,以太網(wǎng)功能兩種用法隨心!

    : ? Air780EPM V1.3開發(fā)板使用沁恒CH390H工業(yè)級以太網(wǎng)控制器芯片,既可以支持WAN功能,也可以支持LAN功能。 示例源碼開放,可根據(jù)實際需求靈活選用。 一、主要硬件準(zhǔn)備 1.1 主要硬件 Air780EPM開發(fā)板套件; 支持數(shù)據(jù)傳輸
    的頭像 發(fā)表于 04-21 15:30 ?829次閱讀
    釋放無限可能!支持WAN和LAN,<b class='flag-5'>以太網(wǎng)</b>功能兩種用法隨心<b class='flag-5'>用</b>!

    一文讀懂~ 源碼開放:Air8101快速實現(xiàn)以太網(wǎng)功能!

    以太網(wǎng)(Ethernet)外設(shè)驅(qū)動涉及硬件與軟件的深度交互,其核心在于通過特定接口連接主處理器與以太網(wǎng)控制器,實現(xiàn)數(shù)據(jù)的發(fā)送、接收以及數(shù)據(jù)鏈路層處理等功能,部分控制器還集成了
    的頭像 發(fā)表于 04-01 14:18 ?722次閱讀
    一文讀懂~ 源碼開放:Air8101快速實現(xiàn)<b class='flag-5'>以太網(wǎng)</b>功能!

    零基礎(chǔ)也能玩轉(zhuǎn)!源碼開放:Air8101快速實現(xiàn)以太網(wǎng)功能

    以太網(wǎng)(Ethernet)外設(shè)驅(qū)動涉及硬件與軟件的深度交互,其核心在于通過特定接口連接主處理器與以太網(wǎng)控制器,實現(xiàn)數(shù)據(jù)的發(fā)送、接收以及數(shù)據(jù)鏈路層處理等功能,部分控制器還集成了
    的頭像 發(fā)表于 04-01 14:18 ?579次閱讀
    零基礎(chǔ)也能玩轉(zhuǎn)!源碼開放:Air8101快速實現(xiàn)<b class='flag-5'>以太網(wǎng)</b>功能

    以太網(wǎng)線纜測試解決方案

    工業(yè)以太網(wǎng)是指在工業(yè)環(huán)境的自動化控制及過程控制中應(yīng)用以太網(wǎng)的相關(guān)組件及技術(shù)。工業(yè)以太網(wǎng)會采用TCP/IP協(xié)議,和IEEE 802.3標(biāo)準(zhǔn)兼容
    的頭像 發(fā)表于 03-21 14:12 ?1991次閱讀
    <b class='flag-5'>以太網(wǎng)</b>線纜測試解決方案

    國產(chǎn)芯片替代方案:解析沁恒USB轉(zhuǎn)以太網(wǎng)芯片

    USB外接網(wǎng)卡、工控設(shè)備、嵌入式網(wǎng)絡(luò)擴(kuò)展等場景中,瑞昱(Realtek)?RTL8152?憑借成熟的USB轉(zhuǎn)10/100M以太網(wǎng)功能占據(jù)主流市場。然而,國產(chǎn)芯片廠商沁恒微電子推出的?
    的頭像 發(fā)表于 03-17 10:46 ?3251次閱讀