热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CC3200wifi应用基础——中文教程

CC3200wifi应用基础——中文教程第1
CC3200 wifi应用基础——中文教程

1   CC3200 简介
CC3200 TI 无线连接 SimpleLink Wi-Fi 和物联网( IoT )解决方案最新推出的一款单片无线 MCU ,是业界第一个具有内置 Wi-Fi MCU ,是针对物联网应用、集成高性能 ARM Cortex-M4 的无线 MCU 。客户能够使用单个集成电路开发整个应用,借助片上 Wi-Fi 、互联网和强大的安全协议,无需 Wi-Fi 经验即可实现快速的开发。 CC3200 是一个完整平台解决方案,其中包括软件、示例应用、工具、用户和编程指南、参考设计以及 TI E2E 支持社区。 CC3200 采用易于布局的四方扁平无引线( QFN )封装。
CC3200 硬件概况和嵌入式软件概况如图 1.1 所示。    
  
1.1  CC3200 硬件概况和嵌入式软件概况
CC3200 包括应用 MCU Wi-Fi 网络处理器( CC3100 )和电源管理 3 大部分。
应用 MCU 包含一个运行频率为 80MHz 的行业标准 ARM Cortex-M4 内核,包含用于存放代码和数据的内部 RAM 以及存放启动引导程序和外设驱动程序的 ROM ,还包含 GPIO UART SPI I2C I2S/PCM SD/MMC PWM ADC 等多种片内外设。
Wi-Fi 网络处理器( CC3100 )包含一个 Wi-Fi 片上互联网和一个可完全免除应用 MCU 处理负担的专用 ARM MCU Wi-Fi 片上互联网包含 Wi-Fi 射频、基带和具有强大加密引擎的 MAC ,可以实现支持 256 位加密的快速安全的互联网连接。 Wi-Fi 片上互联网还包括嵌入式 TCP/IP TLS/SSL 协议栈、 HTTP 服务和多种应用协议。 CC3200 支持站点、接入点和 Wi-Fi 直连 3 种模式,支持 WPA2 个人和企业安全性以及 WPS2
电源管理包括支持宽电源电压范围的集成直流 - 直流转换器,可以启用低功耗模式(包括睡眠、深睡眠、低功耗深睡眠和休眠等),具有 RTC 的休眠模式所需电流少于 4 m A
1.1   应用 MCU
CC3200 应用 MCU 的特性如下:
 ARM Cortex-M4 内核,运行频率 80MHz    内部存储器
     RAM :存放代码和数据,容量多达 256KB
     ROM :存放启动引导程序和外设驱动程序,容量为 64KB    针对高级快速安全性的硬件加密引擎       AES DES 3DES      SHA2 MD5       CRC 和校验和
  多达 27 个独立可编程、可复用的通用输入输出( GPIO )引脚    2 个通用异步收发器接口( UART    1 个串行外设接口( SPI
 1 个内部集成电路总线接口( I2C    1 个多通道音频串行接口( McASP ),支持 2 I2S 通道    1 SD/MMC 接口  8 位并行摄像头接口    4 个通用定时器( GPT ),支持 16 位脉冲宽度调制( PWM )模式    4 通道 12 位模数转换器( ADC
 32  通道微型直接存储器存取(m DMA
1.1.1  ARM Cortex-M4
高性能 ARM Cortex-M4 提供低成本的平台,能够实现最小的内存需求,减少引脚数和降低功耗,同时提供卓越的计算性能和系统中断响应。
ARM Cortex-M4 的特性如下:     卓越的性能
      针对嵌入式应用优化的 Thumb 指令集        处理程序和线程模式
      进入和退出中断处理程序时自动保存和恢复处理器状态        支持 ARMv6 非对齐访问
  嵌套向量中断控制器( NVIC )与处理器内核的紧密结合实现低延迟中断处理       3-8 位优先级配置
      动态重新分配中断优先级
      中断优先级分组允许选择中断优先级分组和中断子优先级的数量        支持咬尾和迟到中断,允许没有状态保存和恢复开销的连续中断处理        没有指令开销的处理器状态自动保存和恢复
      唤醒中断控制器( WIC )提供超低功耗睡眠模式支持
  总线接口
     3 个先进高性能总线( AHB )接口: ICode DCode 和系统总线接口        存储器和外设位带( Bit-band )支持,包括原子位带读写操作     低成本调试方案
      调试可以访问系统中的所有存储器和寄存器
      支持串行调试端口( SW-DP )和串行 JTAG 调试端口( SWJ-DP        闪存补丁和断点( FPB )单元实现代码补丁和断点
1.1.2   存储器
CC3200 应用 MCU 的存储器包括外部存储器和内部存储器。  1 .外部存储器
CC3200 在外部存储器(串行闪存 SFLASH )中保存特有的文件系统,包括服务包文件、系统文件、配置文件、证书文件、网页文件和用户文件等。
用户可以使用格式化命令 API 分配文件系统的总容量,文件系统的起始地址固定在 SFLASH 的开始。应用 MCU 不能直接访问 SFLASH ,必须通过文件系统访问分配给文件系统的 SFLASH 区域。
文件系统按照下载顺序管理存储文件 SFLASH 块的分配,这意味着系统中特定文件的位置不固定。存储在 SFLASH 中的文件使用直观的文件名而不是文件标识。文件系统 API 使用纯文本,文件加密和解密用户不可见,加密文件只能通过文件系统进行访问。
文件系统中所有文件类型可以支持多达 128 个文件,文件存储的最小单元是 4KB ,带有安全保障和安全选项的加密文件存储的最小单元是 8KB ,最大的文件大小是 16MB
2 .内部存储器
内部存储器包括 RAM (静态存储器 SRAM )和 ROM    SRAM
CC3200 包含片上 SRAM 供应用程序下载和执行,应用程序开发者必须共享 SRAM 用于代码和数据。微型直接存储器存取(m DMA )控制器可以在 SRAM 和外设间传输数据。 CC3200 ROM 中拥有丰富的外设驱动程序,可以节省 SRAM 空间。
CC3200 提供多达 256KB 零等待状态内部 SRAM ,能够在低功耗深睡眠( LPDS )模式下有选择地保留。 SRAM 在存储器映像中的偏移地址是 0x2000 0000
 ROM
CC3200 的内部零等待状态 ROM 的起始地址是 0x0000 0000 ,编程有下列组件:     启动引导程序( Bootloader   外设驱动程序( DriverLib
启动引导程序用作串行闪存为空时的初始引导程序,外设驱动程序为片内外设提供启动引导能力,实现片内外设的初始化和控制功能,支持查询或中断操作。 ROM 中的外设驱动 API 可以被应用程序调用,以减少闪存的需求,多出的闪存可以用于其他目的。
  存储器映像
CC3200 存储器映像如表 1.1 所示,其中包含各种外设在存储器的映像地址。
5
1.1.3   片内外设
CC3200 支持下列片内外设接口和外设:     通用输入输出接口( GPIO     串行异步收发器接口( UART     串行外设接口( SPI
  内部集成电路总线接口( I2C     多通道音频串行接口( McASP    SD/MMC 接口     并行摄像头接口     通用定时器( GPT     模数转换器( ADC
  微型直接存储器存取(m DMA     通用输入输出接口( GPIO
通用输入输出接口( GPIO )分为 4 组,每组 8 个。根据外设用途的不同, GPIO 支持 27 个可编程 GPIO 引脚,每个 GPIO 引脚可配置为 10 μ A 上拉或下拉,驱动能力可配置为 2mA 4mA 6mA ,也可配置为开漏输出。
  串行异步收发器接口( UART
串行异步收发器接口( UART )具有可编程波特率发生器,允许速度高达 3Mbps ,标准的异步通信起始位、停止位和奇偶校验位,使用m DMA 可以实现高效传输。
  串行外设接口( SPI
串行外设接口( SPI )可以配置为主设备或从设备,主设备串行时钟的频率、极性和相位可编程,片选和外部时钟的定时控制可编程,第一个发送字前的延时可编程。
  内部集成电路总线接口( I2C
内部集成电路总线接口( I2C )通过两根串行线可以在单个接口上连接多种 I2C 外设,可以工作在标准模式( 100Kbps )或快速模式( 400Kbps )。
  多通道音频串行接口( McASP
多通道音频串行接口 McASP 作为通用音频串行接口,为多通道音频应用优化,支持通过两个数据引脚进行立体声传输,发送和接收部分可同步工作。
 SD/MMC 接口
SD/MMC 接口用于连接大容量 SD 卡存储器,支持 1 位数据模式。     并行摄像头接口
并行摄像头接口可以连接各种外部图像传感器,图像数据存放在 FIFO 中,可以产生 DMA 请求,数据宽度是 8 位。
  通用定时器( GPT
通用定时器( GPT )可以对输入引脚上的外部事件进行计数或计时,并可以产生脉冲宽度调制( PWM )信号从输出引脚上输出。
  模数转换器( ADC
模数转换器( ADC )的主要功能是将连续的模拟信号转化为离散的数字信号,以便于微控制器进行数据处理
6
  微型直接存储器存取(m DMA
微型直接存储器存取(m DMA )将 Cortex-M4 从数据传输任务中解脱出来,实现外设和存储器之间或者存储器和存储器之间的批量数据传输。
1.2  Wi-Fi 网络处理器( CC3100
CC3200 Wi-Fi 网络处理器( CC3100 )可以提供快速安全的 WLAN 和因特网连接,支持站点、接入点和 Wi-Fi 直连 3 种模式,特性如下:
  特有 Wi-Fi 片上互联网( Internet-On-a-Chip
  专用 ARM MCU ,完全免除应用 MCU Wi-Fi  和互联网协议处理负担    Wi-Fi 和互联网协议存放在 ROM 
  包含 802.11b/g/n 射频、基带、 MAC Wi-Fi  驱动和 Supplicant   TCP/IP 协议栈
      行业标准 BSD 套接字应用编程接口( API        同时 8 TCP UDP 套接字        同时 2 TLS SSL 套接字
  强大的加密引擎,可以实现支持 256  AES 加密的快速安全的互联网连接     站点( STA )、接入点( AP )和 Wi-Fi  直连( P2P )模式    WPA2 个人和企业安全性
  用于自主和快速 Wi-Fi 连接的 SimpleLink 连接管理器
  用于简单灵活 Wi-Fi 配置的智能配置( SmartConfig )技术、 AP 模式和 WPS2    发射功率
     18.0dBm @ 1 DSSS (直序扩频)
     14.5dBm @ 54 OFDM (正交频分复用)     接收灵敏度
     -95.7dBm @ 1 DSSS (直序扩频)
     -74.0dBm @ 54 OFDM (正交频分复用)
Wi-Fi 网络处理器( CC3100 )支持的主要特性如表 1.2 所示。
1.3   电源管理
CC3200 电源管理的特性如下:
  集成直流 - 直流转换器,支持宽范围的电源电压       VBAT 宽电压模式: 2.1V 3.6V       预稳压 1.85V 模式     高级低功耗模式
      休眠( Hibernate ): 4 μ A       低功耗深睡眠( LPDS ): 120 μ A      RX MCU 活动): 59mA @ 54 OFDM      TX MCU 活动): 229mA @ 54 OFDM ,最大功率        空闲连接( MCU 处于 LPDS ): 695 μ A @ DTIM = 1
从电源管理的角度看, CC3200 的应用 MCU Wi-Fi 网络处理器( CC3100 )是独立的,应用 MCU 运行从外部串行闪存装入的用户应用程序, Wi-Fi 网络处理器( CC3100 )运行预编程的 TCP/IP Wi-Fi 数据链路层函数。
用户程序控制应用 MCU 的电源状态,可以有下列 4 种电源模式:    MCU 活动( Active )模式: MCU 80MHz 主频执行程序
 MCU 睡眠( Sleep )模式: MCU 时钟被禁止,设备状态被保留。睡眠模式提供即时唤醒功能,可以通过内部定时器、 GPIO 引脚或外设唤醒
 MCU 低功耗深睡眠( LPDS )模式:状态信息丢失,只有某些 MCU 特定的寄存器配置被保留。 MCU 可以通过内部定时器或 GPIO0-6 上的外部事件唤醒,唤醒时间小于 3ms 。存储器的某些部分可以被保留,保留存储器的数量可配置,用户可以选择保存代码或 MCU 特定的设置
 MCU 休眠( Hibernate )模式:最低功耗模式,只有一小部分直接由输入电源供电的逻辑被保留,实时时钟( RTC )保持运行, MCU 可以通过 RTC 超时或 GPIO0-6 上的外部事件唤醒,唤醒时间比 LPDS 模式长 15ms 加上从串行闪存加载应用程序的时间
Wi-Fi 网络处理器( CC3100 )可以按照自己的模式活动或低功耗深睡眠,当没有网络活动时, Wi-Fi 网络处理器( CC3100 )大部分时间睡眠,只有接收信标时唤醒。
Wi-Fi 网络处理器( CC3100 )有下列 6 种电源模式:     网络活动模式(处理低 3 层):发送或接收 IP 协议数据包   网络活动模式(处理低 2 层):发送或接收 MAC 管理帧,不需要 IP 处理
  网络活动监听模式:特殊的功耗优化活动模式,用于接收信标帧,不支持其他帧     网络连接空闲模式:实现 802.11 节能操作的复合模式。网络处理器( CC3100 )在信标间自动进入 LPDS 模式,接收信标时进入活动监听模式,通过信标确定接入点是否有数据传送,如果没有,网络处理器( CC3100 )返回 LPDS 模式
  网络低功耗深睡眠( LPDS )模式:信标间的低功耗状态,状态由网络处理器( CC3100 )保留,允许快速唤醒
  网络禁用模式:网络处理器( CC3100 )不可用
应用 MCU 和网络处理器( CC3100 )的操作应确保设备大部分时间停留在最低功耗模式,以延长电池寿命。 CC3200 重要的片级电源模式如表 1.3 所示。
1.3   片级电源模式
电源状态   网络活动模式   网络 LPDS 模式   网络禁用模式  MCU 活动模式   芯片  =  活动( C   芯片  =  活动   芯片  =  活动  MCU LPDS 模式   芯片  =  活动( A
芯片  = LPDS B
芯片  = LPDS MCU 休眠模式
不支持
不支持
芯片  =  休眠( D
应用程序中电源模式的使用例子如下:
  设备一直连接到网络,但只发送和接收少量数据,大部分时间连接空闲:使用模式 A (接收信标帧)和模式 B (等待下一个信标)
  设备不一直连接到网络,而是周期唤醒(例如间隔 10 分钟)发送数据,大部分时间在模式 D (休眠):短暂跳到模式 C 传输数据
1.4   引脚复用
CC3200 广泛使用引脚复用功能,以便在尽可能小的封装内容纳大量的外设。为了实现这种结构,引脚复用使用硬件配置和寄存器控制相结合的方法进行控制。
注意: TI 强烈建议使用 CC3200 引脚复用实用工具 PinMux 获得需要的引脚配置!   引脚复用需要特别注意下列事项:
  所有 I/O 引脚支持 2mA 4mA 6mA 驱动能力,每个引脚的驱动能力独立配置     所有 I/O 引脚支持 10 μ A 上拉和下拉,默认不激活     所有 I/O 引脚在设备处于休眠状态时保持浮空    VIO VBAT 必须始终接在一起
CC3200 引脚复用功能参见附录 C ,外设引脚分配参见附录 D


推荐阅读
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • 我正在使用 Ruby on Rails 构建个人网站。总体而言,RoR 是一个非常出色的工具,它提供了丰富的功能和灵活性,使得创建自定义页面变得既高效又便捷。通过利用其强大的框架和模块化设计,我可以轻松实现复杂的功能,同时保持代码的整洁和可维护性。此外,Rails 的社区支持也非常强大,为开发过程中遇到的问题提供了丰富的资源和解决方案。 ... [详细]
  • 本文探讨了如何在 Google Sheets 中通过自定义函数实现 AJAX 调用。具体介绍了编写脚本的方法,以便在电子表格中发起 AJAX 请求,从而实现数据的动态获取与更新。这种方法不仅简化了数据处理流程,还提高了工作效率。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 在Spring与Ibatis集成的环境中,通过Spring AOP配置事务管理至服务层。当在一个服务方法中引入自定义多线程时,发现事务管理功能失效。若不使用多线程,事务管理则能正常工作。本文深入分析了这一现象背后的潜在风险,并探讨了可能的解决方案,以确保事务一致性和线程安全。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
author-avatar
宋雨甄_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有