CC3200 是TI(Texas Instruments)推出应用于物联网(Internet of things, IoT)场景的一种无线Wi-Fi网络处理器。CC3200 集成了高性能应用控制器、Wi-Fi网络处理器、电源管理系统等。基于片上Wi-Fi、Internet和强大的安全协议,用户使用单个集成电路(CC3200 等),无须专业Wi-Fi经验,便可快速实现整个系统应用的开发 【1】 。
图 1.1 CC3200 硬件功能框图
图 1.1 为CC3200 硬件功能框图。从图 1.1 可知,高性能应用控制器包含了可运行于 80MHz的ARM Cortex-M4 内核,集成了丰富的外围设备,包括摄像头接口、I2S、SD、UART、SPI、I2C,以及四通道的模数转换接口ADC(AnalogtoDigital Converter)。CC3200 系列处理器集成了用于代码和数据的片上RAM,以及带有外部串行闪存启动加载程序和外围设备驱动程序的片上ROM 【2】 。
CC3200 片上系统集成了ARM Cortex-M4 控制器、Wi-Fi网络处理器、SRAM和ROM及µDMA、GPT、WDT、McASP、SPI、I2C、UART、GPIO、ADC、SD Card Host、Parallel Camera Interface、Debug Interface、时钟和复位及电源管理、I/O和引脚复用等功能模块。CC3200 片上系统结构和功能框图如图 1.2。
图 1.2 CC3200 系统结构和功能框图
关于各个功能模块的编程信息和详细介绍,请参见CC3200 Technical Reference Manual技术参考手册 【1】 等相关文档。
CC3200 Wi-Fi网络处理器系统具有一个基于Wi-Fi的片上网络,并包含一个专用ARM 处理器,以完全分流应用处理器的网络处理功能。CC3200 Wi-Fi网络处理器系统功能框图如图 1.3。该Wi-Fi网络处理器系统由 802.11 b/g/n无线、基带、介质访问层MAC,以及集成了用于快速安全网络连接的 256 位加解密引擎组成 【3】 。
图 1.3 CC3200Wi-Fi网络处理器系统功能框图
CC3200 设备支持站点、访问点、Wi-Fi直连模式。CC3200 设备支持WPA第二版(Wi-F i Protected Access, WPA2)个人和企业安全,以及WPS 2.0(Wi-Fi Protected Setup)无线网络安全标准。
基于Wi-Fi的片上网络系统包括嵌入式TCP/IP和TLS/SSL协议栈、HTTP服务以及多个网络协议等。CC3200 Wi-Fi网络软件体系结构如图 1.4。
图 1.4 CC3200Wi-Fi网络软件体系结构
CC3200 是集成了ARM Cortex-M4 CPU内核用于执行基于或非基于实时操作系统应用代码的实例。该处理器内核并不用于运行任何网络或设备管理任务。相比于其他处理器,专用的Cortex-M4 CPU内核,以及大容量的片上SRAM、丰富的外围接口、先进的基于DC-DC的电源管理的组合,CC3200 提供了一个强大的、高性能的,并且具有更低功耗、更低成本、更小尺寸的应用平台。CC3200 中集成的Cortex-M4 应用处理器内核并不包括浮点运算单元和内存保护单元。
Cortex-M4 应用处理器支持 4GB可寻址的存储器映射。表中为相对于模块基地址采用 16 进制增量表示的CC3200 微处理器系统的存储器映射。SRAM和外围模块支持位数据操作。
处理器保留私有外围总线(Private Peripheral Bus,PPB)地址范围区域用于核心外围寄存器,详细介绍请参见CC3200 Technical Reference Manual技术参考手册 【1】 第三章。
存储器映射范围内,读写保留空间地址的操作引起总线故障。此外,写Flash闪存范围地址的操作也会引起总线故障。
表 1.1 存储器映射
位操作区域将位操作别名区域中的每个字会映射到位操作区域中的单个位。在ARMCortex-M4 架构中,位操作区域占据SRAM的最低 1 MB。对 32 MB SRAM别名区域的访问映射到 1 MB SRAM位操作区域,如表。CC3200 不支持外围设备的位操作。对SRAM或外围位操作别名区域的字访问会映射到SRAM或外围位带区域的单个位。对位操作地址的字访问将导致对基础存储器的字访问,半字和字节访问也类似。允许位操作访问以匹配基础外围设备的访问要求。
表 1.2 SRAM内存位操作区域
CC3200 Wi-Fi微处理器支持用于代码和数据的 256k字节片上SRAM。SRAM起始地址为0x2000.0000。
处理器将内存视为从零开始按升序编号的字节的线性集合。例如,字节 0-3 为第一个存储字,字节 4-7 为第二个存储字。数据采用小端格式存储,即存储字的最低位字节存储在最低编号的字节位置,最高字节存储在最高编号的字节位置,如图 1.5 所示。
图 1.5 数据存储
CC3200 中的ARM Cortex-M4 应用处理器和嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)确定优先级并处理所有处理模式下的异常。处理器状态自动存储在关于异常的栈中,并在中断服务例程之后(Interrupt ServiceRoutine,ISR)自动从栈中恢复。向量获取与状态存储是并行的,实现高效中断进入。处理器支持尾链,实现背靠背的中断执行而无须状态存储和恢复的额外开销。
表为所有异常类型。表为CC3200 应用处理器中断。对于 7 个异常(系统处理程序)和 70个中断,软件可以设置八个优先级。系统处理程序的优先级通过NVIC系统处理优先级n寄存器(NVIC System Handler Priority n, SYSPRIn)设置。通过NVIC中断设置有效n寄存器(NVICInterrupt Set Enable n, ENn)有效中断,通过NVIC中断优先级n寄存器(NVIC Interrupt Priority n, PRIn)设置中断优先级。通过将优先级分为抢占优先级和子优先级来对优先级进行分组。
最高用户可编程优先级(0)在内部被视为第四级优先级,在复位后,非掩码中断NMI(Non-maskable Interrupt)和硬故障也是该优先级。0 是所有可编程优先级的默认优先级。
表 1.3 异常类型
表 1.4 CC3200 应用处理器中断
处理器采用中断服务例程、故障处理程序和系统处理程序等方式处理异常。中断(Interrupts, IRQx)是由中断服务例程ISRs(Interrupt Service Routines)处理的异常。硬故障、内存管理故障、使用故障和总线故障是由故障处理程序处理的故障异常。NMI、PendSV、SVCall(Supervisor Call)、SysTick和故障异常是由系统处理程序处理的所有系统异常。
向量表包括栈指针的复位值和起始地址,也被称为异常向量,用于所有的异常处理程序。采用表所示的向量地址或偏移构建向量表。图 1.6 表示了向量表中的异常向量顺序。
图 1.6 向量表
系统复位之后向量表地址就被确定为 0x0000.0000。特权软件可以写向量表偏移寄存器(Vector Table Offset,VTABLE)以重新定位向量表起始地址至范围为 0x0000.0400 到0x3FFF.FC00 间的特定位置。当配置向量表寄存器,偏移必须以 1024 字节边界排列。
关于异常模型的详细信息和编程信息,以及以上英文缩略语的详细说明,请参见CC3200 Technical Reference Manual技术参考手册 【1】 。
故障是异常的一个子集。以下条件将会触发故障:
1)关于指令预取、向量表装载、数据访问的总线错误;
2)内部检测错误,例如未定义的指令、尝试改变状态的采用BX指令;
3)尝试从标记为非执行存储区域执行指令。
表 1.5 中列出了故障类型、用于处理故障的故障处理程序、相应的故障状态寄存器及用于标识已发生故障的寄存器位。
表 1.5 故障
除了硬故障外的所有故障异常均有可配置的异常优先级(见SYSPRI1 寄存器)。软件通过SYSHNDCTRL寄存器(System Handler Control and State)可以禁止这些故障处理程序的执行。通常情况下,异常优先级以及异常掩码寄存器的数值决定了处理器是否进入故障处理程序,以及故障处理程序是否可以抢占另一个故障处理程序。
在某些情况下,可配置优先级的故障被认为是硬故障,这个过程被称为优先级升级,故障被称为升级至硬故障。如下情形,升级至硬故障会发生:
1)故障处理程序引起与在处理故障相同类型的故障。升级至硬故障发生,因为故障处理程序不能抢占自身,与当前优先级相同。
2)故障处理程序引起与在处理故障相同或更低优先级的故障。升级至硬故障发生,因为新故障处理程序不能抢占当前故障处理程序。
3)异常处理程序引起与在处理异常相同或更低优先级的故障。
4)故障发生但是相应的故障处理程序未使能。
如果在进入总线故障处理程序时在压栈过程中发生总线故障,则该总线故障不会升级为硬故障。因此,如果损坏的堆栈导致故障,即使用于故障处理程序的压栈失败,故障处理程序也会执行。故障处理程序运行,但堆栈内容已损坏。
只有复位和NMI可以抢占固定优先级的硬故障。硬故障可以抢占复位、NMI、或其他硬故障之外的任何异常。
如果在执行NMI或硬故障处理程序时发生硬故障,则处理器将进入锁定状态。当在锁定状态时,处理器并不执行任何指令。处理器保持在锁定状态,直到复位、NMI发生,或调试器使其处于停止状态。
故障状态寄存器标识故障的原因。对于总线故障和存储器管理故障,故障地址寄存器标识引起故障的操作所访问的地址。故障状态寄存器和故障地址寄存器如表 1.6。
表 1.6 状态寄存器和故障地址寄存器
CC3200 Wi-Fi微处理器是一个片上多处理器系统。芯片级的高级电源管理方案实现在广泛的应用范围内同类产品最佳的能效,同时处理多个高性能处理器和Wi-Fi无线系统的异步睡眠唤醒需求。芯片级的高级电源管理方案对应用程序屏蔽了其他子系统电源状态的转换。这种方法使用户避免了多处理器系统的复杂性,并简化了应用程序开发过程。
除了SLEEP和DEEPSLEEP模式,CC3200 提供了另外两个功耗更低的工作模式:低功耗深度睡眠模式(Low Power Deep Sleep Mode, LPDS)、休眠模式(Hibernate Mode, HIB)。
低功耗深度睡眠模式的特点及应用:
1)推荐用于超低功耗需求的持续连接云和Wi-Fi的应用;
2)多达 256K字节SRAM状态保存,以及快速唤醒(<5 ms);
3)当禁用网络和Wi-Fi网络系统,MCU(Microcontroller Unit)消耗电流小于 100µA,此时 256K字节SRAM状态保存(代码和数据)。在Wi-Fi和网络周期性唤醒情况下,整个系统电流低至 700µA。
4)处理器和外围寄存器状态不保存。片上系统级的全局ON配置保存。
休眠模式的特点及应用:
1)推荐用于超低功耗需求的频繁连接云和Wi-Fi的应用;
2)4µA的超低电流消耗,包含RTC;
3)RTC或指定的GPIO唤醒;
4)不保留SRAM或逻辑状态。采用 2*32 位寄存器保留。
完全理解CC3200 供电模式,需要考虑如下三个方面:
1)由MCU应用控制的MCU系统供电模式;
2)有效情况下自动维护供电模式的网络系统供电模式;
3)来源于以上两种供电模式组合的设备级(芯片)供电模式。
基于MCU供电模式和网络系统供电模式,表 1.7 描述了设备供电模式。
表 1.7 CC3200 供电模式
从应用程序的角度来看,微处理器只有两种明确选择的操作模式:禁用NWP(关闭)或启用NWP(打开)。网络处理器NWP(Network Processor)使用电源管理算法在Active状态和LPDS状态之间进行选择。
网络系统配备有策略管理实体,以允许开发人员(主机应用程序程序员)通过预定义的电源策略来指导电源管理算法的行为。
超低功耗应用设计时,消耗在LPDS和HIB模式的时间需要最大化。ARM Cortex-M4 应用处理器可以配置为指定事件唤醒,例如输入包数据的网络事件、定时器、或I/O触发。花费在运行或激活状态的时间需要最小化。
CC3200-LAUNCHXL开发板 【4】 【5】 基于CC3200 无线Wi-Fi嵌入式处理器的评估平台,凸显了CC3200 的Wi-Fi能力和无线网络解决方案。CC3200-LAUNCHXL开发板集成了按钮,LED显示,以及用于调试的板载仿真器。CC3200-LAUNCHXL开发板集成的BoosterPack™接口(TI)易于实现与其他同类型接口设备的互联,简化了系统功能扩展,例如图形显示、存储接口、音频接口、环境传感器等等。CC3200-LAUNCHXL开发板实物如图 1.7。
图 1.7 CC3200-LAUNCHXL开发板
CC3200-LAUNCHXL主要特征:
关于CC3200-LAUNCHXL详细信息,请参见CC3200 LaunchPad User’s Guide用户文档 【4】【5】 。
关于CC3200-LAUNCHXL原理图,请参见压缩文件CC3200 SimpleLink Wi-Fi Wireless MCU Launch Pad Board Design Files中的文档CC3200-LAUNCHXL_SCH_REV4P1-C 【11】 ,该文件可从TI 官方网址下载。