WIZnet高性能以太網模塊

WIZnet高性能以太網模塊

Uncategorized, WIZnet 產品應用小例全系列, 串口轉以太網, 博客, 應用
WIZnet高性能以太網模塊有以下幾個系列: - W5500S2E 系列 • W5500S2E-S1, W5500S2E-Z1, W5500S2E-R1 - W7500S2E 系列 • W7500S2E-Z1, W7500S2E-R1, W7500S2E-C1 高性能以太網模塊特點: W5500S2E系列 • 支持Modbus RTU/ASCII轉Modbus TCP/UDP • 支持Modbus over TCP/UDP • 波特率可設置為1.2Kbps~1.152Mbps • 支持NetBIOS功能,方便用戶為其設備命名 • 支持本地和遠程固件升級 • 支持數據/AT 模式通信 • 特設Socket連接狀態管腳,確保用戶每包數據不丟失 • 支持連接密碼校驗功能,提高通信安全性 • 智能網線偵測及Keep Alive功能,保證網絡鏈路實時暢通 • 配置方式:上位機、Web瀏覽器、串口AT命令 W7500S2E系列 - W7500S2E 系列 • 波特率可設置為300bps~460,800bps • 支持NetBIOS功能,方便用戶為其設備命名 • 支持數據/AT 模式通信 • 特設Socket連接狀態管腳,確保用戶每包數據不丟失 • 支持連接密碼校驗功能,提高通信安全性 • 智能網線偵測及Keep Alive功能,保證網絡鏈路實時暢通 • 配置方式:上位機、Web瀏覽器、串口AT命令 通用型RJ45/網絡變壓器 - HanRun • HRW5500RE - 工業級RJ45 • HRW5500TE -工業級網絡變壓器 WIFI模塊 - WizFi360 • GB15629.11-2006、IEEE802.11 b/g/n/e/i/d/k/r/s/w • 集成32位嵌入式Cortex-M3處理器,工作頻率80MHz • 集成通用加密硬件加速器,支持PRNG/SHA1/MD5/RC4/DES/3DES/ AES/CRC/RSA等多種加解密協議 • 集成2.4G射頻收發器,滿足IEEE802.11規範 • 支持Wi-Fi WMM/WMM-PS/WPA/WPA2/WPS • 支持20/40M帶寬工作模式 • 支持STA/AP/STA+AP工作模式 • 支持AT遠程升級 • 支持Smart Config功能(包括Android和IOS設備) • HSPI、UART、I2C、I2S、SDIO2.0、7816接口、PWM、GPIO • 集成電源管理電路 • 睡眠模式電流小於10uA • 2ms之內喚醒、連接並傳輸數據包 • 工作溫度範圍:-40℃~85℃ 服務器: - CAN轉以太網 • 10/100M自適應以太網接口 • 支持雙CAN口收發 • 支持DHCP自動獲取IP地址 • CAN口波特率為60kbps~1Mbps • 支持本地和遠程固件升級 • 靈活的CAN口數據分包設置 • 網絡端支持TCP、UDP傳輸方式 • 支持DNS功能 • 支持AT命令、Web瀏覽器、上位機方式配置 •…
Read More

WIZnet-W5500S2E系列,你了解多少?

Uncategorized, 串口轉以太網, 博客, 應用
- - - WIZnetS2E產品已經發布有一段時間了,S2E產品有W5500S2E和W7500S2E兩個系列產品,那麼大家對於S2E產品到底了解多少呢,下面就跟着我一起去解密一下吧! 首先,我們先從W5500S2E系列開始,先了解一下W5500S2E的基本情況: W5500S2E是一系列工業級S2E串口轉以太網模塊,支持TCPServer、TCP Client和UDP三種工作模式,串口波特率最高可達1.152Mbps,並提供配套的上位機配置軟件,也可通過網頁或AT命令等方式輕鬆配置。 W5500S2E集成了全硬件TCP/IP 協議棧以太網接口芯片W5500,網絡通信更加快速、穩定、安全。用戶只需根據手冊中推薦的參考設計原理圖,即可快速完成硬件電路的設計,降低開發難度,節省開發時間。 W5500S2E系列S2E模塊根據其尺寸和接口不同分為以下型號: 型號 產品圖片 特點 W5500S2E-S1 尺寸:34.00×24.00×12.40 (mm) 網口類型:網絡變壓器 W5500S2E-Z1 尺寸:44.45×31.75×15.75 (mm) 網口類型:網絡變壓器 W5500S2E-R1 尺寸:44.45×31.75×23.00 (mm) 網口類型:RJ-45 功能特點 W5500S2E模塊具有以下主要功能特點: 波特率可設置為1.2Kbps~1.152Mbps之間的任一標準值 10/100M自適應以太網 支持TCP Server、TCP Client和UDP三種工作模式 靈活的串口數據分包設置,滿足用戶多樣化的分包需求 智能網線偵測及Keep Alive功能,保證網絡鏈路實時暢通 支持DHCP自動獲取IP地址 支持DNS功能,滿足用戶通過域名實現通訊的需求 支持Modbus RTU/ASCII轉Modbus TCP/UDP 支持Modbus over TCP/UDP 支持NetBIOS功能,方便用戶為其設備命名 支持連接密碼校驗功能,提高通信安全性 支持串口AT命令配置方式 內置Web服務器,方便客戶進行遠程設備管理 支持上位機配置工具配置方式 支持本地和遠程固件升級 產品特性 LAN 10/100Mbps自適應以太網 串口 3.3V TTL×1:TXD、RXD、CTS、RTS、GND 串口通信參數 波特率:1.2Kbps至1.152Mbps 數據位:7,8 停止位:0.5,1,1.5,2 校驗:None,Even,Odd 流控:None,CTS/RTS 軟件 工具:WIZS2E ConfigTool上位機軟件 配置方式:上位機、Web瀏覽器、串口AT命令 電源 輸入電源:DC 3.3V 尺寸(長×寬×高) W5500S2E-S1:34.00×24.00×12.40 (mm) W5500S2E-Z1:44.45×31.75×15.75 (mm) W5500S2E-R1:44.45×31.75×23.00 (mm) 工作溫度 工業級:-40 ~ +85 ℃ 保存環境 -45 ~ +95 ℃,5 ~ 95% RH 參數配置方式 W5500S2E提供了三種常用的參數配置方式供用戶選擇: WIZS2E ConfigTool上位機軟件配置,用戶可在Windows操作系統的計算機上安裝該軟件進行配置; Web瀏覽器配置,方便用戶在本地或者遠程通過Web瀏覽器進行配置; AT命令配置,用戶可將W5500S2E集成於自己嵌入式產品的主板上,通過AT命令進行參數配置,也可直接通過串口工具使用AT命令配置。 具體參數及工具下載請到S2E官方網站:https://zh.wizse.com/
Read More

