概观

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. kafka源码分析(二)Metadata的数据结构与读取、更新策略

    一.基本思路 异步发送的基本思路就是:send的时候,KafkaProducer把消息放到本地的消息队列RecordAccumulator,然后一个后台线程Sender不断循环,把消息发给Kafka集 ...

  2. LinkedList源码分析:JDK源码分析系列

    如果本文中有不正确的地方请指出由于没有留言可以在公众号添加我的好友共同讨论. 1.介绍 LinkedList 是线程不安全的,允许元素为null的双向链表. 2.继承结构 我们来看一下LinkedLi ...

  3. 学Redis这篇就够了

    Redis 简介 Redis 优势 Redis 数据类型 string hash list set Zset 小总结 基本命令 发布订阅 简介 实例 发布订阅常用命令 事务 实例 Redis 事务命令 ...

  4. js 控制文本框输入要求

    把输入框中 输入的字符串含有中文逗号 改成 英文逗号 举例: <input type="text" id="keywords" style="w ...

  5. python3.5学习笔记(说明)

    本内容是自己在学习python过程中总结的知识点,只用于学习和交流,请勿用作商业用途,部分内容来自网络,如有侵权,联系删除.

  6. Android自定义的属性的使用

    获取引用类型的属性值 private void init(Context context, AttributeSet attrs) { //int textId = attrs.getAttribut ...

  7. 以for循环的方式了解var与let的区别

    var是ES5定义变量的一种声明方式. let是ES6定义变量的一种声明方式---可定义局部变量,即定义块级作用域. 以下列简单的函数进行表现二者作用域的不同 在ES6之前,我们都是用var来声明变量 ...

  8. iOS-监听原生H5性能数据window.performance

    WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...

  9. PHP语句中or的用法

     经常看到这样的语句: $file = fopen($filename, 'r') or die("抱歉,无法打开: $filename"); or在这里是这样理解的,因为在P ...

  10. 前端基于vue,后台采用springboot+shiro的方式搭建的一个移动端商品展示平台

    基于vue实现的移动端商品展示页,可以web-view的方式嵌入到小程序中,布局简约.大气,减少初学者或开发者不必要的工作量.后台维护采用的springboot+shiro的方式,为广大爱好者提供展示 ...