第二部分在这里:W5100E01-AVR是什么?怎么用?(二)(用户手册V1.0版)
3.程序向导
3.1. 存储器映射
3.1.1. 代码和数据存储器映射
评估板的存储器映射由128字节的代码内存和64字节的数据内存组成,数据内存分为SRAM、W5100和LCD文本区域。除了这些,还有4字节的AVR内部EEPROM,各种类型的环境变量记录在该EEPROM中。
<图3-1>,<表3-1>所示为评估板的系统存储器映射。
3.1.2. AVR内部的EEPROM映射
<图3-2>,<表3-2>表示AVR内部EEPROM映射。
3.1.2.1. 系统信息
系统信息区域应用于记录系统信息,例如评估板的固件版本。
系统信息作为SYSINFO数据类型接入。
3.1.2.2. 网络信息
网络信息作为NETCONF数据类型接入。
3.1.2.3. 信道信息
下表介绍了在W5100的4个信道使用应用程序。
信道信息用于记录在W5100的4个信道中使用的应用类型。
信道应用类型包括Loopback TCP服务器、Loopback TCP客户、Loopback UDP、DHCP客户和Web服务器。信道信息被定义为APPTYPE枚举类型。
信道信息可以被CHCONF数据类型访问。
3.2. 评估板固件
评估板固件的EVB main()函数-可以分为两部分。管理程序为运行评估板设置各种环境变量,Loopback 程序用于测试W5100的性能。有许多因特网应用程序使用因特网协议,例如DHCP, HTTP, DNS, 和ICMP协议。
让我们先来看下评估板组成的源列表,再来看下每个应用程序的源。
3.2.1. 源
3.2.2. 如何编译
在整理完源项后,3.2.1节的源在束中编译。
W5100E01-AVR B/D固件的编译可以利用WINAVR和AVRSTUDIO进行处理。首先,在个人电脑上安装WINAVR和AVRSTUDIO,然后通过AVRSTUDIO项目文件打开固件文件“~/sw/fw/W5100E01-AVR.aps”简化执行编译。请务必检查AVRSTUDIO中Project菜单的Configuration选项编译环境的详细设置,关于设置函数,请参考AVR Studio用户指南。
WIZnet提供的固件是基于AVR-GCC 3.4.6的,无法被其他版本的编译器执行。
在编译结束后,在文件夹中会创建一个用户之前定义的十六进制文件,这个文件可以在Atmega128中编程。
因为评估板是一个Little-Endian系统,我们要定义SYSTEM_ENDIAN为_ENDIAN_LITTLE_并使用它。如果目标系统是Big-Endian,我们可以定义成_ENDIAN_BIG_。
如果W5100被用作其他模式而不是直接总线模式,期望使用的总线模式要被定义成__DEF_IINCHIP_BUS__,而不是__DEF_ IINCHIP_DIRECT_MODE__,如果更改了W5100的DEFINE OPTION,源项目必须重建。重建项目,请先使用“make clean”命令,再使用“make”。
假如是SPI模式,确保更改了W5100E01-AVR板的JP3配置,更多信息,请参考2.1.1节的评估板的Layout & Configuration。
3.2.3. 如何下载
为了下载十六进制文件,我们使用AVRStudio和AVRISP电缆。
(1)连接AVRISP电缆与JP3的PM-A1口
(2)为评估板供电
(3)运行AVRStudio.exe
(4)在Device部分选择“ATmega128”
(5)在FLASH部分选择HEX file
(6)单击“Program”按钮
想了解更多信息,参见“AVR工具指南.pdf”。
3.2.4. 评估板main()函数
如果我们仔细查看main()函数,我们使用开发板的复位按钮初始化时,串口终端的管理程序需要等待一定的时间。这点上,如果串口终端执行管理程序的entering命令,评估板的环境就可以被设置,也可以运行ping请求程序,例如网络信息和信道信息。
如果DHCP客户端存在于应用程序中,DHCP客户端就从DHCP服务器端的‘get_IP_DHCPS()’函数中获取网络信息。如果DHCP客户端应用程序不存在或者无法从DHCP服务器端获取网络信息,评估板将初始化为预设的网络信息。
完成初始化后,评估板调用每个注册的应用程序处理器运行测试程序。想了解更多DHCP客户端程序,请参考3.2.6.5 节“DHCP 客户”。
3.2.5. 管理程序
管理程序不仅是可以通过RS232终端设置网络和信道信息的程序,也是一个可以通过发送Ping请求给目的地的测试应用程序。
管理程序可以通过调用main()函数的check_manage ()函数启动,check_manage ()检测RS23终端是否有任何输入命令给管理程序,例如是否输入‘M’ 或‘m’。如果命令被检测到,系统会通过manage_config()函数进入管理程序。如果用户改变了配置,评估板会自动重启并跳过check_manage()。
如果更新了评估板,评估板会自动重启更新配置。
3.2.5.1. 网络配置
网络配置是管理程序的子程序,是通过manage_network()函数建立的,用于设置评估板的网络信息。通常来说,在初始化设置后很难更新网络信息的MAC地址,因此,MAC地址设置只提供隐藏的菜单,不提供配置菜单,例如源地址、默认网关或子网掩码。而且MAC地址不会因为恢复出厂设置而改变,我们可以通过‘M’ 或‘m’命令更新MAC地址。
3.2.5.2. 信道配置
信道配置是管理程序的一个子程序,由manage_config()函数组成,用以决定W5100每4个信道各应用哪个程序。
应用类型可以被设置成DHCP客户端、Loopback TCP服务器端/客户端、Loopback UDP和Web服务器程序,每个信道可以设置成任何一个以上提到的应用程序,但是,DHCP客户端只能使用第1信道,不能在其他信道上进行重复设置。
TCP服务器端程序(LB_TCPS,WEB_SERVER)可以在任意信道中被重复设置,这种情况下,可以使用相同的端口。这里,客户的数量就相当于端口的数量,其他的应用程序也可以通过信道被重复设置,但是不能使用相同的端口号。
这是本文的第三章的部分内容,后面的内容我们将会在今后的博文一一介绍,希望对大家有所帮助。
更多有關W5100的博文請看這裡:
全硬件TCP/IP嵌入式以太网控制器——W5100E01-AVR
开源硬件-开源思潮到了?
WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比
想瞭解更多有關W5100產品信息,請登錄中文網站及官方博客:
没有评论:
发表评论