国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發布時間:2020-5-12 17:17    發布者:嵌入式人生17
TCP/IP Over USB 用USB傳輸以太網數據,給你的MCU加個網卡
作者word天
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps6.png
RTThread物聯網操作系統
幫助您了解RT-Thread相關的資訊。
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下 RNDISiperf傳輸過程中反復熱插拔后功能正常, delay linkup宏開啟前后功能正常,連續熱插拔功能正常。
現已測試stm32f469i-discovery / LWIP2.0.2 / MacOS Mojave 10.14.2下 ECMiperf傳輸過程中反復熱插拔后功能正常。
相關Pull Request:
https://github.com/RT-Thread/rt-thread/pull/2764(因微信無法插入外部鏈接,請將以上鏈接復制至外部瀏覽器打開)
關于NDIS
RNDIS全稱Remote NDIS Microsoft定義的一種USB以太網卡模型,說到RNDIS 必須要說說另一個東西,NDIS
NDIS(Network Driver Interface Specification)是網絡驅動程序接口規范的簡稱。它橫跨傳輸層、網絡層和數據鏈路層,定義了網卡或網卡驅動程序與上層協議驅動程序之間的通信接口規范,屏蔽了底層物理硬件的不同,使上層的協議驅動程序可以和底層任何型號的網卡通信。NDIS為網絡驅動程序創建了一個完整的開發環境,只需調用NDIS函數,而不用考慮操作系統的內核以及與其他驅動程序的接口問題,從而使得網絡驅動程序可以從與操作系統的復雜通訊中分離,極大地方便了網絡驅動程序的編寫。另外,利用NDIS的封裝特性,可以專注于一層驅動的設計,減少了設計的復雜性,同時易于擴展驅動程序棧。
RNDIS 就是NDIS這種規范基于USB的一種具體實現,RNDIS目前可以在Windows7 or later(講道理Vista也是可以的)上自動加載驅動,無需第三方驅動。而對于LinuxMacOS來說RNDIS則需要安裝第三方驅動了,部分Linux發行版內置了RNDIS的驅動(誰叫Windows用的人多了)。至于Linux Mac 下如何使用RNDIS這里不跟你多解釋,因為我提供了另一種解決方案--------CDC-ECM
CDC-ECMEthernet Networking Control Model)是USB聯盟定義的標準USB以太網控制器模型(很遺憾,Windows下沒有驅動),絕大部分Linux發行版和MacOS都支持該種USB設備的驅動。這里講的絕大多數包括了各種pi,當然如果你自己編譯的linux手動剔除了這份驅動就沒辦法了。
下載RNDIS/ECM白皮書請由此入:
https://www.rt-thread.org/qa/thread-11718-1-1.html(因微信無法插入外部鏈接,請將以上鏈接復制至外部瀏覽器打開)
如何在RT-Thread上使用這個功能
要用這玩意 首先你的RT-Thread bsp得有usb驅動 -- 推薦大家使用下面的bsp或者仿照下面的bspSTM32F4系列的USB驅動進行快速移植。(超簡單)
bsp/stm32/stm32f469-st-disco
有正點原子 L4 IOT Board的朋友也可以用相關的bsp。
大概的操作步驟如下:
1) 如果你的bsp的menuconfig有配置USB的驅動加載開關(比如bsp/stm32/stm32f469-st-disco),那么把它打開。
這里不是每一個bsp都有此配置,有些bsp直接通過usb組件是否開啟來判斷是否使用usb驅動
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps7.png
2) 把LWIP打開
這里必須先打開LWIP才能在USB Device找到RNDIS/ECM
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps8.png
3)把RNDIS/ECM打開
RNDIS:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps9.png
ECM:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps10.png
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服務器用于配置設備等等等等....發揮你的想象力。
TCP/IP Over USB 用USB傳輸以太網數據,給你的MCU加個網卡
作者word天
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps6.png
RTThread物聯網操作系統
幫助您了解RT-Thread相關的資訊。
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下 RNDISiperf傳輸過程中反復熱插拔后功能正常, delay linkup宏開啟前后功能正常,連續熱插拔功能正常。
現已測試stm32f469i-discovery / LWIP2.0.2 / MacOS Mojave 10.14.2下 ECMiperf傳輸過程中反復熱插拔后功能正常。
相關Pull Request:
https://github.com/RT-Thread/rt-thread/pull/2764(因微信無法插入外部鏈接,請將以上鏈接復制至外部瀏覽器打開)
關于NDIS
RNDIS全稱Remote NDIS Microsoft定義的一種USB以太網卡模型,說到RNDIS 必須要說說另一個東西,NDIS
NDIS(Network Driver Interface Specification)是網絡驅動程序接口規范的簡稱。它橫跨傳輸層、網絡層和數據鏈路層,定義了網卡或網卡驅動程序與上層協議驅動程序之間的通信接口規范,屏蔽了底層物理硬件的不同,使上層的協議驅動程序可以和底層任何型號的網卡通信。NDIS為網絡驅動程序創建了一個完整的開發環境,只需調用NDIS函數,而不用考慮操作系統的內核以及與其他驅動程序的接口問題,從而使得網絡驅動程序可以從與操作系統的復雜通訊中分離,極大地方便了網絡驅動程序的編寫。另外,利用NDIS的封裝特性,可以專注于一層驅動的設計,減少了設計的復雜性,同時易于擴展驅動程序棧。
RNDIS 就是NDIS這種規范基于USB的一種具體實現,RNDIS目前可以在Windows7 or later(講道理Vista也是可以的)上自動加載驅動,無需第三方驅動。而對于LinuxMacOS來說RNDIS則需要安裝第三方驅動了,部分Linux發行版內置了RNDIS的驅動(誰叫Windows用的人多了)。至于Linux Mac 下如何使用RNDIS這里不跟你多解釋,因為我提供了另一種解決方案--------CDC-ECM
CDC-ECMEthernet Networking Control Model)是USB聯盟定義的標準USB以太網控制器模型(很遺憾,Windows下沒有驅動),絕大部分Linux發行版和MacOS都支持該種USB設備的驅動。這里講的絕大多數包括了各種pi,當然如果你自己編譯的linux手動剔除了這份驅動就沒辦法了。
下載RNDIS/ECM白皮書請由此入:
https://www.rt-thread.org/qa/thread-11718-1-1.html(因微信無法插入外部鏈接,請將以上鏈接復制至外部瀏覽器打開)
如何在RT-Thread上使用這個功能
要用這玩意 首先你的RT-Thread bsp得有usb驅動 -- 推薦大家使用下面的bsp或者仿照下面的bspSTM32F4系列的USB驅動進行快速移植。(超簡單)
bsp/stm32/stm32f469-st-disco
有正點原子 L4 IOT Board的朋友也可以用相關的bsp。
大概的操作步驟如下:
1) 如果你的bsp的menuconfig有配置USB的驅動加載開關(比如bsp/stm32/stm32f469-st-disco),那么把它打開。
這里不是每一個bsp都有此配置,有些bsp直接通過usb組件是否開啟來判斷是否使用usb驅動
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps7.png
2) 把LWIP打開
這里必須先打開LWIP才能在USB Device找到RNDIS/ECM
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps8.png
3)把RNDIS/ECM打開
RNDIS:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps9.png
ECM:
file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml17696\wps10.png
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服務器用于配置設備等等等等....發揮你的想象力。

