那曲檬骨新材料有限公司

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

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

3天內不再提示

基于SDIO協議的WiFi模塊實現指南

電子發燒友開源社區 ? 來源:未知 ? 2022-12-20 09:05 ? 次閱讀
WiFi模塊可以封裝成多種不同的接口,如SDIO、PCIe。SDIO接口的WiFi也是最常見的一種。SDIO接口最先被應用在存儲卡上,后來其命令模式衍生到攝像頭、WiFi等設備上。SDIO接口協議作是一種應用廣泛的接口協議,其功能被集成在linux 的driver/mmc目錄下,其中core目錄封裝了sdio的協議框架,定義接口。host目錄則為具體的產品設備用到的接口函數的實現。現具體的分析SDIO總線通信原理:SDIO總線 和 USB總線 類似,SDIO也有兩端。當中一端是HOST端,還有一端是device端。通信時HOST端驅動時鐘線發送命令,Device端需要解析命令并給出應答,從而實現互相通信。通信總線:
CLK信號:HOST給DEVICE的 時鐘信號,每個時鐘周期傳輸一個命令或數據位 。

CMD信號:命令在 CMD 線上串行傳輸,是
雙向半雙工的(命令從主機到從卡,而命令的響應是從卡發送到主機)。

DAT0-DAT3 信號:四條用于快速傳送數據的數據線,由CLK同步的信號。
20abd65a-8002-11ed-8abf-dac502259ad0.png ?1、設備驅動的注冊與匹配
[Drivers/net/wireless/libertas/if_sdio.c]
/* sdio function device driver*/


struct sdio_driver {
char *name;  //設備名
const struct sdio_device_id *id_table; //設備驅動ID
int (*probe)(struct sdio_func *, const struct sdio_device_id *);//匹配函數
void (*remove)(struct sdio_func *);
struct device_driver drv;
};
數據的接收,通過中斷的方式來解決 網絡設備接收數據的主要方法是由中斷引發設備的中斷處理函數,中斷處理函數推斷中斷的類型,假設為接收中斷。則讀取接收到的數據。分配sk_buff數據結構和數據緩沖區。并將接收的數據拷貝到數據緩存區。并調用netif_rx()函數將sk_buff傳遞給上層協議。 搜索if_sdio_interrupt,可知道它是在if_sdio.c文件里if_sdio_probe()函數中sdio_claim_irq(func, if_sdio_interrupt) ,func->irq_handler = if_sdio_interrupt。當s3cmci_irq中斷處理函數的S3C2410_SDIIMSK_sdioIRQ 中斷被觸發時將調用if_sdio_interrupt()函數,進行接收數據。
static void if_sdio_interrupt(struct sdio_func *func)
數據發送維護了網絡傳輸的數據,是比較重要的調試接口,可以由此獲得全部的輸出數據信息
//IP層通過dev_queue_xmit()將數據交給網絡設備協議接口層,網絡接口層通過netdevice中的注冊函數的數據發送函數int dev_queue_xmit(struct sk_buff *skb)
移除函數當sdio卡拔除時。驅動會調用該函數。完畢對應操作。 拔除后,首先是管腳電平發生變化,從而觸發管腳中斷,程序由此得到消息,執行了釋放函數 如釋放占有的資源。禁止func功能函數。釋放host。
if_sdio_remove(struct sdio_func *func)
---->lbs_stop_card(card->priv);
lbs_remove_card(card->priv);
     ---->kthread_stop(priv->main_thread);  //終止內核線程


lbs_free_adapter(priv);
lbs_cfg_free(priv);
free_netdev(dev);


