博客

WIZnet-W7500S2E系列

WIZnet-W7500S2E系列

S2E系列, W7500S2E, 博客
W7500S2E   WIZnet公司成立于1998年,是一家无晶圆厂的半导体公司。产品包括iMCU™微控制器,基于独特的专利硬件TCP/IP的互联网处理器,即TOE(TCP/IP卸载引擎)技术专门开发的。针对嵌入式互联网设备,适用于各种以太网络应用。 WIZnet 在全球拥有超过70家代理商,品牌忠诚度高,在香港、韩国、美国、中国等地设有办事处提供技术支援和产品营销。 之前我们一起了解了W5500S2E系列,现在我们一起开展关于W7500S2E系列的探秘之旅吧! 首先,我们先了解一下W7500S2E的基本情况: W7500S2E系列串口转以太网模块支持数据透传以及AT命令传输数据两种通信方式,同时支持TCP Server、TCP Client和UDP三种工作模式,串口波特率最高可达460,800bps,并提供配套的上位机配置软件,也可通过网页或AT命令等方式轻松配置。 W7500S2E系列串口转以太网模块板载了一颗集成了ARM Cortex内核+全硬件TCP/IP 协议栈的网络单片机,使得网络通信更加快速、稳定、安全。用户只需根据手册中推荐的参考设计原理图,即可快速完成硬件电路的设计,降低开发难度,节省开发时间。   W7500S2E系列串口转以太网模块根据其尺寸和接口不同分为以下型号: 型号 产品图片 特点 W7500S2E-Z1   网口类型:网络变压器 尺寸:44.45x31.75x15.75(mm) 工业级:-40~+85℃ W7500S2E-R1 网口类型:RJ-45 尺寸:44.45x31.75x23.00(mm) 工业级:-40~+85℃ W7500S2E-C1 芯片内含功能完全兼容W7500S2E系列固件 工业级:-40~+85℃ 其他芯片相关信息,请访问W7500网站 https://zh.wizse.com/ 功能特点 W7500S2E系列串口转以太网模块具有以下主要功能特点: 支持数据透传以及AT命令传输数据两种通信方式 支持外接485芯片的收发控制使能 波特率设置范围为300bps至460,800bps之间常用的16组波特率值 支持TCP Server、TCP Client和UDP三种工作模式 高达2048字节的串口发送缓存以及2048字节的网口接收缓存 全硬件以太网TCP/IP协议栈处理器,确保数据通信快速、安全、稳定 灵活的串口数据分包设置,满足用户多样化的分包需求 支持Keep-Alive功能,保证网络链路实时畅通 支持DHCP自动获取IP地址 支持DNS功能,满足用户通过域名实现模块与服务器通讯的需求 支持NetBIOS功能,方便用户通过模块名称轻松访问模块 支持连接密码校验功能,提高通信安全性 支持串口AT命令模式配置、Web网页配置以及上位机工具配置 支持上位机本地固件升级 产品特性 32位ARM     MCU LAN 10/100Mbps自适应以太网 串口 3.3V TTL×1:TXD、RXD、CTS、RTS、GND 串口通信参数 波特率:300bps至460,800bps之间常用的16组波特率值 数据位:7、8 停止位:1、2 校验:NONE、ODD、EVEN 流控:None、CTS/RTS 输入电源 W7500S2E-Z1:DC 5.0V W7500S2E-R1:DC 3.3V 尺寸(长×宽×高) W7500S2E-Z1:44.45×31.75×15.75(mm) W7500S2E-R1:44.45×31.75×23.00(mm) 工作温度 W7500S2E-Z1:-40 ~ +85℃ W7500S2E-R1:-40 ~ +85℃ 保存环境 W7500S2E-Z1:-50 ~ +95℃、5 ~ 95% RH W7500S2E-R1:-50 ~ +95℃、5 ~ 95% RH 参数配置方式 W7500S2E系列串口转以太网模块提供了三种常用的参数配置方式供用户选择: AT命令配置,用户可将W7500S2E集成于自己嵌入式产品的主板上,通过AT命令进行参数配置,也可直接通过串口工具使用AT命令配置; Web浏览器配置,用户可在本地或者同一局域网内远程通过Web浏览器进行配置; WIZS2E ConfigTool上位机软件配置,用户可在Windows操作系统的计算机上安装该软件进行配置。 配置工具下载链接:https://zh.wizse.com/
Read More

WIZ ConfigTool批量配置S2E模块

