概观

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

https://github.com/Wiznet/io6Library/blob/master/Doxygen/doc/io6Library.chm。

io6Library.chm可能不是最新的,所以请参考doxygen程序程序使用Doxyfile.dox项目制作的文档。如果您愿意,Doxygen程序可以将文档设置为chm,html或pdf。

目录

ioLibrary具有与上图相同的目录结构,主目录如下。

    WIZCHIP特定目录(EX>  W6100 - w6100.h,w6100.c)

    SOCKET API:socket.hsocket.c

ioLibrary配置文件:wizchip_conf.hwizchip_conf.c

  • 互联网

   用于IP配置的Protcols(EX> DHCP,DNS)

   将添加一些协议

  • 应用

   应用程序套接字模式定义:Application.h

Loopback:TCP,UDP Basic Skeleton Code,loopback.hloopback.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的功能
void  your_wizchip_enable(void)
{
   / * void HAL_GPIO_WritePin(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin,GPIO_PinState PinState)* /
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_RESET)
}
 
void  your_wizchip_disable(void)
{
   HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_SET)
}
  • WIZCHIP 1字节读/写:通过SPI接口读写1字节的功能
/ *通过SPI读取1个字节* /
 uint8_t  your_spi_read_byte()
{
   uint8_t ret;
   / * HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef * HSPI,uint8_t * pData所,uint16_t尺寸,uint32_t的超时)* /
    HAL_SPI_Receive(SPI1,&RET,1,1000);
   返回 ;
}
 
/ *通过SPI写入1个字节* /
 void  your_spi_wite_byte( uint8_t wd)
{
  / * HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef * hspi,uint8_t * pData,uint16_t Size,uint32_t Timeout); * /
   HAL_SPI_Transmit(SPI1,&WD, 1, 1000);
}
  • WIZCHIP关键部分进入/退出:在WIZCHIP访问时防止诸如interupts和任务切换等事件的功能
void  your_critical_enter(void)
{
  __disable_irq();
}
 
void  your_critical_exit(void)
{
  __enable_irq();
}
  • WIZCHIP N字节读/写功能:不是强制性的。:但是,如果要使用WIZCHIP使用DMA等外设进行高速访问,请按以下步骤进行操作。:即使不这样做,也可以使用N字节读/写访问,因为它是通过重复您的1字节读/写功能来执行的。
void  your_spi_dma_write_buf(uint8_t * pbuf,iodata_t len)
{
  / * HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef * hspi,uint8_t * pData,uint16_t Size)* /
   HAL_SPI_Transmit_DMA(SPI1,pbuf,( uint16_t)len);
}
void  your_spi_dma_read_buf(uint8_t * pbuf,iodata_t len)
{
  / * HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef * hspi,uint8_t * pData,uint16_t Size)* /
   HAL_SPI_Receive_DMA(SPI1,pbuf,( uint16_t)len);
}

将您定义的函数注册到io6Library

在WIZCHIP初始化之前注册您在上述示例中制作的定义代码,如下所示。

#包括 “ wizchip_conf.h ”   //仅仅只包括使用ioLibrary
void  main(void)
{
   uint16_t chip_id;
   wiz_NetTimeout tmp_timeout = 0 ;
   / *
    //初始化目标系统,如SPI,UART,DMA等。
* /   
   / *将您的基本访问功能注册到io6Library * /
   // WIZCHIP启用/禁用
   reg_wizchip_cs_cbfunc(your_wizchip_enable,your_wizchip_disable);
   // WIZCHIP Critical Section 
   reg_wizchip_cris_cbfunc(your_critical_enter,your_critical_exit);
   // WIZCHIP读/写功能
   reg_wizchip_spi_cbfunc(your_spi_read_byte,your_spi_write_byte, 0, 0);
   //如果您为读/写功能设置了DMA功能,可以注册如下
   // reg_wizchip_spi_cbfunc(your_spi_read_byte,your_spi_write_byte,your_spi_dma_read_buf,your_spi_dma_write_buf); 
   / *对于io6Library读/写测试* /
   //读取测试
   ctlwizchip(CW_GET_ID,&chip_id);
//如果(chip_id!= 0x6100) printf( “ ERROR:HOST I / F READ \ r \ n ”)检查读取测试的WIZCHIP ID值//这只是W6100的示例
   //写测试
   ctlwizchip(CW_PHY_RESET, 0);  //检查物理PHY Link Led关闭然后再打开。
   // /////////////////////////////// 
   //欣赏,WIZCHIP&io6Library // 
   //谢谢// 
   // /////////////////////////////// 
}
												