flush_workqueue(card->workqueue);  //刷新工作隊列
destroy_workqueue(card->workqueue);
sdio_claim_host(func);
sdio_release_irq(func);
sdio_disable_func(func);
sdio_release_host(func);
本文介紹了基于SDIO接口協議的WiFi模塊,簡單闡述了SDIO總線通信原理,列舉了設備驅動的注冊、匹配中使用到的重點接口函數的作用,包含數據接收,發送,以及資源的釋放。讓用戶在一些設備上使用SDIO接口協議開發時,更清晰方便的了解其工作原理和重點接口函數的使用,幫助用戶提升開發效率。 更多熱點文章閱讀
  • 粵港澳大灣區國際人工智能機器人高峰會2022重磅來襲!
  • 搜電充電:創新“服務卡片”,讓即時充電更便捷
  • ArkUI框架,更懂程序員的UI信息語法
  • 全球首個港口全面數字孿生技術底座“津鴻”系統發布
  • 一個在線閱讀OpenHarmony全量代碼的網站

提示:本文由電子發燒友社區發布,轉載請注明以上來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱liuyong@huaqiu.com。


原文標題:基于SDIO協議的WiFi模塊實現指南

文章出處:【微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。


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

    關注

    33

    文章

    556

    瀏覽量

    33106
  • 開源社區
    +關注

    關注

    0

    文章

    94

    瀏覽量

    485

