基带芯片物理层控制方案的设计
   来源:现代电子技术     2017年11月29日 22:10

...ESC6270基带芯片,支持GSM-做工赞不赞 拆开Galaxy S4看看就知道

田飞+杨虹

摘 要: 对多核基带芯片物理层控制方案进行了简单的讨论,提出了一种用于GSM移动终端基带芯片物理层控制(L1C)的方案,根据GSM的帧结构设计了基时钟电路,并以物理层信号处理流程为依据,建立了物理层上下行的调度时序,初步完成了基带芯片SoC系统多核之间的任务调度和时序控制。

关键词: GSM; 物理层控制; SoC; 调度

中图分类号: TN914.3?34 文献标识码: A 文章编号: 1004?373X(2014)03?0148?03

Design of physical layer controller of scheme baseband chip

TIAN Fei, YANG Hong

(Chongqing University of Posts and Telecommunications, Chongqing 400065, China)

Abstract: The physical layer controller (L1C) scheme of the multi?cores baseband chip is simply discussed, and a physical layer control scheme for GSM MT baseband chip is proposed. According to the frame structure of GSM, a clock?based circuit is designed. The scheduling sequence for physical layer up and down is established based on the signal treatment process, the task scheduling and timing control among multi?cores in baseband chip SoC are completed initially.

Keywords: GSM; physical layer control; SoC; scheduling

0 引 言

当前的移动电话以基带处理器为核心,其主要完成协议处理、人机接口和简单的应用功能。GSM是当今世界上应用最广泛的无线通信协议,因庞大的用户群和网络投入,GSM网络在未来很长时间内仍将存在。基带芯片的实现也有很多种方案,现今,大多基带芯片均采用多核集成的设计架构,从系统结构划分来看,基带处理器可以分为以下几个子系统:CPU子系统、语音编解码子系统、DSP信道编解码子系统、片上总线及外设子系统,CPU子系统一般完成对整个移动台的控制和管理,包括定时控制,数字系统控制,射频控制,人机接口控制。因此,物理层控制软件的设计是必不可少,对于不同的系统架构、不同的物理层协议而言,控制方案和性能又会有本质的不同,因此,对于物理层控制方案的研究尤为重要。

1 设计依据

1.1 通用芯片架构

本文用到的是一款通用架构的基带芯片[1],如图1所示,上下行分别采用一块DSP,来完成物理层信号处理,由于下行链路任务及算法的复杂度高于上行,额外加一块硬件协处理器,CPU子系统采用一块开源的RISC处理器,协议栈软件运行在一块ARM7处理器上,物理层与协议栈之间用一块双端口SRAM连接。

图1 基带芯片架构图

1.2 物理层帧结构

GSM系统采用TDD模式,其帧结构如下:以TDMA 帧为单位,一个复帧(分为26帧复帧和52 帧复帧)等于26 帧复帧或52 帧复帧,一个超帧等于1 326 TDMA帧,一个超高帧等于2 048 超帧(2 715 648 个TDMA 帧),而每个TDMA 帧分为8个时隙,每个时隙持续0.577 ms,一个时隙等于156.25 b。对物理层的信号处理过程的控制,都是以基时钟提供的帧号、时隙号来实现各部分的同步执行。

1.3 基带数据流

下面以一个全速率语音信道为例[2],划分基带的数据处理流程并将任务映射到具体的处理器中,如图2所示。

图2 语音信道处理过程

2 控制策略

2.1 静态和动态调度

控制方案对物理层任务的调度类似于实时操作系统中的任务调度,可分为静态调度和动态调度。动态任务调度即依赖于任务的优先级来进行动态分配,可以采用抢占式或非抢占式。静态调度的目标是把任务分配到各个硬件处理器,并对每个处理器给出所要运行的任务的静态时序,其调度算法实现简单,且额外开销少。由于移动通信基带芯片的处理时序是基于物理层协议,时序可控并且突发任务少,可以预先完成时序划分及任务映射,因此本文的方案设计采用静态任务调度,将任务直接映射到特定处理器单元,并且划分资源存储空间,没有并行度的任务尽可能地映射到相同的处理器单元。

2.2 集中式控制和主从式控制

