乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      51驅動W5500做TCPClient

       回家的夢想 2021-12-14
      • W5500簡介
      • 芯片特點
      • 引腳說明
      • 相關寄存器相關程序測試結果圖總結

      W5500簡介

      本次寫一篇相關驅動W5500模組的文章,W5500 芯片是一種采用全硬件 TCP/IP 協議棧的嵌入式以太網控制器,它能使嵌入式系統(tǒng)通過 SPI(串行外設接口)接口輕松地連接到網絡。此次準備寫一下51驅動W5500作為客戶端的相關說明。下面我們將看到更多關于W5500模塊的說明以及如果使用它,我們也準備了相關的代碼以供測試使用。

      文章圖片1

      點擊圖片購買

      芯片特點

      ①支持硬件 TCP/IP 協議:TCP、UDP、ICMP、IGMP、IPv4、ARP、IGMP、PPPoE 和以太網
      ②支持 8 個獨立的端口(sockets)
      ③極小巧的 LQFP48 無鉛封裝
      ④提供休眠模式
      ⑤提供網絡喚醒
      ⑥支持高速 SPI 總線(SPI 模式 0,3)
      ⑦內部 32K 字節(jié)存儲器作 TX/RX 緩存
      ⑧內嵌 10/100Mbps 以太網物理層
      ⑨支持自動協商(10/100-Based 全雙工/半雙工)
      ⑩不支持 IP 分段
      注意:3.3V 工作電壓,I/O 口可承受 5V 電壓使用時一定要注意供電和I/O口的電壓不小心的話容易燒壞模塊。

      引腳說明

      引腳說明

      功能說明

      3.3V

      3.3V 電源輸入引腳

      MISO

      SPI 主機輸入從機輸出引腳

      MOSI

      SPI 主機輸出從機輸入引腳

      SCS

      SPI SLAVE 選擇引腳(低電平有效)

      SCLK

      SPI 主機輸出從機輸入引腳

      5V

      5V 電源輸入引腳

      GND

      電源地引腳

      RST

      W5500 硬件初始化引腳(低電平有效)

      INT

      W5500 中斷引腳(低電平有效)

      NC

      懸空

      原理圖可看:電路中加了LDO從而可以允許5V供電,注意供電3.3V不要接入5V會損壞模組

      文章圖片2

      相關寄存器

      W5500具有一個公共寄存器和8個端口寄存器,TX和RX的緩沖區(qū)分配給8個端口寄存器,51單片機也可以通過查詢寄存器去讀取對應端口的狀態(tài)來檢測發(fā)送和接受數據。

      文章圖片3

      還有一些需要用到的公共配置的寄存器去配置IP或者MAC地址還有子網掩碼等參數,8個端口寄存器可用于通信,使用端口號的值可以有SPI的BSB幀【4:0】進行選擇。
      下圖為幾個重要配置參數寄存器可以分別配置網關,子網掩碼,MAC物理地址等信息。

      文章圖片4


      這些配置信息在程序中完成相關配置放入數組中存儲用于取用。

      相關程序

      驅動芯片:STC89C52
      部分相關初始化函數可看下圖配置相關寄存器:
      復位W5500并檢測以太網連接:

      文章圖片5
      /********************復位W5500并檢測W5500的連接狀態(tài)連接成功時候PHYCFGR寄存器LINK位硬件置1********************/void W5500_Hardware_Reset(void){W5500_RST=0;//復位引腳拉低Delay(200);W5500_RST=1;//復位引腳拉高Delay(200);while((Read_W5500_1Byte(PHYCFGR)&LINK)==0);//等待以太網連接完成

      初始化相關代碼:
      注意端口寄存器可配置TXBUFF,RXBUFF緩存空間大小
      可參考手冊中的示例配置:

      文章圖片6
      void W5500_Init(void){unsigned char i=0;Write_W5500_1Byte(MR, RST);//軟件復位W5500,置1有效,復位后自動清0Delay(10);//延時10ms,自己定義該函數//設置網關(Gateway)的IP地址,Gateway_IP為4字節(jié)unsigned char數組,自己定義//使用網關可以使通信突破子網的局限,通過網關可以訪問到其它子網或進入InternetWrite_W5500_nByte(GAR, Gateway_IP, 4);//設置子網掩碼(MASK)值,SUB_MASK為4字節(jié)unsigned char數組,自己定義//子網掩碼用于子網運算Write_W5500_nByte(SUBR,Sub_Mask,4);//設置物理地址,PHY_ADDR為6字節(jié)unsigned char數組,自己定義,用于唯一標識網絡設備的物理地址值//該地址值需要到IEEE申請,按照OUI的規(guī)定,前3個字節(jié)為廠商代碼,后三個字節(jié)為產品序號//如果自己定義物理地址,注意第一個字節(jié)必須為偶數Write_W5500_nByte(SHAR,Phy_Addr,6);//設置本機的IP地址,IP_ADDR為4字節(jié)unsigned char數組,自己定義//注意,網關IP必須與本機IP屬于同一個子網,否則本機將無法找到網關Write_W5500_nByte(SIPR,IP_Addr,4);//設置發(fā)送緩沖區(qū)和接收緩沖區(qū)的大小,參考W5500數據手冊for(i=0;i<8;i++){Write_W5500_SOCK_1Byte(i,Sn_RXBUF_SIZE, 0x02);//Socket Rx memory size=2kWrite_W5500_SOCK_1Byte(i,Sn_TXBUF_SIZE, 0x02);//Socket Tx mempry size=2k}//設置重試時間,默認為2000(200ms)//每一單位數值為100微秒,初始化時值設為2000(0x07D0),等于200毫秒Write_W5500_2Byte(RTR, 0x07d0);//設置重試次數,默認為8次//如果重發(fā)的次數超過設定值,則產生超時中斷(相關的端口中斷寄存器中的Sn_IR 超時位(TIMEOUT)置“1”)Write_W5500_1Byte(RCR,8);}

      測試結果圖

      燒入51單片機后使用電腦打開TCP服務端口即可收到單片機作為客戶端發(fā)送到電腦服務端的相關數據。
      ==注意:==電腦服務端配置需要先配置好和單片機中程序中設置的目的IP和端口號不然沒法通信傳輸數據。

      文章圖片7

      總結

      W5500內嵌了硬件TCP/IP協議在使用過程中比較方便直接使用SPI進行通信即可驅動,免去軟件協議上的實現,對于單片機的驅動以太網通信是十分方便的,程序代碼比較長,需要相關程序代碼的可下方留言獲取,另外可提供STM32相關驅動代碼,本文對于W5500的使用總結到此結束,歡迎一鍵三連?。?!

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多