原文標題:基于SDIO協議的WiFi模塊實現指南

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CW32模塊使用 ESP01S WIFI模塊

    為現有的設備添加聯網功能,也可以構建獨立的網絡控制器。即使在不了解其原理的情況下,只要有一定的串口知識理解,那么就可以輕松上手該模塊,進而實現手機WiFi操作。功能特點:基于ESP8266芯片開發,模組集成了透傳功能,即買即用,
    的頭像 發表于 01-23 13:08 ?90次閱讀
    CW32<b class='flag-5'>模塊</b>使用 ESP01S <b class='flag-5'>WIFI</b><b class='flag-5'>模塊</b>

    基于CC3301芯片的雙模WiFi模塊E103-W13產品說明

    E103-W13系列WiFi 6 + 藍牙5.4協議雙模WiFi模塊 E103-W13是基TI第十代Combo芯片CC3301推出一款2.4GHz工作頻段Wi-Fi?6
    的頭像 發表于 10-25 14:13 ?422次閱讀

    淺析SDIO協議V2和V3版本的區別

    SDIO(Secure Digital Input/Output)協議V2和V3在多個方面存在顯著的區別,這些區別主要體現在功能支持、硬件要求、安全性以及支持的協議等方面。以下是對這些區別的詳細分析
    發表于 09-18 08:32

    HART協議基本指南

    電子發燒友網站提供《HART協議基本指南.pdf》資料免費下載
    發表于 08-30 10:31 ?3次下載
    HART<b class='flag-5'>協議</b>基本<b class='flag-5'>指南</b>

    SYN43752方案WIFI6模塊VS2275S/P

    首先來了解SYN43752,它是www.synaptics.com旗下的一款WIFI6方案,其中WiFi支持PCIE或者SDIO接口2T2R雙通道通信,最大速率高達1200Mbps;藍牙支持UART
    的頭像 發表于 08-19 16:28 ?1444次閱讀

    FPGA實現SDIO訪問需要注意的問題

    FPGA實現SDIO訪問時,需要注意以下幾個關鍵問題和細節: 初始化過程: SDIO總線的初始化是確保FPGA與SD卡能夠正常通信的第一步。這包括設置時鐘頻率、配置數據傳輸模式以及校驗協議
    發表于 06-27 08:38

    stm32使用SDIO與esp32通訊失敗的原因?

    ) I (1317) wifi:enable tsf I (1324) wifi:mode : softAP (c8:f0:9e:e2:d1:f5) [0;32mI (1336) SDIO
    發表于 06-26 07:21

    WiFi模塊和藍牙模塊怎么區分?

    近些年,物聯網技術越來越先進,給人類生活帶來了巨大的便利。智能家居、智能家電點點滴滴都是科技進步的寫照。物聯網離不開WiFi藍牙技術,不少設備廠商在藍牙模塊wifi模塊之中猶豫不定,
    的頭像 發表于 05-29 10:14 ?1055次閱讀
    <b class='flag-5'>WiFi</b><b class='flag-5'>模塊</b>和藍牙<b class='flag-5'>模塊</b>怎么區分?

    SDIO總線啟動失敗, whd_kso_enable失敗的原因?

    我們在新產品中移植了 WIFI 協議棧,但出現了 WIFI 穩定性問題,主要是顯示 SDIO 總線通信錯誤,出現該問題時我們重啟了協議棧,但
    發表于 05-28 07:26

    國產ARM + FPGA的SDIO通信開發介紹!

    SDIO(Secure Digital lnput and Output),即安全數字輸入輸出接口。SDIO總線協議是由SD協議演化而來,它主要是對SD
    的頭像 發表于 05-17 14:26 ?752次閱讀
    國產ARM + FPGA的<b class='flag-5'>SDIO</b>通信開發介紹!

    技術分享!國產ARM + FPGA的SDIO通信開發介紹!

    SDIO總線介紹 SDIO(Secure Digital lnput and Output),即安全數字輸入輸出接口。SDIO總線協議是由SD協議
    的頭像 發表于 05-14 14:02 ?809次閱讀
    技術分享!國產ARM + FPGA的<b class='flag-5'>SDIO</b>通信開發介紹!

    技術分享!國產ARM + FPGA的SDIO通信開發介紹!

    SDIO總線介紹SDIO(SecureDigitallnputandOutput),即安全數字輸入輸出接口。SDIO總線協議是由SD協議演化
    的頭像 發表于 05-14 08:05 ?523次閱讀
    技術分享!國產ARM + FPGA的<b class='flag-5'>SDIO</b>通信開發介紹!

    無線通信模塊通過TCP/IP協議實現與PC端的數據傳輸

    和涉及的關鍵技術,并以WIFI模塊為例,探討如何在QT平臺下實現數據的無線傳輸。 一、無線通信模塊與TCP/IP協議概述 無線通信
    的頭像 發表于 05-11 15:44 ?739次閱讀

    WiFi模塊引領智能家居革命:連接未來的生活

    如何驅動智能家居革命。 設備互聯與智能控制 WiFi模塊為智能家居設備提供了強大的連接能力,使得各種設備能夠互相聯通并實現智能控制。從智能燈具、智能插座,到智能家電,這些設備通過WiFi
    的頭像 發表于 02-29 15:22 ?695次閱讀

    WiFi協議如何進行數據交換和通信

    WiFi協議棧主要包括三個層次:物理層(PHY)、數據鏈路層(DLL)和網絡層(NET)。每個層次都有其特定的功能和協議
    的頭像 發表于 02-19 17:04 ?1776次閱讀
    <b class='flag-5'>WiFi</b><b class='flag-5'>協議</b>如何進行數據交換和通信
    菲律宾百家乐官网娱乐场| 百家乐官网怎么玩| 百家乐桌| 金都国际| 百家乐官网游戏唯一官网网站| 百家乐博国际| 百家乐官网棋牌游戏皇冠网| 什么百家乐平注法| 明珠娱乐| 风水24山头| 爱赢娱乐城开户| 百家乐官网长胜攻略| 金界百家乐的玩法技巧和规则| 百家乐官网几点开奖| 百家乐包赢| 和田市| 24向山九宫格图| 八大胜| 澳门百家乐免费开户| 阿克苏市| 百家乐开户最快的平台是哪家| 板桥市| 网上百家乐骗局| 百家乐官网作弊演示| 百乐坊百家乐娱乐城| 玩百家乐官网技巧博客| 致胜百家乐软件| 哪个百家乐官网投注比较好| 成都百家乐的玩法技巧和规则| 金宝博百家乐官网娱乐城| 网址百家乐的玩法技巧和规则| 百家乐官网保单破解方法| 开心8百家乐娱乐城| 灌云县| 百家乐奥| 百家乐官网平注赢钱法| 大发888扑克| 火箭百家乐官网的玩法技巧和规则| 娱乐城免费送彩金| 百家乐书| 香港百家乐官网赌场|