色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

干貨 | TCP/IP Over USB 用USB傳輸以太網數據,給你的MCU加個網卡

RTThread物聯網操作系統 ? 來源:YXQ ? 2019-07-31 09:55 ? 次閱讀

RNDIS和ECM的熱插拔問題

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

RNDIS:

當存在通信鏈接時 熱插拔 Windows會發送REMOTE_NDIS_RESET_MSG,該指令未實現,現已實現。

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

當存在通信鏈接時 熱插拔 eth_rx的接收緩沖未重置,導致接收數據異常。

ECM:

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

當存在通信鏈接時 熱插拔 eth_rx的接收緩沖未重置,導致接收數據異常。

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

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

關于NDIS

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

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

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

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

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

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

bsp/stm32/stm32f469-st-disco

有正點原子 L4 IOT Board的朋友也可以用相關的bsp。

大概的操作步驟如下:

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

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

2) 把LWIP打開

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

3)把RNDIS/ECM打開

RNDIS:

ECM:

4)編譯下載插USB。

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

FAQ

Q

為什么設備上不了網?

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

Q

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

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

Q

速度怎么樣?

鏈接速度為FS 12Mbps HS 480Mbps,當然實際上是達不到這個速度的。不過延遲那是相當的低。

Q

可以干嘛?

臨時取代一些調試麻煩得網絡接口(WIFI,以太網)來調試一些網絡應用,也可以用來給有USB卻沒有以太網的芯片擴展一種上網方式,也可以內置一個web服務器用于配置設備等等等等....發揮你的想象力。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17267

    瀏覽量

    352022
  • 以太網
    +關注

    關注

    40

    文章

    5455

    瀏覽量

    172247
  • 網卡
    +關注

    關注

    4

    文章

    313

    瀏覽量

    27414

