CC3000作为是一种简单集成,简单实用的无线宽带设备,她集成了完整的802.11协议栈,802.11个人安全请求;IP网络协议栈,CC3000主机驱动对CC3000硬件访问时很轻松的。CC3000逐句驱动的关键使用是:

很容易的配置并调节主机驱动内容,满足客户要求的功能;

可阅读性:完整的代码文档

简单性:极小的开发平台,和系统独立

系统结构层次图

驱动包含了两个部分:

  • CC3000用户应用编程接口API
  • 传输层API

用户API被组成四个类,反应了四个不同的实体他们是

  • WLAN API ,她配合基础层,提供802.11协议
  • 网络堆栈API,配合嵌入式网络堆栈
  • 嵌入式网络应用API,配合嵌入式网络应用传递,作为编内内容的补充,这些包括一些基础网络协议应用
  • 不可变的存储器API,他用着配置CC3000设备的EEPROM

API功能的调用,要通过设备的应用层触发激活,

事件是设备触发行为导致了主机处理的中断,量类事件被CC3000设备产生:

  • 命令应答事件
  • 无请求事件

命令应答事件:

命令被发送到设备节点,并被完成或者长周期处理被触发,命令应答事件产生,

无应答事件:

通过触发方式,系统提供了无应答事件,这些事件同时产生,指示系统事件的发生,下面的图表显示了基础事件的次序:

下面列出了CC3000设备产生的所有同步事件:

HCI_EVNT_WLAN_ASYNC_SIMPLE_CONFIG_DONE :告知第一次配置处理完成

HCI_EVNT_WLAN_KEEPALIVE:在CC3000和主机MCU之间定期的激活

HCI_EVNT_WLAN_UNSOL_CONNECT – WLAN:连接

HCI_EVNT_WLAN_UNSOL_DISCONNECT 告知CC3000设备从访问点断开

HCI_EVNT_WLAN_UNSOL_DHCP:动态主机配置协议告知

HCI_EVNT_WLAN_UNSOL_INIT:告知CC3000设备完成初始化处理

HCI_EVNT_WLAN_ASYNC_PING_REPORT:ping结果告知

CC3000 API 续(EEPRAM设置和TCP/UDP)

CC3000 NVMEM API

CC3000设备用EEPROM去存储射频标准参数,网络配置参数和补充,多数存储位置不直接通过CC3000主机写驱动,而是间接通过API调用触发固化的存储值

EEPROM 结构图:

  1. 标识0,1,3,7,9;CC3000产生区,这部分由CC3000自我产生
  2. 偏移2,6,8,11 客户配置区:通过客户配置
  3. 4,5,10 TI 服务打包区:编程用API帮助

EEPROM数据包含几个文件,可直接或间接访问,直接访问在写EEPROM的结尾直接触发CC300主机;间接访问触发CC3000 NVMEM API 间接地写到EEPROM ;每一个文件有独立的ID,下面的文件可悲修改被客户通过触发相符合的API

  1. NVMEM_WLAN_CONFIG_FILEID 添加或移除WLAN 只在执照
  2. NVMEM_IP_CONFIG_FILEID 通过IP 配置API去配置IP

CC3000 WLAN API

CC3000 APIs 提供了一种连接处理的应用方式,修改WLAN的策略,执行扫描对WLAN 模拟放大,下面的基础操作是基于CC3000设备的WLAN。

  1. 第一次配置:要求配置CC3000设备,连接功放,
  2. WLAN连接创建和断开
  3. WLAN外形定义和策略定义
  4. WLAN扫描配置和读WLAN扫描
    • 创建外形和策略

WLAN 策略定义了三个选择可能去连接CC3000设备的AP

  1. 自动连接被打开,CC3000设备尝试连接任何AP,通过扫描,选择这种连接方式用wlan_ioctl_set_connection_policy(1,0,0)
  2. 快速连接设置:CC3000设备尝试自动重新连接到上一个AP,直到连接失败或自动重启。选择这种连接方式调用wlan_ioctl_set_connection_policy(0,1,0)
  3. 用户外部设置:CC3000设备尝试连接从外设,选择这种连接方式调用wlan_ioctl_set_connection_policy(0,0,1)
  4. 创建WLAN 连接

下面的方式可以被创建连接使用

  1. 第一次配置CC3000设备特征,这是一个简单的方式,
  2. 直接连接到一个给定的AP
  3. 用WLAN策略和外设定义那个AP连接,直接创建连接,让CC3000设备扫描选择AP
  4. 第一次配置

第一次被指WLAN当最终的产品还没有输入输出能力时,第一次配置提供了一种方法穿件一个外形,这些都存储在CC3000的EEPROM中,下面的图表显示的基本的流程操作,对第一次配置

