本内容涉及很多技术性术语及数字表格,因篇幅较长将分几部分介绍,后续内容将在以后的博文分别介绍。欢迎大家阅读~
1. 简介
W7100A的全硬件TCP/IP协议栈使用户在不具备网络的知识背景下便可以轻松实现网络功能。同时,因为W7100A是一个与高性能8051单片机完全兼容的、具有TCP/IP硬件协议栈和以太网MAC/PHY的单芯片处理器,因此用户可以使用API函数轻松实现网络功能。
本文描述了API函数以及使用W7100A初始化的方法。文档中所有的参考代码都是在基于Keil编程环境下实现的。
2. 文档结构
TCP/IP核心API包括以下代码文件。用户在执行网络通信时所使用的函数都包含在源文件’socket.c’中。
3. 通用函数
‘tcpiccore.c’文件下的IINCHIP_READ()和IINCHIP_WRITE()是存取TCPIPCore的基本函数。在存取W7100A的TCPIPCore寄存器以及存储器时,这两个函数是使用最频繁的。
IINCHIP_READ:从TCPIPCore中读取数据
4. 初始化
初始化由两部分构成。一部分是关于MCU 寄存器的配置,另一部分是关于网络部分的配置。MCU 的配置需要定义存储器的存取时间和中断;而网络配置则用来设置基本的网络信息,例如IP地址等等。
4.1 MCU初始化
MCU初始化包括W7100A中TCPIPCore和MCU之间的接口寄存器的配置,以及使用TCPIPCore时的中断配置。
下面这段代码是MCU初始化的一个例子。
4.1.1 寄存器配置
由于在配置存储器存取时间、CKCON(0x8E)以及WTST(0x92)时要用到,所以需要设定W7100A的MCU和TCPIPCore之间的接口寄存器。CKCON寄存器用来控制MCU和TCPIPCore之间接口的速度,而WTST是用来设置MCU程序存储器存取时间的寄存器。
通过控制这两个寄存器,用户可以调整网络操作接口的速度。
-CKCON (0x8E): 嵌入式RAM等待状态寄存器。它可以控制嵌入式数据存储器的存取时间。时钟控制寄存器包括MD[2:0]这3位,用来指示专用数据存储器读/写信号的脉冲宽度。
MD[2:0]的用途是调整与I/O设备之间的通信速度,比如内部TCPIPCore与外部设备的通信速度。在复位之后,MD[2:0]将会恢复为默认值0x07,表示该低速设备正常工作。用户可以通过软件改变MD[2:0]的值来提高或者降低通信速度。在执行程序的任何时候(例如在MOVX指令与不同速度的设备之间)都可以改变MD[2:0]的值。为了增强网络的性能,用户可以将MD[2:0]设定为最小值(0x02)。
-WTST (0x92): 等待状态寄存器提供程序存储器存取时间的信息。它允许MCU可以在高速或低速程序存储设备之间进行操作。通过调整WTST寄存器的值,能够提高W7100A的性能。
4.1.2 中断配置
在网络操作时,为了能够处理来自TCPIPCore的中断,需要配置中断寄存器。整个中断寄存器可以被分为两个寄存器。一个由MCU区域来设定,另一个由TCPIPCore区域设定。如果用户不愿意使用中断,只需要禁止EINT5就可以。
4.1.2.1 MCU中断寄存器
为了能够使用TCPIPCore的中断,W7100A中的MCU需要设置IE、EIE、EIP、EIF等寄存器。在TCPIPCore中产生的中断信号与MCU中的nINT5(外部中断5)是内部连接的,因此为了能够处理TCPIPCore的中断事件,还需要配置中断寄存器。如果EINT5被禁止,即使TCPIPCore产生了中断,MCU也不能响应中断。
4.1.2.2 TCPIPCore中断寄存器
在TIPIPCore执行网络进程时,中断事件将会按照预先设定的情况发生。在TCPIPCore中,与中断进程相关的寄存器有5个。
CONFLICT: 如果APR请求命令中的IP地址与本地IP地址相同,这一位将会被置‘1’。可以通过向它写‘1’来清除。
UNREACH: 在发送UDP数据时,如果目标IP地址不存在,W7100A将会接收到ICMP数据包(地址不可获取),在这种情况下,IP地址和端口号将会被保存在无法到达的IP地址(UIPR)以和端口号(UPORT)中。UNREACH位将会被置‘1’。可以通过写入‘1’将此位清零。
PPPoE: 在PPPoE模式下,如果PPPoE连接被禁止,这个值将会被置‘1’。可以通过写入‘1’将此位清零。
IR2(0xFE0034) : TCPIPCore SOCKET中断寄存器. IR2寄存器的每一位都与Sn_IR寄存器相关。当中断发生时,IR2寄存器中相关的位就会被置‘1’。在这种情况下,在IR2所有的位都变成‘0’之前,EINT5会一直保持低电平。一旦IR2寄存器和Sn_IR寄存器都被清零,/INT信号会被拉高。
更多有关W7100A产品信息,可参考我写的以下博文:
感兴趣的朋友也可以在博客主页观看我们的 WIZnet相关视频栏目。
☞更多相关产品信息请参考WIZnet中文网站及官方博客:
没有评论:
发表评论