基于CC1310芯片的多通道高速率低功耗无线传感系统
2022-11-30段瑞枫吕燕洁杜文基周游
段瑞枫,吕燕洁,杜文基,周游
(1.北京林业大学 信息学院,北京 100083; 2.国家林业草原林业智能信息处理工程技术研究中心,北京 100083;3.北京航空航天大学 电子信息工程学院,北京 100191; 4.中国科学院计算机网络信息中心,北京 100190;5.中国科学院大学 计算机科学与技术学院,北京 100049; 6.芯擎科技有限公司,北京 100012)
20世纪90年代开始,无线传感网络技术得到快速发展,微小传感器技术和节点间的无线通信能力为传感器网络赋予了广阔的应用前景,主要应用在军事、环境、健康、家庭及其他一些感知监测区域[1-3]。在航空航天领域,当运载火箭飞行时,需要实时获取温度、湿度、振动等相关参数,传统的电缆数据传输中,数据采集区域宽,占用空间大,运载火箭工作环境严峻,在发射过程中线路极易损坏,导致测量数据丢失,因此电缆设计和保护非常复杂。采用无线传感网络时,节点间通信不会占用箭体的内部空间,节点间依赖减小,减轻了运载火箭电气系统的质量,降低了发射成本。因此无线传感网络技术在航空航天领域的应用正逐渐成为研究热点[4-5],在保证信息可靠采集的情况下,如何提高无线系统的传输速率是关键。
无线传感网络是一种分布式系统,协议的运行、调度、数据传输等均建立在精确的时间同步基础上[6-7],节点数量也是衡量系统性能的指标之一[8]。节点过少时,不能满足运载火箭多监测量的数据获取;节点过多时,相互独立的各节点协同工作的难度大幅增加,时间同步极具挑战性。传统的参考广播同步算法(reference broadcast synchronization,RBS)利用自身的本地时间与参考节点的时钟差值进行自我调节,但难以满足大数量节点的同步;能量有效参考广播同步算法(energy-efficient RBS,ERBS)对RBS进行了改进,但当无线传感网络环境发生改变时会产生较大的计时误差[9-10]。因此本文将研究多节点时间同步的问题。
无线传感网络可靠工作依赖于高效的传输协议,目前主流协议有ZigBee协议、LoRa协议等。ZigBee协议由于发射功率较小,因此具备低功耗的优点,但是也降低了传输速率,其最大传输速率为250Kbps,不满足本系统高速率的需求[11-12]。LoRa协议在相同功耗下比其他无线传输方式传播距离更远,但是其成本偏高,占用带宽大,抗干扰能力弱,无法满足航空系统中的低成本可靠性的传输需求[13]。此外,这些协议均为通用协议,不具有保密性,不适合航空航天领域的应用,本文将研究适用于运载火箭的无线传输协议。
部署于箭体上的传感器子节点无法外接电源,需采用电池供电,因此低功耗对于本文研究的无线传感系统尤为重要,可以从硬件平台及软件传输协议的设计来实现低功耗[14]。文献[15]即从微带电路与软件协议两方面进行设计,通过轮询协议和防碰撞算法实现了功耗的降低,但电路尺寸较大且不适用于大量子节点的无线通信系统。文献[16]设计了基于星型网络拓扑结构的无线组网方式,提出了基于节点模式切换的低功耗重传方案,结果表明3个子节点工作时平均功耗为3.2mW,达到了低功耗,但并未优化传输速率。本文基于低功耗芯片CC1310,设计节点模式切换方法来降低系统功耗。
综上所述,本文设计了一个适用于航天运载火箭的无线传感系统。基于CC1310芯片,提出了组间频分复用(frequency division multiplexing,FDM)结合组内时分复用(time division multiplexing,TDM)的组网方式,极大增加了系统可支持的节点数,即通道数;多个频段同时传输也提升了系统的速率复用倍数;设计主节点授时的同步方案,实现了多节点高精准同步,保证系统可靠性;设计一种多节点分时传输协议,避免节点间碰撞,提高了组内传输速率;采用节点唤醒/休眠模式切换策略,极大地降低了系统功耗。系统基于硬件编程实现,具有灵活的重配置能力,便于升级和扩展。
1 无线传感系统总体设计
本文所设计的无线传感系统由中心节点板卡和传感器子节点组成,系统整体结构如图1所示。中心节点板卡上包含若干个主节点和一个FPGA处理器。对所有传感器子节点进行分组,每组包含一个主节点和多个子节点。子节点将采集到的数据发送给同组内的主节点,主节点将数据汇总后发送给FPGA,FPGA将数据再次汇总后传送给后级处理单元。
图1 系统整体结构Fig.1 Overall structure of system
因子节点体积与功率受限,且无线系统需要实现多通道数据高速率传输,选用CC1310芯片,主要有以下4个优势:①芯片高度集成化,集传感器数据采集、ARM及射频处理器于一体,且体积小;②具有超低功耗的特点,支持电池供电,接收电流仅为8mA,休眠电流最小值仅为2μA;③数据传输速率最快可达4Mbps,支持多频段通信;④采用GFSK调制,抗干扰能力强,且支持自动CRC校验和多次重传,保证了数据传输的可靠性。
为了简化系统开发流程,节约设计成本,无线传感网络的子节点与主节点均基于CC1310芯片搭建。芯片内置的ARM Cortex-M3可用于编程,实现数据传输协议及工作模式切换。子节点核心电路单元包含一个CC1310芯片和若干个传感器,采用电池供电;主节点主要使用无线通信功能。核心处理器FPGA因没有操作系统,具有功耗低和可编程重配置特点,管脚功能也可以灵活定义,便于后续扩展。本系统选用一款中型FPGA处理器EP1C12Q240I7实现无线节点的管理及数据组帧等逻辑运算。FPGA可以接收后级模块下发的命令来改变无线节点的工作模式等。
2 系统高速率数据传输设计
2.1 频分复用结合时分复用组网设计
CC1310芯片支持多个频段(287~351MHz,359~527MHz,718~1054MHz)的无线通信[17],基于此提出了组间频分复用结合组内时分复用的组网方式,对多个子节点进行分组管理。
无线传感器系统组网示意图如图2所示,中心节点包含M个主节点,不同的主节点被配置到不同的频段,组间频分复用成倍地增加了子节点的数量及系统传输速率。一个主节点只与同频段内的N个子节点通信,构成一个分组。在分组内部,为避免干扰和碰撞,同一时刻最多仅有一个子节点处于发送状态,因此,采用时分复用的方式,将一个传输周期划分为多个时隙,每个子节点仅占据一个时隙进行数据传输。
图2 无线网络组网示意图Fig.2 Schematic of wireless network
另外,各节点独立工作,保持一个由自身时钟测量的本地时间。因生产加工过程会导致同型号器件存在差异,使得各节点出现计时偏差,进而影响系统时间同步,给系统的正常工作带来挑战[18]。且节点数越多,系统时间同步的复杂度也越高。采用组间频分复用方法可减少组内子节点个数,降低无线通信系统的同步复杂度。当分组数为M时,在同样的计时精度约束下,可容忍的计时偏差变为原来的M倍,该优势可用于延长同步校准周期,降低系统开销,提高传输效率。
2.2 无线传感系统组内节点时间同步方法
为避免节点碰撞,应实现高精准同步,本文设计了主节点定时授时方法。主节点均位于中心节点板卡上,具有时钟一致性,因此,仅需达到组内的子节点与主节点时钟一致,即可实现整个系统的时间同步。主节点定时授时法即每隔一个授时周期T,主节点广播授时帧,各子节点根据监听到的授时信号调整本地计时器,消除累计误差。周期性授时同步示意图如图3所示。图中:每一行的命令时隙和传输时隙合称为一个传输周期Ts,在此时间内,所有子节点完成一次数据上传。若干次传输周期之和即为一个授时周期T,每个节点的传输时隙长度可以根据需要分别设置。
图3 系统周期性授时同步示意图Fig.3 Schematic of system periodic timing synchronization
理论分析表明,在相邻节点传输时隙间留有一定保护间隔tp,只要在授时周期T内,相邻节点的最大计时偏差累积量小于保护间隔,就可避免节点碰撞。因此,时间同步的关键在于:如何设计保护间隔tp和授时周期T。
计时偏差取决于节点本地时钟的频率稳定度,各无线节点采用ARM CPU作为核心处理器,其集成一个系统计时器,时钟频率可选,最高可达48MHz。本系统采用24MHz频率进行计时,晶振稳定度约每100MHz时偏差±10Hz,即1s过后子节点的计时偏差tb最大可达到2×10-5s,即间隔T后,各节点计时误差最多相差Ttb。因此只要令tp≥Ttb,就可避免碰撞。如图4所示,最小保护间隔tpmin与授时周期T的关系是典型的线性关系。
图4 最小保护间隔与授时周期的关系Fig.4 Relationship between minimum protection interval and timing period
另外,传感器能量有限也是进行时间同步时首要考虑的问题。太过频繁的授时会导致节点能量消耗增加,并且授时时隙tsyn不能用于数据传输,系统同步开销增加,从而降低传输效率。授时间隔太长则要求保护间隔足够大,传输时隙内真正用于数据传输的时间减少,造成传输速率降低;保护间隔太小则会使得各子节点与主节点失去同步,产生节点碰撞,降低系统传输速率和可靠性,因此,应合理的设定授时周期。授时周期的设计方法将在2.3节传输协议的优化设计中给出。
在授时时隙内,主节点在组内广播3帧授时帧,发送3帧是为了确保子节点可监听到授时信息。子节点根据接收到的第1个授时帧编号计算得出本地时间的置0时刻,如图5所示,t为中心节点发送一帧授时帧所需时间,空中传输时间忽略不计。如果子节点收到了编号为k(1≤k≤3)的授时帧,则再经过3-k个t时刻之后将本地时钟置0。
图5 系统各节点时钟同步示意图Fig.5 Schematic of system nodes clock synchronization
2.3 无线传感系统多节点传输协议设计
在多通道无线传感器系统中,系统时间同步是可靠通信的基础,如何实现各子节点与主节点间的无碰撞通信,并尽可能提高可达的传输速率是系统的最终目标,这就需要合理安排每个子节点的数据发送时刻与发送时隙,并优化设计授时周期及保护间隔,即多节点传输协议的设计。
一个授时周期T内,包含有r轮传输周期Ts,为了保证系统实时采集与传输,在一个传输周期内需要将所有子节点采集的数据均发送给主节点。以无线通信系统的一个频段为例,假设此频段内现有N个正常工作的子节点,且每个子节点的采样率可能不同,各子节点编号为i(1≤i≤N),其对应的采样率为fi(1≤i≤N)。为避免产生碰撞,需在相邻子节点传输时隙之间留出保护间隔tp。
由图3所示,一个传输周期Ts包括了命令时隙tc(用于完成系统的模式配置)、N个子节点的传输时隙,协议中所有时间变量均以秒为单位。在每个传输周期开始时,都可以重新配置各子节点的采样速率和传输时隙长度。CC1310芯片对采集到的数据进行Q比特的量化,其数据传输速率可利用程序测试得出,各子节点根据自己的采样率计算传输数据所需传输时隙长度。
无线通信系统中,在满足所有子节点时间同步的前提下,要保证可靠的数据传输,需严格计算各子节点的数据发送时刻。根据各子节点的发送时隙,可以推算出第k(1≤k≤r)个传输周期时第i个子节点的发送时刻tstart_ki为
式中:tn为第n个子节点的传输时隙长度。
根据传输周期的时隙组成,得到子节点数N与授时周期T的约束关系:
式中:tki为第k个传输周期时第i个节点的传输时隙。不失一般性,设一个授时周期T内,每个传输周期的时间Ts相同,系统实际传输时所需的净荷传输速率为Rd,表示为各个子节点的采样率乘以量化比特数再求和:
由式(3)可知,当一个传输周期的节点数越多,量化值越精确,所需的传输速率Rd就越大。系统设计时,应保证最高可达的传输速率Ra≥Rd,才能满足航天运载火箭应用的实际要求。
单频段内最大可达的传输速率,其主要由授时周期T、子节点个数N及传输时隙tki所决定。为了简化分析,假定各子节点采样速率相同,即所需的传输时隙tki≡t1。不失一般性,设命令时隙与子节点的传输时隙长度也相同。则分组内可达传输速率计算如下:
式中:Rt1为t1的函数,表示在t1内CC1310全部用于传输数据时可达到的传输比特数,该数值可以通过程序测试得出。经编程测试后发现,当t1>10ms时,Rt1与t1呈 正 比 例 关 系,表 明 此 时CC1310发送程序中用于数据发送的时间远远大于程序初始化处理时间,程序设计具有高效性。实际应用中,为保证CC1310传输效率高,取t1>10ms。结合图3,可以得出T=r(N+1)t1,显然当tp取得最小值Ttb时,有利于Ra取到最大值,即式(4)中结果。当节点数N≫1时,(N+1)≈N。记r(N+1)=v,保护间隔不会超过一个传输时隙的总长度,即tp=vt1tb≤t1,单频段内可达传输速率最大化可建模为如下优化问题:
式中:子节点在1s内的计时误差tb取最大值2×10-5s;v对应的为一个授时周期内所有传输时隙的个数,应取整数,其取值范围为2≤v≤50000。单频段内最大可达传输速率Raopt由参数t1、tsyn和变量v决定,tsyn和t1可预先设定。本文系统设t1=15ms,测得Rt1为3.2Kbits。为了便于系统设计,授时时隙tsyn也取15ms,根据v的取值范围采用遍历搜索的方法对上述优化问题进行求解。授时周期T=vt1,遍历搜索后,单频段可达传输速率Ra随授时周期T的变化规律如图6所示。
图6 单频段可达的传输速率Fig.6 Achievable transmission rate on single frequency
由图6可知,授时周期T为3.35s时,对应的最优值vopt=r(N+1)=223,可得达到单频段传输的最大速率Raopt=213Kbps。在保证最高可达传输速率时,N和r可以互换,可以根据节点数N来调整传输轮数r,当N=30时,求得r=7,当系统有4个频段同时工作时,可支持的节点数为120。实际传输时,需要在功耗和速率之间进行折中,得到一个工程上的近最佳授时周期值。当每个节点的采样速率不同时,可以将高采样率节点等效为若干个低采样率节点,再进行求解。
以一个频段为例,当M个频段同时传输时,可达的合路传输速率Rasum为
可见,随着复用频段数增加,系统合路传输速率会成倍扩增,满足航天运载火箭模拟信号监测的高速率传输需求。
3 系统低功耗实现方法
CC1310芯片具备多个模式,其中包括射频模式和低功耗模式,通过编程配置即可切换。本系统采用唤醒/休眠的模式切换策略在实现系统功能的前提下进一步降低系统功耗。
如图7所示,系统上电后,主节点获取当前频段内所有活跃子节点的编号和采样率。进入授时期,主节点为发送模式,向各子节点广播3次授时帧进行系统时钟同步;同步完成后,向各个子节点广播2次命令帧,用于完成系统的模式配置;进入数据传输阶段主节点切换为接收模式,接收来自各子节点的数据。在一个传输周期Ts末,各个主节点读取后级模块发来的配置命令。如果本次传输周期Ts结束时刻,正好也是一轮授时周期T结束时刻,则系统进入授时同步状态,主节点转换为发送模式,继而发送授时帧,否则主节点发送命令帧。
图7 主节点状态转移图Fig.7 Master node state transition diagram
如图8所示,系统上电后,子节点处于接收模式,接收来自主节点的授时帧,根据帧编号计算本地时钟置0时刻,从而与主节点保持同步;之后子节点仍处于接收状态,接收主节点发送的命令帧,调整其数据发送时刻与发送时隙,以达到系统配置的要求;进入数据传输阶段后,子节点先切换为休眠模式,等待直至自己的传输时刻到来,子节点切换为发送模式,向主节点发送采集到的数据,发送完毕后再次切换为休眠模式;等待命令时隙或授时时隙到来,子节点被唤醒,切换为接收模式。
图8 子节点状态转移图Fig.8 Sub-node state transition diagram
通过唤醒/休眠的模式切换策略,各子节点仅在命令时隙和自身传输时隙的有效时间内处于射频模式,其他时间均处于休眠模式。假设节点处于射频模式时功耗为PRF,处于休眠模式时功耗为Pidle。在唤醒/休眠模式切换策略下,单个子节点在一个完整周期T+tsyn内的平均功耗为
式中:为简化系统设计,令tc=t1=15ms。在未使用模式切换策略时,即每个子节点全程工作于射频模式,此时单个节点在一个完整周期T+tsyn内的平均功耗即为PRF。由2.3节分析可知,为达到最高传输速率,理论上最佳的授时周期为3.35s,但是太过频繁授时会增加系统功耗,工程应用中,在满足所需的净荷传输速率的情况下,可适当增大授时周期来达到低功耗。设Rd=200Kbps,参见图6,选择T=50s,Ra=201Kbps,传输速率满足需求,且授时周期增长约14倍,对比单个子节点平均功耗,如图9所示。
由图9可知,采用模式切换并且T为最佳值3.35s时,与未采用模式切换方式相比,单节点平均功耗显著降低,降低比例为0.4%~78%。当子节点数较少且传输时隙较短时,因同步时隙和命令时隙占比重较多,而这2个时隙节点处于射频模式,即使采用模式切换,子节点平均功耗相对较高。随着子节点数增多,模式切换的平均功耗越逼近休眠模式功耗。当工程应用中选择T=50s时,与理论最优的T=3.35s相比,功耗进一步降低,降低比例达2%~5%。可见,延长授时周期可进一步降低系统功耗,实际应用中,可根据传输速率要求,结合图6确定满足条件的最大授时周期T,使得系统功耗尽可能低。
图9 单个子节点平均功耗Fig.9 The average power for a sub-node
4 实验结果与分析
采用5个传感器子节点和2个主节点进行系统测试,将其分为2组,第1组的子节点编号为1、2、4,无线收发频段为868MHz,第2组的子节点编号为6、8,无线收发频段为915MHz。各子节点所采集模拟信号及采样率设置如表1所示。为了更好地显示系统功能和性能,本文系统也开发了上位机软件用于监视各节点工作状态。
表1 传感器子节点采集信号与采样率Table1 Acquisition signals and sampling rates of sensor sub-nodes
4.1 系统速率测试
各传感器子节点与中心节点距离10m以内,进行短距离无障碍通信。上位机软件界面显示了系统各子节点所采集的模拟信号,如图10所示,此时波形图为子节点2采集的1kHz正弦波。
图10 上位机软件运行工作图Fig.10 Computer software operation diagram
在本文系统测试中,授时周期T=50s,tsyn=15ms,CC1310对模拟信号采用8bit量化,为了在节点数很少时仍能测试系统的最高实际传输速率,令每个分组内每个节点在Ts内多次等概率出现,即用2个或3个真实节点模拟出N=30个子节点,保证传输时隙不空闲,传输时隙长度仍为15ms。系统中实测的各子节点的传输速率统计如表2所示,每个频段内所有子节点速率之和约200Kbps,系统总速率达到400Kbps,与理论分析结果一致。因组内各子节点等概率出现,测得的各子节点传输速率相同,但其按需传输时的净荷传输速率取决于真实采样速率。
表2 子节点传输速率Table2 The transmission rate of sub-nodes
4.2 子节点功耗测试
本文系统中所设计的传感器子节点实测体积为3cm×3cm×1cm,其质量约10g。
子节点使用3V干电池进行供电,测得子节点处于工作模式时的电流为20mA,PRF=60mW,处于休眠模式的电流为4mA,Pidle=12mW。采用模式切换后,根据式(7),计算得出单个子节点的平均功耗为low=14.9mW(等效于N=30),在电池电量为10Ah时,能连续工作83天,而在未采用模式切换时,仅能连续工作20天。
4.3 系统可靠性及鲁棒性测试
改变子节点与中心节点的距离测试系统的可靠性和鲁棒性,以子节点6为例,测试结果如图11所示。由图11可知,子节点距离中心节点20m内,可正常通信,实际传输速率在100Kbps的小范围内波动;但两者距离从20m增加至50m时,子节点的传输速率持续下降,最终在接近50m时,传输速率为0;此时当子节点再次靠近主节点时,通信可自主恢复,子节点的传输速率提升直至稳定于100Kbps。本文系统也测试了子节点与主节点在有墙障碍时的无线通信,结果显示,当墙体为单层时,两者能正常通信,墙体大于单层时通信中断。
图11 子节点6传输速率随距离变化的测试结果Fig.11 Test result of transmission rate for single sub-node6with changing distance
在所有测试场景下,均未发生节点碰撞的情况,说明系统具有可靠性。当某个子节点发生故障时,并不影响整个系统的运行,说明系统具有鲁棒性。子节点数目及采样率均可通过程序配置动态调整,系统具有较好的灵活性和可扩展性。
5 结 论
1)本文基于CC1310芯片设计并实现了一个适用于运载火箭的多通道无线传感系统,提出频分复用结合时分复用的组网方式,增加系统可支持的子节点数,提高了系统的速率复用倍数。
2)设计了主节点周期性授时方案,保证系统的高精准同步;并以可达传输速率最大化为目标,优化设计了分时传输协议,提升了分组内传输速率。结合工程实际应用,对最佳授时周期进行修正。
3)提出唤醒/休眠模式切换策略,极大降低了子节点的平均功耗,充分满足航天运载火箭对于无线传感系统的低功耗需求。
4)本文设计的系统具有较好的可靠性和鲁棒性,硬件采用CC1310芯片及FPGA平台,可编程配置,便于后期扩展升级。