CC3000套接字API

套接层API 创建TCP/IP连接,所有的套接字层APIS被自然的包装,套接字层APIS是相同和标准的BSD层APIS

  • 数据传输和接收发送和接收用TCP套接字:

    1. 数据传输:数据传输发生通过套接字层接口用标准的命令,Send,Sendto是BSDAPI的一部分,选择用哪个命令依据套接字类型;TCP用Send命令,UDP用Sendto

连接被建立后,发送和接收通过TCP套接字,BSD API Send和Rec命令使用TCP套接字,Sendto和RecvfromAPI命令使用UDP套接字

  • UDP 套接字API

客户端UDP 套接字连接:客户端UDP连接只要求创建套接字

  • 服务器UDP 套接字连接

运行UDP服务器要求在创建套接字之前执行bind 操作,Sendto和Recvfrom API命令用着去发送和接收数据

CC3000 主机驱动API介绍的更多相关文章

  1. python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)

    昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...

  2. Selenium API 介绍

    Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...

  3. 常用ArcGIS for Silverlight 开发API介绍

    1.API介绍 2.Map对象  3.Layer对象 4.Symbol对象 5.Task对象

  4. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  5. python学习笔记(win32print API介绍)

    最近博主在研究用python控制打印机 这里整理下win32print的API介绍,官网地址http://timgolden.me.uk/pywin32-docs/win32print.html Op ...

  6. 使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍

    一.video的js知识点: controls(控制器).autoplay(自动播放).loop(循环)==video默认的: 自定义播放器中一些JS中提供的方法和属性的记录: 1.play()控制视 ...

  7. Commons-lang API介绍

    4.1 Commons-lang API介绍 4.1.1 StringUtils 4.1.2 StringEscapeUtils 4.1.3 ArrayUtils 4.1.4 DateUtils 4. ...

  8. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  9. linux驱动简单介绍

     linux驱动简单介绍 驱动基本介绍 驱动.顾名思义就是“驱使硬件设备行动”.设备驱动与底层硬件之间打交道,按照硬件设备的具体操作方式来读写设备寄存器,最终完成一系列操作. 设备 驱动充当了应用程序 ...

随机推荐

  1. iOS - Mac OS X 常用快捷键

    Mac OS X 常用快捷键 1)快捷键图标: Escape 为 esc 键 无 Eject 键时用电源键代替 Space Bar 为空格键 2)基本快捷键: command + x 剪切文字 com ...

  2. Nbimer族助手 部分控件不能用的解决方法(转)

    用户提出的问题现象: 我两天笔记本安装的都是win7 SP1系统,一台为64为一台为32位,网络环境是移动宽带通过D-Link路由器实现无线局域网,DHPC自动分配IP地址.每次打开IE或者Chrom ...

  3. zabbix3.0.4 部署之四 (LNAP > PHP安装)

    1.安装依赖 安装epel-release源 安装 libiconv-1.14.tar.gz (这个还有个devl包)  libmcrypt-2.5.8.tar.gz   mhash-0.9.9.9. ...

  4. Spirng中Mongodb中write-concern的解释

    Spring在插入数据库时没有返回状态配置:write-concern获取异常<beans xmlns="http://www.springframework.org/schema/b ...

  5. AxureRP8实战手册(基础1-10)

    基础操作篇 本篇包含56种常见的基础操作,初学者应在掌握本篇内容后再进行实战案例篇的学习,以免产生学习障碍.同时,建议具备一定基础的读者学习本篇中相对生疏的内容,并加以掌握. 第1章 使用元件 本文目 ...

  6. 通过 Informix 系统表监控和优化数据库

    Informix 数据库系统字典表简介 Informix 数据库服务器运行时的状态信息是数据库管理员 DBA 进行系统监控和优化的必需信息来源.Informix 的状态信息在内部以 2 种方式存在,如 ...

  7. yii2-basic后台管理功能开发之二:创建CRUD增删改查

    昨天实现了后台模板的嵌套,今天我们可以试着创建CRUD模型啦 刚开始的应该都是“套用”,不再打算细说,只把关键的地方指出来. CRUD即数据库增删改查操作.可以理解为yii2为我们做了一个组件,来实现 ...

  8. windows添加虚拟网卡

  9. C#窗体自定义控件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  10. QT打开ROS工作空间时遇到的问题和解决方法

    之前一直觉得不用IDE写程序看着好像我很能的样子. 其实就相当于工业时代我还钻木取火并且告诉别人你们用打火机根本不知道火被点燃的过程是怎样的. 因为这个技能并非人人都会,就可以拿出去到处臭屁 好了, ...