本文地址:http://m.qingdxww.cn/thread-588471-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美亚洲国产高清在线 | 91热在线观看精品 | 欧美一区二区三区激情视频 | 欧美日韩综合高清一区二区 | 日本高免费观看在线播放 | 色综合视频在线 | 成人在线一区二区 | 久久免费精品高清麻豆 | 久久国产成人精品麻豆 | 狠狠色依依成人婷婷九月 | 香蕉视频在线免费看 | 亚洲4区 | 久久青青草视频 | 日日操干 | 麻豆免费观看视频 | 精品国产不卡一区二区三区 | 天天在线免费视频 | 丁香婷婷久久大综合 | 老鸭窝成人 | 久久婷婷丁香 | 欧美成人一区二区三区 | 精品特级一级毛片免费观看 | 欧美一区二区三区日韩免费播 | 视频一区二区在线观看 | 国产精品一区二区不卡的视频 | 成人精品视频在线观看 | 国产精品欧美一区喷水 | 亚洲男人的天堂网站 | 尻逼小说 | 久久这里只有精品23 | 啦啦啦免费高清在线影院 | 日本www网站| 国产va免费高清在线观看 | 男人色综合 | 国产一区日韩二区欧美三区 | 国产三级精品三级在专区 | 久草网址 | 五月天免费在线视频 | 精品国产精品国产偷麻豆 | 草莓视频无限频下载-丝瓜视 | 亚洲丰满熟妇毛片在线播放 |