原文標題:TCP/IP Over USB 用USB傳輸以太網數據,給你的MCU加個網卡

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    快速入門!RNDIS網卡實現USB上網~

    本文將帶你使用RNDIS的方式,搭配Linux主控終端,快速實現USB上網。 ? RNDIS是指Remote NDIS,基于USB實現RNDIS實際上就是TCP/IP
    的頭像 發表于 12-24 17:02 ?605次閱讀
    快速入門!RNDIS<b class='flag-5'>網卡</b>實現<b class='flag-5'>USB</b>上網~

    為什么MPLS仍是以太網傳輸技術的首選

    什么是運營商以太網傳輸技術? 運營商以太網是指在局域 (LAN) 之外使用以太網技術,特別是用于長距離、城域
    的頭像 發表于 11-29 09:14 ?398次閱讀
    為什么MPLS仍是<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b>技術的首選

    以太網TCP/IP的關系解析

    在現代計算機網絡中,以太網TCP/IP協議棧是構建網絡通信的基礎。以太網定義了局域(LAN)中的數據
    的頭像 發表于 11-08 09:21 ?911次閱讀

    以太網傳輸介質和工作模式

    以太網是一種廣泛應用的局域(LAN)技術,它通過特定的傳輸介質和工作模式,在多個設備之間高效地傳輸數據。本文將從
    的頭像 發表于 10-08 10:07 ?1050次閱讀

    水電表集中器支持以太網傳輸數據嗎?

    原理水電表集中器通過內置的網絡適配器,將從各水電表收集的數據打包成IP數據包,利用TCP/IP協議棧進行封裝,再通過
    的頭像 發表于 08-13 17:42 ?318次閱讀
    水電表集中器支持<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b><b class='flag-5'>數據</b>嗎?

    RS485轉LoRa-以太網TCP轉LoRa

    可以實現以太網轉LoRa、Rj45轉LoRa、LoRa轉以太網、RS485轉以太網TCP_IP轉LoRa、LoRa轉網口、RS485串口轉LoRa、LoRa中繼器功能等通信
    的頭像 發表于 06-19 10:39 ?614次閱讀
    RS485轉LoRa-<b class='flag-5'>以太網</b><b class='flag-5'>TCP</b>轉LoRa

    以太網接口的數據傳輸原理詳解

    以太網接口作為計算機網絡中的關鍵組成部分,承擔著數據傳輸的重要職責。在了解以太網接口的數據傳輸原理之前,我們首先需要明確以太網的基本概念和工
    的頭像 發表于 05-29 16:47 ?1785次閱讀

    stm32f4的以太網傳輸ADC采用數據,ADC采樣數據會發生偏差的原因?

    stm32f4的以太網傳輸ADC采用數據,在通訊的時候會造成采樣數據偏差,以太網采用的是lw
    發表于 05-06 09:01

    示波器分析以太網傳輸機制

    本文以雙絞線以太網為分析對象,以混合信號示波器為分析工具,深入探秘了兩類常見的雙絞線以太網的編碼,且實地查看并驗證了以太網在物理層的信號傳輸情況。最后,通過一個實戰例子對比了實際網絡中
    的頭像 發表于 04-12 08:30 ?855次閱讀
    <b class='flag-5'>用</b>示波器分析<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b>機制

    STM32H743以太網與高速USB同時工作遇到的疑問求解

    的代碼。 CubeMX中使用了FreeRTOS,高速USB使用的是CDC類。以太網使用的是LWIP,以太網與PC建立TCP連接。 現在的現象是:當電腦PC與STM32H743進行
    發表于 04-09 07:53

    應用場景:USB以太網標準模塊

    本帖最后由 lockyymc 于 2024-3-25 15:59 編輯 USB以太網標準模塊 AG32支持USB FS+OTG和以太網MAC,并且提供了標準例程,包括網絡Lwi
    發表于 03-24 10:41

    請問STM32G4系列的MCU可以支持以太網嗎?

    請問STM32G4系列的MCU可以支持以太網嗎?該系列同時支持以太網USB Host或OTG接口的型號有嗎?
    發表于 03-15 06:14

    工業以太網的基本原理及優勢

    主要的工業以太網標準有以太網/IP、PROFINET、EtherCAT、Modbus/TCP等,這些標準實現了互操作性,應用于不同的工業控制領域。
    的頭像 發表于 03-06 16:31 ?1308次閱讀
    工業<b class='flag-5'>以太網</b>的基本原理及優勢

    CANopen以太網網關怎么

    CANopen以太網網關怎么? CANopen以太網網關是一種連接CANopen總線和以太網的設備,它提供了在CANopen網絡和以太網
    的頭像 發表于 02-02 16:59 ?3421次閱讀

    創新通訊方式:了解USB5630-D的以太網USB數據傳輸方式帶來的優勢!

    產品背景介紹 USB5630-D是一款多功能數據采集卡。支持以太網USB數據傳輸方式,該板卡提供64路模擬量單端輸入或32路差分輸入,4路
    的頭像 發表于 01-29 16:53 ?438次閱讀
    主站蜘蛛池模板: 美女挑战50厘米长的黑人| 国产精品免费视频能看| AV精品爆乳纯肉H漫网站| 国产精品96久久久久久AV不卡 | 囯产精品久久久久免费蜜桃 | 69SEX久久精品国产麻豆| 国产精品九九久久| 欧美在线亚洲综合国产人| 伊人久久综合成人亚洲| 国产精品毛片在线视频| 欧美群交XXXCOM| 早乙女由依在线观看| 国产日韩精品SUV| 日韩1区1区产品乱码芒果榴莲| 中文字幕s级优女区| 国模孕妇模特季玥之粉红| 手机在线亚洲日韩国产| 被公疯狂玩弄的漂亮人妻| 男女啪啪久久精品亚洲A| 在线视频免费观看| 精品国产高清自在线看| 亚洲 欧美 国产 综合五月天| 俄罗斯呦呦| 青柠在线视频| JK白丝校花爽到娇喘视频| 美女搞鸡网站| 最近的中文字幕2019国语| 九九黄色大片| 一区三区三区不卡| 久久91精品国产91| 伊人国产在线观看| 精品国产99久久久久久麻豆| 性夜夜春夜夜爽AA片A| 国产成人无码AV麻豆| 日本激情网址| 成人免费观看国产高清| 欧美午夜精品一区二区蜜桃| 99久久国产综合精品国| 免费国产久久啪久久爱| 97精品国产高清在线看入口| 麻生希快播在线|