新品 !首款支持IPv4/IPv6雙協議棧的網絡接口芯片!

W6100, 博客, 新聞
W6100是WIZnet 2019年推出最新技術的網絡接口芯片,內含IPv4/IPv6雙協議棧。其中新增IPv6是其最大特點,同時在硬件引腳上與W5100S全兼容(Pin to Pin),Socket則支持8個,具體情況如下: Hardwired Dual TCP/IP Stak Controller W6100是一款全硬件互聯網控制器芯片,並在WIZnet的全硬件TCP / IP核心技術的基礎上增加了IPv6功能,支持IPv4 / IPv6雙協議棧。W6100支持TCP/IP協議,如TCP,UDP,IPv6,IPv4,ICMPv6,ICMPv4,IGMP,ARP和PPPoE。其內部還集成了以太網數據鏈路層(MAC)和10Base-T / 10Base-Te / 100Base-TX以太網物理層(PHY),使其適用於嵌入式互聯網設備。 W6100具有8個獨立的硬件SOCKET,支持各種SOCKET-less命令,用於通過ARP,PINGv4和PINGv6進行IPv6自動配置,監控和管理網絡。 W6100支持兩種HOST接口; SPI和並行系統總線。它具有32KB內部存儲器,用於發送和接收數據。W6100專為低功耗和低熱量設計,提供WOL(局域網喚醒),以太網PHY斷電模式等。 W6100有兩種封裝類型; 48 LQFP和48 QFN無鉛。兩個版本均與W5100S兼容PIN-2-PIN。 特徵 支持硬件TCP / IP協議:TCP,UDP,IPv6,IPv4,ICMPv6,ICMPv4,IGMP,MLDv1,ARP,PPPoE 支持IPv4 / IPv6雙協議棧 支持8個獨立的SOCKET,同時支持32KB內存 支持SOCKET-less命令:ARP,PING,ICMPv6(PING,ARP,DAD,NA,RS)命令,用於IPv6自動配置和網絡監控 支持WOL(局域網喚醒  )和掉電模式,實現省電 支持UDP 上的LAN喚醒 支持串行和並行主機接口:高速SPI(MODE 0/3),8位並行總線 內部16K字節存儲器用於TX / RX緩衝器 10BaseT /10BaseTe / 100BaseTX以太網PHY集成 支持自動協商(全雙工和半雙工,基於10和100) 僅在自動協商模式下支持Auto-MDIX 不支持IP分片 3V工作,具有5V I / O信號容差 網絡指示燈LED(全/半雙工,鏈路,10/100速度,有效) 48引腳LQFP和QFN無鉛封裝(7x7mm,0.5mm間距)  W5100S PIN-2-PIN兼容 目標應用 家庭網絡設備:機頂盒,PVR,數字媒體適配器 串口轉以太網:門禁控制,LED顯示,無線AP繼電器等 並行到以太網:POS /迷你打印機,複印機 USB轉以太網:存儲設備,網絡打印機 GPIO到以太網:家庭網絡傳感器 安全系統:DVR,網絡攝像機,信息亭 工廠,建築,家庭自動化 醫療監控設備 嵌入式服務器 物聯網(IoT)設備 物聯網雲設備
Read More

基於STM32和W5500實現AirPlay音頻播放

