WIZnet2012

用于MSP430的W5200驱动(2013/1/20更新)

0
阅读(1914)

我对之前的W5200驱动做了许多修正,包括解决了一些bug。它主要是用于MSP430F5438a,但是也应该能用于MSP430的“5系”或“6系”。我已经将代码按作用分块。例如,WIZnet的相关文件放命名是以“W5200”起头。调试相关的文件则是以“console”起头。

目前的特点:

• 全面支持TCP/UDP/ICMP及DHCP客户端

• 包含UDP/TCP的例程代码

• 以太网性能测试代码

• 串口调试台,能进行测试运行及显示W5200所有寄存器状态

• BSD认证代码

此次代码的最大改动是支持对MSP430的相关测试。我进行了一个丢包测试,并且用WIZnet客户端以最快速度发送尽可能多的数据(通过TCP发送2048字节),然后我用命令行工具“trafshow”测试了传输情况和数据吞吐量。顺便说一句,此网络系统没有其他的主机。

测试结果很有意思,当MSP430主CPU时钟频率在16MHz时,W5200 SCLK也为16MHz,我每秒能发送73,000字节的数据。当我将MSP430及W5200时钟频率提高到25MHz时,W5200的SPI通信开始出现异常。

我不清楚这是因为我使用面包板或是其他的原因。当我最终将MSP430时钟频率调为25MHz,而W5200的变为12.5MHz时,每秒能得到105,000字节数据。这很有意思—-它告诉我MSP430CPU是先限制数据传输速率的原因,而不是W5200芯片。

使用此代码,需要你依照config.h文件配置硬件。如上图所示,我使用到了MSP-EXP430F5438,连接串口针脚,波特率设为为115200Baud,数据格式为 8N1。使用Code Composer将代码载入板中 。当你点击运行,首先屏幕上会显示一些无用数据。点击“?”,出现一个选项菜单,它将会给出这些代码能实现的所有选项功能。

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
*** Info Commands ***
m - MCU info
v - software version
w - W5200 device info
W - W5200 network info
<#> - (a number from 0-7)
displays statistics for the W5200 socket # specified
*** Action Commands ***
r - MCU warm reboot
R - W5200 reset
p - W5200 power toggle
*** Network Commands ***
c - Echo client test (TCP)
d - Dynamically set IP address
h - HTTP server
i - Manually set IP address
l - Echo server test (TCP)
L - Echo server test (UDP)
t - Run performance test

(The HTTP server option is just something I started writing — it doesn’t work yet.)

.Download the code for Code Composer 5.3.0.

原文地址:http://www.cashdollar.org/2013/01/20/updated-wiznet-w5200-ethernet-driver-for-msp430/

作者:Matt Cashdollar