摘要:本文依据实践需求,在完结无线数据传输体系基本功用的前提下,选用功耗较低的CC1120芯片作为无线收发单元。在剖析CC1120功用特性并介绍嵌入式操作体系μC/OS—III的基础上,论述怎么完结依据STM32F103ZE渠道的CC1120驱动程序。
关键词:CC1120;嵌入式操作体系;STM32F103ZE;驱动规划
导言
跟着频率资源的日趋严重,短距离无线通讯按窄带化趋势开展。无线数传模块一般由微处理器和收发芯片组成,本文所规划的窄带数传模块的微处理器选用了STM32F103ZE芯片,收发芯片选用了TI公司新推出的CC1120,CC1120经过SPI串行总线协议与MCU相衔接。一起,选用了可移植、可植入ROM、可裁剪、抢占式的实时多使命操作体系μC/OS—III作为软件渠道。
1 体系硬件电路
1.1 CC1120的内部结构
CC1120是TI公司专为经济高效的无线体系在低功耗和低电压操作下,完结数据传输而规划的一款彻底集成的单芯片无线收发器。该芯片首要使用于ISM(工业、科学和医疗)以及SRD(短程设备)频带。CC1120的首要特性有:体积小,超低功耗,可装备数据速率(1.2~200kbps),可编程操控输出功率(步长为0.5 dB,最高功率16 dBm),接纳机灵敏度高(1.2 kbps数据速率下为123 dBm),还支撑2FSK、2GFSK、4FSK、4GFSK、MSK、ASK、OOK及模仿FM多种调制方法等。
CC1120的内部结构框图如图1所示。CC1120具有一个低功耗IF接纳机,低噪声扩大器(LNA)将接纳到的RF、信号扩大,并在求积分(I和Q)进程中被降压转化至中频(IF)。在IF下,I/Q信号被ADC数字化。主动增益操控(AGC)、准确信道滤波和调制解调位/数据包同步均以数字方法完结。CC1120的发射器部分依据RF频率直接组成,频率组成器包含一个彻底片上LC VCO和一个90°相位转化器,用来在接纳形式下向降压转化混频器生成I和Q本振信号。一个4线SPI串行接口用于装备数据和缓冲区存取。数字基带包含了对信道装备、数据包处理以及数据缓冲的支撑。
1.2 CC1120的装备特性
装备存放器的读、写操作时序如图2所示。经过一个4线串行SPI兼容接口(SI、SO、SCLK和CSn)可对CC1120进行装备,该接口还可用于读取和写入缓冲数据。SPI接口上的一切数据传输均以最高位开端。
SPI接口上的一切业务均以一个报头字节作为开端,该字节包含一个R/W位、一个突发存取位(B)以及一个6位地址(A5~A0),报头字节帧格局如图3所示。在SPI总线上传输数据期间,CSn引脚有必要坚持低电平,不然传输就会被撤销。拉低CSn电平常,在开端传输该报头字节曾经,MCU有必要等候,直到SO引脚变为低电平停止。这表明,芯片正在运转。除非芯片处在SLEEP或XOFF状况,不然SO引脚总会在CSn变为低电平今后当即变为低电平。
CC1120的存放器空间首要作为CC1120的频率、数据速率、中频等大部分参数的装备。而扩展存放器大部分为芯片装备辅佐测验存放器(只读),少部分为装备存放器(可读写)。指令选通用于芯片状况切换和冲刷RX/TXFIFO。128字节TX FIFO和128字节RX FIFO均经过0x3F地址进行存取。当R/W位为0时,则TX FIFO被存取;当R/W位为1时,则RX FIFO被存取。其间,TXFIFO为只写,而RX FIFO为只读。存放器地址映射如图4所示。
1.3 硬件衔接联系
窄带无线数据传输体系的STM32F103ZE与无线收发芯片的硬件衔接联系如图5所示。左边为STM32F103ZE,它是一个32位、依据ARM Cort ex—M3内核的无线收发芯片。除了正常作业形式外,还支撑睡觉、待机、停机作业形式,当一切外设都处于作业形式时耗费36 mA,待机时下降到2μA。CC1120内部集成的SPI接口的传输速率最高可到达18 Mbps。
右侧为无线收发芯片CC1120。CC1120的外部操控引脚首要有复位接口、SPI串行接口以及4个通用输出引脚GPIO0~GPIO3。其间,4个通用输出引脚在实践使用中,能够经过装备存放器使它们为上层实时供给同步字或数据包收发状况等使用。在硬件渠道上,CC1120的SPI串行接口(CSn、SCLK、SI、SO)别离衔接到STM32F103ZE相应的4个SPI串行通讯弓I脚(即SPI2_NSS、SPI2_SCLK、SPI2_MOSI、SPI2_ISO上)。经过这4根线,TM32F103ZE能够对CC1120进行参数装备、芯片状况切换以及RX/TX FIFO的读写。因为CC1120只要SPI从形式,因而TM32F103ZE选用SPI主形式。别的,本计划还选用了1个通用数字输出引脚GPIO0,用来完结数据包分组发送指示。一起,TM32F103ZE能够经过操控RESET引脚,复位无线收发芯片。
通讯方法为SPI串行通讯时,时钟源由STM32F103ZE供给,经过装备处理器存放器,SPI的SCLK时钟频率为4.5 MHz。经过TM32F103ZE内部的8位移位存放器,完结CC1120与STM32F103ZE的串行数据交换。CSn引脚首要用来操控数据通讯的同步性,通讯期间要一直确保CSn引脚的电平为低。可是,需求留意的是CC1120的CSn引脚的时序并未彻底遵循SPI时序标准,因而,STM32F103ZE的SPI2_NSS引脚需求设置成一般GPIO接口形式,并选用软件操控方法。
2 软件渠道
μC/OS—III完结了一个依据优先级调度的抢占式内核,并在这个内核之上供给了最基本的体系服务,例如信号量、邮箱、音讯行列、内存办理、中止办理等,但它并不供给设备办理和文件体系办理。
信号量用于操控共享资源的拜访,可用于中止服务子程序与使命间、使命与使命间的同步。本规划中选用信号量机制来办理两个共享资源,发送缓冲区和接纳缓冲区。读使命、中止服务子程序和接纳环形缓冲区之间的联系如图6所示。图中的共享资源为接纳环形缓冲区,IN和OUT别离为入队和出队指针。当IN等于OUT时,则接纳环形缓冲区为空,调用OSSemPend()堵塞读使命;当IN不等于OUT时,假如读使命被堵塞,则在中止服务子程序中调用OSSemPost()唤醒读使命。
3 CC1120驱动完结
本文参阅了国内研究者提出的μC/OS下通用驱动结构模型,将CC1120驱动架构模型划分红上层拜访笼统接口层、硬件设备驱动模块层和硬件设备接口操作层。其间,上层拜访笼统接口层经过对硬件渠道的笼统,能够在体系开发中向上层使用屏蔽硬件特征,然后完结软/硬件的别离;硬件设备驱动模块层是整个驱动结构的中心封装层,经过该层的封装,对上一层屏蔽了SPI硬件接口;而硬件设备接口操作层是完结对底层硬件SPI串行接口的功用操作,经过调用该层接口,能够完结CC1120供给的悉数功用。
3.1 驱动体系结构
CC1120的驱动体系结构如图7所示。上层拜访笼统接口层是驱动体系中的最高层,该模块首要完结了数据包发送与接纳功用,并对无线收发芯片的状况进行操控和获取RSSI值。其间,perCC1120Init()接口首要完结CC1120的初始化、发动并装备芯片等功用;perCC1120Read()完结数据包的接纳,以及对读缓冲区的办理;perCC1120Wrire()完结数据包的发送,以及对写缓冲区的办理;perCC1120Ioctl()完结了CC11 20的各个作业状况的切换(包含休眠和唤醒)和获取RSSI值。
硬件设备驱动模块层完结对上层拜访笼统接口层操作,屏蔽了硬件SPI接口,供给了对CC1120的存放器和FIFO的读写操作。其间,CC1120 SpiWriteReg()和CC1120SpiReadReg()别离供给了存放器的写和读操作功用,屏蔽了8位和16位存放器的差异;CC1120SpiWriteTxFifo()和CC1 120SpiReadRxFifo()供给了FIFO的接连写和读操作功用。
硬件设备接口操作层是对CC1120的硬件SPI接口的直接操作和软件表达,该层为整个驱动模块供给了SPI同步串行通讯机制。其间,trx8 BitRegAccess()完结了8位存放器的存取功用;trx16BitRegAccess()完结了16位存放器的存取功用;trxSpiCmdStrobe()完结了芯片的指令选通功用,用于芯片作业状况切换。
本文结合CC1120驱动体系结构,扼要介绍其首要功用,即数据包的收发。
使用层发送数据包之前,先调用perCC1120Ioctl()获取信道的RSSI值,当RSSI值低于信道繁忙的门限值时,则调用perCC1120Write()将需求发送的数据发送出去。perCC1120Write()的作业流程图如图8所示。本文使用了CC1120的通用GPIO0引脚,经过恰当装备,该引脚电平会在发送或许接纳完一个数据包时发生一个下降沿跳变。当上一包数据包发送结束之后,GPIO0触发中止,STM32F103ZE进入中止处理程序,将会发送写缓冲区中的下一包数据包,直至发送缓冲区为空,再把CC1120置于闲暇或休眠状况。
当上层不处于发送状况时,CC1120都将置于接纳状况或增强型无线电唤醒状况,当接纳到一个数据包时,GPIO0引脚发生一个下降沿中止,STM32F103ZE进入中止处理程序,调用CC1120SpiReadRxFifo(),从接纳缓冲RXFIFO中读取数据包,并将其放入接纳环形缓冲区中。假如接纳环形缓冲区满时,将抛弃当时接纳到的数据包。上层经过调用perCC1120Read()接口读取接纳到的数据包,当接纳缓冲区为空时,将堵塞上层的读取进程。perCC1120Read()的作业流程图如图9所示。
3.2 CC1120的装备关键
(1)存放器装备软件
针对CC1120的存放器装备,TI公司供给了SmartRFStudio 7软件。经过这个软件能够对CC1120进行装备,以取得最佳存放器设置以及功用和功用评价。装备软件依据用户输入的发射频率、晶振频率、符号速率等参数,生成相应的存放器装备信息。
(2)数据包处理的硬件支撑
CC1120内部支撑的数据包处理方法有前导码、同步字、地址过滤、CRC、数据白化、状况字节、字节倒置等,一起,数据包长度类型支撑固定长、可变长、无限长3种形式,能够经过手动装备PKT_CFG0~PKT_CFG2来完结。
(3)增强型无线电唤醒
在程序的完结进程中,当CC1120长期没有接纳到数据时,则敞开增强型无线电唤醒功用(存放器WOR_CFG0.RC_PD=0),并发送SWOR指令选通指令,将芯片作业状况切换到睡觉状况。CC1120将在MCU不干涉的前提下,周期性地从睡觉状况中唤醒并监听数据包的到来,然后下降体系的全体功耗。
(4)接纳的信号强度指示
CC1120在接纳状况下,能接连地从RSSI状况存放器(RSSI0、RSSI1)中读取到RSSI值,直到检测到一个有用的同步字,这以后RSSI读取值将被冻住。经过设置存放器AGC_CFG1.AGC_SYNC_BEHAVIOR,能够免除RSSI值被冻住的状况。
(5)通用数字输出引脚(GPIO0~GPIO3)
在实践使用中,能够经过存放器(IOCFG0~IOCFG3)装备,为上层实时供给信道或数据包状况等信息。本规划将存放器IOCFG0的值设置为0x06,即利用了GPIO0引脚的电平跳变特色。当CC1120发送完或接纳到一包数据包,触发MCU端口发生中止,并在中止服务程序中进行写入或读取缓冲区TX/RX FIFO等操作,使STM32F103ZE有更多时刻处理其他业务或处于休眠状况,到达下降整个体系功耗的意图。
结语
依据μC/OS—III和CC1120的短距离窄带无线数传体系计划,能够完结低功耗、近距离、牢靠的无线数据传输,具有成本低、可扩展性强、操作灵敏简略的特色。经过对CC1120和STM32F103ZE进行恰当的装备,硬件能在无数据收发的状况下,主动进入低功耗的睡觉或待机状况,能够大大下降硬件体系的全体功耗。很多测验结果表明,该窄带无线数据传输体系数据收发正常,整个体系运转安稳,具有RSSI检测、休眠唤醒等相关功用。