博客, 物聯網
※已刊登在“無線電”1月刊上  基於STM32和W5500實現AirPlay音頻播放 作者:常席正,魏文龍   AirPlay是蘋果公司推出的一套無線音視頻解決方案,我們手裡的iPhone、iPad甚至是Apple Watch等設備還有電腦上的iTunes都支持AirPlay。使用AirPlay可以方便的使移動設備的音頻流,視頻流可以投射到音箱和顯示設備上,而無需藍牙設備的配對過程。但是支持AirPlay功能的音響設備普遍都比較昂貴,而且家裡的3.5毫米的插口的老音箱也沒有利用起來,本着“喜新不厭舊,改造舊物發揮餘熱”的精神,我開始了新一輪的折騰。 我的想法是用嵌入式方案STM32+W5500的方式實現AirPlay協議,並使用I2S接口接PCM5102A音頻模塊來實現音頻播放。於是馬上上網查資料,發現成熟的方案還不太多,現有的方案都是在linux或者windows上運行的,精挑細選之後選擇了https://github.com/juhovh/shAirPlay這個AirPlay開源項目作為參考,主要是該代碼是用C語言實現移植到stm32比較方便。 在開始之前我們有必要先了解一下AirPlay, AirPlay是蘋果公司收購airtunes後,在airtunes協議的基礎上增加了視頻,照片的傳輸,從而變為完整的AirPlay協議。AirPlay可以將iPhone 、iPad、iPod touch 等iOS 設備上的包括圖片、音頻、視頻及鏡像傳輸到支持AirPlay協議的設備中播放,實現隨時隨地的無線流媒體傳輸。在我們的這個項目中,我們只需要實現AirPlay協議中的音頻流部分。AirPlay的實現過程中包含多個子協議,其中有的協議是完全標準的,有一部分協議蘋果公司進行了一些修改,有的則是完全私有的。 Multicast DNS:用於發布服務,啟動後,在iOS的控制中心菜單中就能看到支持AirPlay的設備列表; HTTP / RTSP / RTP:用於流媒體服務,傳輸音視頻數據,進行播放控制等; NTP:網絡時間協議,用於時間同步; FAirPlay DRM加密協議:用於進行數據加密,這個是完全私有的加密協議。 開始工作前我們需要進行一些前期準備,如下圖: 圖1 硬件框圖及接線 iPhone用來播放音樂,並通過Airplay協議發送音頻流。W5500EVB是WIZnet的W5500開發板,其中的W5500除了包含以太網的MAC和PHY外,還內置了硬件的TCP/IP協議棧,是目前比較常用的以太網方案。我們使用W5500EVB作為服務器接收並解碼音頻數據,開發板的操作可以參考http://www.w5500.com中的例程。PCM5102A音頻模塊可以將解碼後的音頻數據進行播放。經過分析後我們要實現AirPlay音頻播放主要是實現以下三個方面: iPhone在網絡中發現Airplay設備(W5500EVB)並建立連接; W5500EVB接收並解碼音頻數據; W5500EVB通過I2S接口將音頻傳送到PCM5102A音頻模塊; 接下來我們將分別實現這三個步驟: 1、發現Airplay設備並建立連接 AirPlay發現設備是基於mDNS協議(Multicast DNS)實現,iPhone與W5500EVB需要連入同一網絡且W5500EVB要加入組播組224.0.0.251:5353才可以接收mDNS報文。W5500EVB收到iPhone發出的Querry查詢報文後回復Response報文,報文的內容可以參考文檔《Unofficial AirPlay Protocol Specification》(http://nto.github.io/AirPlay.html),下方為mDNS設備發現和設備註冊代碼: 1 uint8 mdns_query(uint8 s, uint8 * name,uint8* rname) 2 { 3     uint8 ip[4]; 4     uint16 len, port; 5     switch (getSn_SR(s)) { 6     case SOCK_CLOSED:/*打開SOCKET並加入組播組224.0.0.251*/ 7         setDIPR(s,DIP);/* 設置目標IP 224.0.0.251*/ 8         setDHAR(s,DHAR);/*設置目標MAC 01:00:5e:00:00:FB */ 9         setDPORT(s,DPORT);/*設置目標端口5353*/ 10         socket(s, Sn_MR_UDP, 5353,Sn_MR_MULTI);/*打開SOCKET並加入組播組*/ 11         break; 12     case SOCK_UDP: 13         if ((len = getSn_RX_RSR(s)) > 0) { 14             if (len > MAX_DNS_BUF_SIZE) { 15                 len = MAX_DNS_BUF_SIZE; 16             } 17             len = recvfrom(s, BUFPUB, len, ip, &port); 18             /*檢查收到報文的flag確定報文是否為查詢報文*/ 19             if ((BUFPUB[2]&0x80)==0) { 20                 len = mdns_makeresponse(0,name,rname,BUFPUB,MAX_DNS_BUF_SIZE); 21                 sendto(s, BUFPUB, len, DIP,DPORT); 22             } 23         } 24         break; 25…
Read More

輕鬆實現Lua腳本控制W5500

