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. PHP基础知识之————php5-cli 的安装以及phpredis的安装

    在系统安装完后最好执行下列命令更新下软件 sudo apt-get update 安装php5-cli apt-get install php5-cli 下载phpredis wget https:/ ...

  2. 安装 SciPy 和 scikit-learn 升级pip 及pip基本命令表

    安装Scipy和scikit-learn出错,出错记录及当时最终解决办法 问题: 一.使用pip直接安装 直接pip install scipy C:\Users\Plain>pip insta ...

  3. mysql的初识--DOS下的简单命令

    DOS下进入 1.通过程序中的mySQL的:MySQL 5.6 Command Line Client直接进入mySQL的命令行: 2.或者通过WIn+R-->输入cmd,然后C:等一层一层找到 ...

  4. mysql5.x(<7) sql文件导入到5.7

    一.修改sql—model http://www.linuxidc.com/Linux/2016-09/135372.htm

  5. json 后台传前台

    jsonObject需实例化new.jsonObject=new JSONObject();jsonObject.put("goodslist", list);jsonObject ...

  6. Linux服务器

    /*** cloud_sum_server ***/void cloud_sum(int sockfd) { ssize_t n; char buf[MAXLINE]; , b = ; again: ...

  7. [转]jQuery.validate插件在失去焦点时执行验证代码

    转:http://my.oschina.net/enyo/blog/311566 关于 jquery.validate.js 表单验证插件如何在失去焦点时做验证.看手册后发现默认是在表单提交时执行验证 ...

  8. org/objectweb/asm/Type异常解决办法

    关于java.lang.NoClassDefFoundError: org/objectweb/asm/Type 调试SPRING MVC(或者整合SSH)的时候遇到了org/objectweb/as ...

  9. SourceForge无法访问的解决办法

    这一阵java框架spring和hibernate都有新版本了(spring2.5.5和hibernate3.2.6)想下载看看,却发现 SourceForge.net无法打开.刚才用Google搜索 ...

  10. A:石头剪刀布

    总时间限制: 1000ms 内存限制: 65536kB描述石头剪刀布是常见的猜拳游戏.石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.一天,小A和小B正好在玩石头剪刀布.已知他们的出拳 ...