CC3000 主机驱动API介绍
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 结构图:
- 标识0,1,3,7,9;CC3000产生区,这部分由CC3000自我产生
- 偏移2,6,8,11 客户配置区:通过客户配置
- 4,5,10 TI 服务打包区:编程用API帮助
EEPROM数据包含几个文件,可直接或间接访问,直接访问在写EEPROM的结尾直接触发CC300主机;间接访问触发CC3000 NVMEM API 间接地写到EEPROM ;每一个文件有独立的ID,下面的文件可悲修改被客户通过触发相符合的API
- NVMEM_WLAN_CONFIG_FILEID 添加或移除WLAN 只在执照
- NVMEM_IP_CONFIG_FILEID 通过IP 配置API去配置IP
CC3000 WLAN API
CC3000 APIs 提供了一种连接处理的应用方式,修改WLAN的策略,执行扫描对WLAN 模拟放大,下面的基础操作是基于CC3000设备的WLAN。
- 第一次配置:要求配置CC3000设备,连接功放,
- WLAN连接创建和断开
- WLAN外形定义和策略定义
- WLAN扫描配置和读WLAN扫描
- 创建外形和策略
WLAN 策略定义了三个选择可能去连接CC3000设备的AP
- 自动连接被打开,CC3000设备尝试连接任何AP,通过扫描,选择这种连接方式用wlan_ioctl_set_connection_policy(1,0,0)
- 快速连接设置:CC3000设备尝试自动重新连接到上一个AP,直到连接失败或自动重启。选择这种连接方式调用wlan_ioctl_set_connection_policy(0,1,0)
- 用户外部设置:CC3000设备尝试连接从外设,选择这种连接方式调用wlan_ioctl_set_connection_policy(0,0,1)
- 创建WLAN 连接
下面的方式可以被创建连接使用
- 第一次配置CC3000设备特征,这是一个简单的方式,
- 直接连接到一个给定的AP
- 用WLAN策略和外设定义那个AP连接,直接创建连接,让CC3000设备扫描选择AP
- 第一次配置
第一次被指WLAN当最终的产品还没有输入输出能力时,第一次配置提供了一种方法穿件一个外形,这些都存储在CC3000的EEPROM中,下面的图表显示的基本的流程操作,对第一次配置
CC3000套接字API
套接层API 创建TCP/IP连接,所有的套接字层APIS被自然的包装,套接字层APIS是相同和标准的BSD层APIS
- 数据传输和接收发送和接收用TCP套接字:
- 数据传输:数据传输发生通过套接字层接口用标准的命令,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介绍的更多相关文章
- python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)
昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...
- Selenium API 介绍
Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...
- 常用ArcGIS for Silverlight 开发API介绍
1.API介绍 2.Map对象 3.Layer对象 4.Symbol对象 5.Task对象
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- python学习笔记(win32print API介绍)
最近博主在研究用python控制打印机 这里整理下win32print的API介绍,官网地址http://timgolden.me.uk/pywin32-docs/win32print.html Op ...
- 使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍
一.video的js知识点: controls(控制器).autoplay(自动播放).loop(循环)==video默认的: 自定义播放器中一些JS中提供的方法和属性的记录: 1.play()控制视 ...
- 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. ...
- APP自动化框架LazyAndroid使用手册(3)--核心API介绍
作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...
- linux驱动简单介绍
linux驱动简单介绍 驱动基本介绍 驱动.顾名思义就是“驱使硬件设备行动”.设备驱动与底层硬件之间打交道,按照硬件设备的具体操作方式来读写设备寄存器,最终完成一系列操作. 设备 驱动充当了应用程序 ...
随机推荐
- js之规范代码写法
一.避免多次定义var 例如:var a = 0; var b = 1; 尽量定义为:var a = 0, b =1; 二.尽量在结尾使用分号(semicolon) 否则编辑器会提示:Unterm ...
- Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)
前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab ...
- js 过滤script
function stripscript(s) { return s.replace(/<script.*?>.*?<\/script>/ig, ''); } 稍微 ...
- 浅谈HTTP协议(下)
下面来讲响应消息.响应消息也分为响应起始行.响应头部.CRLF.响应主体. 响应起始行包括协议版本.响应状态码.原因短句.这里的重点就是响应状态码,它一共分为5类,状态码准确的说是一个三位数. 1xx ...
- Samba Linux 和windows 共享
1.安装Samba (yum install Samba) 2.配置Samba (Samba的配置文件为/etc/samba/smb.conf) 1)打开smb.conf vim /etc/s ...
- 做完c语言作业的心得
算是第一次自己接触c语言,并不是很深入的了解了,但也完成了第一次课的作业.在没有复制粘贴的情况下,8遍的简单编程让我记下了它基本的格式. 实验1.2.3.7都是基本的输入字,和课上的练习差不多,巩固最 ...
- C++ template的一些高级用法(元编码,可变参数,仿函数,using使用方法,. C++ 智能指针)
1 . 通用函数可变参数模板 对于有些时候,我们无法确切的知道,函数的参数个数时,而又不想过多的使用所谓的函数重载,那么就可以效仿下面的例子: #include<iostream> #i ...
- SSM框架学习之高并发秒杀业务--笔记4-- web层
在前面几节中已经完成了service层和dao层,到目前为止只是后端的设计与编写,这节就要设计到前端的设计了.下面开始总结下这个秒杀业务前端有哪些要点: 1. 前端页面的流程 首先是列表页,点某个商品 ...
- css——手机端图片正确显示
这两天遇到的问题汇总(一): 1.图片在app端显示有差异:如下 左边图片是:图片显示太大,以至于让整个页面都失真的效果:右边是调好样式之后的效果,知道增 ...
- nginx全局变量实例对照 rewrite参考手册
http://dwz.stamhe.com/index.php?_a=index&_m=show&count=10 remote_addr 客户端ip,如:192.168.4.2 bi ...