Uncategorized, 博客, 應用, 物聯網
※已刊登在“無線電”12月刊上輕鬆實現Lua腳本控制W5500 作者:孔東明,張博 1、引言 Lua是巴西里約熱內盧天主教大學裡的一個研究小組於1993年基於標準C開發的一個輕量級的嵌入式腳本語言,其設計目的是為了將傳統嵌入式程序“編寫→編譯→鏈接→運行”的複雜過程簡化為“編寫→運行”兩個環節,從而為嵌入應用程序提供靈活的擴展和定製功能。 Lua腳本可以很容易的被C/C++ 代碼調用,也可以反過來調用C/C++的函數,這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,並且更容易理解和維護。一個完整的Lua解釋器不過200K,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。 2、項目背景 隨着物聯網的快速發展,傳統的工控、電力、銀行機、閘機甚至家電等設備也紛紛加入了連接互聯網大軍。工廠的車床需要把運行數據實時上傳至PLC,水表、電錶、燃氣表實現了遠程抄錄,點驗鈔機可以實時將RMB的冠字號上傳至銀行數據庫,停車場無人值守,家裡的窗帘用某貓精靈很方便的進行語音控制…… 小編在一家做網絡通信設備的公司上班,領導要求基於現有的串口轉以太網模塊開發出一款支持用戶使用Lua語言進行二次開發的串口轉以太網模塊,項目工期1個月。小編剛剛畢業4個月,沒有多少項目經驗,只是在學校玩過ARM M3的開發板,C語言自我感覺勉強及格,以太網技術基本小白一枚,對如何實現用戶使用Lua語言“二次開發”更是一竅不通。但是任務時間緊迫,再難也要搞定,要不然沒有獎金就要勒緊褲腰帶了。 接到項目當晚就去找度娘商討對策。經過一番搜索,方才大致了解了什麼是Lua,什麼是腳本語言,為什麼客戶要二次開發。用戶在使用串口轉以太網模塊時,由於應用場景的不同及嵌入式產品資源的限制,需要靈活的調用模塊的各項功能去實現差異化應用,而傳統的模塊只能實現既定的功能,因此支持二次開發的產品應用範圍將大為拓展。而用戶二次開發輸入的代碼肯定是無法執行傳統的“編寫→編譯→鏈接→運行”這整個過程,腳本語言將這個過程簡化為“編寫→運行”就可以完美的解決了這個問題,Lua便是一款最佳的嵌入式腳本語言。 原理理順了,如何落實便成了當務之急,我需要先做一個Demo來模擬整個過程。我找來了之前開發串口轉以太網模塊用到的以太網開發板W5500EVB,如下圖。W5500EVB是由ST的STM32F103RC+W5500網絡芯片構成,STM32F103內部256K的Flash足以容納最大200K的Lua驅動。W5500是一顆以太網接口芯片,它用全硬件邏輯門電路搭建了一整套全硬件TCP/IP協議棧,發送數據時單片機只需將用戶數據通過SPI發送至W5500,W5500內部會自動完成數據TCP/IP封包,並發送至網口,接收數據時W5500內部自動完成解包,僅將MCU關心的用戶數據提交。W5500內含8路完全獨立的硬件Socket,這意味着W5500可以同時運行8個上層應用程序,而且傳輸速率互不影響,不會像軟件協議棧那樣線程增加,速度明顯降下來。W5500內部還集成了MAC和PHY,符合了接入以太網的所有條件,對於剛剛接觸以太網的攻城獅來說,是一款簡單易上手的網絡接口芯片。 圖 1 W5500EVB 我想象中的Demo是這樣的:用戶通過Web網頁向W5500EVB提交一段能讓W5500EVB連接到TCP服務器的Lua腳本代碼,W5500EVB解析出來這段代碼後通過已經運行的Lua虛擬機中的Lua接口函數來解釋用戶代碼要實現的功能,最後 W5500EVB按照用戶代碼中的參數連接到一個指定的TCP服務器實現以太網數據通信。這個過程可以參考W5500官網提供的HTTP Server和TCP Client的例程。 圖 2 實施方案原理圖 3、準備工作 (1)安裝編譯環境:Keil V5.11 (2)硬件:W5500EVB、Jlink調試器 (3)驅動:Lua最新驅動V5.3.2 4、宿主C部分 4.1 加載驅動 驅動包括STM32F103RC的單片機驅動、W5500以太網部分驅動以及Lua驅動。STM32F103RC驅動不必多說,W5500驅動和Lua驅動如下圖所示,均可以在對應官網下載到。                                           圖 3 W5500驅動                                                                                    圖 4 Lua驅動-V5.3.2 4.2 初始化部分 初始化部分包括STM32初始化及W5500初始化,Lua在用的時候才需要初始化。 01 /******* STM32初始化********/ 02 Systick_Init(72); 03 RCC_Configuration(); 04 GPIO_Configuration(); 05 Timer_Configuration(); 06 NVIC_Configuration(); 07 USART1_Init(); 08 at24c16_init(); 09 10 /******* W5500初始化********/ 11 printf("W5500 Config....\r\n"); 12 Reset_W5500();                  //重啟W5500 13…
Read More

鄭重聲明

博客, 新聞
鄭 重 聲 明 Statement 近期,我司發現有公司冒充我司代理銷售WIZnet 產品。在此,我司鄭重聲明:WIZnet 所有產 品僅通過官方代理進行銷售,有關代理信息可在我司網站上查詢,望廣大客戶正確識別。 Recently, we have been informed that there were businesses pretending to be WIZnet’s distributor and selling counterfeiting items with our trademark on. Hereby we declared that the only source of WIZnet goods is sourcing through our official distributors which are listed in our website. 經我司調查,市面上有不法經銷商銷售翻新或偽造的WIZnet 芯片產品,嚴重損害了客戶的利益。 為確保用戶利益,我司強烈建議客戶通過我司官方代理渠道採購WIZnet 產品,任何使用非我司官方 渠道之產品造成的一切問題,我司不承擔任何責任。同時,我司法律部門已採取法律途徑,嚴厲打擊 銷售偽造WIZnet 產品之不法公司或個人,以保護廣大WIZnet 客戶利益。 Through our investigation, there were illegal businesses remarking and resurfacing ICs with counterfeit WIZnet logos on the market, which severely prejudice the interests of our customers. Therefore, we strongly recommend our customers purchase WIZnet products through our official distributors, since we assume no responsibility for any problem caused if the products are not from our authorized distributing channels. At the same time, in order to protect the interest of…
Read More

RT-Thread SAL+W5500,帶你走進全硬件TCP/IP協議棧世界

