描述
嵌入式以太网开发套件Ethernet - DK使用指南
在嵌入式系统开发中,以太网通信是一项关键技术。Silicon Laboratories的嵌入式以太网开发套件Ethernet - DK为开发者提供了一个全面的解决方案,可用于开发实际的嵌入式以太网应用。本文将详细介绍该套件的使用方法,包括硬件设置、网络配置、软件安装以及嵌入式以太网教程等内容。
文件下载:AB4.pdf
一、套件概述
Ethernet - DK套件提供了开发嵌入式以太网应用所需的硬件和软件。它采用了业界认可的CMX Micronet™协议栈和高性能的Silicon Laboratories微控制器。TCP/IP协议栈专为嵌入式处理器开发,并以易于使用的库形式免费分发。同时,还提供了TCP/IP配置向导,可生成高度定制的库和项目文件,方便在Silicon Laboratories集成开发环境(IDE)中进行管理。
硬件方面,套件包含C8051F120目标板、AB4以太网开发板、USB调试适配器和必要的电缆。C8051F120目标板采用100 MIPS、128 kB Flash、8 kB RAM的C8051F120 MCU。AB4板提供的MCU网络接口由CP2200以太网控制器和带有集成磁体与LED的RJ - 45连接器组成。TCP/IP库包含CP2200的内置驱动,并具有自定义驱动接口和自动生成的模板,方便为任何以太网控制器编写驱动。
二、套件内容
套件包含以下物品:
- 硬件部分:C8051F120目标板、AB4以太网开发板、CAT5e以太网电缆、通用AC转DC电源适配器、USB调试适配器、USB电缆、串行电缆。
- 软件和文档部分:Silicon Laboratories评估套件IDE和产品信息CD - ROM,其中包含IDE、Keil C51评估工具链、源代码示例和寄存器定义文件、TCP/IP配置向导、嵌入式以太网开发套件用户指南等。
三、硬件设置
- 将AB4以太网开发板连接到C8051F120目标板的J24处,确保96针连接器牢固连接。
- 使用带状电缆将USB调试适配器连接到C8051F120目标板的JTAG头。
- 将USB电缆的一端连接到PC的可用USB端口,另一端连接到USB调试适配器的USB连接器。
- 将AC/DC电源适配器连接到C8051F120目标板的P1处,为两块板供电。注意,建议将'F120TB上与AB4板供电网络串联的2 Ω电阻替换为0 Ω电阻,以防止电流需求增加时出现大的电压降,触发VDD监视器复位。
四、网络设置
4.1 连接方式
| 该套件可以使用标准以太网电缆连接到以太网网络,也可以使用交叉电缆直接连接到PC。两种连接方式各有优缺点: |
连接方式 |
优点 |
缺点 |
| 标准电缆 |
可远程访问嵌入式系统;多个嵌入式系统可联网,可从同一或多个PC访问;使用交换网络时,可减少数据包延迟 |
需要现有网络和路由器/交换机;PC无需额外IP地址配置 |
| 交叉电缆 |
专用通道带宽,适合进行一致的数据吞吐量测量;无需额外硬件 |
PC与嵌入式系统的距离受电缆长度限制;只能从单个PC访问单个嵌入式系统;PC必须配置静态IP地址;交叉电缆需单独购买 |
4.2 网络设置步骤
- 使用标准电缆:将AB4以太网开发板通过标准以太网电缆连接到以太网墙插座或路由器/交换机,同时将PC连接到同一以太网网络。
- 使用交叉电缆:将AB4以太网开发板直接通过交叉电缆连接到PC,然后配置PC的静态IP地址。具体步骤如下:
- 打开网络连接文件夹,右键单击本地连接并选择属性。
- 选择Internet协议(TCP/IP)并点击属性。
- 选择“使用下面的IP地址”,指定PC的IP地址和子网掩码。对于子网掩码255.255.255.0,嵌入式系统的IP地址必须与PC的IP地址的前三个八位字节匹配,PC才能识别嵌入式系统。
- 配置完成后点击“确定”。
4.3 选择嵌入式系统的IP地址
为了让PC识别网络上的嵌入式系统,需要正确配置其IP地址和子网掩码。选择IP地址时应遵循以下准则:
- 找到PC的IP地址和子网掩码,如果指定了默认网关,保存该地址以备后用。
- 嵌入式系统的IP地址在子网掩码为1的所有位位置上必须与PC的IP地址匹配。
- 不要使用重复的IP地址或广播地址。
- 255.255.255.255是以太网广播地址,用于网络子网掩码未知的情况。
五、软件设置
- 将套件CD - ROM放入PC的CD - ROM驱动器,安装程序将自动启动。如果未自动启动,运行CD - ROM根目录下的autorun.exe。
- 在安装对话框中,点击“安装开发工具”按钮。
- 选择ETHERNET - DK条目并按下“安装”按钮。
- 取消选择“安装Raisonance评估8051工具集”选项,选择“安装Keil评估8051工具集”,然后按下“安装”按钮。
- 按照安装提示完成开发工具的安装。默认情况下,Silicon Laboratories IDE将安装在C:SiLabsMCU目录,嵌入式以太网示例将安装在C:SiLabsMCUExamplesC8051F12xEthernet目录,TCP/IP配置向导将安装在C:SiLabsMCUTCP - IP Config目录。
- 要编译本教程中的项目,需要将Keil工具启用为4k代码限制的评估版本,具体信息可参考“AN104: Integrating Keil 8051 Tools into the Silicon Labs IDE”。
六、嵌入式以太网教程
6.1 阶段1 - 基本Web服务器
6.1.1 使用TCP/IP配置向导生成项目
- 从Windows开始菜单启动TCP/IP配置向导,也可以双击默认位于“C:SiLabsMCUTCP - IP Config”目录下的TCPIP_Config.exe。
- 在左侧窗口的通信适配器部分,勾选CP2200。
- 验证左侧窗口的设备部分选择了C8051F12x。
- 在左侧窗口的协议设置部分,确保选择了以太网,然后勾选HTTP,较低级别的协议(如TCP)将自动启用。
- 在左侧窗口的系统设置部分,选择IP地址。
- 在右侧窗口,将源IP地址设置为嵌入式系统的IP地址。
- 如果知道网络的网关IP地址和子网掩码,在右侧窗口填写这些地址。
- 如果使用CP2200,忽略MAC地址字段,因为CP2200以太网控制器包含一个存储在闪存中的唯一工厂编程MAC地址。
- 使用“文件” -> “另存为”菜单保存所选配置。
- 从“文件”菜单选择“生成项目”,生成带有支持固件的新项目。
- 提示保存项目文件夹时,选择一个空目录或创建一个新目录,点击“确定”。
- 出现“项目生成成功”消息时,点击“确定”。
- 关闭TCP/IP配置向导。
6.1.2 编程MCU
- 从Windows开始菜单启动Silicon Laboratories IDE,也可以双击默认位于“C:SiLabsMCU”目录下的IDE.exe。
- 启动后,使用“项目” -> “打开项目”菜单命令打开生成的项目,选择TCPIP_Project.wsp并点击“打开”。
- 如果想查看源代码,双击屏幕左侧项目窗口中的main.c。
- 选择“项目” -> “工具链集成”,在预设名称下拉菜单中选择Keil预设,出现“保存预设?”对话框时按“否”。
- 验证编译器和链接器选项卡的可执行文件字段指向C:KeilC51BIN中的C51.exe(编译器)和BL51.exe(链接器)文件。
- 按下编译器选项卡的“自定义”按钮,在变量位置下拉框中选择“Large: XDATA”,然后按“确定”关闭工具链集成对话框。
- 构建项目,可以通过点击工具栏中的“构建/生成项目”按钮、选择“项目” -> “构建/生成项目”菜单或按下F7快捷键来完成。
- 点击工具栏中的“连接”按钮或选择“调试” -> “连接”。如果收到“无法与指定的串行适配器建立通信”错误消息,选择“选项” -> “连接选项”,验证选择了USB调试适配器,并且调试接口设置为JTAG。
- 点击工具栏中的“下载代码”按钮将项目下载到目标板。
- 点击工具栏中的“运行”按钮、选择“调试” -> “运行”或按下F5快捷键运行演示。
6.2 阶段2 - 具有DHCP和Netfinder功能的基本Web服务器
6.2.1 生成嵌入式Web服务器固件
- 启动TCP/IP配置向导。
- 勾选CP2200。
- 验证选择了C8051F12x。
- 确保选择了以太网,然后勾选DHCP、HTTP和NETFINDER,较低级别的协议(TCP和UDP)将自动启用。
- 保存所选配置。
- 生成新项目。
- 选择保存项目的文件夹。
- 确认项目生成成功。
- 关闭TCP/IP配置向导。
6.2.2 编程MCU
步骤与阶段1的编程MCU步骤相同。
6.2.3 查找嵌入式系统
- 打开位于C:SiLabsMCUUtilitiesNetfinder的Netfinder实用程序。
- 按下“搜索”按钮开始搜索设备。
- 如果嵌入式系统出现在绿色背景框中,选择该系统并按下“Web浏览器快速启动”按钮。如果出现在黄色背景框中,说明未找到DHCP服务器,直接跳至步骤5。
- 选择嵌入式系统并按下“Web浏览器快速启动”按钮。
- 默认Web浏览器应启动并显示嵌入式Web服务器提供的主页。也可以在Web浏览器的地址栏中输入嵌入式Web服务器的IP地址来访问。
- 如果网络中没有DHCP服务器,嵌入式系统将搜索约35秒后进入静态IP地址模式。此时,Netfinder将在黄色背景窗口中显示设备信息。选择设备并按下“分配IP”按钮。
- 在“分配IP地址”对话框中输入IP地址、子网掩码和默认网关(如果已知),然后按下“确定”。
- 关闭“分配IP地址”对话框,按下“搜索”按钮刷新Netfinder屏幕。
- 选择设备并按下“Web浏览器快速启动”按钮。
6.3 阶段3 - 通过串行端口配置MAC和IP地址
6.3.1 配置目标板跳线以实现UART通信
为了在C8051F120目标板上启用UART通信,需要短接跳线J6和J9。
6.3.2 修改固件以启用串行端口
TCP/IP配置向导生成的简单Web服务器固件不支持通过串行端口配置IP地址,需要修改固件。示例文件夹中的web - server - 3项目演示了如何使用串行端口进行配置。具体步骤如下:
- 停止MCU运行。
- 关闭当前打开的项目。
- 打开web - server - 3项目。
- 构建项目。
- 连接到目标板。
- 下载项目到目标板。
- 运行演示。
6.3.3 编程IP地址
- 使用串行电缆将C8051F120目标板的串行端口连接到PC的可用COM端口。如果PC没有COM端口,可以使用USB - to - UART桥(如CP210x评估套件)作为虚拟COM端口。
- 在PC上打开UART终端,配置为9600波特率、8位数据位、无校验位、1位停止位。
- 连接后,按下任意键。
- MCU将提示指定并验证IP地址,输入IP地址后按下任意键,使用“y”或“n”进行确认。
- 如果编程成功,C8051F120目标板上的绿色LED将停止闪烁,Web服务器将启动。此时可以ping嵌入式Web服务器或从Web浏览器访问它。
6.4 阶段4 - 添加Web服务器内容
6.4.1 修改源HTML内容
- 在主项目文件夹的VFILE_DIR子目录中,使用文本编辑器(如记事本)打开index.html。
- 修改HTML源代码,使网页明显不同,例如更改背景颜色或文本。
- 保存HTML源文件。
6.4.2 使用HTML2C更新文件数组
所有Web服务器内容以文件数组的形式添加到项目中。HTML2C实用程序可以读取任何文件(HTML、图像、可执行二进制文件等)并生成两个文件(original_filename.h和original_filename.c),可以添加到项目中。可以通过拖放、GUI的文件打开命令或使用VFILE_DIR文件夹中的update.bat批处理文件来使用HTML2C。
七、目标板和开发板介绍
7.1 C8051F120目标板
该目标板预装了C8051F120设备,用于评估和软件开发。提供了许多输入/输出(I/O)连接,方便进行原型设计。具体的I/O连接器位置和功能可参考“C8051F12x开发套件用户指南”。
7.2 AB4以太网开发板
该开发板用于将C8051F120(或其他兼容的MCU)目标板连接到以太网网络,使用CP2200以太网控制器。它与多个包含96针连接器的MCU开发板兼容,具体的信号映射可参考文档中的表格。
八、Silicon Laboratories IDE
8.1 系统要求
- 奔腾级主机PC,运行Microsoft® Windows 2000/XP或更高版本。
- 一个可用的USB端口。
- 建议64 MB RAM和40 MB的可用硬盘空间。
8.2 汇编器和链接器
开发套件包含完整版本的Keil A51宏汇编器和BL51银行链接器,在IDE安装过程中安装。完整的汇编器和链接器参考手册(A51.pdf)可以在IDE的帮助菜单或“SiLabsMCUhlp”目录中找到。
8.3 评估C51 C编译器
开发套件包含Keil C51 C编译器的评估版本,在IDE安装过程中安装。评估版本与完整专业版本相同,只是代码大小限制为4 kB,并且不包含浮点库。TCP/IP库的目标代码不计入4 kB代码大小限制。C51编译器参考手册(C51.pdf)可以在IDE的帮助菜单或“SiLabsMCUhlp”目录中找到。
8.4 使用Keil软件8051工具与Silicon Laboratories IDE
使用Silicon Laboratories IDE项目管理器时,Keil 8051工具的默认配置启用了对象扩展、调试记录生成,并使用OMF - 51格式,这是进行源代码级调试所必需的。Silicon Labs IDE还允许通过批处理文件直接从命令行调用Keil 8051工具。具体信息可参考“AN104: Integrating Keil 8051 Tools Into the Silicon Labs IDE”。
九、支持的协议
该套件支持多种协议,包括链路/物理层的以太网(IEEE802.3),互联网层的IP、PING、ARP,传输层的TCP、UDP,应用层的DHCP、BOOTP、FTP、HTTP、SMTP、TFTP、DNS和Netfinder等。
通过以上步骤,开发者可以充分利用Ethernet - DK套件进行嵌入式以太网应用的开发。在实际开发过程中,你是否遇到过一些特殊的问题?又是如何解决的呢?欢迎在评论区分享你的经验。
打开APP阅读更多精彩内容