S2E系列, 串口转以太网, 应用
近期有很多用户问,一个一个的配置太麻烦,可不可以批量配置S2E模块呢?现在我就来教大家如何批量配置S2E模块! 步骤: 1、首先确保PC与S2E模块处于同一局域网内; 2、打开WIZ ConfigTool配置工具,点击"Search"进行搜索,同一局域网内的所有模块会以MAC地址的形式罗列在配置工具左侧; 3、点击选中某一个MAC地址(MAC地址变成蓝色)即可对其对应的模块进行配置,配置完一个设备后,点击"Save Current Settings",即可保存当前配置文件。 4、如果要将该配置应用到其他所有可以搜到的模块,点击"Auto Set All Listed Modules"即可完成配置。 5、如果要将该配置应用到另一个模块,可以选中另外一个模块,然后点击"Load Setting File",然后打开刚保存的配置文件,再点击"Appy Settings"按钮,即可完成配置。
Read More
WIZnet可控机器人手臂

WIZnet可控机器人手臂

Uncategorized, WIZnet 产品应用小例全系列, 应用, 物聯網
使用以太网远程控制机器人手臂       硬件: Arduino UNO和Genuino UNO WIZnet WIZ750SR-TTL-EVB套件 通用机器人手臂 项目简介: 如果您想与串行设备通信,那么可能最大电缆长度是主要障碍。标准波特率的最大电缆长度可以是50英尺。您可以通过牺牲数据速率来进一步增加电缆长度。而且现在大多数PC都没有串口。以太网到串行转换器可能是上述问题的理想解决方案。您可以通过以太网端口高速传输数据到串行设备。电缆长度可达100米或更长。 在这个项目中,我使用WIZnet的串行到以太网(S2E)设备(WIZ750SR)来控制3D打印的机械臂。这是一个概念项目,手臂的容量非常有限。我使用开源处理环境开发了一个Windows应用程序,用于从我的台式PC控制手臂。 首先,我使用WIZnet的S2E配置工具配置WIZnet设备,如下所示(注意IP地址和端口号)。WIZnet设备配置为TCP服务器。串行通信的波特率应为115200(忽略图像上的速率)。 然后我将3.3V USB FTDI转换器连接到WIZ750SR以检查串行通信。我用PuTTY来测试通信。 我打开两个PuTTY窗口,一个作为Telnet客户端,另一个作为串行客户端。 串行通信检查成功后,通过TX和RX引脚将Arduino板连接到WIZ750SR。 为了将WIZ750SR与Arduino板连接,可以安全地使用电平转换器,因为WIZ750SR工作在3.3V,Arduino工作在5V。在这里,我连接了WIZ750SR和Arduino板之间的电平转换器。电平转换器的高压侧必须与Arduino连接,并且电平转换器的低压侧必须与WIZ750SR连接。 我用Arduino NANO和Arduino UNO测试了WIZ750SR器件。 为了通过以太网从我的PC控制机器人手臂,我使用Processing开发了一个桌面应用程序。处理是使用虚拟COM端口向Arduino发送数据。 虚拟COM端口或虚拟串行端口是传统软件应用程序期望连接到串行设备端口(COM端口)但由于物理上缺少可用串行端口而无法连接时的理想解决方案。相反,我们重新配置计算机以通过局域网或Internet发送串行端口数据,就像通过真正的串行端口一样。当遗留应用程序将数据发送到串行COM端口时,它实际上是通过TCP / IP网络传输的,然后从网络传输到您的遗留应用程序 - 并且是presto! - 我们有一个虚拟串口或虚拟COM端口。 要了解有关虚拟COM端口的详细信息(它们如何工作以及如何配置),请查看链接:https://www.netburner.com/learn/how-to-create-a-virtual-serial-port/ 要为PC设置虚拟COM端口,您将需要第三方工具。您可以将WIZ VSP用于此目的。我使用了NetBurner的另一个工具。我从这里下载了NetBurner虚拟COM端口工具,并按如下方式配置它: 在将虚拟COM端口配置为COM20之后,我开发了一个Processing程序,使用WIZ750SR以图形方式与Arduino机械臂进行交互。要运行处理代码,您需要为Processing添加ControlP5 GUI库。从这里下载库: http ://www.sojamo.de/libraries/controlP5/ 请注意COM端口号,它必须是您使用NetBurner创c建的虚拟COM端口号。 Processing程序的图形输出如下: 从五个滑块我可以非常平稳地控制机器人手臂的五个伺服电机的旋转。 应用程序的完整源代码附加到代码部分。 下图显示了PC,WIZ750SR和Arduino之间的连接。 这款微型机器人手臂采用3D打印,设计文件可在Thingiverse中使用。我用五个伺服电机来控制手臂。伺服电机连接到Arduino数字引脚。 使用以太网可以远距离控制手臂。无需在PC中安装串口。 文章来源:https://create.arduino.cc/projecthub/taifur/wiznet-controlled-robotic-arm-871744?ref=search&ref_id=wiznet&offset=1
Read More