博客, 新聞
原文鏈接:HTTPS://mp.weixin.qq.com/s/we8GZS-P4_GmqUxL3egfGw場景= 25#wechat_redirect 隨着嵌入式系統功能的多樣化以及網絡在各個領域中的廣泛應用,具備網絡功能的嵌入式設備擁有更高的使用價值和更強的通用性。我們在嵌入式開發中常用的網絡接入方式為軟件TCP / IP協議棧接入方式,如lwIP協議棧。今天,為大家介紹一種全新的網絡接入方式,基於SAL的全硬件TCP / IP協議棧接入方式。 SAL 介紹 SAL,即套接字抽象層,位於網絡硬件層於應用層之間,用於抽象,統一多種網絡協議棧接口,並且應用層提供標準的BSD套接字APIs.SAL可以讓RT-Thread系統目前SAL支持的網絡接入方式主要有三種:軟件TCP / IP協議棧(lwIP),自定義串口網絡實現(ATSocket),以及下面帶來的第三種接入方式,全硬件TCP / IP協議棧(W5500)。 W5500介紹 W5500是WIZnet 推出的高性能以太網接口芯片系列之一,內部實現了全硬件TCP/IP 協議棧+MAC+PHY,芯片有如下幾個特點: 8 個獨立的硬件 Socket,各路通信互不影響 32K bytes 片上緩衝用於處理收發數據 集成 802.3 以太網MAC 主機接口為 SPI 高速串行外設接口(最高 80 Mhz) 什麼是全硬件TCP/IP 協議棧? 傳統的單片機(MCU)實現網絡功能,需要連接外設物理層以太網控制芯片(MAC+PHY),還要主控芯片中移植軟件TCP/IP 協議代碼實現通信及上層應用。 所謂全硬件TCP/IP 協議棧是將傳統的軟件協議TCP/IP 協議棧用硬件化的邏輯門電路來實現。芯片內部完成TCP、UDP、ICMP等多種應用層協議,以及IP 、ARP等網絡層協議,並且實現了物理層以太網控制(MAC+PHY)、內存管理等功能,完成了一整套硬件化得以太網解決方案。 相比於lwIP 軟件協議棧的資源佔用(RAM50K+,ROM80K+),在MCU 上使用硬件協議棧芯片(例如:W5500)的資源佔用(RAM1K,ROM20K)得到了很大程度的降低。 另一方面,硬件協議棧芯片將會降低MCU 對於龐大網絡數據的負荷,使MCU 可以高效的處理其他業務邏輯。同時也避免了MCU 主程序受到網絡攻擊的危險,大大優化了MCU 的網絡連接功能。 WIZnet軟件包介紹 WIZnet軟件包是RT-Thread 基於WIZnet 官方 ioLibrary_Driver 設備驅動代碼庫的移植實現,支持W5500 芯片。原官方代碼庫雖然實現了多種網絡協議支持,並且提供自定義Socket 接口用於網絡編程,但是其接口並不是標準BSD 接口,這樣不利於兼容多種網絡軟件包,增加了網絡開發的難度。 RT-Thread推出的WIZnet 軟件包在原代碼庫功能的基礎上,封裝實現一套標準 BSD Socket APIs,並且對接RT-Thread SAL 套接字抽象層,完成SAL 對全硬件協議棧的支持。 WIZnet 軟件包特點如下: 1、極簡的設備接入方式 傳統WIZnet 設備接入,需要實現 SPI 設備初始化、網絡初始化、寄存器配置、中斷處理等多個功能,才能正常連接網絡。使用 WIZnet 軟件包,只需要在 ENV 中正確配置 SPI 設備名稱、複位引腳號和中斷引腳號並下載軟件包,即可快速初始化設備並接入網絡。 2、提供標準網絡編程接口 相比於原官方代碼庫,WIZnet 軟件包提供標準 BSD Socket APIs,可以完美的兼容 RT-Thread 系統中多種網絡軟件包或者網絡功能實現,如 MQTT、HTTP、NTP、MbedTLS、Iperf 等,極大的簡化了開發者網絡接入和網絡協議移植的過程。 3、自定義網絡接入參數設置 軟件包提供動態和靜態兩種獲取 IP 地址的方式,靜態模式下可以在 ENV 中自定義配置設備 IP 地址、網關、子網掩碼等網絡參數。對於 MAC 地址,軟件包提供設置 MAC 地址接口,用於設置設備唯一的 MAC 地址,防止網絡衝突。 4、提供網絡狀態查詢方式 軟件包提供wiz_ifconfig 命令用於查詢當前網絡參數,提供 wiz_ping 命令用於查詢網絡連接狀態。 WIZnet的軟件包的推出,使得RT-主題SAL支持的更加全面,這也進一步提升了RT-線程系統在物聯網領域對於不同網絡軟硬件的兼容性,簡化了用戶網絡接入的流程。當前WIZnet的軟件包已經完成對W5500的移植,其他熱門WIZnet設備,RT-Thread將會根據用戶反饋優先選擇支持。 WIZnet的軟件包獲取 使用WIZnet軟件包需要在RT-Thread的包管理中選中它,具體路徑如下:RT-Thread在線包→物聯網 - 物聯網→WIZnet:WIZnet TCP / IP芯片SAL框架實現 可通過一下二維碼查看更詳細信息: 也可通過外部鏈接打開: https://github.com/RT-Thread-packages/wiznet/blob/master/README.md
Read More

W5500問題集錦