物理层控制模块依靠任务状态转换进行物理层模块的控制,可根据系统各个处理单元中任务数、复杂度、及处理时延作为考量,来判断采用集中式控制或者主从式控制。

主从式控制方案,主控制系统负责整个基带处理芯片的调度,包括接收高层命令、进行内部控制逻辑的处理、传递控制命令到辅控制系统;辅控制系统负责单个处理器单元的任务控制,包括接收主控系统的命令、读取配置参数、进行相关的逻辑计算、调用子任务的执行入口。主控系统和辅控系统之间以及辅控系统和辅控系统之间通过任务接口进行交互,任务接口包括软件接口和硬件接口,软件接口指数据消息接口,硬件接口指信号端口。

集中式控制,即整个基带的所有控制任务全部交给RISC处理器进行(相当于一个操作系统),DSP不再单独维护自身的任务队列,而且多个DSP之间不再有任务交互接口,只保留数据的传输,RISC对所有的外设中断进行优先级划分并响应,综合考虑本文所描述的控制方案采用集中式控制,这样大大减轻了各DSP处理器的消耗。

3 控制方案

移动终端大多时候处于IDLE模式下,并且可处于非连续接收(DRX)状态,只需要对系统广播信道BCCH及特定的寻呼组PCH进行监听,因此可在特定的时间段内关断系统的高速时钟,降低系统功耗。

3.1 基时钟设计

本文所述SOC芯片中,单独设计了基时钟单元,如图3所示,主要由系统参考时钟REF timer,上行发送时钟TX timer,下行接收时钟RX timer,帧中断产生单元以及时间校准单元组成,该模块挂在系统APB总线上,为系统提供精准的TDMA帧时钟。

图3 基时钟单元框图

3.1.1 帧中断

如图3所示,系统包括三种帧中断控制单元,timeslot_int,frame_int,multiframe_int,GSM一个标准的TDMA帧长度定义为120 000个26 MHz的周期值[3],为了简化描述,其Verilog代码如下:

Always @ (*)

begin

//时隙中断

if(cnt0 ==15000)

timeslot_int <= 1;

cnt0 <= 0;

else

timeslot_int< = 0;

cnt0 <= cnt0 +1;

//帧中断

if((cnt1 == 8) && timeslot)

frame_int <= 1;

cnt1 <= 0;

else

frame_int<=0;

cnt1<=cnt1+timeslot_int;

//此处略掉复帧的计数过程

end

3.1.2 参考时钟校准

该系统低功耗下为32 kHz时钟,采样时钟为26 MHz,设分别在两个时钟域下的计数器cnt_32k和cnt_26M,在时钟校准使能信号calib_flag的驱动下,这两个计数器进入时钟校准状态并同时从0开始计数,当cnt_32k计数器完成16次计数后,跳出校准状态,此时设cnt_26M恰好计数到calib_value,这个值将作为每次睡眠唤醒后的校准值。采用16作为校准周期,是由于数字电路容易实现以2为基数的整数倍除法。

设在32K下的睡眠时间为sleep_32K_counter(一般为TDMA帧周期的整数倍),则通过乘法器可以算出在26 MHz时钟下的睡眠时间为sleep_26M_counter =(calib_value*sleep_32K_counter)>>4(右移4位),从而计算出唤醒后的参考计数器的值为REF_timer(唤醒时刻)=REF_timer(睡眠时刻)+sleep_26M_counter,以完成从睡眠到唤醒后的系统参考时钟的校准。

3.1.3 上下行收发定时

由基时钟单元中的RX_timer和TX_timer为物理层提供上下行收发定时。物理层在收到上行任务后,根据上行发送的帧号及TA值来计算上行发送时刻TX_ timer,并写入上行射频接口发送任务列表,上行任务需要提前一个帧配置;物理层根据下行信道配置,确定下行burst的接收时刻RX_timer(某个下行帧的起始位置),并配置下行射频接口接收任务列表。通过配置射频接口的收发数据长度和收发时刻,可完成上下行数据的收发,上下行收发时钟可根据系统参考时钟进行实时地更新。

3.2 系统调度流程图

