以太网W3100A到W3150A+的移植笔记(二)
0赞今天继续为大家介绍W3100A到W3150A+的移植过程中需要注意的问题,以及W3100A与W3150A+间的比较。
2.6.1 功能兼容寄存器
表3 为兼容寄存器。在两芯片组中这些功能兼容的寄存器可能有不同的偏移地址和名字。
表3 功能兼容寄存器
2.6.2 功能不同的寄存器
IR:
表4. W3100A和W3150A+ 的IR之间的比较
从W3100A到W3150A+移植过程中,无论WIZnet芯片是否接收数据位7~4 都不能使用。
位7~4的功能已经由Sn_IR(0~3)的第二位代替。
IMR:
表5. W3100A和W3150A+ IMR之间的比较
W3150A+的IMR寄存器中,不管WIZnet芯片是否接收数据,位7~4不能用于禁用中断。
Cn_CR/Sn_CR:
表6. W3100A和W3150A+之间的命令寄存器比较
另外,W3150A+ 增加了一些新的命令:DISCON/SEND_MAC/SEND_KEEP.
如果用户对这些命令感兴趣,请参考W3150A+数据手册中的Sn_CR描述。
Cn_ISR/Sn_IR:
表7. W3100A和W3150A+的Socket终端寄存器之间的比较
Bit Recv_OK 只是指示的Recv command命令完成的表达。它不指示着WIZnet芯片是否已经收到数据。RECV才是WIZnet芯片收到数据与否的标志。
Bit Established被重命名为CON。
Bit Closed 被重命名并升级为DISCON。
IDM_OR/MR:
表8. W3100A和W3150A+ 的模式寄存器之间的比较
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.
图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:
请见下图,检查W3100A和W3150A+socket状态的区别
图5. Socket状态比较
Cn_SOPR/Sn_MR:
表9. W3100A和W3150A+的Socket模式寄存器之间的比较(a)
表10. W3100A和W3150A+的Socket模式寄存器之间的区别(b)
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+驱动。
图6 驱动源程序树比较
iichip_conf.h 是一个新的被增加到W3150A+的头文件。它为W3150A+定义了系统选项,例如用于直接或间接或SPI模式等的MACRO。3个不同的模式W3100A有3个不同的驱动,然而W3150A+内置了更高级别的集成。
2> 主要API函数更新
表11. W3100A和W3150A+的主要API比较
3.1.2 下载库文件
W3100A 库及勘误:
http://www.wiznet.co.kr/W3100A-LF/download
W3150A+库及勘误:
http://www.wiznet.co.kr/W3150Aplus/download
注意:用于W5100和W3150A+的软件 是100%兼容的。
开发者只需要更改他们的硬件设计。
W5100库及勘误: