最近一直在做STM32F4控制CC1200进行无线发射的项目,昨天被问到为什么选择CC1200,它是怎么工作的,为什么不用蓝牙或者WIFI,一下子把我问的有点蒙,但事后感觉还是能说上个3 2 1的,所以发现自己还掌握的不扎实,故温故而知新之。
首先大概介绍一下STM32F4
在ARM11之后的处理器家族 ,采用Cortex命名,并针对高、中、低分别为A 、R 、M三大处理器。像高阶手机用Cortex-A系列,或者微控制器使用Cortex-M系列,需要较高性能需要即时处理的系统则改用Cortex-R系列。
1、Cortex-A
ARM Cortex-A 系列的应用型处理器可向托管丰富的操作系统平台的设备和用户应用提供全方位的解决方案,包括超低成本的手机、智能手机、移动计算平台、数字电视、机顶盒、企业网络、打印机和服务器解决方案。高性能的 Cortex-A15、可伸缩的 Cortex-A9、经过市场验证的 Cortex-A8 处理器和高效的 Cortex-A5 处理器均共享同一体系结构,因此具有完整的应用兼容性,支持传统的 ARM、Thumb? 指令集和新增的高性能紧凑型 Thumb-2 指令集。
2、Cortex-RARM Cortex-R 实时处理器为具有严格的实时响应限制的深层嵌入式系统提供高性能计算解决方案。目标应用包括:
在这些应用中,采用的是对处理响应设置硬截止时间的系统,如果要避免数据丢失或机械损伤,则必须符合所设置的这些硬截止时间。因此 Cortex-R 处理器是专为高性能、可靠性和容错能力而设计的,其行为具有高确定性,同时保持很高的能效和成本效益。
Cortex-R 实时系列处理器使用实时操作系统提供在硬实时限制下运行的高性能和深层嵌入式应用的必要功能。此功能集将 Cortex-R 与 Cortex-M 和 Cortex-A 系列处理器区别开来。显而易见,Cortex-R 提供的性能比 Cortex-M 系列提供的性能高得多,而 Cortex-A 专用于具有复杂软件操作系统(使用虚拟内存管理)的面向用户的应用。
3、Cortex-MARM Cortex-M 处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。
Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。
比较 Cortex-M 处理器
Cortex-M 系列是必须考虑不同的成本、能耗和性能的各类可兼容、易于使用的嵌入式设备(如微控制器 (MCU))的理想解决方案。每个处理器都针对十分广泛的嵌入式应用范围提供最佳权衡取舍。
ARM Cortex-M0ARM Cortex-M3ARM Cortex-M4
“8/16 位”应用
“16/32 位”应用
“32 位/DSC”应用
低成本和简单性
性能效率
有效的数字信号控制
Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个 Cortex-M 处理器无缝发展到另一个成为可能。
体系架构ARM采用RISC(Reduced Instruction Set Computer,精简指令集计算机),支持Thumb(16位)/ARM(32位)双指令集,其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
ARM体系结构从V1到V7 ,除了Cortex-M0、Cortex-M1為ARMv6-M,冯-诺依曼之外,其他Cortex的处理器架构更新到ARMv7,一样由高至低分成ARMv7-A、ARMv7-R、ARMv7-M三种,其中ARMv7-M不支援最原始的ARM指令集,仅支援16bit的Thumb指令集,卻加入NVIC(Nested Vectored Interrupt Controller),提供更快的中断处理、还有负责CPU在深度睡眠时的中断处理WIC(Wake-up Interrupt Controller)。前不久ARM正式宣布推出新款64位ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额。
针对A系列:以由高到低的方式来看,ARM处理器大体上可以排序为:Cortex-A57处理器、Cortex-A53处理器、Cortex-A15处理器、Cortex-A9处理器、Cortex-A8处理器、Cortex-A7处理器、Cortex-A5处理器、ARM11处理器、ARM9处理器、ARM7处理器,再往低的部分手机产品中基本已经不再使用,这里就不再介绍。
Cortex-A57是ARM最先进、性能最高的应用处理器,号称可在同样的功耗水平下达到当今顶级智能手机性能的三倍;而Cortex-A53是世界上能效最高、面积最小的64位处理器,同等性能下能效是当今高端智能手机的三倍。这两款处理器还可整合为ARM big.LITTLE(大小核心伴侣)处理器架构,根据运算需求在两者间进行切换,以结合高性能与高功耗效率的特点,两个处理器是独立运作的。
Cortex-A15处理器架构解析
ARM Cortex-A15处理器隶属于Cortex-A系列,基于ARMv7-A架构,是业界迄今为止性能最高且可授予许可的处理器。
这部分详细可以参考:http://www.360doc.com/content/13/1031/14/3038654_325586786.shtml#
接下来我们可以看一下Cortex-M系列
Contex-M是ARM11的后续版本,Cortex系列,Cortex系列又分为低端M中端R和高端A,其应用场景也不一样。
Cortex-M系列包括Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4,不同的系列包含不同的芯片,我所做的Stm32F407VG是意法半导体公司 针对Cortex-M系列推出的ARM芯片。个人感觉其因为将底层操作封装成库函数,使得针对芯片的硬件编程变得比较容易,所以得到广泛应用。
编程根据芯片手册,外加库函数的说明,这样就足够了,开发环境也比较多,这次的开发是在Keil环境下开发的。
下面介绍一下CC1200芯片
CC1200是德州仪器推出的低功率高性能低于1GHz的无线射频(RF)收发器。
其主要工作在高频段433MHz和915MHz,调制方式分为幅移键控、频移键控、相移键控等。
蓝牙和WIFI是在2.4GHz公共频段工作,采用的是802.11协议族
蓝牙和WIFI都属于无线通信网络标准。
它们的相同点是都工作在ISM2.4GHz公共频段。
不同的地方是,蓝牙使用的是FHSS(跳频扩谱)方式,一般每秒钟跳变1600次,将83.5MHz的频带划分为79个频带信道,每个时刻只占1MHz的带宽。调制方式是GFSK(高斯频移键控),可以同时进行数据和语音的无线通信,通信距离一般是10米,在今年4月份推出的最新的版本Bluetooth4.0传输距离可以达到50米。现在各种数码产品中基本上都可以集成蓝牙功能,比如,手机,耳机,打印机,键鼠,相机等等,使用范围极其广泛,最后说明一下,蓝牙需要设备匹配,只能点对点连接。
而wifi所使用的协议时IEEE802.11b局域网协议,它的传输范围100米,速度最大可以达到11Mbps,使用的是DSSS(直序列扩频)和QPSK或BPSK(相移键控),带宽是22MHz。主要提供的是无线上网业务,因此经常可以在需要无线移动上网的设备中看到它的身影,比如笔记本,PDA,智能手机等,WIFI相当于无线路由,可以实现一对多的连接。
通过SPI与MCU进行通信控制发送。
编程可根据其用户手册,基本就能完成程序编写。
如有错误,希望留言纠正。