由于基带物理层控制是一个相当复杂的过程,当前暂未考虑GSM物理层过程中的小区选择、功率控制及链路故障检测等复杂场景,而且调度流程暂未考虑数据的缓存。现根据完成一次上下行TCH3语音业务来示意整个调度流程,上下行任务调度及数据处理需要在一个帧内完成,如图4所示,所有外设中断经过中断控制器后给OpenRISC处理器的中断控制寄存器PICSR[31:0],物理层控制软件按中断优先级对其进行集中处理。

图4 物理层调度时序图

3.3 软件设计

软件设计如图5所示,上电后软件程序从外部MEM加载进OpenRISC的QMEM中,然后程序开始执行。首先进入main函数,完成中断注册、物理层参数的初始配置,然后初始化外设接口及硬件模块等。

完成初始化操作后,函数进入等待中断的死循环,开始持续检测外部中断,在中断注册时对系统所有外部中断划分了中断优先级,在检测到中断后,利用中断查询函数,查询中断控制器的对应位,并将该中断清掉以避免循环执行该中断,然后进入中断服务程序,在中断服务程序中进行当前物理层状态的判断,并对硬件进行配置,配置完成后跳出。

图5 物理层控制软件流程图

4 仿真结果

在Linux环境下,通过GCC交叉编译工具链,完成对物理层控制软件的编译、链接及程序的装载[8],并在synopysys公司的VCS仿真工具上完成软硬件的调试,当前只对控制软件是否能对系统进行集中式控制进行了测试,如图6所示,图中蓝色高亮部分为OpenRISC中断控制寄存器,在一个帧的时间内,物理层控制软件能够按中断优先级响应系统各个硬件模块的中断,并完成相应任务的配置。

图6 系统仿真结果图

5 结 语

本文在基于GSM物理层协议,以及通用基带芯片架构的基础上,对基带物理层信号处理流程进行划分,提出了一种物理层控制方案,并设计基时钟电路,建立上下行调度时序,最后,完成软件的设计及代码编写,在RTL级的SoC系统上完成了初步的调度测试,由于物理层算法的灵活性以及硬件架构和各处理器的性能,物理层控制软件也会根据实际的需求做大量的调整及优化,这将在后续的研究中不断去实践和改进。

参考文献

[1] 胡东伟,梁宏明,陈杰.移动终端基带芯片架构概论[J].移动通信,2009(8):29?32.

[2] 陈志冲.GSM手机基带芯片SoC系统设计[D].北京:中国科学院计算技术研究所,2003.

[3] 程曾,马林.用于基带芯片的GSM硬件高精度休眠定时器[J].微计算机信息,2011,27(12):47?49.

[4] 杨彬.GSM基带设计技术[J].移动通信,1999(4):99?101.

[5] 韩斌杰.GSM网络原理及其优化[M].北京:机械工业出版社,2001.

[6] DAMJAN Lampret. OpenRISC 1200 IP core specification [M]. USA: OpenCores, 2011.

[7] 俞甲子,石凡,潘爱民.程序员的自我修养[M].北京:电子工业出版社,2011.

[8] 王宽仁,孟涛,侯传教.基于SoC单片机的嵌入式时序控制单元设计与实现[J].微计算机信息,2010,26(9):51?53.

[9] 陈炳成,唐芳福,蒋晓华,等.S698P4 SoC芯片多时钟及多核调度机制的研究[J].微型机与应用,2011,30(21):75?77.

集中式控制,即整个基带的所有控制任务全部交给RISC处理器进行(相当于一个操作系统),DSP不再单独维护自身的任务队列,而且多个DSP之间不再有任务交互接口,只保留数据的传输,RISC对所有的外设中断进行优先级划分并响应,综合考虑本文所描述的控制方案采用集中式控制,这样大大减轻了各DSP处理器的消耗。

3 控制方案

移动终端大多时候处于IDLE模式下,并且可处于非连续接收(DRX)状态,只需要对系统广播信道BCCH及特定的寻呼组PCH进行监听,因此可在特定的时间段内关断系统的高速时钟,降低系统功耗。

3.1 基时钟设计

本文所述SOC芯片中,单独设计了基时钟单元,如图3所示,主要由系统参考时钟REF timer,上行发送时钟TX timer,下行接收时钟RX timer,帧中断产生单元以及时间校准单元组成,该模块挂在系统APB总线上,为系统提供精准的TDMA帧时钟。

图3 基时钟单元框图

3.1.1 帧中断

如图3所示,系统包括三种帧中断控制单元,timeslot_int,frame_int,multiframe_int,GSM一个标准的TDMA帧长度定义为120 000个26 MHz的周期值[3],为了简化描述,其Verilog代码如下:

Always @ (*)

begin

//时隙中断

if(cnt0 ==15000)

timeslot_int <= 1;

cnt0 <= 0;

else

timeslot_int< = 0;

cnt0 <= cnt0 +1;

//帧中断

if((cnt1 == 8) && timeslot)

frame_int <= 1;

cnt1 <= 0;

else

frame_int<=0;

cnt1<=cnt1+timeslot_int;

//此处略掉复帧的计数过程

end

3.1.2 参考时钟校准

该系统低功耗下为32 kHz时钟,采样时钟为26 MHz,设分别在两个时钟域下的计数器cnt_32k和cnt_26M,在时钟校准使能信号calib_flag的驱动下,这两个计数器进入时钟校准状态并同时从0开始计数,当cnt_32k计数器完成16次计数后,跳出校准状态,此时设cnt_26M恰好计数到calib_value,这个值将作为每次睡眠唤醒后的校准值。采用16作为校准周期,是由于数字电路容易实现以2为基数的整数倍除法。

设在32K下的睡眠时间为sleep_32K_counter(一般为TDMA帧周期的整数倍),则通过乘法器可以算出在26 MHz时钟下的睡眠时间为sleep_26M_counter =(calib_value*sleep_32K_counter)>>4(右移4位),从而计算出唤醒后的参考计数器的值为REF_timer(唤醒时刻)=REF_timer(睡眠时刻)+sleep_26M_counter,以完成从睡眠到唤醒后的系统参考时钟的校准。

3.1.3 上下行收发定时

由基时钟单元中的RX_timer和TX_timer为物理层提供上下行收发定时。物理层在收到上行任务后,根据上行发送的帧号及TA值来计算上行发送时刻TX_ timer,并写入上行射频接口发送任务列表,上行任务需要提前一个帧配置;物理层根据下行信道配置,确定下行burst的接收时刻RX_timer(某个下行帧的起始位置),并配置下行射频接口接收任务列表。通过配置射频接口的收发数据长度和收发时刻,可完成上下行数据的收发,上下行收发时钟可根据系统参考时钟进行实时地更新。

3.2 系统调度流程图

由于基带物理层控制是一个相当复杂的过程,当前暂未考虑GSM物理层过程中的小区选择、功率控制及链路故障检测等复杂场景,而且调度流程暂未考虑数据的缓存。现根据完成一次上下行TCH3语音业务来示意整个调度流程,上下行任务调度及数据处理需要在一个帧内完成,如图4所示,所有外设中断经过中断控制器后给OpenRISC处理器的中断控制寄存器PICSR[31:0],物理层控制软件按中断优先级对其进行集中处理。

图4 物理层调度时序图

3.3 软件设计

软件设计如图5所示,上电后软件程序从外部MEM加载进OpenRISC的QMEM中,然后程序开始执行。首先进入main函数,完成中断注册、物理层参数的初始配置,然后初始化外设接口及硬件模块等。

完成初始化操作后,函数进入等待中断的死循环,开始持续检测外部中断,在中断注册时对系统所有外部中断划分了中断优先级,在检测到中断后,利用中断查询函数,查询中断控制器的对应位,并将该中断清掉以避免循环执行该中断,然后进入中断服务程序,在中断服务程序中进行当前物理层状态的判断,并对硬件进行配置,配置完成后跳出。

图5 物理层控制软件流程图

4 仿真结果

在Linux环境下,通过GCC交叉编译工具链,完成对物理层控制软件的编译、链接及程序的装载[8],并在synopysys公司的VCS仿真工具上完成软硬件的调试,当前只对控制软件是否能对系统进行集中式控制进行了测试,如图6所示,图中蓝色高亮部分为OpenRISC中断控制寄存器,在一个帧的时间内,物理层控制软件能够按中断优先级响应系统各个硬件模块的中断,并完成相应任务的配置。

图6 系统仿真结果图

5 结 语

本文在基于GSM物理层协议,以及通用基带芯片架构的基础上,对基带物理层信号处理流程进行划分,提出了一种物理层控制方案,并设计基时钟电路,建立上下行调度时序,最后,完成软件的设计及代码编写,在RTL级的SoC系统上完成了初步的调度测试,由于物理层算法的灵活性以及硬件架构和各处理器的性能,物理层控制软件也会根据实际的需求做大量的调整及优化,这将在后续的研究中不断去实践和改进。

参考文献

[1] 胡东伟,梁宏明,陈杰.移动终端基带芯片架构概论[J].移动通信,2009(8):29?32.

[2] 陈志冲.GSM手机基带芯片SoC系统设计[D].北京:中国科学院计算技术研究所,2003.

[3] 程曾,马林.用于基带芯片的GSM硬件高精度休眠定时器[J].微计算机信息,2011,27(12):47?49.

[4] 杨彬.GSM基带设计技术[J].移动通信,1999(4):99?101.

[5] 韩斌杰.GSM网络原理及其优化[M].北京:机械工业出版社,2001.

[6] DAMJAN Lampret. OpenRISC 1200 IP core specification [M]. USA: OpenCores, 2011.

[7] 俞甲子,石凡,潘爱民.程序员的自我修养[M].北京:电子工业出版社,2011.

[8] 王宽仁,孟涛,侯传教.基于SoC单片机的嵌入式时序控制单元设计与实现[J].微计算机信息,2010,26(9):51?53.

[9] 陈炳成,唐芳福,蒋晓华,等.S698P4 SoC芯片多时钟及多核调度机制的研究[J].微型机与应用,2011,30(21):75?77.

集中式控制,即整个基带的所有控制任务全部交给RISC处理器进行(相当于一个操作系统),DSP不再单独维护自身的任务队列,而且多个DSP之间不再有任务交互接口,只保留数据的传输,RISC对所有的外设中断进行优先级划分并响应,综合考虑本文所描述的控制方案采用集中式控制,这样大大减轻了各DSP处理器的消耗。

3 控制方案

移动终端大多时候处于IDLE模式下,并且可处于非连续接收(DRX)状态,只需要对系统广播信道BCCH及特定的寻呼组PCH进行监听,因此可在特定的时间段内关断系统的高速时钟,降低系统功耗。

3.1 基时钟设计

本文所述SOC芯片中,单独设计了基时钟单元,如图3所示,主要由系统参考时钟REF timer,上行发送时钟TX timer,下行接收时钟RX timer,帧中断产生单元以及时间校准单元组成,该模块挂在系统APB总线上,为系统提供精准的TDMA帧时钟。

图3 基时钟单元框图

3.1.1 帧中断

如图3所示,系统包括三种帧中断控制单元,timeslot_int,frame_int,multiframe_int,GSM一个标准的TDMA帧长度定义为120 000个26 MHz的周期值[3],为了简化描述,其Verilog代码如下:

Always @ (*)

begin

//时隙中断

if(cnt0 ==15000)

timeslot_int <= 1;

cnt0 <= 0;

else

timeslot_int< = 0;

cnt0 <= cnt0 +1;

//帧中断

if((cnt1 == 8) && timeslot)

frame_int <= 1;

cnt1 <= 0;

else

frame_int<=0;

cnt1<=cnt1+timeslot_int;

//此处略掉复帧的计数过程

end

3.1.2 参考时钟校准

该系统低功耗下为32 kHz时钟,采样时钟为26 MHz,设分别在两个时钟域下的计数器cnt_32k和cnt_26M,在时钟校准使能信号calib_flag的驱动下,这两个计数器进入时钟校准状态并同时从0开始计数,当cnt_32k计数器完成16次计数后,跳出校准状态,此时设cnt_26M恰好计数到calib_value,这个值将作为每次睡眠唤醒后的校准值。采用16作为校准周期,是由于数字电路容易实现以2为基数的整数倍除法。

设在32K下的睡眠时间为sleep_32K_counter(一般为TDMA帧周期的整数倍),则通过乘法器可以算出在26 MHz时钟下的睡眠时间为sleep_26M_counter =(calib_value*sleep_32K_counter)>>4(右移4位),从而计算出唤醒后的参考计数器的值为REF_timer(唤醒时刻)=REF_timer(睡眠时刻)+sleep_26M_counter,以完成从睡眠到唤醒后的系统参考时钟的校准。

3.1.3 上下行收发定时

由基时钟单元中的RX_timer和TX_timer为物理层提供上下行收发定时。物理层在收到上行任务后,根据上行发送的帧号及TA值来计算上行发送时刻TX_ timer,并写入上行射频接口发送任务列表,上行任务需要提前一个帧配置;物理层根据下行信道配置,确定下行burst的接收时刻RX_timer(某个下行帧的起始位置),并配置下行射频接口接收任务列表。通过配置射频接口的收发数据长度和收发时刻,可完成上下行数据的收发,上下行收发时钟可根据系统参考时钟进行实时地更新。

3.2 系统调度流程图

由于基带物理层控制是一个相当复杂的过程,当前暂未考虑GSM物理层过程中的小区选择、功率控制及链路故障检测等复杂场景,而且调度流程暂未考虑数据的缓存。现根据完成一次上下行TCH3语音业务来示意整个调度流程,上下行任务调度及数据处理需要在一个帧内完成,如图4所示,所有外设中断经过中断控制器后给OpenRISC处理器的中断控制寄存器PICSR[31:0],物理层控制软件按中断优先级对其进行集中处理。

图4 物理层调度时序图

3.3 软件设计

软件设计如图5所示,上电后软件程序从外部MEM加载进OpenRISC的QMEM中,然后程序开始执行。首先进入main函数,完成中断注册、物理层参数的初始配置,然后初始化外设接口及硬件模块等。

完成初始化操作后,函数进入等待中断的死循环,开始持续检测外部中断,在中断注册时对系统所有外部中断划分了中断优先级,在检测到中断后,利用中断查询函数,查询中断控制器的对应位,并将该中断清掉以避免循环执行该中断,然后进入中断服务程序,在中断服务程序中进行当前物理层状态的判断,并对硬件进行配置,配置完成后跳出。

图5 物理层控制软件流程图

4 仿真结果

在Linux环境下,通过GCC交叉编译工具链,完成对物理层控制软件的编译、链接及程序的装载[8],并在synopysys公司的VCS仿真工具上完成软硬件的调试,当前只对控制软件是否能对系统进行集中式控制进行了测试,如图6所示,图中蓝色高亮部分为OpenRISC中断控制寄存器,在一个帧的时间内,物理层控制软件能够按中断优先级响应系统各个硬件模块的中断,并完成相应任务的配置。

图6 系统仿真结果图

5 结 语

本文在基于GSM物理层协议,以及通用基带芯片架构的基础上,对基带物理层信号处理流程进行划分,提出了一种物理层控制方案,并设计基时钟电路,建立上下行调度时序,最后,完成软件的设计及代码编写,在RTL级的SoC系统上完成了初步的调度测试,由于物理层算法的灵活性以及硬件架构和各处理器的性能,物理层控制软件也会根据实际的需求做大量的调整及优化,这将在后续的研究中不断去实践和改进。

参考文献

[1] 胡东伟,梁宏明,陈杰.移动终端基带芯片架构概论[J].移动通信,2009(8):29?32.

[2] 陈志冲.GSM手机基带芯片SoC系统设计[D].北京:中国科学院计算技术研究所,2003.

[3] 程曾,马林.用于基带芯片的GSM硬件高精度休眠定时器[J].微计算机信息,2011,27(12):47?49.

[4] 杨彬.GSM基带设计技术[J].移动通信,1999(4):99?101.

[5] 韩斌杰.GSM网络原理及其优化[M].北京:机械工业出版社,2001.

[6] DAMJAN Lampret. OpenRISC 1200 IP core specification [M]. USA: OpenCores, 2011.

[7] 俞甲子,石凡,潘爱民.程序员的自我修养[M].北京:电子工业出版社,2011.

[8] 王宽仁,孟涛,侯传教.基于SoC单片机的嵌入式时序控制单元设计与实现[J].微计算机信息,2010,26(9):51?53.

[9] 陈炳成,唐芳福,蒋晓华,等.S698P4 SoC芯片多时钟及多核调度机制的研究[J].微型机与应用,2011,30(21):75?77.

时钟 基带 物理层