博客, 應用
        1、 如何確認W5500網絡芯片物理連接是否正常? 使用W5500網絡協議芯片,對其進行可靠的硬件複位(網絡協議芯片的RESET或RST引腳)後可能出現下列現象: (1)  芯片的LINKLED引腳輸出低電平,LINKLED指示燈會被點亮(未接,接錯或燈壞除外). (2)  如果是通過網線直連電腦,電腦上本地連接顯示本地連接已連接狀態。如果是網線連到路由等設備,路由等相應指示燈提示連接成功。 如果出現上述現象,表明物理連接已經成功並且芯片工作,否則需要排查相關問題。   2、 如何檢測W5500物理連接是否成功與芯片是否工作及相關線路是否正常有關係? (1)   因芯片焊反或關鍵位置虛焊,短路等問題導致芯片不能正常工作。 (2)   因芯片的供電,接地等不正常或連接芯片,導致芯片不能正常工作。 (3)   因芯片引腳外接的用於隔離數字電源與模擬電源的1uH電感損壞開路,導致不能工作。 (4)  因芯片的晶振不按要求連接,而導致芯片不能工作。使用有源振蕩器的,線路連接錯誤,或者有源振蕩器的電壓不是1.8V,請參考原理圖進行正確設計 。 (5)  因複位引腳連接錯誤,使得芯片不能完成可靠複位。 (6)  因線路中RXIP、RXIN、TXOP、TXON與變壓器的連接錯誤,導致與電腦等無法建立連接。 (7)  因採用與線路不匹配的或壞的RJ45模塊和變壓器導致與電腦等無法連接。這裡需要特別補充一下的是,W5500變壓器連接上與W5100、W5200、W5300大不一樣,如直接把他們的連接照搬過來可能不能工作,具體參考原理圖。 (8)  因網線或電腦路由器等不正常而無法連接。 (9)  因某些MCU只需電壓2.7V就可工作,MCU在電壓還未上升到3V就對需要3V以上才能運行的網絡協議芯片進行複位操作必然失敗,最終導致不能連接。(可程序解決) (10) 如果是使用的W5300芯片,當不使用外部PHY時,TEST_MODE[3:0](19~22引腳),必須全部為低電平,可全接地,否則可能因沒有PHY導致不能連接。   3、 W5500連接正常卻PING不通,怎麼辦? W5500芯片是否可以ping通,不僅與物理連接等有關係,還和相關電路以及網關、子網掩碼、MAC地址、IP地址配置有關係,可以從以下方面進行排除: (1)  W5500的EXRES1引腳(10腳)所接12.4K參考電阻,均接地且要求誤差必須控制在1%以內。 (2)  RXIP、RXIN、TXOP、TXON接口,信號長度必須小於 25cm,越短越好,且盡量走等 長線,各差分信號相差不能超過2.5cm。RXIP,RXIN應盡量靠近,TXOP,TXON應盡量靠 近,有條件的應走平行線。 (3)  必須保證被操作的寄存器地址配置正確。 (4)  可以對寄存器進行讀寫操作,判斷讀寫是否一樣,採用SPI接口的可以以此判斷SPI部分的程序以及電路有無問題。使用並行接口的,則可以判斷程序以及地址線、數據線的連接有無問題。 (5)  MAC地址的第一個字節必須為偶數。 (6)  必須正確設置子網掩碼,且電腦IP地址與網絡芯片的IP地址必須設置在同一個子網。   4、 為什麼W5500芯片可以PING通,但無法發送數據? W5500芯片可以ping通,說明相關電路以及網關、子網掩碼、MAC地址、IP地址配置均正常, 如果不能建立連接發送接收數據,需要從從SOCKET配置,SOCKET狀態,中斷寄存器,發送接收程序,或是上位機軟件的設置等進行排查 。 具體配置參考W5500數據手冊   5、 W5500在配置時需要檢查網關嗎?為什麼? 其實只要不訪問外網,完全可以不做這個檢測,如果要訪問外網,必須經過網關,做這步就是為提前知道網關是否存在,是否正常工作。   6、 為什麼檢測網關時要將目的IP地址每位加‘1’? 在正確設置網關的情況下,去連接一個不在同一子網(外網)的目的IP,就可找到網關,而將目的IP每位加1,正好造就一個不在同一子網的目的IP,如果願意你加2加3都可以。   7、 為什麼檢測網關要判斷目的MAC地址首位不為0xff? 因為未找到網關以前,讀出目的MAC地址所有位全為0xff, 至於為什麼判斷首位,因為找到的目的MAC地址首位應該是偶數,因此絕不可能是0xff(255)   8、 WIZnet網絡芯片TCP模式下的客戶端與服務器有什麼異同? 不同點: 客戶端起啟動連接(CONNECT)的作用,主動連接必須要知道連接目標,因此要正確設置SOCKET的目的(服務器)IP和目的(服務器)端口號。 服務器則是偵聽的作用(LISTEN),等待連接不需要設置目的IP 和目的端口號,客戶端來連接時,服務器自然知道客戶端的IP地址與端口號。   相同點: 客戶端服務器SOCKET 分片長度最大均為1460字節,即每次發送最大為1460字節 客戶端服務器均要先配置為TCP模式 客戶端服務器連接成功均為SOCK_ESTABLISHED狀態(Sn_SR 寄存器) 詳細內容可查看各芯片的《數據手冊》   9、 TCP模式下,通過路由器,對方拔掉網線後,再插上後不能建立通訊怎麼辦? WIZnet芯片可以在發送過數據後,空閑既未發送也未接收達的情況,到一定時間(3秒,5秒,10秒自定義)後,發送SEND_KEEP命令,如對方正常就保持連接,如果對方在一定時間內未回應,則發出超時中斷,自動關閉SOCKET端口,就可以自動重新連接,這樣就能連接上了。但此命令只能用於TCP模式,如果是UDP模式下如果也想查看對方狀態就需要從程序想辦法了。   10、    請問,官方例程為什麼不提供中斷模式控制W5500的數據收發呢 因為中斷讀了數據後,然後還是要去讀寄存器,去判斷是什麼中斷,有可能在判斷的過程中又來了N 個中斷,增加中斷就增加了很多不確定因素。 中斷必然有響應時間,當上次中斷還沒結束,又產生新的中斷甚至連續產生多次新的中斷時,或者中斷標誌未及時清除,必然不能響應所有中斷,此時以中斷標誌位來判斷是否該接收,必然丟失數據。   11、    同一塊芯片,同時使用多個SOCKET工作,應該注意什麼問題 WIZnet目前每款網絡協議芯片都可以支持多個SOCKET同時工作,但每個SOCKET可以且必須以不同的端口號做為區分。   12、    多塊網絡協議芯片同時使用,端口號可以設置成一樣嗎? 多塊網絡協議芯片在同一個子網中使用,應具備唯一的MAC地址,唯一的IP地址,因為不在同一塊網絡芯片,IP地址、MAC地址不一樣,因此可以設置成一樣的端口號。   13、    W5500設備,在同一網段存在多台設備的情況,運行不正常 問題描述:單個設備在局域網中的時候能夠正常Ping通,而且TCP連接也使用正常沒有任何問題; 解答:首先檢查程序中IP地址、MAC地址是否有衝突,如果地址都沒有衝突,可檢查程序中配置的問題。   14、    同一塊網絡芯片的多個SOCKET,可以同時設置成客戶端去連接電腦服務器的一個端口嗎,怎麼實現? 當然可以,WIZnet每款網絡協議芯片都可以支持多個SOCKET同時工作,只需將芯片內每個SOCKET設置成不同端口號,分別設置成客戶端去連接服務器就行, 前提是服務器的上位機軟件需支持多任務,否則不能成功。   15、    用dhcp模式,插在電腦上能捕捉到discover,一插到路由器上就捕捉不到了,更別提offer了,是為什麼? 首先,需要檢查discover的內容,最簡單的就是,你把電腦設置成固定IP,再設置成DHCP,抓一下電腦的內容,然後再對比一下   16、    將w5500的RST引到電源上面 這樣軟件就不用配置RST了 可行嗎? 這樣是不可行的,複位必須有可靠操作,讓芯片滿足工作條件; RST那裡只是保險,但絕大多數問題是其他原因造成的,如果沒有反應,先看一下W5500回的信息,有沒有正確的初始化,再去找其他問題的原因。  …