W5500常见问题及解决方案

Uncategorized, 博客
Q1: 在芯片处于TCP_Server模式下,在交换机/路由器网络中无法ping通也无法通讯。 R: WIZnet芯片是硬件协议栈芯片,有别于软件协议栈,如果芯片不主动往网络中发包,在TCP_Server模式下是不会有任何数据包发送的,这样会造成路由ARP表中无法形成IP和MAC设备的对应关系。 A:解决方案: 在芯片上电时往任意IP发送一个UDP数据包,从而更新路由的ARP表,形成匹配关系,后续通讯就正常了。 Q2: 芯片在TCP_Client模式下,断电重启之后无法立即连接到服务器。 R:这是由于客户端没有主动发送断开请求,造成服务器并不知道Socket已发生异常断开; 重新上电之后,芯片以相同的IP和端口连接服务器,而服务器还认为此Socket链接存在,所以拒绝芯片的立即连接。 A:解决方案: 在芯片使用KEEP_ALIVE机制,一段时间内发送呼吸包,如果芯片没有给服务器回复,服务器则判断链接已断开,并释放Socket资源,这时就可以成功连接。如果对客户端的本地端口没有要求的话,也可以在初始化Socket的部分让端口自动+1处理。两种方式根据具体应用分析采用。 注: 有的场景不能采用端口自动+1的方式,比如电力104规约,只允许采用2404端口连接。 Q3: 网线异常断开,服务器的Socket已经断开,但是芯片不知道Socket已经断开,并没有重建链接,此时怎么处理? A:解决方案: 可以在主循环中加入判断PHYCFGR状态的处理流程,如果PHY状态发生异常,释放所有的socket资源,并重新初始化socket。相关寄存器如下: Q4:如果芯片作为TCP_Server,最多可以链接几个Client,应该如何操作? A:解决方案: 芯片作为TCP_Server,最多可以与8个客户端建立连接。不能初始一个Socket对应多个连接。可以将芯片的8个socket全部初始化,这样就可以与8个不同的TCP_Client建立通讯链接。 Q5: 在芯片处于TCP_Client模式下,无法连接到服务器。 R: 在TCP_Client模式下,WIZnet芯片无法连接到服务器。 A: 遇到这个问题,有一个排查的步骤: 检查IP层是否可以PING通; 检查服务器的目标端口是否处于侦听状态,否则会收到RST数据包; WIZnet芯片在连接服务器时,首先会发送ARP请求,请确认ARP得到正确回复; 检查客户端-服务器间的3步握手是否完成; Q6:W5200进入Power Down模式后,长时间以后唤醒不能恢复正常,如何解决? A: 解决方案: W5200的Power Down模式是通过在一定时间内关闭W5200的内置PHY电路的工作来实现的,但是有一定几率PHY在休眠之后无法唤醒,需要在软件上做处理来唤醒芯片。经过测试验证发现,W5200芯片在3s极限值内快速唤醒一次再进入Power Down,当芯片需要唤醒正常工作时就不会出现以上问题。 Q7:WIZnet芯片进行公网通讯或者芯片间通讯的话怎么抓包? A: 解决方案: 芯片和PC通讯的话可以直接通过Wireshark抓包,如果芯片和公网直接通讯或者通讯是发生在芯片之间,则没有办法直接抓包,这需要借助于“可以抓包的交换机”,这种交换机多数是二手产品,而且是10M的网络,比如TP-LINK TL-HP5MU。把芯片和抓包计算机的网线分别插上交换机就可以运行抓包工具抓包。 Q8: W5300 TCP连接以后,Socket0数据收发正常,其它Socket有数据丢失是什么问题? A:解决方案: W5300是总线方式操作,在确保地址总线和数据总线连接正确的情况下,还有一个很重要的问题,就是保持总线时序统一,经过验证MCU总线地址保持时间至少是W5300总线操作时间的2倍以上,否则可能会导致W5300来不及处理数据而导致数据丢失。如下图介绍。 Q9: W5500的硬件设计和以往的以太网设计有不同的地方,可否使用客户原有的以太网经验电路? A:解决方案: 不能使用以往的经验电路,请严格按照WIZnet给出的参考设计进行硬件设计。 有的客户反馈在使用原有的经验电路也可以正常通讯,但是有可能发生在实验室正常,而客户现场连接不上的情况,所以统一建议客户使用官方的参考设计。 Q10:W5500的以太网电路,正常线序连接的话可能必须做过孔交叉线序,能否在线路上做交叉处理? A: 解决方案: W5500的以太网接口的四根线,按照正常的线序连接,必须通过过孔交叉线序; 按照以太网布局规范,需要等长差分走线。而且需要尽量少的过孔,可以适当做P-N交叉,既TXP-TXN交叉,RXP-RXN交叉,以符合以太网布线规范的要求。 Q11: Wake On Line(WOL)功能如何使用? A:解决方案: WIZnet芯片打开WOL功能只需要置位MR寄存器的WOL位,不需要外部设定。唤醒方法为向WIZnet芯片的UDP端口发送Magic数据包(0xffffffffffff+16个目的MAC地址),设备唤醒后IR寄存器的WOL位会置1,通过检测该位获取WIZnet芯片的状态。(注意WOL功能不能和掉电模式(Power down mode)同时打开) Q12: 如何使用UDP组播功能? A:解决方案: 使用WIZnet芯片的UDP组播功能有几点需要注意: 1,需要在打开Socket之前,先指定目标MAC地址为组播MAC地址,定义规则如下: 2,打开一个支持多播UDP的Socket,目标IP为组播地址; 3,然后就可以进行UDP组播传输。 注意:如果没有定时发送“维持UDP组播”的数据包 的话就会被清出组播组,可以定时执行打开步骤2的打开Socket的指令,因为打开和维持UDP组播的数据包是完全一样的。 Q13: 运行HTTP_Server程序在不同的浏览器下显示效果不同,有的动态效果显示不出来? R: 这个是HTML代码和浏览器的兼容性问题,因为HTML5的很多标签和CSS样式表在低版本或者不同的浏览器内核下的排版和兼容性都不同。 A: 在HTML开发的时候使用JavaScript可以判断浏览器的内核和版本,可以针对不同的浏览器开发不同的执行代码和CSS样式表,或者建议客户使用推荐用户使用chrome系列或者chromium内核的浏览器,因为其对HTML5/CSS3支持是比较完善的。 Q14: MAC地址定义有什么特殊要求? A:解决方案: MAC地址要求不严格的话可以自定义,因为只要在一个子网内没有重复的MAC地址就不会造成MAC地址冲突的问题,因为如果进行公网通讯,网关会通过NAT功能将网关的MAC和IP对数据包中的MAC和IP进行替换然后再和公网通讯,所以不会造成公网中的MAC冲突的问题。但是如果要求比较严格,则需要从IEEE基金会申请全球唯一的MAC地址,申请地址如下: https://standards.ieee.org/products-services/regauth/oui36/index.html 进入该页面后点击Log in or create an account(新用户需注册),登陆后即可购买。 Q15: WIZnet芯片PING不通其它设备。 A:根据ICMP协议,request包的大小为128byte,reply包比request包大8byte,为136byte。 客户可以分别定义两个Buffer[128]和Buffer[136]分别对应request包和reply包,也可以共用一个Buffer[136],但是不能发送接收使用同一个128byte的Buffer,否则会造成接收数据不全,无法解析。 Q16: 使用中断方式,回环测试时无法清除中断 R: W5500收到数据后会产生RECV中断,当回环测试时,正常清掉RECV中断后,由于采用的回环测试方式,W5500又将同一包数据发送了出去,所以又会产生SEND_OK中断。 A: 此时需要再次清SEND_OK中断,或者改用单向测试方式即可。 Q17: 为何使用STM32F103无法完全发挥W5500的性能 A: STM32F103的主频最大72MHz,但是SPI接口的最高频率限制为18MHz 而W5500的SPI时钟最高可达80MHz,所以以 STM32   驱动W5500的话,无法满足W5500对最高时钟的需求。 而如果使用STM40x处理器,SPI时钟使用42Mhz,使用DMA方式,可以达到回环测试17Mbps的速率(收+发),单独发送可以达到13Mbps的速率 Q18: 如何使用PHY-PHY电路? A: 经常有需要使用PHY-PHY电路的场景,比如使用WIZnet做内部数据通讯,比如需要使用板载的Switch电路等等,PHY-PHY电路的要点就是使用耦合电容隔离两端的PHY,并加入两个PHY各自的偏置电路。类似于如下的设计: Q19: 以太网如何级联? A: 在特殊的应用场景下,客户需要用网线将所有的节点按照这种方式“A-B-C-D-E”线状级联在一起。这种应用需要使用Switch芯片,比如IP175G等芯片,按如下图示链接: Q20: 无法通过“以太网物理层一致性测试”中的眼图测试 A: 眼图是表现网络信号是否稳定的测试,眼图混乱有可能导致同一批次的设备有的无法正常通信,造成原因是: 1,没有按照以太网的布局标准来设计硬件电路, 2,采用的可能是不合格的网络变压器器件。 下图为使用W5500和HRW5500RE的眼图测试结果。 Q21: 使用WIZnet芯片无法通过低温测试 R: 通不过低温测试通常表现为低温-40℃不启动,原因是电路上除了WIZnet 的芯片外,还有晶振以及网络变压器等周边器件,造成结果通常是由采用的周边器件不是工业级温度的器件。症状如下:…
Read More
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