WIZnet-io6Library下载及使用的更多相关文章

  1. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  2. ASP.NET Aries 入门开发教程1:框架下载与运行

    背景: 鉴于框架的使用者越来越多,文档太少,不少用户反映框架的入门门槛太高. 好吧,再辛苦下,抽时间写教程吧! 步骤1:下载框架源码 开源地址:https://github.com/cyq1162/A ...

  3. WinForm 天猫2013双11自动抢红包【源码下载】

    1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...

  4. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  5. C# 条形码操作【源码下载】

    本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...

  6. mysql 7下载安装及问题解决

    mysql 7安装及问题解决 一.mysql下载 下载地址:https://www.mysql.com/downloads/ Community (GPL) Downloads MySQL Commu ...

  7. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  8. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  9. Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常 ...

随机推荐

  1. 安装Win10,ERROR_0x8007025D问题解决

    Windows10安装的时候,出现ERROR CODE:0x8007025D 大概提示为:windows 无法安装所需的文件.请确保安装所需的所有文件可用,并重新启动安装. 本人在出现这个问题的原因, ...

  2. python接口自动化(三十四)-封装与调用--函数和参数化(详解)

    简介 前面虽然实现了参数的关联,但是那种只是记流水账的完成功能,不便于维护,也没什么可读性,随着水平和技能的提升,再返回头去看前边写的代码,简直是惨不忍睹那样的代码是初级入门的代码水平都达不到.接下来 ...

  3. [Usaco2007 Open]Fliptile 翻格子游戏题解

    问题 B: [Usaco2007 Open]Fliptile 翻格子游戏 时间限制: 5 Sec  内存限制: 128 MB 题目描述 Farmer John knows that an intell ...

  4. 别混淆了sizeof(数组名)和sizeof(指针)

    我们在挨个儿输出一个数组中的元素时,最常用的就是用一个for循环来实现,简单了事.比如类似下面的代码片段: for(i = 0; i< length; i++) { printf("数 ...

  5. 组件--button详解

    一.wxss尺寸单位rpx rpx(responsive pixel): 可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx. 严格按照XML语法. 二.icon 图标组件 <!--index ...

  6. java学习笔记(基础篇)—抽象与接口的区别

    抽象与接口的区别 一.抽象(abstract) 1. 抽象方法 1) 作用:定义规范 2) 抽象方法用来描述具有什么功能,但不提供实现. 3) 如果类中一个方法没有实现就要定义一个抽象方法. 2. 抽 ...

  7. MFC在一个工程中启动其他工程的exe文件

    说明:有的时候把两个工程合并,但是偷懒不想在工程中添加代码,所以想到了这个办法,仅限偷懒哈哈哈哈 方法:新建一个主程序,在主程序的界面中添加按钮,在按钮的程序代码中添加以下语句: void CMain ...

  8. Excel催化剂开源第26波-Excel离线生成二维码条形码

    在中国特有环境下,二维码.条形码的使用场景非常广泛,因Excel本身就是一个非常不错的报表生成环境,若Excel上能够直接生成二维码.条形码,且是批量化操作的,直接一条龙从数据到报表都由Excel完成 ...

  9. vscode如何将less编译到指定css目录中

    首先使用vscode的搬砖猿,想要在vscode编辑器里面很方便的编译less文件,需要在扩展商店里面下载一款名叫Esay LESS的超好用扩展(我自己都不信),哈哈,其实还好. 安装完扩展之后,最好 ...

  10. 关于C#多线程、易失域、锁的分享

    一.多线程 windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程,CLR(公共语言运行库)为该进程创建了一 ...