
WIZnet-io6Library如何使用
概观 io6Library是一个IPv6集成库,可以轻松集成和管理使用WIZnet硬连线双TCP / IP堆栈控制器(WIZCHIP)产品系列的用户应用程序。 io6Library用于管理依赖于用户特定MCU的代码,因此用户无需根据用户MCU执行io6Library的移植操作。(有关更多信息,请参见如何使用) 内容 io6Library可分为以下三种类型。 Reigsters Defintion 通用寄存器:定义通用寄存器,如网络信息,模式,中断等。 套接字寄存器:定义SOCKET寄存器,如套接字模式,套接字通信,套接字中断等。 每个WIZCHIP I / O访问功能 基本I / O功能:通过WIZCHIP定义的HOST接口(SPI,BUS等)访问输入/输出的基本单元功能 公共寄存器访问功能:基于基本I / O功能访问公共寄存器的功能 SOCKET寄存器访问功能:基于基本I / O功能访问SOCKET寄存器的功能 WIZCHIP控制API,用于用户应用程序集成,管理和迁移 SOCKET API:与BSD SOCKET API一样,SOCKET API提供可以与socket socket commuuincation相关的函数集 额外的API:它提供支持用户应用程序集成的功能,无论WIZCHIP特定的Regiter / Memory,Address Map,Features等等。:对于User Application的小占用空间,可以使用WIZCHIP I / O Access功能替换它。 有关更多详细信息,请参阅io6Library.chm。 io6Library.chm可能不是最新的,所以请参考doxygen程序程序使用Doxyfile.dox项目制作的文档。如果您愿意,Doxygen程序可以将文档设置为chm,html或pdf。 目录 以太网络 WIZCHIP特定目录(EX> W6100 - w6100.h,c) SOCKET API:h,socket.c ioLibrary配置文件:wizchip_conf.h,wizchip_conf.c 互联网 用于IP配置的Protcols(EX> DHCP,DNS) 将添加一些协议 应用 应用程序套接字模式定义:Application.h Loopback:TCP,UDP Basic Skeleton Code,loopback.h,loopback.c io6Library用户可以通过在wizchip_conf.h中仅修改一些定义来立即使用它。有关更多信息,请参见如何使用。 如何使用 io6Library配置 定义wizchip_conf.h中定义的WIZCHIP的类型和接口,以满足您的预期用途。 选择要使用的硬连线双TCP / IP堆栈控制器。在下图中,选择蓝色框中的列表之一,并将其选定为_WIZCHIP_,如红框。 选择用户将用于WIZCHIP Access的主机接口(并行总线,串行总线模式等)。在下图中,选择蓝色框中的列表之一,并将其选定为_WIZCHIP_IO_MODE_,如红框。 仅当使用并行总线模式时,必须将HOST的存储区基地址设置为WIZCHIPCHIP,如红色框。 WIZCHIP PHY访问模式配置如下图所示,选择蓝色框中定义的以太网PHY访问模式的两种方法之一,并将其定义为红色框。 _PHY_IO_MODE_PHYCR_:它通过PHY命令和状态寄存器提供对WIZCHIP的以太网PHY的简单控制,如PHY操作模式和链路状态。 _PHY__IO_MODE_MII_:通过MDC / MDIO信号直接控制WIZCHIP PHY的以太网PHY寄存器。 为WIZCHIP I / O访问创建用户定义的功能 根据您的HOST界面自行创建基本的Access I / O功能。这是因为每个用户HOST的接口控制方法不同。所以,你应该成功。 例如,如果您使用STM32FXXX的SPI1定义以下内容并控制WIZCHIP #定义 _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_VDM_ 通过SPI接口创建基本单元功能,如WIZCHIP选择/取消选择,1字节读/写,临界区进入/退出等,如下所示。 通过SPI接口进行基本I / O访问功能,如WIZCHIP选择/取消选择,1字节读/写和临界区进入/退出,如下所示。 WIZCHIP选择/取消选择:用于设置/复位与WIZCHIP的CSn引脚相连的STM32FXXX的任何GPIO的功能 01 void your_wizchip_enable(void) 02 { 03 / * void HAL_GPIO_WritePin(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin,GPIO_PinState PinState)* / 04 HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_RESET) 05 } 06 07…