WIZnet选型指南,解决90%的选型需求

Uncategorized, 应用, 新闻
在我们选择WIZnet的产品时,面对诸多的产品功能不知如何选择,这里详细介绍一下WIZnet产品主要参数功能以及一些选型方法,帮助工程师快速准确地选择产品。 [table id=201 /] 这五款芯片各有千秋,都具有很高的性价比,具体对比详情如下: WIZnet的产品有一个共同的特性,那就硬件TCP/IP协议栈。而它们之间的差异主要体现在接口类型、Socket数量方面,选择的依据主要根据用户产品所使用的单片机接口类型和成本这两个因素。 如果用户使用8位或16位单片机,那么也意味着系统在数据处理和通信速率方面没有太高的要求,我们一般的芯片都可以满足,比如W5500、W5100、W5100S、W6100都可以选择。要求速率高的推荐使用W5300。需要使用IPv6协议则推荐使用W6100。 W5500     支持高速标准4线SPI接口与主机进行通信,该SPI 速率理论上可以达到 80MHz。其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互不影响,可以通过 W5500 片上32K 字节的收/发缓存灵活定义各个Socket的大小。 W5300    支持8/16位数据总线接口与主机进行通信,且支持DMA(直接存储器访问)模式,极大提高了W5300的性能,再加上W5300片上128K的收/发缓存,使得W5300性能产生质的提升,最高吞吐率可达80Mbps。W5300内部集成了以太网数据链路层(MAC)和10Base T/100Base TX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、自动极性转换,并内嵌8个独立硬件Socket可以进行8路独立通信,该8路Socket的通信效率互不影响。W5300以其卓越的数据传输性能,正逐步成为高带宽需求方面的主力军。 W5100    支持直接并行总线、间接并行总线以及高速SPI接口3种方式与主机进行通信。其内部还集成了以太网数据链路层(MAC)和10Base T/100Base TX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)。与传统软件协议栈不同,W5100内嵌的4个独立硬件Socket可以进行4路独立通信,该4路Socket的通信效率互不影响,可以通过W5100片上16K字节的收/发缓存灵活定义各个Socket的大小。 W5100S    是基于W5100改进的低成本网络接口芯片。W5100使用的任何固件及程序都可以直接在W5100S上使用,无需任何修改 W5100S 是一款多功能的单芯片网络接口芯片,内部集成全硬件的TCP/IP协议栈,以太网MAC和10Base-T/100Base-TX以太网控制器。主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中。使用W5100S,用户MCU可以方便的处理IPv4,TCP,UDP,ICMP,IGMP,ARP,PPPoE等各种TCP/IP协议。W5100S分别拥有8KB的发送缓存和接收缓存,可以最大限度地减少MCU的开销。主机还可以同时使用W5100S的4个独立的硬件SOCKETs,并基于每个硬件SOCKET开发独立的互联网应用。 W5100S支持SPI接口和并行系统总线接口。它还提供低功耗/低热量设计,WOL(Wake On LAN),以太网PHY掉电模式等。 W6100    是WIZnet 2019年推出最新技术的网络接口芯片,内含IPv4/IPv6双内核协议栈。其中新增IPv6是其最大特点,同时在硬件引脚上与W5100S全兼容(Pin to Pin),软件上支持8个Socket,支持各种SOCKET-less命令,用于通过ARP,PINGv4和PINGv6进行IPv6自动配置,监控和管理网络。
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