Read More

基於W5500實現的考勤系統

WIZnet 產品應用小例全系列, 博客, 物聯網
概述 工具:W5500EVB,RC-522射頻模塊,蜂鳴器模塊 編譯環境:keil5 目的:通過W5500EVB講讀取到的IC卡信息上傳到後台數據庫,後台處理後實現瀏覽器端登錄瀏覽用戶打卡信息。 後台接收到相應的數據後開始處理數據並實現在瀏覽器端顯示IC卡的ID以及綁定客戶的用戶名,打卡時間,簽到狀態等信息。該系統還添加有用戶註冊,登錄,密碼找回等功能。 過程 整個系統的實現主要分為以下兩部分: 如圖1所示,模塊驅動及數據上傳; 2,後台數據處理及前端顯示; 整個系統的前端顯示可通過瀏覽器註冊,登錄,添加和查詢用戶信息,密碼找回,生產用戶的Excel表格等。下面分別介紹兩個部分的實現過程。   模塊驅動及數據上傳 該部分的實現相對簡單,網上有很多關於RC-522的驅動代碼,我就不在贅述了。這裡主要說一下讀取到卡的ID以後的操作。在這之前還要先講一下單片機的網絡連接方案。 網絡連接方案有很多,例如傳統的軟件TCP / IP協議棧方案;較新的硬件的TCP / IP協議棧方案;軟件協議棧代碼量較大,對工程師來說工作量也相對較大硬件協議棧較為簡單,只需要將要發送的數據交給網絡芯片處理就行了。數據的發送和接收都有該芯片來實現。我們只需在應用層傳輸/讀取數據就行了。 硬件協議棧的方案是由WIZnet的首次提出,並成功推出以太網芯片系列.W5500EVB就是採用以STM32RCT6為主控芯片加W5500以太網芯片的方案來實現網絡接入的功能。 設備在讀取到卡的ID以後將ID數據封裝打包以後交給W5500,W5500將數據通過HTTP協議將數據發送給後台服務器並接收服務器返回的響應報文。成功發送和響應後蜂鳴器會發出50ms的響聲來提示數據上傳成功。如不成功則會發出100ms的響聲來提示數據上傳錯誤。數據上傳的代碼如下: 其中post_data_to_server()函數是將ID數據打包成HTTP報文的格式。Send函數是W5500的官方庫函數用來執行數據的發送。getSn_RX_RSR()函數是讀取SOCKET的接收緩存來判斷是否有數據需要接收,這裡是來接收HTTP服務器的響應報文。 以上就實現了IC卡數據讀取和上傳的功能,下面說一下後台服務器和前端實現的部分。   後台數據處理及前端顯示  2、後台數據處理及前端顯示 該系統的後台服務器的環境搭建採用的是 該系統的後台服務器的環境搭建採用的是Apache + php+ MySQL組合,該組合非常適合開發中小型的web應用,開發的速度比較快。本系統中在硬件設備將卡的ID數據上傳到服務器以後,服務器接收並將數據與數據庫中的數據進行對比,然後更新與此ID對應的用戶信息。瀏覽器再向服務器發出請求報文,服務器將數據庫中的數據發送給瀏覽器並顯示。 根據上面說的在設備上傳數據之前我們需要先將卡的ID插入到數據庫中,而且還要在已登錄的狀態下插入、查看、刪除數據。再加上權限設置,這樣才算是一個相對較完整的系統設置。 首先我們在phpMyAdmin中新建自己的數據庫,如圖: 其中company是註冊用戶是所填寫的用戶信息; Record是用來存儲用戶所添加的員工打卡簽到的信息; Register是用來存儲用戶添加的員工信息; Test是存儲用戶員工的簽到狀態; Time是存儲簽到時間; Uaccount是存儲用戶的賬戶信息; 以上字段是用來存儲用戶的各項數據和信息的,瀏覽器在向服務器請求數據的時候服務器會從這裡將對應的數據取出交給瀏覽器並顯示。 服務器部分的功能是由服務器腳本語言PHP來編寫實現的。首先我們要寫一個系統註冊和登陸的頁面,然後將註冊信息存儲在數據庫,這樣下次登陸就可以直接比對數據庫來判斷是否為有效用戶。如圖為註冊登陸界面: 註冊登陸成功以後就可進入簽到信息列表界面,該界面用來顯示用戶所添加的員工信息的簽到狀態。因為剛註冊所以我們要先添加員工信息。 如圖點擊用戶管理中心進入員工信息界面: 在該界面我們可查看、添加、修改、刪除員工信息以及添加上下班時間。在完善這些信息後瀏覽器將這些數據信息發送給服務器,服務器再將這些數據插入到數據庫中。上圖中的信息列表、員工列表都是在完善員工信息和簽到信息以後服務器從數據庫中拿出發送到瀏覽器顯示的結果。 這些工作完成以後服務器就可以接受來自設備上傳的卡ID數據並將改數據與數據庫中的已記錄數據進行對比進而執行相應的操作。 此外該系統還有密碼找回、生產Excel報表、用戶搜索等功能。關於密碼找回在登陸界面點擊忘記密碼然後填寫註冊時的郵箱就可通過郵件來重新設置自己的登陸密碼;如圖: 關於生產報表點擊了信息列表頁面的生成報表就可以直接下載系統自動生成的員工信息列表;該過程是由服務器自動完成,服務器向數據庫索要用戶員工信息然後生成Excel表格;如圖: 關於用戶搜索是在瀏覽器部分輸入用戶員工姓名信息,瀏覽器將這些數據提交給服務器,服務器再將這些數據與數據庫中的數據進行對比然後將該員工的信息以表格的形式顯示在瀏覽器頁面,如圖: 以上就是關於後台處理數據及前端瀏覽器顯示的全部過程,到此整個系統的後台處理就完成了,我們可以通過瀏覽器登陸查看相關數據信息。 關於考勤系統的總結: 該系統主要有註冊,登陸,密碼找回,添加員工信息,設置簽到時間,查看/修改/刪除員工信息,查看員工簽到信息以及搜索的功能。在實現這些功能的開發過程中主要運用PHP服務器腳本語言和MySQL的數據庫語言以及HTML瀏覽器腳本語言來完成數據在數據庫和服務器以及瀏覽器之間的傳輸。在瀏覽器顯示的代碼中還添加了CSS代碼來修改HTML標籤的樣式以增強瀏覽器端顯示的可視性。
Read More

教你如何通過MCU配置S2E為TCP Client的工作模式

串口轉以太網, 博客, 物聯網
在上兩篇文章中分別講述了通過MCU配置S2E為UDP、TCP Server的工作模式”,相信小夥伴們已經對S2E的基本功能了解了一些,現在就讓我們再接再厲、更上一層樓吧: 首先我們先了解一下MCU與S2E的接線方式: 1、接線方式: 2、例程說明: 打開“通過MCU配置S2E為TCP Client例程”,主程序中第一部分TIM3_Init();是設定一個幀中斷的時間定時器,這是因為該例程MCU的串口是通過幀中斷來接收AT命令配置S2E後返回的數據的。 第二部分USARTX_Init();初始化MCU用到的串口,這裡用USART1_Config();是printf功能,用於查看調試信息。USART2_Config();用於配置S2E,需要注意的是該串口的配置參數需要同S2E的串口配置參數一致,否則配置失敗。 第三部分主循環中的TCP_Client_Mode();用於配置S2E為TCP Client模式。S2E的AT命令列表詳見各個S2E型號的用戶手冊AT命令章節介紹。配置成功,串口打印“TCP Client Config Success!”,配置失敗串口打印“TCP Client Config Fail!”。 /**************************************************** 函數名:TCP_Client_Mode 形參:無 返回值:無 函數功能:通過串口發送AT命令配置S2E模塊 ****************************************************/ volatile uint8_t SendFlag = 0; void TCP_Client_Mode(void) { uint8_t RecvFlag = 1; char *state; switch (SendFlag) { case 0: { Usart_Send(USART2, "AT\r\n"); //終端檢測命令 while (RecvFlag) { if (RX2_Point & FRAME_LEN) { //如果接收到數據 state = strstr((char*) RecvBuff, "OK"); //判斷回復的數據中是否有“OK” if (state != NULL) { //有 RX2_Point = 0; //接收緩衝區指針置零 RecvFlag = 0; //接收標緻位置零 SendFlag = 1; //發送標誌位置零 printf("Recv:%s\r\n", RecvBuff); memset(RecvBuff, 0, RECV_LEN); //接收緩存清零 } else { //無 SendFlag = 100; //配置失敗 RecvFlag = 0; } } } } break; case 1: { Usart_Send(USART2, "AT+ECHO=0\r\n"); //開啟(1)/關閉(0)回顯命令 RecvFlag = 1; while (RecvFlag) { if (RX2_Point & FRAME_LEN) { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0;…
Read More