tag 标签: evb-pic24

相关博文
  • 热度 22
    2012-12-31 09:45
    1048 次阅读|
    0 个评论
        前几次给大家介绍了关于W3150A+评估板--EVB-PIC24用户指南中一些程序安装测试以及程序员指南的一些内容,今天继续给大家介绍最后一部分,有关于硬件设计指南的部分。供大家详细了解其结构。 4.   硬件设计指南 4.1. 框图 图 4.1: EVB B/D 框图   4.2. 框图描述 EVB B/D由 MB-EVB-PIC(EVB 底板) 和PM-PIC24(PIC 模块)组成.  以下的9部分是 EVB B/D的组件. -          PM-PIC24 -          NM7010B + -          LCD -          SRAM -          RS-232 Port -          扩展板接口 -          功率调节器 -          3.3V系统复位电源  4.2.1.             PM-PIC24 PM-PIC24 由PIC处理器, 8MHz外部晶振以及底板(JP1,JP2)和ICD2(J1)接口的接头组成.   图 4.2: PM-PIC24 模块尺寸   为了用EVB板进行轻松的开发,所有引脚除了OSC(RC12, RC15) 都通过模块接口(JP1,JP2)接到MB-EVB-PIC. 接口引脚描述见 表 4‑1: PM-PIC24 模块引脚描述 .    表 4‑1: PM-PIC24 模块引脚描述   PIC ICD2 和ICSP (J1)引脚图 PIC ICD2 接头(J2) 引脚图和上面的一样. 请参考 MPLAB ICD2用户手册的Chapter 9.3. 4.2.2.             NM7010B + 模块 NM7010B + 是一个网络模块,它由W3150A + (TCP/IP 硬件芯片), RTL8201CP(Ethernet PHY)和 MAG-JACK(RJ45 with X’FMR)组成.  TCP/IP,MAC协议层 : W3150A + 物理层 : Ethernet PHY 连接器 : MAG-JACK  关于NM7010B + 模块的详细信息,请参考 “ NM7010B+ Datasheet Vx.x.pdf ”  4.2.3.             LCD LCD 用于调试以及系统状态显示. LCD接口(JP5)的引脚描述如下所示. 表 4‑3: LCD 引脚描述 4.2.4.             SRAM SRAM有32K字节, 用于PIC的外部数据存储器.  4.2.5.             RS232端口 RS232端口是一个PIC支持的串行USARTs接口. EVB B/D使用9引脚的 DSUB male Type连接器. (PM-PIC24只使用一个 RS232端口.)  4.2.6.             扩展板接口 设计扩展板接口的目的是能够使用EVB B/D轻松进行开发. PIC24的大部分端口引脚,电源和很多保留引脚都连接到扩展板接口.  表 4‑4: 扩展板接口引脚描述                                 扩展板连接器, “PCN10BK-96S-2.54DS”, 是一个 96引脚的直角母口引脚连接器. 与之成对的Male Type的连接器 是 “PCN10-96P-2.54DS.” 4.2.7.             ICD2端口 ICD2端口是一个MICROCHIP 支持的ICSP ICD接口. EVB B/D 6引脚的 RJ11连接器.请参考MPLAB ICD2 用户指南的Chapter 9.3. 4.2.8.             功率调节器 EVB B/D 通过电源适配器得到 5V DC 电源. 板子内部使用的电源是5V和3.3 V. 调节器是LM1117MPX-3.3(U2).  4.2.9.             3.3V 系统复位电源 手动复位和上电复位用RC模拟电路实现. 4.3. 原理图 4.3.1.             MB-EVB-PIC 请参考CD中的 “ MB-EVB-PIC_Schematics.PDF ”.  4.3.2.             PM-PIC24 请参考CD中的“ PM-PIC24_Schematics.PDF ”.  4.3.3.             NM7010B + 请参考CD中的“ NM7010B+_Schematics.PDF ”. 4.4. 零件清单 4.4.1.       MB-EVB-PIC零件清单 请参考CD中的“ MB-EVB-PIC_Partlist.PDF ”.  4.4.2.       PM-PIC24零件清单 请参考CD中的“ PM-PIC24_Partlist.PDF ”.  4.4.3.       NM7010B + 请参考CD中的“ NM7010B+_Partlist.PDF ”.  4.5. 物理性能说明 4.5.1.       功耗 每一个元件的功耗如下表所示.  表 4‑5 EVB B/D 功耗 总功耗是210mA X 5V = 1.5 Watt.   感谢关注! 相关内容请参考  W3150A+评估板–EVB-PIC24 用户手册(三)                 W3150A+评估板–EVB-PIC24 用户手册(二)                 W3150A+评估板–EVB-PIC24 用户手册( 一 )  
  • 热度 16
    2012-12-31 09:35
    964 次阅读|
    0 个评论
        前几次给大家介绍了关于W3150A+评估板--EVB-PIC24用户指南中一些程序安装测试以及程序员指南的一些内容,今天继续给大家介绍最后一部分,有关于硬件设计指南的部分。供大家详细了解其结构。 4.   硬件设计指南 4.1. 框图 图 4.1: EVB B/D 框图   4.2. 框图描述 EVB B/D由 MB-EVB-PIC(EVB 底板) 和PM-PIC24(PIC 模块)组成.  以下的9部分是 EVB B/D的组件. -          PM-PIC24 -          NM7010B + -          LCD -          SRAM -          RS-232 Port -          扩展板接口 -          功率调节器 -          3.3V系统复位电源  4.2.1.             PM-PIC24 PM-PIC24 由P****器, 8MHz外部晶振以及底板(JP1,JP2)和ICD2(J1)接口的接头组成.   图 4.2: PM-PIC24 模块尺寸   为了用EVB板进行轻松的开发,所有引脚除了OSC(RC12, RC15) 都通过模块接口(JP1,JP2)接到MB-EVB-PIC. 接口引脚描述见 表 4‑1: PM-PIC24 模块引脚描述 .    表 4‑1: PM-PIC24 模块引脚描述   PIC ICD2 和ICSP (J1)引脚图 PIC ICD2 接头(J2) 引脚图和上面的一样. 请参考 MPLAB ICD2用户手册的Chapter 9.3. 4.2.2.             NM7010B + 模块 NM7010B + 是一个网络模块,它由W3150A + (TCP/IP 硬件芯片), RTL8201CP(Ethernet PHY)和 MAG-JACK(RJ45 with X’FMR)组成.  TCP/IP,MAC协议层 : W3150A + 物理层 : Ethernet PHY 连接器 : MAG-JACK  关于NM7010B + 模块的详细信息,请参考 “ NM7010B+ Datasheet Vx.x.pdf ”  4.2.3.             LCD LCD 用于调试以及系统状态显示. LCD接口(JP5)的引脚描述如下所示. 表 4‑3: LCD 引脚描述 4.2.4.             SRAM SRAM有32K字节, 用于PIC的外部数据存储器.  4.2.5.             RS232端口 RS232端口是一个PIC支持的串行USARTs接口. EVB B/D使用9引脚的 DSUB male Type连接器. (PM-PIC24只使用一个 RS232端口.)  4.2.6.             扩展板接口 设计扩展板接口的目的是能够使用EVB B/D轻松进行开发. PIC24的大部分端口引脚,电源和很多保留引脚都连接到扩展板接口.  表 4‑4: 扩展板接口引脚描述                                 扩展板连接器, “PCN10BK-96S-2.54DS”, 是一个 96引脚的直角母口引脚连接器. 与之成对的Male Type的连接器 是 “PCN10-96P-2.54DS.” 4.2.7.             ICD2端口 ICD2端口是一个MICROCHIP 支持的ICSP ICD接口. EVB B/D 6引脚的 RJ11连接器.请参考MPLAB ICD2 用户指南的Chapter 9.3. 4.2.8.             功率调节器 EVB B/D 通过电源适配器得到 5V DC 电源. 板子内部使用的电源是5V和3.3 V. 调节器是LM1117MPX-3.3(U2).  4.2.9.             3.3V 系统复位电源 手动复位和上电复位用RC模拟电路实现. 4.3. 原理图 4.3.1.             MB-EVB-PIC 请参考CD中的 “ MB-EVB-PIC_Schematics.PDF ”.  4.3.2.             PM-PIC24 请参考CD中的“ PM-PIC24_Schematics.PDF ”.  4.3.3.             NM7010B + 请参考CD中的“ NM7010B+_Schematics.PDF ”. 4.4. 零件清单 4.4.1.       MB-EVB-PIC零件清单 请参考CD中的“ MB-EVB-PIC_Partlist.PDF ”.  4.4.2.       PM-PIC24零件清单 请参考CD中的“ PM-PIC24_Partlist.PDF ”.  4.4.3.       NM7010B + 请参考CD中的“ NM7010B+_Partlist.PDF ”.  4.5. 物理性能说明 4.5.1.       功耗 每一个元件的功耗如下表所示.  表 4‑5 EVB B/D 功耗 总功耗是210mA X 5V = 1.5 Watt.   感谢关注! 相关内容请参考  W3150A+评估板–EVB-PIC24 用户手册(三)                  W3150A+评估板–EVB-PIC24 用户手册(二)                  W3150A+评估板–EVB-PIC24 用户手册( 一 )  
  • 热度 14
    2012-12-28 14:02
    1139 次阅读|
    0 个评论
    昨天给大家讲了关于W3150A+评估板--EVB-PIC24 关于程序员指南中,关于内存映射和EVB B/D固件的编译及管理程序的一些内容。 今天给大家介绍 程序员指南中,关于EVB B/D固件中应用的问题,包含回路程序, 网络服务器,和DHCP 客户端. 通过管理程序选择应用. 3.2.6.             应用 它是一个用iinChip™的网络应用,它包含回路程序, 网络服务器,和DHCP 客户端. 通过管理程序选择应用.  3.2.6.1.     回路 TCP 服务器 回路TCP服务器程序中, EVB B/D 工作在服务器模式, AX1, PC 测试程序工作在客户端模式. AX1 连接到EVB B/D, 如果连接成功, AX1 通过 TCP信道发送数据流. EVB B/D通过TCP信道不经过处理发挥数据流. 回路TCP 服务器程序使用loopback_tcps() , 图 3.14 展示了loopback_tcps()的处理流程.  图 3.14 : loopback_tcps() 表 3‑23: loopback_tcps()中的参考函数 如果服务器socket在SOCK_CLOSED 状态,loopback_tcps()用Sn_MR_TCP, 监听端口号和 Option Flag等元素调用socket() 来创建TCP服务器socket.  socket() 函数改变socket状态为SOCK_INIT而不顾原来的socket状态.如果服务器socket创建成功, 在以参数用服务器socket调用listen()之后,它处于TCP 服务器模式.listen()使得服务器socket 状态为监听状态并保持坚挺状态直到任何客户端的连接.  此时, 当任一客户端尝试连接到服务器socket时,服务器 socket 状态从 “listen” 改为 “established”. 此时客户端**务器之间的连接建立,在SOCK_ESTABLISHED状态可以进行数据传送. 数据的传送在SOCK_ESTABLISHED中使用 recv() 和send()实现.这里的数据传送是EVB B/D(服务器) 和AX1(客户端)之间1对1的传送.   在SOCK_ESTABLISHED状态,如果客户端请求关闭连接, 服务器 socket状态将从 SOCK_ESTABLISHED 改变为SOCK_CLOSE_WAIT. 在SOCK_CLOSE_WAIT 状态,不能进行数据通信并且必须关闭服务器 socket. 在 SOCK_CLOSE_WAIT状态, 调用disconnect() 关闭socket. disconnect() 改变socket 状态为SOCK_CLOSED 而不顾以前的socket状态.  3.2.6.2.     回路 TCP 客户端 在 回路TCP 客户端程序, EVB B/D 工作在客户端模式 , AX1, PC 测试程序工作在服务器模式. EVB B/D 尝试连接到以服务器状态等待的 AX1, 如果连接成功,EVB B/D 通过TCP 信道接收数据流, 然后 EVB B/D将接收到的数据流不经过处理发送给AX1.  回路 TCP 客户端程序是用 loopback_tcpc() 创建的, 图3.15是loopback_tcpc()处理的进程. 如果客户端socket在SOCK_CLOSED 状态, loopback_tcpc()用Sn_MR_TCP, Any Port Number和Option Flag等元素调用socket()以创建TCP客户端socket.  这里调用socket, get_system_any_port()使用任意端口号. 这是因为如果用同样的端口号尝试连接到同样的服务器连接有可能失败. 成功创建socket后, 用服务器socket的元素调用 connect()以连接到AX1服务器.   connect()使得socket状态变成SOCK_SYNSENT,并使状态保持在SOCK_SYNSENT直到收到来自服务器的链接授权. 如果连接成功,socket状态从SOCK_SYNSENT改变为SOCK_ESTABLISHED. 在 SOCK_ESTABLISHED 状态,操作和loopback_tcps()一样.  图 3.15: loopback_tcpc() 表 3‑24: loopback_tcpc()中的参考函数 3.2.6.3.     回路 UDP 回路UDP 程序用UDP协议的单播数据报通信.它的操作和回路TCP 服务器/客户端 程序一样. UDP 通信包括单播数据报通信和广播数据报通信, 基本上支持用一个信道实现多目的地的1到多通信.   回路 UDP 程序使用loopback_udp() , 图 3-16 是 loopback_udp()处理进程. 图 3.16: loopback_udp()   表 3‑25: loopback_udp()的参考函数 如果udp socket 在 SOCK_CLOSED 状态, socket() 用Sn_MR_UDP, Port Number和Option Flag等元素调用以创建UDP socket. UDP通信和TCP相反, 是不需要连接进程请求的数据报通信. 因此在socket建立后可立刻进行直接数据通信. 在创建 UDP socket后, udp socket 的状态将从SOCK_CLOSED改为SOCK_UDP. 这里, 不像TCP 数据通信使用send() 和recv(), 而是使用sendto()和ecvfrom().    这是因为TCP是已知目的地的一对一通信方法,但是UDP是不需要连接进程的一对多通信. sendto()发送数据到特定目的地的特定端口, recvfrom() 用于接收来自临时端口的入数据. 来自recvfrom()的目的信息将被用目的地址和目的端口告知用户,目的地址和目的端口以元素的形式发送. 在loopback_udp()中, 没有使用close()的例子, 但是万一不再需要UDP 通信, 同样可以调用close() 并关闭udp socket.    3.2.6.4.     网络服务器 网络服务器程序是一个TCP服务器程序,它使用基于TCP协议的HTTP协议. 在创建网络服务器程序之前, 需要理解在网络服务器和网络客户端(网络浏览器)之间发送的HTTP协议消息结构.HTTP, 是超文本传输协议的缩写,用于基于因特网的网络服务器和客户端浏览器之间的传输协议. 表 3‑26: 网络浏览器的 HTTP 请求运行进程 网络服务器程序分析从网络浏览器接收到的 HTTP请求消息的方法和URI(统一资源标识符), 如果相关的URI只是简单的请求网页, 就发送网页. 如果请求是诸如CGI(公共网关接口)的动作,就接收该动作并在网页中显示结果.  图 3.17 是网络服务器和网络客户端之间的HTTP 消息流,表 3-28 是HTTP消息结构. 图 3.17: HTTP 消息流 表 3‑27: HTTP消息格式   想了解更多有关HTTP消息的信息,请参考 RFC2616. HTTP 请求消息随着网络浏览器的不同而不同.    表 3-29 是Windows 2000上的Internet Explores和EVB B/D的HTTP消息通信. 表 3‑28: EVB B/D和网络浏览器之间的HTTP消息   网络浏览器程序由管理HTTP服务器socket的web_server()和管理HTTP消息的 proc_http() 组成。 图 3.18 是处理进程.   图 3.18: web_server() 因为web_server() 是TCP服务器程序,它的创建和 Chapter 3.2.6.1所解释的loopback_tcps()相似. Difference between web_server()和loopback_tcps() 不同之处在于数据通信代码. web_server() 调用 proc_http(),proc_http()处理来自在http socket的SOCK_ESTABLISHED上的网络浏览器的HTTP请求消息.    在调用proc_http()函数后, web_server()处于等待状态,知道收到来自网络浏览器的HTTP请求消息的HTTP 回复消息, 然后调用 disconnect() 关闭 http socket. 这种 socket 关闭叫做Active Close, 在这种情况下, EVB B/D 先请求关闭客户端. 如果你喜欢,也可使用 Passive Close,它是客户端先提出断开连接请求. 网络浏览器支持Active Close的原因是因为 EVB B/D 支持其他客户端的链接. 图 3.19: proc_http() proc_http() 调用 parse_http_request() 以分析接收到的网络浏览器的 HTTP 请求消息.被分析的HTTP请求消息的METHOD是“GET”, “HEAD”或 “POST”, 将调用get_http_uri_name()并且URI Name将从HTTP请求消息中提取出来.如果提取的URI Name是“/” ,就用“index.html”代替URI Name “/” ,“index.html”是EVB B/D 的网络浏览器默认页面,因为这意味着网络浏览器在请求网络服务器的默认页面. 通过调用find_http_uri_type()获得HTTP请求消息的HTTP Request Type之后,如果HTTP Request Type是 “CGI” ,就执行相关的 CGI 命令进程.  在处理CGI 命令后,或HTTP Request Type不是CGI, 用内置在EVB B/D 的ROM File Image的URI Name搜索文件. 如果找到了文件, 创建 HTTP回复消息并发送.   HTTP回复消息由HTTP Response Header 传送和HTTP Response Body传送组成. 传送 HTTP Response Header时, 用HTTP Request Type作为元素调用make_http_response_head() 以创建 HTTP Response Header. 传送完已创建的HTTP Response Header后,再传送HTTP Response Bodyd. 例如, 如果 HTTP Response body 是 ROM File Image中的任意文件, 则比iinChip™的 MTU大得多. 因此在传送之前需要分开为iinChip™的最大大小. 此时,如果定义在EVB B/D中的系统环境变量存在于 HTTP Response Body 中, 就调用 replace_sys_env_value() 并用存储在EVB B/D中的系统环境值代替系统环境变量. 表 3‑29: “evbctrl.html” 系统环境变量使用 表 3-30 EVB B/D的ROM File Image的部分“evbctrl.html”.  系统环境变量的长度被定义成将被替代的系统环境值的长度. 例如, 如果EVB的源IP地址是最长16位的字符串. 因此 $SRC_IP_ADDRESS$的长度也是16. EVB B/D 的‘ROM File System’ 可用WIZnet提供的 “ROMFileMaker.exe”创建. 请参考 “ ROM File Maker Manual Vx.x.pdf ” 以获得更多信息.   HTTP 请求消息能通过parse_http_request()分成 Method和Request-URI ,并存储在表 3-31定义的 ‘st_http_request’ Date Type中. 它用get_http_uri_type()得到请求URI Type. 表 3‑30: “st_http_request” 数据 图 3.20: parse_http_request() 图 3.21: find_http_uri_type() Request-URI 保存在st_http_request 的URI 中,它在“?”符号前有 URI Name,在“?”符号后有Query String. 当 Request-URI 从网络浏览器传送到网络服务器时, SP(Space)以‘+’的形式发送,其他Reserved Texts 以“%HEXHEX”的形式发送.相应地, Request-URI中的Reserved Texts需要被译码成原来的值, 从 ‘+’ 到 SP,从%HEXHEX到相应的ASCII值. Request-URI译码的详细信息请参考RFC1738.用get_http_uri_name()提取Request-URI的URI name. Request-URI的Query String 可以包含一到多个用“”作为分隔符的 “variable=value” 对. 通过get_http_param_value()函数,可以在Query String提取相应的变量值. 图 3.22: get_http_uri_name() get_http_parse_value() Web Server Program EVB B/D网络浏览器程序的CGI处理和一般的基于OS的网络浏览器程序不相同.基于OS的网络浏览器程序创建单独的进程独立地处理处理器之间的通信. 然而, EVB B/D网络服务器是无操作系统的, 因此它不是创建独立的进程, 而是调用相关函数直接进行CGI处理. EVB B/D 支持更新网络信息的 “NETCONF.CGI” 以及控制文本LCD和EVB B/D D1/D2 LED 的“LCDNLED.CGI” .图 3.23和 图 3.24 是两个CGI进程图.    图 3.23: NETCONF.CGI 处理 图 3.24: LCDNLED.CGI 处理 感谢关注! 观看更多内容,请登录WIZnet中文博客: W3150A+评估板--EVB-PIC24 用户手册(三)
  • 热度 22
    2012-12-27 10:45
    1048 次阅读|
    0 个评论
    今天给大家继续介绍有关W3150A+评估板--EVBPIC24用户手册中关于 程序员指南的相关内容,供大家参考! 3.   程序员指南 3.1. 内存映射 3.1.1.             代码 数据内存映射 EVB-PIC24的内存映射有128 K字节的程序存储和8K字节的SRAM. 外部空间(并行主端口)分为SRAM 区域和 W3150A + 区域. 除了这些, 还有4K字节的 串行EEPROM. 各种环境变量记录在EEPROM上.  图 3.1, 表 3-1 是EVB B/D的系统内存映射简介.  图 3.1: EVB B/D 内存映射       表 3‑1: 设备 MAP 定义 3.2.1.             串行 EEPROM MAP 图 3.2, 表 3.2 示串行 EEPROM Map的图和表. 请参考 “evb/config.h” and “evb/config.c.”  图 3.2: 串行 EEPROM Map 表 3‑2: 串行 EEPROM MAP 定义    3.1.2.1.     系统信息  系统信息区域用在诸如EVB B/D的固件版本的记录系统信息中.  表 3‑3: 系统信息 系统信息以 SYSINFO 数据类型的方式被访问. 表 3‑4: SYSINFO 数据类型定义 表 3‑5: 系统信息访问功能  3.1.2.2.     网络信息 网络信息用与记录网络配置信息以便于被EVB B/D使用. 表 3‑6: 网络信息 网络信息以 NETCONF 数据类型被访问.  表 3‑7: NETCONF 数据类型定义  3.1.2.3.     信道信息  以下表格介绍了iinChip™的4个信道的应用.  表 3‑9: 信道信息 信道信息用于记录iinChip™的 4 个信道的应用类型. 信道应用类型包含 回路 TCP服务器, 回路TCP 客户端,回路 UDP,DHCP客户端, 网络服务器,信道信息以APPTYPE枚举类型定义.  表3‑10: 信道应用类型 信道信息以 CHCONF数据类型被访问.  表 3‑11: CHCONF 数据类型定义 表 3‑12: 信道信息访问功能  3.2. EVB B/D 固件  EVB B/D 固件 -EVB main()- 可分为两部分. 首先, 管理程序设置运行 EVB B/D的变量环境. 第二, 回路程序 测试 iinChip™性能,并且有用诸如DHCP, HTTP, DNS和 ICMP等因特网协议的因特网应用.  现在来看一下组成EVB B/D的源清单,然后看一下没一个应用源程序. 3.2.1.             源文件 表 3‑13: EVB B/D 源文件  3.2.2.             怎样编译 整理SRC 条款之后,以**式编译Chapter 3.2.1 的源程序. 用 MPLAB IDE, 打开 “EVBs” 工程. 选择 “Make” 或“Build All”. 编译之后, 分配给Makefile TARGET和“Evbs.hex,”的名字和分配给FORMAT的文件已被创建. 这些能被装载到 PIC24. 表 3‑14 : iinChip™’s DEFINE 属性 因为 EVB B/D 是Little-Endian 系统, LITTLE_ENDIAN被定义积极使用. 如果目标系统是 Big-Endian, 被定义的项目应该注明. 如果 iinchip™ 想用在不是 Direct Bus Mode的不同模式中, 用期望的 Bus Mode Define 成 __DEF_IINCHIP_BUS__ 而不是 __DEF_IINCHIP_DIRECT_MODE__. 如果iinchip™ 的 DEFINE OPTION 有改变,那么源代码必须 Re-Build. 要 Re-Build 工程,先 “make clean”然后 “make”. 3.2.3.             怎么下载 要下载十六进制文件, 用MPLAB IDE 和 MPLAB ICD 2. 1)     连接 ICD 线到PM-PIC24上的J1或扩展板上的J2. 2)     给 EVB B/D供电. 3)     运行 MPLAB IDE. 4)     在“Select Programmer”菜单条中方选择“MPLAB ICD 2”. 5)     点击“Program target device” 按钮 请参考MPLAB IDE的用户指南获得更多的信息.  3.2.4.             EVB B/D的main() 仔细观察 main(), 一段时间后, 等待板子复位后初始化后的来自串口终端的管理程序.此时, 如果串口终端显示管理程序进入命令模式,,可以设置诸如网络信息和信道信息的EVB B/D环境,并可以运行ping 请求程序.  如果管理程序完成或没有从串口终端来的命令, 则执行iinChip™的4个信道中的每一个应用并用原来设置的网络信息初始化. 图 3.3 EVB B/D main()的进程. 请参考 “main/main.c”  如果 DHCP 客户端 存在于应用中, DHCP客户端通过调用‘get_IP_DHCPS()’函数从DHCP服务器得到网络信息. 如果不存在DHCP服务器应用或从DHCP服务器得到网络信息失败,EVB B/D将用原来设置的网络信息初始化. 初始化之后, 通过调用每一个寄存器应用操作来运行EVB B/D测试应用. 想知道DHCP服务器应用的更多详细信息, 请参考 “Chapter 3.2.6.5 DHCP Client.” 表 3‑15: EVB B/D的 main()的参函数    图 3.3: EVB B/D的 main() 3.2.5.             管理程序 管理程序通过串口终端和用请求到某一目的地的测试应用设置网络和信道信息.  通过从 main() 函数调用check_manage()可以开始运行管理程序. check_manage() 检查是否有从串口终端键入到管理程序的命令, 是否有字符‘M’ 或 ‘m’ 输入与否. 如果有命令,将会通过 manage_config()进入管理程序. 如果用户改变了配置, EVB B/D会自动重启并跳过check_manage().     图 3.4: check_manage() 如果EVB B/D 有更新, EVB B/D 会自动重启以应用更新的配置. 表 3‑16: 管理程序的调用函数  3.2.5.1.     网络配置  网络配置 是管理程序的子程序,并和manage_network()一起建立. 它设置EVB B/D的网络信息. 一般情况下, 网络信息中的MAC地址在初始化设置之后几乎不更新. 相应地, MAC 地址设置不提供诸如源IP,网关IP或子网掩码等的配置菜单,但是它有隐藏菜单. 同样, MAC 地址在出厂复位时并不改变. MAC 用‘M’ 或 ‘m’进行更行. 3.2.5.2.     信道配置  信道配置, 由 manage_config() 构成的管理程序的一个子程序,决定iinChip™的4个信道用哪个应用.  能设置应用类型, 有DHCP 客户端,回路TCP 服务器/客户端, 回路UDP, 和网络服务器程序. 每一个信道可以设置成以上的一个类型. 但是DHCP客户端只能被第一个信道支持且设置不能应用于其他信道.     TCP 服务器程序 (LB_TCPS,WEB_SERVER) 能被信道重复设置且能用相同的端口号. 这里, 客户端的端口号需与服务器端口号相同. 其他应用能被信道重复设置,但是不能使用相同的端口号.  3.2.5.3.     Ping 请求程序  Ping 请求程序发送 Ping 请求到某一目的地.它在IP层上用ICMP 协议信息,并由 ping_request()组成.   ping_request()在DOS提示符中用相似与Ping程序的格式创建. 它在分析和处理选项后发送Ping请求到目的地.  域名和IP地址都能被用于Ping请求的目的地址. 在使用域名的情况下, 域名将被用gethostbyname() 或 DNS转变为IP地址. 有了被改变的IP地址, Ping请求可被发送.  当IP 地址和 ‘-a’ 选项一起用时, 域名可以通过gethostbyaddr()从DNS服务器得到,并且Ping请求发送到该 IP 地址. 当IP 地址不和‘-a’ 选项一起用时, Ping 请求不用连接到DNS就可以发送到输入IP地址.  gethostbyname(), gethostbyaddr() is DNS-related函数. 要了解更多信息, 请参考 Chapter 3.2.6.6 DNS Client. 在进入Ping程序之前现在简单看一下Ping消息.  Ping 消息在ICMP消息的类型区域取值 ‘0’(Ping回复) 或 ‘8’(Ping 请求) ,在代码区域取值0. 同样, ICMP消息的类型 Dependant数据区(4字节) 能被重定义为 ID 区(2字节), 序列号区(2字节) 同样地. ICMP消息的数据区 填满了Ping数据以进行回路测试.      最后, 计算出 ICMP头和Ping数据(它们的校验和区是0)的校验和. 计算之后, 用新的计算值代替0 校验和区.       图 3.10 是ICMP 消息格式和Ping消息之间关系的一个代表图. 检查关于Ping请求的Ping回复可通过检查ID、序列号和ping数据区的值是否一样来实现. 如果在等待时间中 Ping 回复还没有来到, ping请求可以再次发送. 在这种情况下,Ping 请求的序列号递增1. Ping请求消息传送和检查Ping回复消息通过ping()实现. ping()的元素是目的IP地址, Ping回复等待时间, Ping请求号和 Ping 数据大小,接收到的Ping回复通过分析和处理以和这些元素相同.    图 3.11 是 ping()的进程, Ping 消息以 表 3-20示的数据类型被定义和使用. 请参考 “inet/ping.h”   表 3‑20: PINGMSG 数据类型定义    PINGMSG的数据区大小是 ‘PINGBUF_LEN’ 字节. PINGBUF_LEN被定义成 ‘32’.但是数据区最大大小可以是‘1472’. 这是因为iinChip™的发送MTU是1480 字节,Code, CheckSum, ID和 SeqNum Field Size 之和是8 字节. 从1480 减去8,就得到1472. 因此,大小是1472字节.  ping() 的结果保存在数据类型定义中,见表3-21.  表 3‑21: PINGLOG 数据类型定义 可以通过DisplayPingStatistics()功能将保存的Ping日志通过RS232串口终端打印出来。 CheckSumErr 字段,每当ping校验从对方接受到错误信息会自动加1. UnreachableMSG 字段和 TimeExceedMSG 字段,如果从对方或网关接收到不可达信息或超时信息会自动增加1.    UnknownMSG 字段,当接受到位置信息会自动加1 ARPErr field 字段,每当ARP 响应对方在收到ARP请求后,没有获取到对方的硬件地址(MAC地址),会自动加1.  ping() 每发送一次 Ping请求,Ping请求区就递增1.  每当收到来自对等端口的响应Ping请求的Ping回复,Ping回复区就递增1.  每当因为在发送Ping请求后在一定时间内没有收到回复而发生超时,损耗区递增1. Ping请求程序, 像以前解释的一样, 使用运行在IP层上的 ICMP协议.在 iinChip™上使用ICMP信道的情况下, 见 图 3.11 and 图 3.13, 必须决定IP协议.在调用setSn_PROTO(s, IPPROT_ICMP)后必须建立socket.当建立socket时,通过调用socket() 函数创建IP RAW Channel. 在关闭 ICMP Socket时,在 close(s) 和清除原来设置的ICMP标志后需调用setSn_PROTO(s, 0x00).  表 3‑22: ping_request()中的参考函数 感谢关注! 相关内容可以参考WIZnet中文博客: W3150A+评估板--EVB-PIC24 用户手册(一) (http://blog.iwiznet.cn/?p=3267)  
  • 热度 15
    2012-12-26 10:34
    937 次阅读|
    0 个评论
    EVB-PIC24是WIZnet生产的一款W3150A+评估板,提供W3150A+快速测试,速度高达6Mbps,提供各种应用源代码。 今天给大家介绍一下W3150A+评估板--EVB PIC24的基本内容。 1.        综述 EVB-PIC24 (从这里开始用“EVB B/D或EVB”表示)是PIC开发者用的iinChip™评估板. 1.1.        特点 1.1.1.H/W 特点 EVB B/D包含3种B/D PM-PIC24 - MCU : PIC24FJ128GA006, 16MHz - RAM : 8KB SRAM (内部), 32KB SRAM(外部) - ROM : 128KB Flash (PIC24 背内部 Flash) - JTAG, ICSP, ICE MB-EVB-PIC - 电源 : 5V 适配器 - UART : RS-232 串口, (1端口, 默认波特率 57600) - LCD 屏 : 16x2 Charactor LCD 网络模块 (NM7010B + ) - iinChip™ : 硬件 TCP/IP芯片 W3150A + - PHY : RTL8201CP(RealTek), 10/100 BaseT(X) Auto Negotiation - MagJack : RD1-125BAG1A (UDE) , 集成变压器(1:1) Link ACT LEDs 1.1.2.F/W 特点 EVB B/D 的 F/W 特点由2部分组成. 管理模式 - 网络配置 : MAC, Source IP, G/W IP, S/N, DNS IP 设置 - 频道配置 : 每个频道的iinChip™ 测试应用设置 - Ping 测试 : 用DNS 进行Ping 请求设置 应用模式 - 回路 TCP服务器 : TCP 服务器模式测试应用 - 回路 TCP 客户端 : TCP 客户端模式测试应用 - 回路 UDP : UDP 测试应用 - 网络服务器 : 网络服务器测试应用 - DHCP 客户端 : 用DHCP服务器进行动态网络配置 2.        开始 2.1.        PC 程序安装 2.1.1.开发程序安装 请参考Microchip(www.microchip.com) 获得更多信息. 2.1.1.1.       MPLAB IDE(集成开发环境) 它包含以下特点 – 汇编器, 链接器, 仿真器(和外围设备一起), VDI(可视化器件初始化) 和全功能的调试器. 关于MPLAB IDE的安装和使用, 请参考相关手册. EVB B/D固件当前使用MPLAB IDE 版本 7.40 ,用更新的IDE时将被改变.  2.1.1.2.       MPLAB C30 它是用于Microchip 16-bit设备的全功能ANSI兼容C编译器. 同样它完全兼容MPLAB IDE. 关于MPLAB IDE的安装和使用信息, 请参考相关手册. EVB B/D固件当前使用 MPLAB C30 版本 2.02 ,使用更新的编译器时将被改变.  2.1.1.3.       ROM 文件生成程序 ROM 文件生成程序是一个实用程序,它为EVB B/D使用简单的‘ROM 文件系统’提供便利. EVB B/D使用ROM 文件生成程序的原因是以‘ROM 文件系统’为网页服务器测试应用接入网页. 想知道更多关于安装和ROM 文件生成程序的说明,请参考 “ ROM File Maker Manual Vx.x.pdf ”.  2.1.2.EVB B/D 测试 PC程序安装 2.1.2.1.       回路测试程序 (AX1) 安装 回路测试程序(从这里开始指 “AX1”) 是评估iinChip™ 性能的程序.它在连接诸如回路TCP服务器/客户端和回路UDP的EVB B/D信道应用时对文件和包数据形成回路.安装和使用信息请参考 “ AX1 Manual Vx.x.pdf ”.  2.2.        快速开始 在确认EVB B/D的包装之后, 按以下所示的顺序测试EVB B/D. ①     直接用网线连接测试PC 到 EVB B/D. 直接用串口线连接测试 PC 到 EVB B/D.         连接 5V 电源适配器到 EVB B/D ②     按以下步骤确认测试 PC的网络信息 源 IP地址: 192.168.0.3 网关 IP 地址 : 192.168.0.1 子网掩码 : 255.255.255.0 ③     在PC上安装AX1. 参考 Chapter 2.1.2.1 ④     在执行串行终端程序(比如超级终端)之后, 按以下步骤设置属性. 表 2‑1 : 终端属性设置    在完成终端设置之后, 连接 EVB B/D 并等待.  ⑤     打开 EVB B/D的电源开关  上电后需检查以下条款  - 上电后检查EVB B/D的电源指示灯LED(D1) - 检查 LEDs 的 D2和D3灯是否 轮流闪烁3次. - 检查EVB B/D的文本LCD屏是否在终端程序上输出按 图 2.1 和图 2.2所示的内容 图 2.1 : EVB B/D 文本LCD 屏 图 2.2: 终端程序输出 ⑥     用 EVB B/D执行Ping测试 图2.3: EVB B/D Ping 回复测试 ⑦     运行 “AX1” 程序. 请参考 “ AX1 Manaul Vx.x.pdf ” ⑧     用TCP客户端测试“AX1”程序的运行. 请参考 “ AX1 Manaul Vx.x.pdf ” 在通过点击 菜单设置服务器 IP 地址为 “192.168.0.2” 、端口号为 “5000”后,然后点击, 菜单或 , , 图表. ⑨     在 “AX1” 程序和 EVB B/D之间对任何文件和包进行回路测试. 2.3.        EVB B/D 测试 EVB B/D固件 可分成管理程序和EVB B/D测试应用. 管理程序进行系统配置以运行 EVB B/D ,EVB B/D 测试应用iinChip™ 测试的网络应用程序. 2.3.1.管理程序 管理程序是这样一个程序,在EVB B/D 手动复位和EVB B/D 上电后,如果在7秒内从终端程序接收到字符 ‘M’ 或 ‘m’,它就执行. 该程序设置iinChip™的信道应用以便于测试. 并和DNS 服务器进行某些ping 请求测试.     2.3.1.1.       网络配置   它选择在EVB B/D用到的网络信息. 当按图 2.5所示在终端程序选择‘1’时, EVB B/D的网络信息能按所想的设置. EVB B/D的默认网络信息如 表 2-2所示.    表 2‑2 : EVB B/D 默认网络信息   如果在管理程序中选择“Network Config” 菜单, 菜单将会按图 2.8所示,每项功能在表 2-3中有描述.   图 2.5: 网络配置   表 2‑3 : 网络配置菜单   图 2.6是在网络配置中设置EVB B/D源 IP 的一个例子  图 2.7: MAC 地址设置例子 2.3.1.2.              信道配置 它设置测试应用,测试应用能在运行iinChip™ EVB B/D 4 信道中运行.如果选择‘2’, 可以设置每一个信道. 默认的 iinChip™ 信道信息如 表 2-4所示.   表 2‑4 : EVB B/D 默认信道信息 如果在管理程序中方选择 “Channel Config” 菜单, 将会出现如图 2.8 所示的信息, 每一个菜单的功能和 表2-5所示一样.  图 2.8: 信道配置菜单 表 2‑5 : 信道配置菜单 每一个iinChip™信道可用的设置测试应用见表 2-6 表 2‑6 : iinChip™ 信道应用类型 除了 “DHCP Client”,其他应用类型能够不用顾及信道进行重复设置.  图 2.9给出了在“TCP Loopback Client”下设置iinChip™2号信道的一个例子   当简单的输入 而没有 IP 地址或端口号时,使用默认值. 表 2-7 给出了每一个应用的默认值. 图 2.9: 回路TCP 客户端设置应用例子 表 2‑7 应用默认值 2.3.1.3.       Ping 应用测试 Ping 应用测试是为iinChip™的IP RAW 信道评估而创建的一个程序,它发送 Ping请求到某一个对等端口并且接收Ping 回复. 该程序和在DOS提示符中的ping命令一起设置. 当选择 ‘3时他被执行’,如图 图 2.4:管理程序执行 图 2.10 显示了Ping应用的执行屏幕,并展示了怎么去用Ping 应用. 图 2.11 显示了发送Ping请求到目的地和接收Ping回复的实际例子. 图 2.11: Ping 应用测试 要终止 Ping 应用类型,在“PING” 提示符中输入“exit”. 2.3.2.EVB B/D 测试应用 2.3.2.1.       DHCP 客户端 DHCP 客户端应用为EVB B/D 从DHCP服务器动态分配网络信息.要测试 DHCP客户端, 首先, iinChip™ 1号信道应用类型必须设置为“DHCP Client”,该设置可以用 菜单完成. 请参考 Chapter 2.4.1.2 图 2.12是DHCP客户端成功得到网络信息的屏幕显示. 注意,如果DHCP服务器不存在或是不能从DHCP服务器得到网络信息, DHCP 客户端将会被设置成默认网络信息. 图 2.12: DHCP 客户端测试 2.3.2.2.       回路 TCP服务器 回路 TCP 服务器应用是通过与PC测试程序“AX1”连接的TCP信道回送任一文件或包数据的应用. 首先,通过EVB B/D 的 菜单设置任一信道为 “Loopback TCP Server” 应用类型以测试Loopback TCP Server.  当设置EVB B/D的 “Loopback TCP Server” 应用类型, 可以设置监听端口值为任意值. 这设置成默认值5000. 请参考 Chapter 2.4.1.2 EVB B/D设置完成后, 在测试PC上运行 “AX1” ,然后尝试连接到IP地址. 当n EVB B/D 和“AX1”之间的连接成功时, 回送数据. 请参考 “ AX1 Manual Vx.x.pdf ” 图 2.13: 回路 TCP 服务器测试  2.3.2.3.       回路TCP 客户端 回路 TCP客户端应用通过与测试PC机上的“AX1”相连的TCP信道回送任一文件或报数据 运行服务器上的“AX1” 之后,用EVB B/D 的 菜单设置 iinChip™的信道为 “Loopback TCP Client”应用类型. 当设置EVB B/D 的“Loopback TCP Client” 应用类型时, 设置服务器IP为测试PC的IP地址,并设置服务器端口为等待服务器端口号(3000). 请参考 Chapter 2.4.1.2. 设置 EVB B/D 完成后, 从管理程序退出,并运行EVB 测试应用.如果EVB B/D成功连接到 “AX1”, 会送所期望的数据. 请参考 “ AX1 Manual Vx.x.pdf ” 图2.14: 回路 TCP客户端  2.3.2.4.       回路UDP  回路 UDP 应用通过与测试PC相连的UDP信道回送任一文件或包数据. 首先, 要测试回路 UDP, 用EVB B/D的 菜单设置iinChip™ 的任一信道为“Loopback UDP” 应用类型.  在设置“Loopback UDP” 应用类型时, 设置源端口为任意值. 这里设置为 3000. 请参考 Chapter 2.4.1.2  在EVB B/D 设置完成时, 用于UDP相关的菜单或图标通过EVB B/D的IP地址和源端口号回送所期望的数据.  请参考 “AX1 Manual Vx.x.pdf”.     图 2.15: 回路 UDP 测试 2.3.2.5.              网络服务器 网络服务器应用通过与网络浏览器连接的HTTP信道发送机以及接收网页和 EVB B/D 控制数据等. 为了网络服务器测试, 用EVB B/D 的 菜单设置 iinChip™的任一信道为 “Web Server” 应用类型. 当设置EVB B/D 的“Web Server”应用类型时, 设置HTTP端口为任意值. 这里设置成默认值 80. 请参考 Chapter 2.4.1.2.    设置完EVB B/D, 运行 测试PC中的网络浏览器, 在地址栏中输入 EVB B/D 的URL(http://192.168.0.2/) ,连接到 EVB B/D. 图 2.16: 网络服务器测试 如果网络浏览器成功连接到EVB B/D的HTTP端口, 能看见 图 2.17 所示的网页. 万一 图 2.17所示的网页没有出现, 用网络浏览器的“Refresh”功能刷新屏幕. 图 2.17: EVB B/D默认网页 如果点击图2.18所示网页中的 按钮, 能设置网络信息,或能打开/关闭 LEDs(D1,D2)并在文本 LCD 屏上显示文本流. 图 2.18: EVB B/D控制网页 2.4.        检修指南 2.4.1.Ping 当通过Ping命令不能接通EVB B/D时, 步骤 1. 是否用网线正确地连接了测试PC和EVB B/D? 步骤 2. 是否改变了你的测试PC的网络信息 (IP 地址,网关, 子网)? 如果没有,首先按以下操作: IP地址: 192.168.0.3 网关地址: 192.168.0.1 子网掩码 255.255.255.0 步骤 3. 指示NM7010B + 连接的LED灯(从后面看左边的LED)是否亮着? 如果不亮, 最好检查网线是否正常工作.   2.4.2.其他 在连接完成后,上电后如果串行终端屏幕保持空白 步骤 1.  检查串口线的连接状态. 步骤 2.  检查PC COM 端口号是否和终端一致. 步骤 3.  检查终端波特率 57600.   以上是EVB-PIC24 用户手册 中简介、PC程序安装、EVB B/D 测试等内容,明天继续为大家介绍有关“程序员指南”的部分。 感谢关注!