TI官网下载StellarisWare软件包,,按默认路径解压缩,在C:\StellarisWare内有多个文件夹,其中C:\StellarisWare\board\rdk-s2e文件夹内即为主角:串口转以太网的源码。它使用lwIP1.3.2为TCP/IP协议栈。
TI的串口转以太网模块可以快速的将串行传输转为以太网传输,模块包括一个基于ARM Cortex M3的微控制器,一对串口,一个以太网端口。
这个串口转以太网模块软件支持以下功能:
可以静态分配IP也可通过DHCP动态分配IP;
一个用于参数配置的WEB服务器;
用于设备发现的UPnP(即插即用);
支持基于RFC2217(远程串口配置)的Telnet客户端
通过以太网远程固件升级。
实验用硬件:
利尔达送的LSD-S2E21-01开发板,处理器是LM3S6432.
在C:\StellarisWare\board\rdk-s2e 文件夹下有两个文件夹,分别是boot_eth和ser2enet,boot_eth内是boot loader源代码,它是整个模块代码的一小部分,位于Flash开始的4K内(0x0~0xFFF),它既可用于应用程序的加载,又可用于用户程序的“在应用编程”(IAP),即远程升级固件,它可以通过bl_config.h配置为通过串口、IIC、SSI、以太网和USB中的一个作为远程升级的通信方式。ser2enet文件夹里是串口转以太网的主要代码,从Flash的0x1000处开始存放代码映象。
下面将代码下载到硬件中:打开boot_eth文件夹下的boot loader工程,编译下载,再打开ser2enet文件夹下的工程文件,编译下载。
将硬件通过网线连接电脑,如果不修改串口转以太网模块的代码,它会自动从autoip.c中创建一个IP地址范围:169.254.1.0 ~ 169.254.254.255,子网掩码默认为:255, 255, 0, 0,默认会从上面IP地址范围中选一个,所以要先将电脑的IP设置成和上面的IP池同网段,如图1-1所示。
图1-1
打开C:\StellarisWare\tools\bin文件夹下的finder.exe程序,点击界面的“refresh”按钮,稍等片刻即可看到开发板的IP地址,如图1-2所示。
图1-2
在浏览器中输入finder.exe程序获得的IP地址,就可以访问串口转以太网的配置参数WEB服务器,如图1-3所示,图中也可看出我用的软件包版本是6288.
图1-3
可是,并不是所有人的电脑IP都在169.254.x.x这个Ip段,那么怎么改程序才能让开发板的IP和自己的电脑同IP段呢,修改的好处是显而易见的,这样只要通过一个交换机,就能实现电脑上网和访问开发板两不误。
首先打开ser2enet文件夹内的工程,定位到autoip.c的static void
autoip_create_addr(struct netif *netif, struct ip_addr *ipaddr) 函数,将这个函数的
ipaddr->addr=htonl(addr);改为:
ipaddr->addr =0xAC101430; //172.16.20.48 byzhu
ipaddr->addr = htonl(ipaddr->addr);
这里我将我的开发板IP地址定位172.16.20.48,因为我的电脑IP也属于同网段。另外也可以通过WEB服务器修改,一旦更改之后,除非完全擦除整个Flash,才可以再配置新IP。