W3100A到W3150A+的移植笔记(二)

Home / 博客 / W3100A到W3150A+的移植笔记(二)

今天继续为大家介绍W3100A到W3150A+的移植过程中需要注意的问题,以及W3100A与W3150A+间的比较。

2.6.1 功能兼容寄存器

表3 为兼容寄存器。在两芯片组中这些功能兼容的寄存器可能有不同的偏移地址和名字。

表3 功能兼容寄存器

W3100A移植6

2.6.2 功能不同的寄存器

IR:

表4. W3100A和W3150A+ 的IR之间的比较

W3100A移植7

 

从W3100A到W3150A+移植过程中,无论WIZnet芯片是否接收数据位7~4 都不能使用。

位7~4的功能已经由Sn_IR(0~3)的第二位代替。

 

IMR:

表5. W3100A和W3150A+ IMR之间的比较

W3100A移植8-1W3100A移植8-2

W3150A+的IMR寄存器中,不管WIZnet芯片是否接收数据,位7~4不能用于禁用中断。

Cn_CR/Sn_CR:

6. W3100A W3150A+之间的命令寄存器比较

W3100A移植表6

另外,W3150A+ 增加了一些新的命令:DISCON/SEND_MAC/SEND_KEEP.

如果用户对这些命令感兴趣,请参考W3150A+用户手册中的Sn_CR描述。

Cn_ISR/Sn_IR:

7. W3100AW3150A+Socket终端寄存器之间的比较

W3100A移植10

Bit Recv_OK 只是指示的Recv command命令完成的表达。它不指示着WIZnet芯片是否已经收到数据。RECV才是WIZnet芯片收到数据与否的标志。

Bit Established被重命名为CON。

Bit Closed 被重命名并升级为DISCON。

IDM_OR/MR:

表8. W3100A和W3150A+ 的模式寄存器之间的比较

W3100A移植表8

Bit IND_EN 被重命名为IND,而且被放在了在MR寄存器的第0位.

Bit L/B被移除。W3150A+只支持 big-endian. 因此,如果用户使用little-endian来访问间接寄存器,它们必须在W3100A到W3150A+移植过程中使用big-endian。

Bit AUTO_INC 被重命名为AI,并放在MR寄存器的bit1.

Cn_TW_PR/Sn_TX_WR:

大小:

  • 大小:Cn_TA_PR 是一个4-byte寄存器, Sn_TX_RD 是一个2-byte寄存器。
  • 功能:无变化;请参见图4.

W3100A移植12

图4. TCP传输过程中的指针管理

Cn_RW_PR/Sn_RX_WR:

  • 大小:Cn_RW_PR 是一个4-byte寄存器, Sn_RX_WR是一个2-byte寄存器。
  • 功能:无变化。

Cn_RR_PR/Sn_RX_RD:

  • 大小:Cn_RR_PR 是一个4-byte寄存器, Sn_RX_RD是一个2-byte寄存器。
  • 功能:无变化。

Cn_SSR/Sn_SR:

请见下图,检查W3100AW3150A+socket状态的区别

W3100A移植13

 

图5. Socket状态比较

Cn_SOPR/Sn_MR:

9. W3100AW3150A+Socket模式寄存器之间的比较(a)

W3100A移植14

表10. W3100A和W3150A+的Socket模式寄存器之间的区别(b)

W3100A移植15

2.6.3 新寄存器和新功能

W3150A+ 有一些新的寄存器和新功能:

  • PPPoE模式使能位:MR寄存器中的第3位
  • PPPoE 认证寄存器(PATR)
  • PPPoE LCP 请求计时器寄存器(PTIMEG)
  • PPPoE LCP魔数寄存器(PMAGIC)
  • 多播使能位:Sn_MR寄存器第7位
  • 多播协议版本选择:Sn_MR寄存器第5位
  • 不可达IP地址和端口寄存器(UIPR和UPORT)
  • Socket n TX 空闲大小寄存器(Sn_TX_FSR)
  • Socket n RX 接收已大小寄存器(Sn_RX_RSR)
  • Socket n TTL寄存器(Sn_TTL)

如果使用对这些寄存器和功能感兴趣,请参见W3150A+用户手册。

这个文档重点在于W3100A到W3150A+的移植。

3 软件注意事项

3.1软件库

W3100A和W3150A+都提供用户驱动。通过使用驱动中的API函数,用户可以简易开发他们的例程。

在这部分,我们重点关心的是W3100A到W3150A+的驱动移植

3.1.1 如何移植

用户应该首先更新驱动文件,然后将旧的API函数(那些在应用相关的文件中,例如main.c, dhcp.c, dns.c, http.c and target_application.c)一个一个更改为新的API函数。

1>     驱动更新

移除所有W3100A驱动文件,并替换为W3150A+驱动。

W3100A移植16

图6 驱动源程序树比较

iichip_conf.h 是一个新的被增加到W3150A+的头文件。它为W3150A+定义了系统选项,例如用于直接或间接或SPI模式等的MACRO。3个不同的模式W3100A有3个不同的驱动,然而W3150A+内置了更高级别的集成。

2>     主要API函数更新

11. W3100AW3150A+的主要API比较

W3100A移植17W3100A移植18W3100A移植19

3.1.2 下载库文件

 

W3150A+库及勘误:

W5100

注意:用于W5100和W3150A+的软件 是100%兼容的。

      开发者只需要更改他们的硬件设计。

W5100库及勘误:

W3150A+