CN101076163B - Td-scdma/3g/4g终端的dsp固件*** - Google Patents
Td-scdma/3g/4g终端的dsp固件*** Download PDFInfo
- Publication number
- CN101076163B CN101076163B CN200610155272.4A CN200610155272A CN101076163B CN 101076163 B CN101076163 B CN 101076163B CN 200610155272 A CN200610155272 A CN 200610155272A CN 101076163 B CN101076163 B CN 101076163B
- Authority
- CN
- China
- Prior art keywords
- channel
- forward direction
- firmware
- task
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提出一种技术领先的TD-SCDMA及第三代移动通信(3G,含cdma2000、UMTS、TD-SCDMA等)、***移动通信(4G)终端的DSP固件***,用于实现TD-SCDMA/3G/4G终端的物理层协议的主要功能——前-反向(上-下行)信道处理过程。前-反向(上-下行)信道处理过程主要包括:物理层控制、基带解调、基带调制、信道编解码、导频搜索、物理层复用/解复用、语音编解码、音频处理等。为获得健壮性较好的TD-SCDMA/3G/4G终端DSP固件***,我们采用前-反向(上-下行)信道状态机和三级任务操作机制来实现上述TD-SCDMA/3G/4G终端前-反向(上-下行)信道处理过程及对包含完成这些处理过程的任务的调度方式和方法。其中,所有涉及到硬核向DSP固件输出的处理过程(包括:多径接收前端硬核、音频模拟前端硬核、基带调制器硬核、搜索器硬核、Viterbi解码器硬核、DSP定时器硬核、Turbo/CRC解码器硬核、邮箱收发硬核等)均采用中断的方式调度执行,所有前向/下行信道固件处理过程/功能全部采用前台任务方式来调度执行,所有反向 上行信道固件处理过程/功能全部采用后台任务方式来调度执行。
Description
技术领域
本发明提出一种新型、技术领先的TD-SCDMA及第三代移动通信(3G,含cdma2000、UMTS、TD-SCDMA等)、***移动通信(4G)终端的DSP固件***。属移动通信技术制造领域。
背景技术
1、终端DSP固件***的组成:终端DSP固件***,即是运行在终端数字基带芯片的DSP核中的软件***。一般地,TD-SCDMA、3G、4G终端的DSP固件***主要由以下子***构成:(参见图1)DSP操作***(VDOS);CPU-DSP接口(CPU-DSP Interface);层一(物理层)空制(Layerl Control);基带解调器(Demodulator);基带调制器(Modulator);信道编解码器(Channel Codec);搜索器(Searcher);物理层复用子层(Multiplex Sublayer);语音编解码器(Vocoders);音频处理(Audio Processing);硬核业务(Hardware Services)。TD-SCDMA、3G、4G终端的DSP固件***的架构,如图1所示。
2、终端DSP固件***的功能:(1)DSP操作***(VDOS):DSP操作***(记作VDOS)是一项与应用无关的固件子***,它提供下面的业务:信号处理任务调度和调用;非中断任务抢占-抢占式多任务处理机制;中断层次任务的优先级和抢占;内存和DSP核硬核资源的管理。(2)CPU-DSP接口:CPU-DSP接口固件子***提供以下全双工异步CPU-DSP消息协议功能:硬核握手;在DSP与CPU之间的消息通信;DSP应用接口,其定义了在DSP内部不同固件子***之间和CPU-DSP接口固件的数据传输规则;CPU-DSP接口固件提供消息传输机制,但并不涵盖与应用相关的消息的结构。3)物理层控制(L1D):物理层控制固件子***管理状态机和基带固件处理操作。它执行以下功能:固件状态机维护;不同DSP固件子***之间的信号处理任务的调度,和数据传输的同步;固件子***初始化控制;在DSP固件的不同处理状态对有关外设进行控制。(4)解调器固件:固件子***解调器执行多径信号接收机的多径接收前端(FFE)处理算法和执行无线控制,包括以下功能:用时间跟踪算法控制在多径接收前端FFE硬核模块的时间对齐;多径接收锁定检测;多径接收符号的消除相位偏转及合并;收到的符号的增益和相位校正(信道估计);用长随机序列码对受到符号进行解扰;模拟前端用于I/Q信号A/D(模/数)转换的直流(DC)偏置的调整;接收自动增益控制(Rx AGC);前向(下行)信道功率控制比特的解复用和验证;基于开环和闭环估计的发送功率控制;用于控制基带接收机主定时硬核模块内的时间对齐的***时间跟踪;帧同步-与基带接收机主定时硬核模块同步;频率误差估计和VCTCXO(压控温度补偿晶体振荡器)控制(AFC,自动频率控制);计算接收(Rx)和发送(Tx)信号强度(接收信号强度指示RSSI和发送信号强度指示TSSI);信干比(信号比特能量/干扰功率)Eb/Nt的估计。(5)信道编解码器:信道编解码器固件子***分为信道解码器固件(前向(下行)信道信号处理)和信道编码器固件(反向(上行)信道信号处理);1)信道解码器固件:信道解码器固件接收来自译码器固件的数据并基于帧而实现以下功能:帧解交织;帧消除比特打孔;帧消除比特重复;前向(下行)业务信道数据的动态(逐帧)速率确定;采用Viterbi硬核加速器完成解卷积编码;用Turbo解码器硬核模块完成Turbo解码;CRC计算。2)信道编码器固件:信道编码器固件接收来自物理层复用子层固件的帧数据并实现以下功能:对帧做CRC计算和***尾比特;卷积前向(下行)纠错编码;采用Turbo编码器硬核模块完成Turbo编码;编码符号重复;编码符号打孔;编码符号交织。(6)调制器固件:调制器固件子***用于提供数据和控制信息给调制器硬核。它执行以下功能:符号数据发给调制器硬核;用调制器长随机序列码实现数据突发随机化;通过调制器硬核接口来进行开/关门控功率组的控制;支持反向(上行)功率控制子信道-提供功率控制比特(PCB)信息给调制器硬核;码道增益计算。(7)搜索器固件(SMD,状态维护检测):搜索器固件(也称作SMD)执行能量估计算法去搜索最好的前向(下行)导频信号,以及指配FFE硬核和主定时硬核控制的多径接收。搜索器固件由CPU控制,仅在CPU请求下启动初始化和搜索多径信号。每次搜索都与DSP估计的其它部分异步,在没有CPU指示时,搜索结果不会影响固件数据流。CPU根据搜索到的前向(下行)导频和对前向(下行)导频多径信号强度分布的分析,启动每一次多径接收指配过程,以确保多径信号接收机性能。1)搜索器固件搜索功能包括:搜索器初始化-对搜索器硬核模块的正确启动;由搜索硬核模块提供的对前向(下行)导频能量计算的分析;向CPU报告前向(下行)导频能量分布情况。2)搜索器固件的多径接收指配功能,包括:发送当前活动接收路径分布情况(当前偏移量,前向(下行)导频信号强度电平等);基于CPU的请求指配接收路径(重指配);3)搜索器固件的主定时控制功能包括:前向(下行)导频获取过程的主定时校准;根据最早到达的多径信号执行***主定时模块的提前或延迟。(8)物理层复用子层(MAD):物理层复用子层固件子***提供CPU中的复用子层、基于DSP的语音业务、信道解码器之间的数据传输机制。包括以下功能:在前向(下行)链路:将从信道编码器收到的数据发送到CPU,以及将解复用的数据发送到基于DSP的语音解码器。在反向(上行)链路:复用来自CPU复用子层和基于DSP语音编码器的数据,并将数据传输到信道编码器。(9)语音编解码器:语音编解码器固件子***执行音频输入流(语音编码器)的语音压缩和音频输出解压(语音解码器)。每一个语音编解码器支持变速率压缩.它意味着可以根据语音活动将输入的语音按全速率的1,1/2,1/4或1/8进行压缩编码并输出.同时,也可以通过将语音编解码器固件设置速率降低模式,或规定最低、最高编码速率,来控制速率。(10)音频处理:音频处理固件子***提供音频信号处理算法,以及选择音频信号路由的线性PCM采样源-音频模拟前端(VBAFE)或同步串口(SSP)。1)音频处理子***支持以下算法:音调产生算法-通用音调发生器提供音调信号给本地扬声器(在振铃,忙等用到的DTMF音调);数字音量控制-VBAFE或SSP收发的PCM采样音量调节;边音产生算法-将麦克风输入的PCM采样的规整值传送回扬声器;耳罩回波抵消器(5ms回播路径)。2)音频处理子***的功能可以扩展到支持额外的可选算法:语音识别;噪音抑制;声音存储;可选算法能下载到DSP程序存储器上,音频固件也支持此算法。(11)硬核业务:硬核业务固件子***实现以下功能:DSP程序存储器和数据存储器的读/写访问
上述TD-SCDMA/3G/4G终端DSP固件***的功能,涉及到实现复杂的TD-SCDMA/3G/4G物理层协议,同时,另一方面也对终端DSP固件资源管理、处理速度、实时性等方面有着很高的需求
因此,为获得健壮性较好的TD-SCDMA/3G/4G终端DSP固件***,我们采用前-反向(上-下行)信道状态机和三级任务操作机制来实现上述TD-SCDMA/3G/4G终端DSP固件***的主要功能——前反向(上-下行)信道处理过程及对包含完成这些处理过程的任务的调度方式和方法。详细实现方式如下文所述。
发明内容
1、固件资源管理:在设计终端DSP固件***之前,根据TD-SCDMA/3G/4G终端物理层协议对终端DSP固件***功能、性能的规定和要求,对在前述章节描述的每一个DSP固件子***都确定一套对固件资源管理的需求。(1)基带解调器固件应在中断条件下执行,中断速率是19.2KHz.固件在每一个中断应处理1,2,或4个符号(取决于符号速率)。所有的处理应在下个中断到来之前完成。(2)信道编码器信号处理应逐帧进行。(3)调制器固件应在4.8KHz中断时将数据发送到调制器硬核上(4)搜索器固件应根据CPU请求和与之相关的参数,与数据收发操作异步执行。(5)DSP物理层复用子层子***和CPU之间的数据传输异步进行,但必须在同一帧内完成。(6)在语音编解码器固件的操作逐帧进行。(7)音频处理子***的操作既对PCM采样逐个进行,也逐帧进行,这由特定的信号处理算法实现。(8)硬核业务固件根据CPU请求而异步执行。
每一个DSP固件模块/子***作为不同的任务被合理提出.DSP固件架构并不受任务大小和内容的限制.应谨慎地将子***功能分配到单独任务中,保护***的灵活性,避免产生过多的任务,因为过多的任务将会使L1D的任务调度非常复杂。
2.三级任务操作机制:为了有效管理以上提到的不同需求,VDOS操作***允许三级操作;(1)中断级-用于对处理实时性要求非常敏感的任务。要不遗余力、尽全力减小此类任务对MIPS的需求。(2)前台级-用于对处理实时性要求较小的任务。需要将此类任务对MIPS的需求限制在一定范围内。(3)后台级-用于对处理实时性要求最小,但对MIPS要求较多的任务。此级别的任务通常每帧执行并且需要在下一帧到达前完成。
VDOS的每级操作都用任务列表去调度并执行要求的任务。在中断级,是用与中断控制器关联的任务列表来实现。在后台和前台级,与应用相关的固件向VDOS发送请求去调度相应任务列表中 的任务。VDOS调度任务,根据它收到的中断次序和优先级,从任务列表中启动任务并在任务完成时更新任务列表。如图2所示。VDOS用以下策略实现中断级为最高级,前台级为中间级,后台级为最低级:(参见图3)只要***中有挂起的中断,VDOS就保持在处理中断状态;VDOS执行台列表中的任务,直到该任务列表为空;只有在***中没有挂起的中断且前台任务列表为空时,VDOS才开始执行后台任务列表中的任务。三级任务操作机制的优先级,如图3所示。
2.1中断级:在中断级,VDOS使用硬核中断控制器来调度和定义不同任务的优先级:DSP中断控制器被设计成每一个应用相关的中断源具有自己唯一的中断向量地址,一旦中断源发出个中断,中断控制器产生一个中断给DSP核,并获取正确的中断向量地址送给程序总线,强制DSP跳转到这个特定的地址。所有的中断源以链表形式被连接到中断控制器上。每一个中断源的优先级(按可并发的中断来考虑)由它在链表中所处的位置来定义,比如INT_VECTO有最高优先级,INV_VECT1是最低优先级。每一个中断源可以单独路由到DSP核的INTO,INT1或INT2中断上。VDOS按如下方式处理DSP核中断和指配DSP核中断的优先级:INTO-最高优先级;INT1-较低优先级:INT2-最低优先级。表1汇总了所有TD-SCDMA/3G/4G终端DSP固件中断和分配优先级。
VDOS提供最小的中断服务程序,应在进入或退出与应用相关的中断服务程序时调用。中断服务程序保证在执行低优先级中断时,只有优先级更高的中断被使能。
2.2前台级:在前台级,从以FIFO方式组织的前台任务列表中执行前台级任务。每个被调度的任务有以下4个入口(16比特字):入口#1:任务地址;入口#2:可选参数(可以是输入数据地址);入口#3:可选参数(可以是输出数据地址);入口#4:可选参数(可以是操作模式)。前台级操作对于调度异步任务(比如搜索器)非常有用,并且它提供了使中断等待时间最小化的能力。所有前台级执行的任务都能添加到前台和后台任务列表中。
2.3后台级别:在后台级,从以FIFO方式组织的后台任务列表中执行后台级任务。每个被调度的任务有以下4个入口(16比特字):入口#1:任务地址;入口#2:可选参数(可以是输入数据地址);入口#3:可选参数(可以是输出数据地址);入口#4:可选参数(可以是操作模式)大多数后台级任务是每帧执行的任务,并要求大量的计算能力,所有在后台级执行的任务只能添加到后台任务列表3中。
3、TD-SCDMA/3G/4G终端DSP固件状态机
IS2000移动台的数据处理可以分成接收路径(Rx)和发送路径(Tx)。在接收路径上,TD-SCDMA/3G/4G终端DSP固件处理来自基站(前向(下行)信道处理)的数据。在发送路径上,TD-SCDMA/3G/4G终端DSP固件处理发送至基站(反向(上行)信道处理)的数据。
在前向(下行)和反向(上行)信道上所有的DSP处理采用TD-SCDMA/3G/4G终端DSP固件状态机来实现,并且分成前向(下行)和反向(上行)状态机。所有的TD-SCDMA/3G/4G终端DSP固件状态转换(对于前向(下行)和反向(上行)信道)根据CPU请求来完成。DSP固件并不检 查状态转换请求是否有效,它完全依赖于CPU驱动做状态的转换。
VDOS和CPU-DSP端口子***不是直接的和信号处理相关的子***,但是提供对其他信号处理固件子***的业务。因此VDOS和CPU-DSP端口(和硬核业务一样)始终处于激活状态。
3.1前向(下行)信道处理。前向(下行)信道处理采用状态机完成时,使用以下5个主要状态:(参见图4)。开机初始化状态;前向(下行)导频信道获取状态;前向(下行)同步信道状态;空闲状态;前向/下行业务信道状态。前向(下行)信道状态机如图4所示。前向(下行)信道状态机的状态是L1D变量,被存放在全局存储空间。当移动台要接入到TD-SCDMA/3G4G终端网络时,要执行如图4所示的前向(下行)信道状态机正常流程。
3.1.1开机初始化状态:这是TD-SCDMA/3G/4G终端DSP固件状态机的前、后向链路的初始状态在这一阶段,TD-SCDMA/3G/4G终端DSP固件子***被初始化成缺省的开机初始化状态。与硬核模块接口的固件子***将这些硬核模块初始化成要求的状态
3.1.2前向(下行)导频信道获取状态:在这个状态,以下DSP固件子***被激活:解调器固件;搜索器固件(SMD)。在激活前向(下行)导频搜索前,CPU通过发送获取请求原语给L1D,将固件状态机设置成前向(下行)导频信道获取状态。L1D将所有的全局变量设置成获取状态的值,并调用解调器固件获取初始化函数来启动获取状态处理。在前向(下行导频信道获取状态,解调器固件只实现用于TD-SCDMA/3G/4G前向(下行)导频搜索算法(Rx AGC,I/Q DC偏置补偿,接收信号能量估计)的可靠操作的算法,不进行符号处理。
在收到证实DSP固件状态机转换到前向(下行)导频信道获取状态的原语时,CPU初始化搜索,在整个特征序列码空间中搜索可能的TD-SCDMA/3G/4G前向(下行)导频信号。搜索到每一个可能的前向(下行)导频都是基于前向(下行)导频信道处理的能量估计,并没有跟TD-SCDMA/3G/4G基站特征序列码偏移相关联。
DSP固件状态机在没有发现满意的前向(下行)导频前,一直保持在前向(下行)导频信道获取状态。一旦CPU获得信号强度良好的前向(下行)导频,它就将所有必要的、如导频偏移(基站特征序列码偏移)等参数发送到DSP中,并指示DSP固件状态机跳到前向(下行)同步信道状态。
在其他所有TD-SCDMA/3G/4G终端DSP固件状态中,搜索器固件(SMD)根据CPU请求而被激活,并与TD-SCDMA/3G/4G终端数据处理异步(甚至在TD-SCDMA/3G/4G终端DSP固件状态转换过程中,搜索器固件也可被激活)。SMD的性能和功能(前向(下行)导频搜索、多径接收指配)取决于TD-SCDMA/3G/4G终端DSP固件状态机的当前状态。
3.1.3前向(下行)同步信道状态:前向(下行)同步信道状态用于接收和处理前向(下行)同步信道信息。在该状态,激活以下DSP固件子***:物理层控制子***(LID);解调器固件;信道编解码器(信道解码器);物理层复用子层(解复用器)。前向(下行)同步信道固件处理过 程如图5所示。
在TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态之前,CPU发送个原语给SMD来指配一个FFE硬核的多径接收,使它在获取的基站特征序列码偏移上操作,并对前向(下行)同步信道进行解码。
下一步,CPU发送一个原语给物理层使TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态。在这点上,物理层将所有的全局变量设置成前向(下行)同步信道状态,并且:(1)调用解调固件的前向(下行)同步信道初始化函数,启动前向(下行)同步信道解调。(2)调用信道解码器的前向(下行)同步信道初始化功能,将信道编码器参数设置成前向(下行)同步信道状态。(3)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态。
在前向(下行)同步信道状态出现以下事件序列:(1)一旦前向(下行)同步信道处理开始,解调固件就开始监视FFE硬核的前向(下行)同步信道帧开始比特。(2)一旦这个信号被激活,解调器固件就对输入的符号(基于19.2kbps中断)进行前向(下行)同步信道处理,并将他们集中到环形SoftDataBufChA缓存区中。(3)一旦解调固件填满一个同步帧的数据,它就调用物理层控制子***。物理层控制子***检查前向(下行)信道状态机的当前状态,并将信道解码器接收格式化程序任务(预Viterbi任务)放到前台任务列表中。(4)接收格式化程序任务完成前向(下行)同步信道数据帧的块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。前向(下行)同步信道帧中的数据是连续编码的。这就是为什么卷积解码器只能在信道解码器初始化功能中初始化,并且不能在前向(下行)同步信道帧间复位。由于采用Viterbi加速器硬核,前向(下行)同步信道数据帧无法在当前帧的结束点准备好,而是要到下一个帧的中间点才能准备好。当完成一帧完整的前向(下行)同步信道帧的解码,信道解码器就调用物理层复用子层函数将数据发送给CPU。
在前向(下行)同步信道处理状态,CPU不会发送新的前向(下行)导频搜索消息给DSP,这就是为什么搜索器固件未激活的原因。
只有一个接收路径被指配用于获取前向(下行)同步信道。因此,在前向(下行)信道处理状态,解调器固件不执行(多路径)分集合并。
CPU从DSP接收到同步数据帧,合并出前向(下行)同步信道信息(前向(下行)同步信道帧)。一旦CPU解码出前向(下行)同步信道信息,它就产生请求原语到L1D,同步主定时硬核模块。
当L1D收到请求原语,固件停止发送前向(下行)同步信道帧给CPU。基于基站的偏移,以及基于该原语提供的特征序列码状态和帧计数器,L1D设置、装载主定时硬核模块。一旦主定时硬核模块被设置、装载(下载合适的前向(下行)导频和特征序列码状态),在该时刻终端与网络同步。
3.1.4空闲状态:在此状态终端监视寻呼信道或前向(下行)公共控制信道。它也接收在广播信道传输的消息。在此状态,以下的DSP固件子***处于激活状态:物理层控制(L1D);解调器固件;信道编解码器(信道解码器);物理层复用子层(解复用器);搜索器固件。
在空闲状态,根据CPU对其的配置,音频处理固件也能激活(比如音调发生器或语音识别任务)
在TD-SCDMA/3G/4G终端DSP固件状态机跳转到空闲状态之前,CPU发送多径接收指配原语到SMD,设置FFE硬核工作于基站的特征序列码偏移量,以及用合适的信道化码解扩展。
有两种可能的TD-SCDMA/3G/4G终端空闲模式的处理:寻呼信道译码和2个信道并发译码——前向(下行)公共控制信道(CCCH),广播信道(BCH)。
3.1.4.1寻呼信道处理:寻呼信道处理处理过程如图6所示。在多径接收指配完成后,CPU发送寻呼信道请求原语到L1D,使TD-SCDMA/3G/4G终端DSP固件状态机跳转到空闲状态。在该时刻,L1D完成:设置全局前向(下行)状态变量为空闲状态;设置全局前向(下行)信道A的类型变量为寻呼信道;根据CPU请求设置前向(下行)信道A的速率;设置前向(下行)信道A的帧长度;设置前向(下行)信道A的编码率;调用解调固件的寻呼信道初始化函数,启动寻呼信道解调;调用信道解码器的寻呼信道初始化功能;向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机跳转到空闲状态,准备启动寻呼信道解码。
在寻呼信道处理中存在下列事件序列:(1)解调器固件执行输入符号的寻呼信道处理(基于19.2kbps中断)并把它们集中到环形SoftDataBufChA缓存区中。(2)一旦解调固件填满一个寻呼帧的数据缓存区,它就调用物理层控制子***。(3)物理层控制子***检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,以及信道A类型,并将信道解码器接收格式化寻呼信道任务(预Viterbi任务)放到前台任务列表中。(4)接收格式化程序任务基于寻呼信道速率完成块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。寻呼信道帧中的数据是连续编码的。这就是为什么卷积解码器只能在信道解码器初始化功能中初始化,并且不能在寻呼信道帧间复位。这一点之所以能够实现,是因为没有其他信道与寻呼信道同时进行解调。由于采用Viterbi加速器硬核,寻呼信道数据帧无法在当前帧的结束点准备好,而是要到下一个帧的中间点才能准备好。当完成一帧完整 的寻呼信道帧的解码,信道解码器就调用物理层复用子层函数将数据发送给CPU。CPU分析来自寻呼信道的消息并相应地为DSP固件提供指示。例如,它可以发送接入试探或监视特定的寻呼信道。
3.1.4.2前向(下行)公共控制,广播处理:空闲状态固件处理公共控制信道/广播信道过程如图7所示。对CCCH,BCH的每个信道都有一个独立的请求原语发给L1D,在发送任何一个信道请求原语前,CPU应指示SMD通过使能相应的信道以及设置信道化码来执行多径接收指配。
当LID收到CPU的前向(下行)公共控制信道请求原语时,会进行如下操作:(1)将全局前向(下行)状态变量设为空闲状态。(2)将全局前向(下行)信道A的的类型变量设为前向(下行)公共控制信道。(3)根据CPU请求设置前向(下行)信道A的速率。(4)根据CPU请求设置前向(下行)信道A的帧长度。(5)根据CPU请求设置前向(下行)信道A的编码率。(6)调用解调固件前向(下行)公共控制信道初始化功能。(7)调用信道解码器前向(下行)公共控制信道初始化功能。(8)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机已经处于空闲状态,并准备开始前向(下行)控制信道解码。
当LID收到CPU的广播信道请求原语时,会进行如下操作:(1)将全局前向(下行)信道B的的类型变量设为广播信道。(2)根据CPU请求设置前向(下行)信道B的速率。(3)将前向(下行)信道B的帧长度。(4)根据CPU请求设置前向(下行)信道B的编码率。(5)调用解调固件广播信道初始化功能。(6)调用信道解码器广播信道初始化功能。(7)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机已经准备好启动广播信道解码。
当2个信道都被激活时,就会发生如下系列事件:(1)对每个激活的信道,解调器固件执行输入符号的寻呼信道处理(基于19.2kbps中断)。并将它们集中到对应于它指配的硬核信道的环形缓存区中(SoftDataBufChA,SoftDataBufChB)。(2)一旦解调器固件完成对某一个激活的信道的帧软符号的收集,它调用L1D。由于不同信道的帧长度会有所不同,所以每个信道(A,B)需要独立处理。(3)L1D检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,以及已经完成帧准备的信道类型。然后将信道解码器对信道A的接收格式化前向(下行)CCCH信道任务,将信道解码器对信道B的接收格式化BCH信道任务放到前台任务列表中。应先调度具有较小帧长度的信道处理。(4)接收格式化程序任务(预Viterbi任务)基于信道类型和参数(数据速率,编码率,帧长度)完成块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。不像同步和寻呼信道,这2个信道的卷积编码是不连续的,那就是为什么每完成一次前向(下行)CCCH,BCH解码,Viterbi译码器都应被重新初始化。(6)一旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把前向(下行)CCCH,BCH的后Viterbi处理任务放入前台任务列表。该任务对每一帧数据计算CRC并与(BCH)接收到的CRC校验尾比特相比较,并去掉CRC尾比特。之后,后Viterbi处理任务调用物理层复用子层功能,将数据发送到CPU.
在空闲状态,CPU继续监视全部TD-SCDMA/3G/4G前向(下行)导频信道并送原语到SMD。基于从SMD返回给CPU的结果,CPU保持对前向(下行)导频集(激活,候选等)的跟踪并通过SMD多径接收指配原语指配附加的接收路径。解调固件利用多个接收路径完成分集组合。
3.1.4.3时隙模式:空闲状态L1D控制层支持对寻呼或前向(下行)公共控制信道DSP固件处理的使能/去使能的时隙模式。利用CPU的请求(时隙模式请求原语)实现ON/OFF时隙的开关。当CPU处于OFF时隙,L1D停止空闲状态处理,关闭Viterbi硬核,屏蔽FFE和调制器中断,完成剩余任务,发送证实原语给CPU并关闭DSP核。当CPU处于ON时隙,L1D使能空闲状态固件操作,重新初始化解调器和信道编解码器固件,并继续前述信道处理。DSP核被CPU接口中断激发的时隙模式请求原语启动。
TD-SCDMA/3G/4G终端DSP固件支持快速寻呼信道处理。该信道的目的是引入时隙模式下的移动台操作,实现在ON时隙唤醒并接收指配的寻呼信道或前向(下行)公共控制信道时隙,或者在OFF时隙则相反。快速寻呼信道处理比指配时隙的寻呼信道或前向(下行)公共控制信道处理所消耗的能量要少很多。
快速寻呼信道处理是由解调固件在L1D控制下完成。L1D事先接收到包含基站提供的快速寻呼信道参数的快速寻呼配置请求原语。然后,用快速寻呼请求原语启动快速寻呼信道解调。在快速寻呼时隙的结束点,L1D(通过快速寻呼数据证实原语)向CPU报告快速寻呼信道译码结果。如果寻呼指示器和配置改变指示器被设置成“OFF”,CPU发送时隙模式请求原语,指示DSP再次进入时隙模式。反之,DSP则应保持在唤醒状态并对寻呼或前向(下行)公共信道译码。
3.1.5前向/下行业务信道状态:在业务信道状态,移动台接收业务信道帧,包括来自的基站的声音、数据和信令。在这一状态,以下DSP子***是激活的:物理层控制(L1D);解调器固件;信道编解码器(信道解码器);物理层复用子层;语音编解码器(语音解码器);音频处理器(前向(下行)音频处理);搜索器固件
在TD-SCDMA/3G/4G终端DSP固件前向(下行)信道状态机跳转到业务信道状态之前,CPU根据最新的TD-SCDMA/3G/4G前向(下行)导频信道分布情况,发送多径接收指配原语到搜索器固件来设置FFE硬核操作,并对指配的TD-SCDMA/3G/4G终端信道译码。
前向/下行业务信道固件处理过程如图9所示。
在收到CPU业务信道请求原语时,L1D控制TD-SCDMA/3G/4G终端固件前向(下行)信道状态机跳转到业务信道状态。原语的信道掩码域为DSP提供在开始调用前向(下行)FCH(或DTCH,专用业务信道),前向(下行)DCCH时要解调的信道信息,在这一时间点,L1D:设置全局前向(下行)
状态变量为业务信道状态;根据信道掩码设置全局前向(下行)信道A的类型变量为基本信道/专用业务信道,和/或前向(下行)信道B的类型变量为专用控制信道;根据CPU请求,设置前向(下行)信道A和/或B的无线承载/无线配置,速率,帧长度,缺省的前向(下行)链路复用选项全局变量,以及其它一些相关参数:①设置前向(下行)信道A和/或B的编码率。②调用解调器固件的业务信道初始化功能。③调用信道译码器业务信道初始化功能。④设置MAD解复用器的全局变量为缺省设置。⑤发送原语到CPU,确认TD-SCDMA/3G/4G终端DSP固件前向(下行)信道状态机已经跳转到业务状态,并准备启动基本信道/专用业务信道解码。
之后CPU发送业务信道配置请求原语给L1D,配置专用信道和业务选项。这个原语请求DSP开始处理以下信道:前向(下行)FCH(DTCH),前向(下行)DCCH,前向(下行)SCH(前向补充信道/下行共享信道)。L1D执行以下项:(1)基于信道掩码设置全局前向下行)信道A的类型变量为基本信道/专用业务信道,和/或前向(下行)信道B的类型变量为专用控制信道,和/或前向(下行)信道C的类型变量为补充信道。(2)依据码速率变量设置全局前向(下行)信道A(B,C)的无线承载/无线配置,速率,帧长度。(3)调用MAD前向(下行)业务选项更新功能。(4)如果基于DSP的语音业务选项被连接,那么调用语音解码器初始化功能。(5)发送原语到CPU确认新的业务信道配置是生效的,并且TD-SCDMA/3G/4G终端DSP固件准备好了业务信道译码功能。
前向(下行)业务信道处理过程中依次出现以下事件序列:(1)解调器固件对每一个激活的信道(前向(下行)FCH(DTCH)和前向(下行)DCCH执行输入符号处理(基于19.2kbps 中断),并将解调出的符号集中到对应于指配的硬核信道的环形缓存区(SoftDataBufChA,SoftDataBufChB)。补充业务信道由硬核处理,所以不需要用缓存区。(2)一旦解调器固件到达帧的结束点,它调用L1D。(3)L1D检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,并将信道解码器对专用控制信道DCCH的接收格式化任务(也被称作预Viterbi任务)放入前台任务列表中。(4)预Viterbi任务完成块解交织和去比特打孔。然后激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。业务信道的卷积编码是不连续的,那就是为什么每完成一个业务信道数据帧,Viterbi译码器都应被重新初始化。(6)一旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把DCCH的后Viterbi处理和MAD解复用任务,以及前向(下行)FCH(或DTCH)的预Viterbi任务放入前台任务列表。(7)前向(下行)DCCH后Viterbi任务对每一帧数据计算CRC并与接收到的CRC校验尾比特相比较,并去掉CRC尾比特。之后,MAD解复用任务将数据发送到CPU。(8)前向(下行)FCH(DTCH)预Viterbi任务完成块解交织和去比特打孔。如果允许除全速率以外的速率,则对于的1/2,1/4和1/8速率的帧进行去比特重复。下一步便是激活卷积解码功能。(9)旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把前向(下行)FCH/DTCH 的后Viterbi处理和MAD解复用任务放入前台任务列表。如果音频功能被使用,那么语音解码器和前向(下行)音频处理任务也会被加到列表里。如果有卷积的SCH将被激活,L1D将在前台调度SCH的预Vitcrbi任务。(10)前向(下行)FCH(DTCH)后Viterbi任务执行帧质量指示计算和执行所有使能的帧速率的相关矩阵。一旦他们准备好,速率判决程序将被启动。速率判决程序功能检测当前帧的速率,正确定位数据指针,以及设置正确的帧类别。(11)基于当前业务选项配置,MAD解复用器任务为语音解码器提取原始数据流并送整个数据帧到CPU.(12)语音解码器任务产生音频数据(线性PCM采样)帧。L1D通过将指针传送到语音译码器,而将数据置于声音输出环形缓存区里。为保证固件操作的可靠性,缓存区的大小必须至少是双倍(以提供一个大的缓存区能用于支持音频处理任务)。(13)语音解码完成后,前向(下行)声音处理任务从前台任务列表中被激活。该任务取出语音解码器输出数据,进行处理,然后写回到输出缓存区。(14)音频模拟前端中断服务子程序(VBAFEISR)基于8kHz中断从前向(下行)音频缓存区(ForwardAudioBuf)中读出数据并写入VBAFE硬核寄存器中。(15)如果低数据速率SCH被激活,包括解交织、去比特打孔等所有的符号级处理在硬核中完成。在一帧数据处理完成时,硬核解交织器产生一个中断发给DSP。解交织器ISR设置SCH数据读标志,指示SCH预Viterbi任务从硬核中读数据到接收帧缓存区(RxFrameBuf),并启动采用Viterbi硬核加速器的卷积解码功能。在完成整个SCH帧译码后,Viterbi ISR调用L1D激励函数,其将补充信道的后Viterbi和MAD解复用器任务放入前台任务列表。SCH后Viterbi任务计算每帧的CRC,并将计算出的CRC与接收到的CRC尾比特相比较,并去掉每帧的CRC尾比特。完成这些处理之后,MAD解复用器任务传送数据到CPU。(16)如果高数据速率SCH被激活,扩展的硬核功能可执行Turbo/CRC译码。Turbo/CRC译码是在完成符号合并和对齐及块解交织之后进行。当帧解码完成后,Turbo/CRC解码器发中断给DSP。Turbo/CRC解码器ISR(中断服务子程序)从硬核拷贝数据,并将补充信道的MAD解复用器任务加入到前台任务列表里。
在业务状态,CPU持续地发出新的搜索消息给SMD,以保持所要求的分集合并和前向(下行)导频集维护(解调器固件应能够提供至少三个接收路径的分集合并)。每次一个新的请求到达,SMD子***就被激活。CPU基于当前的前向(下行)导频分布总体情况,保持多径接收的指配。当前激活的接收路径取决于当前输入的前向(下行)导频分布总体情况,并实时变化。
3.2反向(上行)信道处理:反向(上行)信道处理是用一个状态机及以下三个主要状态来实现的(参见图10):开机初始化状态;***接入状态;反向(上行)业务信道状态。反向(上行)信道状态机的状态是一个L1D变量,存储在一个全局存储器里。每一个终端(MS/UE)接入到TD-SCDMA/3G/4G终端网络的过程都涉及到如图10所示的反向(上行)信道状态机执行的正常流程。
3.2.1开机初始化状态:反向(上行)信道状态机中的开机初始化状态在3.1.1中有描述。
3.2.2***接入状态:在反向(上行)信道状态机中的接入状态,以下的DSP固件子***被激活:物理层控制(L1D);调制器固件;信道编解码器(信道编码器);物理层复用子层(复用器)
在TD-SCDMA/3G/4G终端接入状态进行以下三种不同的处理:接入信道传输,(ACH):和反向(上行)公共控制信道传输(CCCH)。
3.2.2.1接入信道处理:接入信道固件处理过程如图1 所示。在反向(上行)信道处理状态机跳转到接入状态之前,CPU发送包含封装的接入信道消息的接入信道请求原语给L1D。在接入状态,立即发送整个信道消息,而不是一帧一帧地传送。之后,在正确的时刻,CPU给LD发送接入试探请求原语,启动一个接入试探。这个原语包含发起接入试探所需要的全部信息——RN(无线网络)延迟,长码掩码,功率偏移,在这一时刻,L1D:(1)将全局反向(上行)状态变量设置为接入状态。(2)全局反向(上行)信道A的类型变量设置为接入信道。(3)设置反向(上行)信道A的速率。(4)设置反向(上行)信道A帧长度。(5)设置反向(上行)信道A的编码率。(6)调用调制器接入信道初始化功能。
以下事件序列依次出现在接入信道处理过程中:(1)调制器ISR监视帧边界的结束点,在到达帧边界的结束时,调用L1D激励程序。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机的状态和反向(上行)信道A的类型,将接入信道编码器任务放入后台任务列表。(3)信道编码器从接入信道封装缓存区中取出数据帧,加上尾比特,完成卷积编码,并对此数据帧进行比特重复和交织。交织的数据组合成符号。(4)信道编码器任务以帧为单位填充TxFrameBufA缓存区,按中断将数据发送给调制器硬核(每4.8kHz中断产生一个信道化码符号)(5)L1D每次调度信道编码器,都会检查余下多少个接入信道帧要处理。当没有数据留下时L1D不再调度信道编码器,再过一帧时间停止调制器硬核。这个时候不再有反和(上行)信道处理。
基于基站提供的参数,CPU启动一个定时器,用于等待最近发送的接入试探的响应。如果定时器超时没有收到响应,CPU发送一个新的请求给L1D,以发起一个新的接入试探。
在DSP中没有机制去识别定时和接入试探的次数,只要收到CPU请求,DSP就发起接入试探。CPU发送接入试探停止请求原语给DSP,停止当前接入试探传输。这种情况典型出现在已发送的接入试探已被基站确认或移动台失去了寻呼信道。当有重要的帧要发送的时候如果DSP收到这个原语,这些帧就被丢弃了,相关的变量都会被设为结束接入试探传输的值。
3.2.2.3反向(上行)公共控制信道处理:反向(上行)公共控制信道固件处理过程如图12所示。当L1D从CPU接收反向(上行)公共控制信道请求原语:(1)将全局反向(上行)状态变量设置为接入状态。(2)设置全局反向(上行)信道A的类型变量。(3)根据CPU请求设置反向(上行)信道A的速率。(4)根据CPU请求设置反向(上行)信道A帧长度。(5)设置反向(上行)信道A的编码率。(6)调用调制器(反向/上行)CCCH初始化功能。
以下事件序列依次出现在接入信道处理过程中:(1)调制器ISR监视帧边界的结束点,在到达帧边界的结束时,调用L1D激励程序。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机的状态和反向(上行)信道A的类型,将MAD复用器和接入信道编码器任务放入 后台任务列表。(3)复用器任务准备输入到信道编码器的数据,信道编码器任务计算CRC,增加尾比特,完成卷积编码、符号重复、块交织。(4)调制器ISR以4.8kbps中断,从信道编码器输出缓存区读出长度合适的比特,并写入调制器硬核。
3.2.3反向(上行)业务信道状态:在反向(上行)业务信道状态,移动台发送语音,数据,信令给基站。在业务信道状态,以下的DSP固件子***被激活:物理层控制(L1D);调制器固件信道编解码器(信道编码器);物理层复用子层(复用器);语音编解码器(语音编码器);音频处理(反向(上行)音频处理)。
CPU发送业务信道请求原语给L1D,使TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机跳转到业务信道状态。这里,使反向(上行)或者前向(下行)信道状态机跳转到业务状态的原语没有什么不同——业务信道请求原语发送给两个状态机都引发状态转换。
反向(上行)业务信道固件处理过程如图1 所示。
CPU发送业务信道请求原语给L1D,,使TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机跳转到业务信道状态。原语中的信道掩码域为DSP提供当开始调用(反向/上行)FCH(或DTCH,上行专用业务信道),(反向/上行)DCCH(反向/上行专用控制信道)时,用哪一个信道传输的信息。在这一时刻,L1D:(1)设置全局反向(上行)状态变量为业务信道状态。(2)根据信道掩码设置全局反向(上行)信道A的类型变量为基本信道/专用业务信道和/或信道B的类型变量为专用控制信道。(3)通过CPU的请求设置反向(上行)信道A和/或B的无线承载/无线配置,速率,帧长度。缺省反向(上行)链路复用选项全局变量以及其它相关参数。(4)设置反向(上行)信道A和/或B的相应的编码率。
在反向(上行)信道处理状态机的初始状态,L1D不会调度任何反向(上行)信道相关的固件任务。它一直等待从CPU过来的反向(上行)前缀发送请求原语从而能够进行反向(上行)链路处理。这一事件只发生在接收到前向(下行)链路好帧的时候。此时,L1D:调用调制器固件业务信道初始化功能;设置MAD复用器全局变量为缺省值;如果音频激活,调用反向(上行)音频处理初始化程序。
反向(上行)链路一旦建立,CPU发送业务信道配置请求原语给L1D,L1D设置专用信道和业务选项。这个原语可以请求DSP开始传输(反向/上行)FCH(DTCH),(反向/上行)DCCH,(反向上行)SCH(反向补充信道/上行共享信道)等信道中的任何信道。L1D执行下面的操作:(1)根据信道掩码设置全局反向(上行)信道A的类型变量为基本信道/专用业务信道,和/或反向(上行)信道B的类型变量为专用控制信道,和/或反向(上行)信道C的类型变量为补充信道。(2)设置全局反向(上行)信道A(B,C)无线承载/无线配置,速率,帧长度,编码率。(3)调用MAD反向(上行)业务选项更新功能。(4)如果基于DSP的语音业务选项是连接的,调用语音编码初始化功能。
以下事件序列依次出现在反向(上行)业务信道处理过程中:(1)语音编码硬核(VBAFE)以8KHz 中断的基准,对语音数据采样并发送到DSP。VBAFE ISR从VBAFE硬核寄存器读取输入数据,并写入到反向(上行)语音缓存区ReverseAudioBuf中。当整个数据帧准备好了的时候,VBAFE ISR调用L1D激励功能。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机的状态,并放置反向(上行)语音处理和语音编码器任务在后台任务列表中。(3)反向(上行)音频处理取出线性PCM数据帧,经过相应的处理,输出到语音编码任务。(4)一旦反向(上行)音频处理完成,语音编码任务就启动,对当前的帧提取语音参数,将编码数据放入编码语音缓存区EncoderVoiceBuf,提供给在MAD复用器任务。一旦语音编码任务确定当前编码帧的速率,它就会通知MAD(通过程序调用)并且后者给CPU发送FCH(DTCH)TxEmpty指示原语,询问与语音复用的数据大小。(5)在帧开始后,调制器ISR(以4.8KHz速率)启动L1D调度处于后台级的基本信道/专用业务信道的MAD复用器和信道编码器任务。L1D在后台任务列表按下列次序设置任务:SCH复用器,SCH信道编码器,DCCH复用器,DCCH信道编码器,FCH(DTCH)复用器,FCH(DTCH)信道编码器,MAD TxEmpty,调制器功率控制任务。这个次序是给CPU足够的时间发送包含当前帧数据的反向(上行)业务请求原语。(6)MAD复用器一帧一帧地从MAC接受数据。MAD发出TxEmpty指示原语通知CPU,DSP已经准备好接收新的数据,即新反向(上行)业务请求原语。MAD复用器任务将语音编码数据与CPU中运行的复用子层(MAC)提供的数据复用在一起。在基于CPU的业务选项,反向(上行)业务请求原语包含要求MAD和信道编码器处理的下一帧数据。在基于DSP的语音业务选项(只能在基本信/专用业务信道传输),来自CPU的数据需要与语音编码数据复用。(7)信道编码器任务对每一个信息帧执行卷积编码、符号重复,块交织。如果使用Turbo编码(仅用于高速率补充业务信道),整个信道编码由硬核完成——SCH信道编码器任务仅需要将数据写入到硬核寄存器。(8)调制器功率控制任务基于反向(上行)链路增益表和当前帧特性,计算所有需要用到的码道的码道增益。在帧边界,调制器ISR将所有需要用到的码道的码道增益写入到相应的调制器硬核寄存器。(9)工作于4.8KHz的调制器ISR完成DSP固件和调制器硬核之间的编码数据传输(在使用硬核信道编码器时,数据是直接发送到硬核寄存器,而不涉及任何固件)。同时,调制器ISR还负责完成由门控掩码确定的功率控制。
附图说明
图1是TD-SCDMA、3G、4G终端的DSP固件***的架构框图。
图2是三级任务操作机制框图。
图3是三级任务操作机制的优先级框图。
图4是前向(下行)信道状态机基本状态跳转框图。
图5是前向(下行)同步信道固件处理过程框图。
图6是寻呼信道固件处理过程框图。
图7是空闲状态固件处理公共控制信道/广播信道过程框图。
图8是前向/下行业务信道固件处理过程框图。
图9是反向(上行)信道状态机基本状态跳转框图。
图10是接入信道固件处理过程框图。
图11是反向(上行)公共控制信道固件处理过程框图。
图12是反向(上行)业务信道固件处理过程框图。
具体实施方式
在设计终端DSP固件***之前,根据TD-SCDMA/3G/4G终端物理层协议对终端DSP固件***功能、性能的规定和要求,对在前述章节描述的每一个DSP固件子***都确定一套对固件资源管理的需求。(1)基带解调器固件应在中断条件下执行,中断速率是19.2KHz.固件在每一个中断应处理1,2,或4个符号(取决于符号速率).所有的处理应在下个中断到来之前完成。(2)信道编码器信号处理应逐帧进行。(3)调制器固件应在4.8KHz中断时将数据发送到调制器硬核上。(4)搜索器固件应根据CPU请求和与之相关的参数,与数据收发操作异步执行。(5)DSP物理层复用子层子***和CPU之间的数据传输异步进行,但必须在同一帧内完成。(6)在语音编解码器固件的操作逐帧进行。(7)音频处理子***的操作既对PCM采样逐个进行,也逐帧进行,这由特定的信号处理算法实现。(8)硬核业务固件根据CPU请求而异步执行。
每一个DSP固件模块/子***作为不同的任务被合理提出.DSP固件架构并不受任务大小和内容的限制.应谨慎地将子***功能分配到单独任务中,保护***的灵活性,避免产生过多的任务,因为过多的任务将会使L1D的任务调度非常复杂。
1.三级任务操作机制:为了有效管理以上提到的不同需求,VDOS操作***允许三级操作:中断级-用于对处理实时性要求非常敏感的任务。要不遗余力、尽全力减小此类任务对MIPS的需求;前台级-用于对处理实时性要求较小的任务。需要将此类任务对MIPS的需求限制在一定范围内;后台级-用于对处理实时性要求最小,但对MIPS要求较多的任务。此级别的任务通常每帧执行并且需要在下一帧到达前完成。
VDOS的每级操作都用任务列表去调度并执行要求的任务。在中断级,是用与中断控制器关联的任务列表来实现。在后台和前台级,与应用相关的固件向VDOS发送请求去调度相应任务列表中的任务。VDOS调度任务,根据它收到的中断次序和优先级,从任务列表中启动任务并在任务完成时更新任务列表。如图2所示。VDOS用以下策略实现中断级为最高级,前台级为中间级,后台级为最低级(参见图3):只要***中有挂起的中断,VDOS就保持在处理中断状态;VDOS执行前台列表中的任务,直到该任务列表为空;只有在***中没有挂起的中断且前台任务列表为空时,VDOS才开始执行后台任务列表中的任务。三级任务操作机制的优先级,如图3所示。
1.1中断级:在中断级,VDOS使用硬核中断控制器来调度和定义不同任务的优先级:DSP中断控制器被设计成每一个应用相关的中断源具有自己唯一的中断向量地址,一旦中断源发出个中断,中断控制器产生一个中断给DSP核,并获取正确的中断向量地址送给程序总线,强制DSP跳转到这个特定的地址。所有的中断源以链表形式被连接到中断控制器上。每一个中断源的优先级(按可并发的中断来考虑)由它在链表中所处的位置来定义,比如INT_VECT0有最高优先级,INT_VECT14是最低优先级。每一个中断源可以单独路由到DSP核的INT0,INT1或INT2中断上。VDOS按如下方式处理DSP核中断和指配DSP核中断的优先级:INT0-最高优先级;INT1-较低优先级;INT2-最低优先级。
表1汇总了所有TD-SCDMA/3G/4G终端DSP固件中断和分配优先级:VDOS提供最小的中断服务程序,应在进入或退出与应用相关的中断服务程序时调用。中断服务程序保证在执行低优先级中断时,只有优先级更高的中断被使能。
1.2前台级:在前台级,从以FIFO方式组织的前台任务列表中执行前台级任务。每个被调度的任务有以下4个入口(16比特字):入口#1:任务地址;入口#2:可选参数(可以是输入数据地址);入口#3:可选参数(可以是输出数据地址);入口#4:可选参数(可以是操作模式)。
前台级操作对于调度异步任务(比如搜索器)非常有用,并且它提供了使中断等待时间最小化的能力。所有前台级执行的任务都能添加到前台和后台任务列表2中。
1.3后台级别:在后台级,从以FIFO方式组织的后台任务列表中执行后台级任务。每个被调度的任务有以下4个入口(16比特字):入口#1:任务地址;入口#2:可选参数(可以是输入数据地址);入口#3:可选参数(可以是输出数据地址);入口#4:可选参数(可以是操作模式)。
大多数后台级任务是每帧执行的任务,并要求大量的计算能力,所有在后台级执行的任务只能添加到后台任务列表中。
2.TD-SCDMA/3G/4G终端DSP固件状态机:IS2000移动台的数据处理可以分成接收路径(Rx)和发送路径(Tx)。在接收路径上,TD-SCDMA/3G/4G终端DSP固件处理来自基站(前向(下行)信道处理)的数据。在发送路径上,TD-SCDMA/3G/4G终端DSP固件处理发送至基站(反向(上行)信道处理)的数据。
在前向(下行)和反向(上行)信道上所有的DSP处理采用TD-SCDMA/3G/4G终端DSP固件状态机来实现,并且分成前向(下行)和反向(上行)状态机。所有的TD-SCDMA/3G/4G终端DSP固件状态转换(对于前向(下行)和反向(上行)信道)根据CPU请求来完成。DSP固件并不检查状态转换请求是否有效,它完全依赖于CPU的驱动做状态的转换。
VDOS和CPU-DSP端口子***不是直接的和信号处理相关的子***,但是提供对其他信号处理固件子***的业务。因此VDOS和CPU-DSP端口(和硬核业务一样)始终处于激活状态。
2.1前向(下行)信道处理:前向(下行)信道处理采用状态机完成时,使用以下5个主要状态(参见图4):开机初始化状态;前向(下行)导频信道获取状态;前向(下行)同步信道状态;空闲状态;前向/下行业务信道状态。
前向(下行)信道状态机如图4所示。前向(下行)信道状态机的状态是L1D变量,被存放在全局存储空间。当移动台要接入到TD-SCDMA/3G/4G终端网络时,要执行如图4所示的前向(下行)信道状态机正常流程。
2.1.1开机初始化状态:这是TD-SCDMA/3G/4G终端DSP固件状态机的前、后向链路的初始状态。在这一阶段,TD-SCDMA/3G/4G终端DSP固件子***被初始化成缺省的开机初始化状态。与硬核模块接口的固件子***将这些硬核模块初始化成要求的状态
2.1.2前向(下行)导频信道获取状态:在这个状态,以下DSP固件子***被激活:解调器固件;搜索器固件(SMD)。
在激活前向(下行)导频搜索前,CPU通过发送获取请求原语给L1D,将固件状态机设置成前向(下行)导频信道获取状态。L1D将所有的全局变量设置成获取状态的值,并调用解调器固件获取初始化函数来启动获取状态处理。在前向(下行)导频信道获取状态,解调器固件只实现用于TD-SCDMA/3G/4G前向(下行)导频搜索算法(Rx AGC,I/QDC偏置补偿,接收信号能量估计)的可靠操作的算法,不进行符号处理。
在收到证实DSP固件状态机转换到前向(下行)导频信道获取状态的原语时,CPU初始化搜索,在整个特征序列码空间中搜索可能的TD-SCDMA/3G/4G前向(下行)导频信号。搜索到每一个可能的前向(下行)导频都是基于前向(下行)导频信道处理的能量估计,并没有跟TD-SCDMA/3G/4G基站特征序列码偏移相关联。
DSP固件状态机在没有发现满意的前向(下行)导频前,一直保持在前向(下行)导频信道获取状态。一旦CPU获得信号强度良好的前向(下行)导频,它就将所有必要的、如导频偏移(基站特征序列码偏移)等参数发送到DSP中,并指示DSP固件状态机跳到前向(下行)同步信道状态。
在其他所有TD-SCDMA/3G/4G终端DSP固件状态中,搜索器固件(SMD)根据CPU请求而被激活,并与TD-SCDMA/3G/4G终端数据处理异步(甚至在TD-SCDMA/3G/4G终端DSP固件状态转换过程中,搜索器固件也可被激活)。SMD的性能和功能(前向(下行)导频搜索、多径接收指配)取决于TD-SCDMA/3G/4G终端DSP固件状态机的当前状态。
2.1.3前向(下行)同步信道状态:前向(下行)同步信道状态用于接收和处理前向(下行)同步信道信息。在该状态,激活以下DSP固件子***:物理层控制子***(LID);解调器固件;信道编解码器(信道解码器);物理层复用子层(解复用器)。前向(下行)同步信道固件处理过程如图5所示。
在TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态之前,CPU发送个原语给SMD来指配一个FFE硬核的多径接收,使它在获取的基站特征序列码偏移上操作,序对前向(下行)同步信道进行解码。
下一步,CPU发送一个原语给物理层使TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态。在这点上,物理层将所有的全局变量设置成前向(下行)同步信道状态,并且:(1)调用解调固件的前向(下行)同步信道初始化函数,启动前向(下行)同步信道解调。(2)调用信道解码器的前向(下行)同步信道初始化功能,将信道编码器参数设置成前向(下行)同步信道状态。(2)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机跳转到前向(下行)同步信道状态。
在前向(下行)同步信道状态出现以下事件序列:(1)旦前向(下行)同步信道处理开始,解调固件就开始监视FFE硬核的前向(下行)同步信道帧开始比特。一旦这个信号被激活,解调器固件就对输入的符号(基于19.2kbps中断)进行前向(下行)同步信道处理,并将他们集中到环形SoftDataBufChA缓存区中。(2)一旦解调固件填满一个同步帧的数据,它就调用物理层控制子***。(3)物理层控制子***检查前向(下行)信道状态机的当前状态,并将信道解码器接收格式化程序任务(预Viterbi任务)放到前台任务列表中。④接收格式化程序任务完成前向(下行)同步信道数据帧的块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。⑤卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入前向(下行)同步信道帧中的数据是连续编码的。这就是为什么卷积解码器只能在信道解码器初始化功能中初始化,并且不能在前向(下行)同步信道帧间复位。由于采用Viterbi加速器硬核,前向(下行)同步信道数据帧无法在当前帧的结束点准备好,而是要到下一个帧的中间点才能准备好。当完成一帧完整的前向(下行)同步信道帧的解码,信道解码器就调用物理层复用子层函数将数据发送给CPU。在前向(下行)同步信道处理状态,CPU不会发送新的前向(下行)导频搜索消息给DSP,这就是为什么搜索器固件未激活的原因。只有一个接收路径被指配用于获取前向(下行)同步信道。因此,在前向(下行)信道处理状态,解调器固件不执行(多路径)分集合并。CPU从DSP接收到同步数据帧,合并出前向(下行)同步信道信息(前向(下行)同步信道帧)。一旦CPU解码出前向(下行)同步信道信息,它就产生请求原语到L1D,同步主定时硬核模块。当L1D收到请求原语,固件停止发送前向(下行)同步信道帧给CPU。基基站的偏移,以及基于该原语提供的特征序列码状态和帧计数器,L1D设置、装载主定时硬核模块。一旦主定时硬核模块被设置、装载(下载合适的前向(下行)导频和特征序列码状态),在该时刻终端与网络同步。
2.1.4空闲状态:在此状态终端监视寻呼信道或前向(下行)公共控制信道。它也接收在广播信道传输的消息。在此状态,以下的DSP固件子***处于激活状态:物理层控制(L1D);解调器固件;信道编解码器(信道解码器);物理层复用子层(解复用器);搜索器固件。在空闲状态, 根据CPU对其的配置,音频处理固件也能激活(比如音调发生器或语音识别任务)。
在TD-SCDMA/3G/4G终端DSP固件状态机跳转到空闲状态之前,CPU发送多径接收指配原语到SMD,设置FFE硬核工作于基站的特征序列码偏移量,以及用合适的信道化码解扩展。有两种可能的TD-SCDMA/3G/4G终端空闲模式的处理:寻呼信道译码和2个信道并发译码——前向(下行)公共控制信道(CCCH),广播信道(BCH)。
2.1.4.1寻呼信道处理:寻呼信道处理处理过程如图6所示。在多径接收指配完成后,CPU发送寻呼信道请求原语到L1D,使TDSCDMA/3G/4G终端DSP固件状态机跳转到空闲状态。在该时刻,L1D完成:设置全局前向(下行)状态变量为空闲状态;设置全局前向(下行)信道A的类型变量为寻呼信道;根据CPU请求设置前向(下行)信道A的速率;设置前向(下行)信道A的帧长度;设置前向(下行)信道A的编码率;调用解调固件的寻呼信道初始化函数,启动寻呼信道解调;调用信道解码器的寻呼信道初始化功能;向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机跳转到空闲状态,准备启动寻呼信道解码。
在寻呼信道处理中存在下列事件序列:(1)解调器固件执行输入符号的寻呼信道处理(基于19.2kbps中断)并把它们集中到环形SoftDataBufChA缓存区中。(2)一旦解调固件填满一个寻呼帧的数据缓存区,它就调用物理层控制子***。(3)物理层控制子***检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,以及信道A类型,并将信道解码器接收格式化寻呼信道任务(预Viterbi任务)放到前台任务列表中。(4)接收格式化程序任务基于寻呼信道速率完成块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。寻呼信道帧中的数据是连续编码的。这就是为什么卷积解码器只能在信道解码器初始化功能中初始化,并且不能在寻呼信道帧间复位。这一点之所以能够实现,是因为没有其他信道与寻呼信道同时进行解调。由于采用Viterbi加速器硬核,寻呼信道数据帧无法在当前帧的结束点准备好,而是要到下一个帧的中间点才能准备好。当完成一帧完整的寻呼信道帧的解码,信道解码器就调用物理层复用子层函数将数据发送给CPU。CPU分析来自寻呼信道的消息并相应地为DSP固件提供指示。例如,它可以发送接入试探或监视特定的寻呼信道。
2.1.4.2前向(下行)公共控制,广播处理:空闲状态固件处理公共控制信道/广播信道过程如图7所示。对CCCH,BCH的每个信道都有一个独立的请求原语发给L1D,在发送任何一个信道请求原语前,CPU应指示SMD通过使能相应的信道以及设置信道化码来执行多径接收指配。
当L1D收到CPU的前向(下行)公共控制信道请求原语时,会进行如下操作:(1)将全局前向(下行)状态变量设为空闲状态。(2)将全局前向(下行)信道A的的类型变量设为前向(下行) 公共控制信道。(3)根据CPU请求设置前向(下行)信道A的速率。(4)根据CPU请求设置前向(下行)信道A的帧长度。(5)根据CPU请求设置前向(下行)信道A的编码率。(6)调用解调固件前向(下行)公共控制信道初始化功能。(7)调用信道解码器前向(下行)公共控制信道初始化功能。(8)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机已经处于空闲状态,并准备开始前向(下行)控制信道解码。
当LID收到CPU的广播信道请求原语时,会进行如下操作:(1)将全局前向(下行)信道B的的类型变量设为广播信道。(2)根据CPU请求设置前向(下行)信道B的速率。(3)将前向(下行)信道B的帧长度。(4)根据CPU请求设置前向(下行)信道B的编码率。(5)调用解调固件广播信道初始化功能。(6)调用信道解码器广播信道初始化功能。(7)向CPU返回原语,证实TD-SCDMA/3G/4G终端DSP固件状态机已经准备好启动广播信道解码。
当2个信道都被激活时,就会发生如下系列事件:(1)对每个激活的信道,解调器固件执行输入符号的寻呼信道处理(基于19.2kbps中断)。并将它们集中到对应于它指配的硬核信道的环形缓存区中(SoftDataBufChA,SoftDataBufChB)。(2)一旦解调器固件完成对某一个激活的信道的帧软符号的收集,它调用L1D。由于不同信道的帧长度会有所不同,所以每个信道(A,B)需要独立处理。(3)L1D检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,以及已经完成帧准备的信道类型。然后将信道解码器对信道A的接收格式化前向(下行)CCCH信道任务,将信道解码器对信道B的接收格式化BCH信道任务放到前台任务列表中。应先调度具有较小帧长度的信道处理。(4)接收格式化程序任务(预Viterbi任务)基于信道类型和参数(数据速率,编码率,帧长度)完成块解交织和帧去比特重复。并将经过块解交织和帧去比特重复的数据帧放到信道解码器的格式化缓存区(RxFmtBuf)中。当完成对整个帧的处理,接收格式化程序任务便激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。不像同步和寻呼信道,这2个信道的卷积编码是不连续的,那就是为什么每完成一次前向(下行)CCCH,BCH解码,Viterbi译码器都应被重新初始化。(6)一旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把前向(下行)CCCH,BCH的后Viterbi处理任务放入前台任务列表。该任务对每一帧数据计算CRC并与(BCH)接收到的CRC校验尾比特相比较,并去掉CRC尾比特。之后,后Viterbi处理任务调用物理层复用子层功能,将数据发送到CPU。
在空闲状态,CPU继续监视全部TD-SCDMA/3G/4G前向(下行)导频信道并送原语到SMD。基于从SMD返回给CPU的结果,CPU保持对前向(下行)导频集(激活,候选等)的跟踪并通过SMD多径接收指配原语指配附加的接收路径。解调固件利用多个接收路径完成分集组合。
2.1.4.3时隙模式:空闲状态L1D控制层支持对寻呼或前向(下行)公共控制信道DSP固件处 理的使能/去使能的时隙模式。利用CPU的请求(时隙模式请求原语)实现ON/OFF时隙的开关。当CPU处于OFF时隙,L1D停止空闲状态处理,关闭Viterbi硬核,屏蔽FFE和调制器中断,完成剩余任务,发送证实原语给CPU并关闭DSP核。当CPU处于ON时隙,L1D使能空闲状态固件操作,重新初始化解调器和信道编解码器固件,并继续前述信道处理。DSP核被CPU接口中断激发的时隙模式请求原语启动。TD-SCDMA/3G/4G终端DSP固件支持快速寻呼信道处理。该信道的目的是引入时隙模式下的移动台操作,实现在ON时隙唤醒并接收指配的寻呼信道或前向(下行)公共控制信道时隙,或者在OFF时隙则相反。快速寻呼信道处理比指配时隙的寻呼信道或前向(下行)公共控制信道处理所消耗的能量要少很多。快速寻呼信道处理是由解调固件在L1D控制下完成。L1D事先接收到包含基站提供的快速寻呼信道参数的快速寻呼配置请求原语。然后,用快速寻呼请求原语启动快速寻呼信道解调。在快速寻呼时隙的结束点,L1D(通过快速寻呼数据证实原语)向CPU报告快速寻呼信道译码结果。如果寻呼指示器和配置改变指示器被设置成“OFF”,CPU发送时隙模式请求原语,指示DSP再次进入时隙模式。反之,DSP则应保持在唤醒状态并对寻呼或前向(下行)公共信道译码。
2.1.5前向/下行业务信道状态:在业务信道状态,移动台接收业务信道帧,包括来自的基站的声音、数据和信令。在这一状态,以下DSP子***是激活的:物理层控制(L1D);解调器固件;信道编解码器(信道解码器);物理层复用子层;语音编解码器(语音解码器);音频处理器(前向(下行)音频处理);搜索器固件。
在TD-SCDMA/3G/4G终端DSP固件前向(下行)信道状态机跳转到业务信道状态之前,CPU根据最新的TD-SCDMA/3G/4G前向(下行)导频信道分布情况,发送多径接收指配原语到搜索器固件来设置FFE硬核操作,并对指配的TD-SCDMA/3G/4G终端信道译码。前向/下行业务信道固件处理过程如图9所示。
在收到CPU业务信道请求原语时,L1D控制TD-SCDMA/3G/4G终端固件前向(下行)信道状态机跳转到业务信道状态。原语的信道掩码域为DSP提供在开始调用前向(下行)FCH(或DTCH,专用业务信道),前向(下行)DCCH时要解调的信道信息,在这一时间点,L1D:(1)设置全局前向(下行)状态变量为业务信道状态。(2)根据信道掩码设置全局前向(下行)信道A的类型变量为基本信道/专用业务信道,和/或前向(下行)信道B的类型变量为专用控制信道。(3)根据CPU请求,设置前向(下行)信道A和/或B的无线承载/无线配置,速率,帧长度,缺省的前向(下行)链路复用选项全局变量,以及其它一些相关参数。(4)设置前向(下行)信道A和/或B的编码率。(5)调用解调器固件的业务信道初始化功能。(6)调用信道译码器业务信道初始化功能。(7)设置MAD解复用器的全局变量为缺省设置。(8)发送原语到CPU,确认TD-SCDMA/3G/4G终端DSP固件前向(下行)信道状态机已经跳转到业务状态,并准备启动基本信道/专用业务信道解码。之后CPU发送业务信道配置请求原语给L1D,配置专用信道和业务选项。这个原语请求DSP开始处理以下信道:前向(下行)FCH (DTCH),前向(下行)DCCH,前向(下行)SCH(前向补充信道/下行共享信道)。L1D执行以下项:(1)基于信道掩码设置全局前向(下行)信道A的类型变量为基本信道/专用业务信道,和/或前向(下行)信道B的类型变量为专用控制信道,和/或前向(下行)信道C的类型变量为补充信道(2)依据码速率变量设置全局前向(下行)信道A(B,C)的无线承载/无线配置,速率,帧长度。(3)调用MAD前向(下行)业务选项更新功能。(4)如果基于DSP的语音业务选项被连接,那么调用语音解码器初始化功能。(5)发送原语到CPU确认新的业务信道配置是生效的,并且TD-SCDMA/3G/4G终端DSP固件准备好了业务信道译码功能。
前向(下行)业务信道处理过程中依次出现以下事件序列:(1)解调器固件对每一个激活的信道(前向(下行)FCH (DTCH)和前向(下行)DCCH执行输入符号处理(基于19.2kbps中断),并将解调出的符号集中到对应于指配的硬核信道的环形缓存区(SoftDataBufChA,SoftDataBufChB)补充业务信道由硬核处理,所以不需要用缓存区。(2)一旦解调器固件到达帧的结束点,它调用L1D(3)L1D检查TD-SCDMA/3G/4G终端的固件前向(下行)信道状态机的当前状态,并将信道解码器对专用控制信道DCCH的接收格式化任务(也被称作预Viterbi任务)放入前台任务列表中。(4)预Viterbi任务完成块解交织和去比特打孔。然后激活卷积解码功能。(5)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码。每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP。DSP读取硬判决数据并将下一个软判决数据写入。业务信道的卷积编码是不连续的,那就是为什么每完成一个业务信道数据帧,Viterbi译码器都应被重新初始化。(6)一旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把DCCH的后Viterbi处理和MAD解复用任务,以及前向(下行)FCH(或DTCH)的预Viterbi任务放入前台任务列表。(7)前向(下行)DCCH后Viterbi任务对每一帧数据计算CRC并与接收到的CRC校验尾比特相比较,并去掉CRC尾比特。之后,MAD解复用任务将数据发送到CPU。(8)前向(下行)FCH(DTCH)预Viterbi任务完成块解交织和去比特打孔。如果允许除全速率以外的速率,则对于的1/2,1/4和1/8速率的帧进行去比特重复。下一步便是激活卷积解码功能。(9)一旦完成整个帧数据的解码,Viterbi中断请求(ISR)调用L1D扩展功能,把前向(下行)FCH/DTCH的后Vitcrbi处理和MAD解复用任务放入前台任务列表。如果音频功能被使用,那么语音解码器和前向(下行)音频处理任务也会被加到列表里。如果有卷积的SCH将被激活,L1D将在前台调度SCH的预Viterbi任务。(10)前向(下行)FCH(DTCH)后Viterbi任务执行帧质量指示计算和执行所有使能的帧速率的相关矩阵。一旦他们准备好,速率判决程序将被启动。速率判决程序功能检测当前帧的速率,正确定位数据指针,以及设置正确的帧类别。(11)基于当前业务选项配置,MAD解复用器任务为语音解码器提取原始数据流并送整个数据帧到CPU.(12)音解码器任务产生音频数据(线性PCM采样)帧。LID通过将指针传送到语音译码器,而将数据置于声音输出环形缓存区里。为保证固件操作的可靠性,缓存区的大小必须至少是双倍(以提供一个大的缓存区能用于支持音频处理任务)。(13)语音解码完成 后,前向(下行)声音处理任务从前台任务列表中被激活。该任务取出语音解码器输出数据,进行处理,然后写回到输出缓存区。(14)音频模拟前端中断服务子程序(VBAFE ISR)基于8kHz中断从前向(下行)音频缓存区(ForwardAudioBuf)中读出数据并写入VBAFE硬核寄存器中。(15)如果低数据速率SCH被激活,包括解交织、去比特打孔等所有的符号级处理在硬核中完成。在一帧数据处理完成时,硬核解交织器产生一个中断发给DSP。解交织器ISR设置SCH数据读标志,指示SCH预Viterbi任务从硬核中读数据到接收帧缓存区(RxFrameBuf),并启动采用Viterbi硬核加速器的卷积解码功能。在完成整个SCH帧译码后,Viterbi ISR调用L1D激励函数,其将补充信道的后Viterbi和MAD解复用器任务放入前台任务列表。SCH后Viterbi任务计算每帧的CRC,并将计算出的CRC与接收到的CRC尾比特相比较,并去掉每帧的CRC尾比特。完成这些处理之后,MAD解复用器任务传送数据到CPU。(16)如果高数据速率SCH被激活,扩展的硬核功能可执行Turbo/CRC译码。Turbo/CRC译码是在完成符号合并和对齐及块解交织之后进行。当帧解码完成后,Turbo/CRC解码器发中断给DSP。Turbo/CRC解码器ISR(中断服务子程序)从硬核拷贝数据,并将补充信道的MAD解复用器任务加入到前台任务列表里。
在业务状态,CPU持续地发出新的搜索消息给SMD,以保持所要求的分集合并和前向(下行)导频集维护(解调器固件应能够提供至少三个接收路径的分集合并)。每次一个新的请求到达,SMD子***就被激活。CPU基于当前的前向(下行)导频分布总体情况,保持多径接收的指配。当前激活的接收路径取决于当前输入的前向(下行)导频分布总体情况,并实时变化。
2.2反向(上行)信道处理:反向(上行)信道处理是用一个状态机及以下三个主要状态来实现的(参见图10):开机初始化状态;***接入状态;反向(上行)业务信道状态。反向(上行)信道状态机的状态是一个L1D变量,存储在一个全局存储器里。每一个终端(MS/UE)接入到TD-SCDMA/3G/4G终端网络的过程都涉及到如图10所示的反向(上行)信道状态机执行的正常流程。
2.2.1开机初始化状态:反向(上行)信道状态机中的开机初始化状态在3.1.1中有描述。
2.2.2***接入状态:在反向(上行)信道状态机中的接入状态,以下的DSP固件子***被激活:物理层控制(L1D);调制器固件;信道编解码器(信道编码器);物理层复用子层(复用器)。在TD-SCDMA/3G/4G终端接入状态进行以下三种不同的处理:接入信道传输,(ACH);和反向(上行)公共控制信道传输(CCCH)。
2.2.2.1接入信道处理:接入信道固件处理过程如图11所示。在反向(上行)信道处理状态机跳转到接入状态之前,CPU发送包含封装的接入信道消息的接入信道请求原语给L1D。在接入状态,立即发送整个信道消息,而不是一帧一帧地传送。之后,在正确的时刻,CPU给L1D发送接入试探请求原语,启动一个接入试探。这个原语包含发起接入试探所需要的全部信息——RN(无线网络)延迟,长码掩码,功率偏移,在这一时刻,L1D:(1)将全局反向(上行)状态变量设置为接入状态。(2)全局反向(上行)信道A的类型变量设置为接入信道。(3)设置反向(上行)信道A的速 率。(4)设置反向(上行)信道A帧长度。(5)设置反向(上行)信道A的编码率。(6)调用调制器接入信道初始化功能。
以下事件序列依次出现在接入信道处理过程中:(1)调制器ISR监视帧边界的结束点,在到达帧边界的结束时,调用L1D激励程序。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机的状态和反向(上行)信道A的类型,将接入信道编码器任务放入后台任务列表。(3)信道编码器从接入信道封装缓存区中取出数据帧,加上尾比特,完成卷积编码,并对此数据帧进行比特重复和交织。交织的数据组合成符号。(4)信道编码器任务以帧为单位填充TxFrameBufA缓存区,按中断将数据发送给调制器硬核(每4.8kHz中断产生一个信道化码符号)。(5)L1D每次调度信道编码器,都会检查余下多少个接入信道帧要处理。当没有数据留下时L1D不再调度信道编码器,再过一帧时间停止调制器硬核。这个时候不再有反向(上行)信道处理。
基于基站提供的参数,CPU启动一个定时器,用于等待最近发送的接入试探的响应。如果定时器超时没有收到响应,CPU发送一个新的请求给L1D,以发起一个新的接入试探。
在DSP中没有机制去识别定时和接入试探的次数,只要收到CPU请求,DSP就发起接入试探。CPU发送接入试探停止请求原语给DSP,停止当前接入试探传输。这种情况典型出现在已发送的接入试探已被基站确认或移动台失去了寻呼信道。当有重要的帧要发送的时候如果DSP收到这个原语,这些帧就被丢弃了,相关的变量都会被设为结束接入试探传输的值。
2.2.2.3反向(上行)公共控制信道处理:反向(上行)公共控制信道固件处理过程如图12所示。当1D从CPU接收反向(上行)公共控制信道请求原语:(1)将全局反向(上行)状态变量设置为接入状态。(2)设置全局反向(上行)信道A的类型变量。(3)根据CPU请求设置反向(上行)信道A的速率。(4)根据CPU请求设置反向(上行)信道A帧长度。(5)设置反向(上行)信道A的编码率。(6)调用调制器(反向/上行)CCCH初始化功能。
以下事件序列依次出现在接入信道处理过程中:(1)调制器ISR监视帧边界的结束点,在到达帧边界的结束时,调用L1D激励程序。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(行)信道状态机的状态和反向(上行)信道A的类型,将MAD复用器和接入信道编码器任务放入后台任务列表。(3)复用器任务准备输入到信道编码器的数据,信道编码器任务计算CRC,增加尾比特,完成卷积编码、符号重复、块交织。(4)调制器ISR以4.8kbps中断,从信道编码器输出缓存区读出长度合适的比特,并写入调制器硬核。
2.2.3反向(上行)业务信道状态:在反向(上行)业务信道状态,移动台发送语音,数据,信令给基站。在业务信道状态,以下的DSP固件子***被激活:(1)物理层控制(L1D);(2)调制器固件;(3)信道编解码器(信道编码器);(4)物理层复用子层(复用器);(5)语音编解码器(语音编码器);(6);(7)音频处理(反向(上行)音频处理)。
CPU发送业务信道请求原语给L1D,使TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机跳 转到业务信道状态。这里,使反向(上行)或者前向(下行)信道状态机跳转到业务状态的原语没有什么不同——业务信道请求原语发送给两个状态机都引发状态转换。反向(上行)业务信道固件处理过程如图1 所示。
CPU发送业务信道请求原语给L1D,,使TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机跳转到业务信道状态。原语中的信道掩码域为DSP提供当开始调用(反向/上行)FCH(或DTCH,上行专用业务信道),(反向/上行)DCCH(反向/上行专用控制信道)时,用哪一个信道传输的信息。在这一时刻,L1D:(1)设置全局反向(上行)状态变量为业务信道状态。(2)根据信道掩码设置全局反向(上行)信道A的类型变量为基本信道/专用业务信道和/或信道B的类型变量为专用控制信道。(3)通过CPU的请求设置反向(上行)信道A和/或B的无线承载/无线配置,速率,帧长度,缺省反向(上行)链路复用选项全局变量以及其它相关参数。(4)设置反向(上行)信道A和/或B的相应的编码率。(5)在反向(上行)信道处理状态机的初始状态,L1D不会调度任何反向(上行)信道相关的固件任务。它一直等待从CPU过来的反向(上行)前缀发送请求原语从而能够进行反向(上行)链路处理。这一事件只发生在接收到前向(下行)链路好帧的时候。此时,L1D:①调用调制器固件业务信道初始化功能。②设置MAD复用器全局变量为缺省值。③如果音频激活,调用反向(上行)音频处理初始化程序。
反向(上行)链路一旦建立,CPU发送业务信道配置请求原语给L1D,L1D设置专用信道和业务选项。这个原语可以请求DSP开始传输(反向/上行)FCH(DTCH),(反向/上行)DCCH,(反向/上行)SCH(反向补充信道/上行共享信道)等信道中的任何信道。L1D执行下面的操作:(1)根据信道掩码设置全局反向(上行)信道A的类型变量为基本信道/专用业务信道,和/或反向(上行)信道B的类型变量为专用控制信道,和/或反向(上行)信道C的类型变量为补充信道。(2)设置全局反向(上行)信道A(B,C)无线承载/无线配置,速率,帧长度,编码率。(3)调用MAD反向(上行)业务选项更新功能。(4)如果基于DSP的语音业务选项是连接的,调用语音编码初始化功能。
以下事件序列依次出现在反向(上行)业务信道处理过程中:(1)语音编码硬核(VBAFE)以8KHz中断的基准,对语音数据采样并发送到DSP。VBAFE ISR从VBAFE硬核寄存器读取输入数据,并写入到反向(上行)语音缓存区ReverseAudioBuf中。当整个数据帧准备好了的时候,VBAFE ISR调用L1D激励功能。(2)L1D检查当前TD-SCDMA/3G/4G终端DSP固件反向(上行)信道状态机的状态,并放置反向(上行)语音处理和语音编码器任务在后台任务列表中。(3)反向(上行)音频处理取出线性PCM数据帧,经过相应的处理,输出到语音编码任务。(4)一旦反向(上行)音频处理完成,语音编码任务就启动,对当前的帧提取语音参数,将编码数据放入编码语音缓存区EncoderVoiceBuf,提供给在MAD复用器任务。一旦语音编码任务确定当前编码帧的速率,它就会通知MAD(通过程序调用)并且后者给CPU发送FCH(DTCH)TxEmpty指示原语,询问与语音复用的数据大小。(5)在帧开始后,调制器ISR(以4.8KHz速率)启动L1D调度处于后台级的基本信道/专用业务信道的MAD复用器和信道编码器任务。L1D在后台任务列表按下列次序设置任务:SCH复用器,SCH信道编码器,DCCH复用器,DCCH信道编码器,FCH(DTCH)复用器,FCH(DTCH)信道编码器,MADTxEmpty,调制器功率控制任务。这个次序是给CPU足够的时间发送包含当前帧数据的反向(上行)业务请求原语。(6)MAD复用器一帧一帧地从MAC接受数据。MAD发出TxEmpty指示原语通知CPU,DSP已经准备好接收新的数据,即新反向(上行)业务请求原语。MAD复用器任务将语音编码数据与CPU中运行的复用子层(MAC)提供的数据复用在一起。在基于CPU的业务选项,反向(上行)业务请求原语包含要求MAD和信道编码器处理的下一帧数据。在基于DSP的语音业务选项(只能在基本信道/专用业务信道传输),来自CPU的数据需要与语音编码数据复用。(7)信道编码器任务对每一个信息帧执行卷积编码、符号重复,块交织。如果使用Turbo编码(仅用于高速率补充业务信道),整个信道编码由硬核完成——SCH信道编码器任务仅需要将数据写入到硬核寄存器。(8)调制器功率控制任务基于反向(上行)链路增益表和当前帧特性,计算所有需要用到的码道的码道增益。在帧边界,调制器ISR将所有需要用到的码道的码道增益写入到相应的调制器硬核寄存器。(9)工作于4.8KHz的调制器ISR完成DSP固件和调制器硬核之间的编码数据传输(在使用硬核信道编码器时,数据是直接发送到硬核寄存器,而不涉及任何固件)。同时,调制器ISR还负责完成由门控掩码确定的功率控制。
表1:TD-SCDMA/3G/4G终端DSP固件中断分配表
中断源 | 中断控制寄存器/中断矢量 | DSP中断号 | 中断周期 |
多径接收前端(Finger Front End) | INT_VECTO | INT0 | 19.2kHz |
音频模拟前端的音频处理 (VBAFE Audio) | INT_VECT1 | INT0 | 8.0kHz |
发送调制器(Tx Modulator) | INT_VECT2 | INT0 | 4.8kHz |
SSP(同步串口)接收 | INT_VECT3 | INT0 | 8.OkHz |
搜索器(Searcher) | INT_VECT4 | INT1 | 异步 |
Viterbi解码器 | INT_VECT6 | INT1 | 在收到DSP写请求后的1408个DSP周 期(1408DSP cycles after DSP write request) |
DSP定时器0(Timer 0) | INT_VECT7 | INT1 | 异步(asynchronous) |
Turbo/CRC解码器 | INT_VECT8 | INT1 | 50Hz |
去交织器(De-Interleaver) | INT_VECT9 | INT1 | 50Hz |
House Keeping ADC | INT_VECT10 | INT1 | 异步 |
DSP定时器1(Timer 1) | INT_VECT11 | INT1 | 异步 |
邮箱接收(Mailbox Receive) | INT_VECT12 | INT2 | 异步(取决于CPU请求) |
邮箱发送(Mailbox Transmit) | INT_VECT13 | INT2 | 异步(取决于CPU请求) |
表2TD-SCDMA/3G/4G终端DSP固件前台任务
任务名(Task Name) | 固件子*** | 处理类型 | 调度者 |
预Viterbi处理 (Pre-Viterbi Processing) | 信道编解码 器 | 前向/下行信道:执行软符号帧格式化、解交 织、消除比特重复 | L1D |
后Viterbi处理 (Post-Viterbi Processing) | 信道编解码 器 | 前向/下行信道:基于Viterbi解码器输出和 CRC计算,完成速率判别算法i | L1D |
物理层解复用器 (Demultiplexer) | MAD | 前向/下行信道:对收到的前向/下行信道帧解 复用,将话音数据发给内部的话音编解码器, 路由输入的数据帧给CPU。 | L1D |
话音解码器(Voice Decoder) | 话音编解码 器Vocoder | 前向/下行信道:将输入的编码话音数据解码 成PCM话音流 | L1D |
前向/下行音频处理 (Forward Audio Processing) | 音频处理 | 处理前向/下行链路的话音PCM采样 | L1D |
前向/下行业务选项更新 (Forward Service Option Update) | LID | 设置与新的前向/下行业务选项连接相关的参 数 | L1D |
搜索数据处理(Search Data Processing) | SMD | 搜索每个时间间隔的搜索窗长中的最强导频 | 搜索器中断服 务子程序 (Searcher ISR) |
主定时时间校准(Master Time Correction) | SMD | 完成主定时器定时校准 | Searcher ISR |
表3TD-SCDMA/3G/4G终端DSP固件后台任务
任务名(Task Name) | 固件子*** | 处理类型 | 调度 者 |
话音编码器 | 话音编解码器 Vocoder | 反向/上行信道:将输入的PCM话音采样编码成话音 压缩编码数据流 | L1D |
反向/上行话音处理 | 音频处理 | 处理反向/上行链路的话音PCM采样 | L1D |
物理层复用器 Multiplexer | 物理层复用子 层MAD | 反向/上行信道:对内部的话音编解码器的数据和CPU 输入的数据完成复用,并发送给信道编码器。 | L1D |
信道编码器 | 信道编解码器 | 反向/上行信道:完成数据流的卷积编码、比特重复, 和交织。 | |
固件状态转换 | L1D | 执行TD SCDMA/3G/4G终端固件状态机转换,包括必 要的初始化。 | L1D |
调制器功率控制 | 调制器 Modulator | 计算在用的所***道的码道增益。 | L1D |
反向/上行业务选项更新 (Reverse Service Option Update) | L1D | 设置与新的反向/上行业务选项连接相关的参数。 | L1D |
需要理解到的是:上述实施例虽然对本发明作了比较详细的说明,但是这些说明,只是对本发明的简单说明,而不是对本发明的限制,任何不超出本发明实质精神内的发明创造,均落入本发明的保护范围内。
Claims (10)
1.一种TD-SCDMA及3G和4G终端DSP固件***,该终端DSP固件***由DSP操作***、CPU-DSP接口固件子***、物理层控制固件子***L1D、基带解调器固件子***、基带调制器固件子***、信道编解码器固件子***、搜索器固件子***、物理层复用子层固件子***、语音编解码器固件子***、音频处理固件子***、硬核业务固件子***构成,其特征是:
(1)该DSP固件***所包括的上述固件子***对DSP资源管理的主要需求是:
1)基带解调器固件在中断条件下执行,其中断是周期性的,固件在每一个中断处理多个符号,所有的处理在下个中断到来之前完成;
2)信道编码器信号处理逐帧进行;
3)调制器固件也是在中断条件下执行,在其周期性的中断处理执行过程中将数据发送到调制器硬核上;
4)搜索器固件根据CPU请求和与之相关的参数,与数据收发操作异步执行;
5)DSP物理层复用子层子***和CPU之间的数据传输异步进行,但必须在同一帧内完成;
6)在语音编解码器固件的操作逐帧进行;
7)音频处理子***的操作既对PCM采样逐个进行,也逐帧进行,由信号处理算法实现;
8)硬核业务固件根据CPU请求而异步执行;
(2)在DSP任务调度方式上,该DSP固件***采用中断级、前台级、后台级的三级操作的任务列表调度并执行需要完成的任务,中断级为最高级,前台级为中间级,后台级为最低级;
(3)上述DSP操作***的每级操作都用任务列表去调度并执行要求的任务,在中断级,是用与中断控制器关联的任务列表来实现,在后台和前台级,与应用相关的固件向DSP操作***发送请求去调度相应任务列表中的任务,DSP操作***调度任务,根据它收到的中断次序和优先级,从任务列表中启动任务并在任务完成时更新任务列表;只要***中有挂起的中断,DSP操作***就保持在处理中断状态;DSP操作***执行前台列表中的任务,直到该任务列表为空;只有在***中没有挂起的中断且前台任务列表为空时,DSP操作***才开始执行后台任务列表中的任务。
2.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:在其包含的固件子***中,凡是硬核向DSP固件输出的处理过程,包括以下处理过程和功能,均采用中断级任务操作调度方式来启动执行:
a)多径接收前端处理;
b)音频模拟前端的音频处理;
c)基带调制器功能;
d)同步串口接收;
e)搜索器固件功能;
f)Viterbi解码器固件功能;
g)DSP定时器0;
h)Turbo及CRC解码器功能;
i)去交织器功能;
j)DSP定时器1;
k)邮箱接收功能;
l)邮箱发送功能;
(一)上述每一项处理过程和功能分别拥有一个独立的中断源,所有的中断源以链表形式被连接到中断控制器上,每一个中断源的优先级由它在链表中所处的位置来定义;
(二)每一个中断源可以单独路由到DSP核的INT0,INT1或INT2中断上,DSP操作***按如下方式处理DSP核中断和指配DSP核中断的优先级:
①INT0-最高优先级;
②INT1-较低优先级;
③INT2-最低优先级;
(三)以下中断源单独路由到DSP核的INT0中断上:多径接收前端处理;音频模拟前端的音频处理;基带调制器功能;同步串口接收;
(四)以下中断源单独路由到DSP核的INT1中断上:搜索器固件;Viterbi解码器固件;定时器0;Turbo及CRC解码器;去交织器;DSP定时器1;
(五)以下中断源单独路由到DSP核的INT2中断上:邮箱接收功能;邮箱发送功能。
3.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:其包含的固件子***中,包括以下的所有前向或下行信道固件处理过程和功能全部采用前台任务方式来调度执行:
(一)预Viterbi处理;
(二)后Viterbi处理;
(三)物理层解复用器;
(四)话音解码器;
(五)前向或下行音频处理;
(六)搜索数据处理;
(七)主定时时间校准。
4.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:其包含的固件子***中,以下所有反向或上行信道固件处理过程和功能全部采用后台任务方式来调度执行:
(一)话音编码器;
(二)反向或上行话音处理;
(三)物理层复用器;
(四)信道编码器;
(五)固件状态转换;
(六)调制器功率控制。
5.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:对前向或下行信道的处理采用前向或下行状态机处理的方式来调度和实现,前向或下行状态机的状态转换是由CPU发给物理层控制固件L1D的原语启动,由L1D返回给CPU的原语来证实:
(一)在激活前向或下行导频搜索前,CPU通过发送获取请求原语给L1D,将固件状态机设置成前向或下行导频信道获取状态,在收到证实DSP固件状态机转换到前向或下行导频信道获取状态的原语时,CPU初始化搜索,在整个特征序列码空间中搜索可能的TD-SCDMA及3G和4G前向或下行导频信号;
(二)CPU发送一个原语给L1D使TD-SCDMA及3G和4G终端DSP固件状态机跳转到前向或下行同步信道状态,L1D向CPU返回原语,证实TD-SCDMA及3G和4G终端DSP固件状态机跳转到前向或下行同步信道状态;
(三)在多径接收指配完成后,CPU发送寻呼信道请求原语到L1D,使TD-SCDMA及3G和4G终端DSP固件状态机跳转到空闲状态,L1D向CPU返回原语,证实TD-SCDMA及3G和4G终端DSP固件状态机跳转到空闲状态,准备启动寻呼信道解码;
(四)CPU对前向或下行公共控制信道CCCH、广播信道BCH的每个信道都有一个独立的请求原语发给L1D,在发送任何一个信道请求原语前,CPU指示搜索器固件SMD通过使能相应的信道以及设置信道化码来执行多径接收指配,L1D向CPU返回原语,证实TD-SCDMA及3G和4G终端DSP固件状态机已经处于空闲状态并准备开始前向或下行控制信道解码,或证实TD-SCDMA及3G和4G终端DSP固件状态机已经准备好启动广播信道解码;
(五)在收到CPU或前向或下行业务信道请求原语时,L1D控制TD-SCDMA及3G和4G终端固件前向或下行信道状态机跳转到业务信道状态,送原语到CPU,确认TD-SCDMA及3G和4G终端DSP固件前向或下行信道状态机已经跳转到业务状态,并准备启动基本信道或专用业务信道解码;
(六)CPU发送原语给L1D,使TD-SCDMA及3G和4G终端DSP固件状态机的状态跳转,在状态跳转时,L1D必须首先对与信道处理相关的参数进行设置:
①CPU通过发送获取请求原语给L1D,将固件状态机设置成前向或下行导频信道获取状态;L1D将所有的全局变量设置成获取状态的值;
②CPU发送一个原语给物理层使TD-SCDMA及3G和4G终端DSP固件状态机跳转到前向或下行同步信道状态,在这点上,物理层控制固件L1D将所有的全局变量设置成前向或下行同步信道状态;
③CPU发送寻呼信道请求原语到L1D,使TD-SCDMA及3G和4G终端DSP固件状态机跳转到空闲状态,在该时刻,L1D完成:设置全局前向或下行状态变量为空闲状态;设置全局前向或下行信道A的类型变量为寻呼信道;根据CPU请求设置前向或下行信道A的速率、帧长度、编码率;
(七)当L1D收到CPU的前向或下行公共控制信道请求原语时,会进行如下操作:将全局前向或下行状态变量设为空闲状态;将全局前向或下行信道A的类型变量设为前向或下行公共控制信道;根据CPU请求设置前向或下行信道A的速率、帧长度、编码率;
(八)当L1D收到CPU的广播信道请求原语时,会进行如下操作:将全局前向或下行信道B的类型变量设为广播信道;根据CPU请求设置前向或下行信道B的速率、帧长度、编码率;
(九)收到CPU业务信道请求原语时,L1D控制TD-SCDMA及3G和4G终端固件前向或下行信道状态机跳转到业务信道状态,在这一时间点,L1D完成:设置全局前向或下行状态变量为业务信道状态;根据信道掩码设置全局前向或下行信道A的类型变量为基本信道或专用业务信道、和/或前向或下行信道B的类型变量为专用控制信道;根据CPU请求,设置前向或下行信道A和/或B的无线承载或无线配置、速率、帧长度、缺省的前向或下行链路复用选项全局变量;设置前向或下行信道A和/或B的编码率;设置物理层复用子层MAD解复用器的全局变量为缺省设置;
(十)CPU给L1D发送接入试探请求原语,启动一个接入试探,在这一时刻,L1D完成:将全局反向或上行状态变量设置为接入状态;全局反向或上行信道A的类型变量设置为接入信道;设置反向或上行信道A的速率、帧长度、编码率;
(十一)当L1D从CPU接收反向或上行公共控制信道请求原语,会进行如下操作:将全局反向或上行状态变量设置为接入状态;设置全局反向或上行信道A的类型变量;根据CPU请求设置反向或上行信道A的速率、帧长度、编码率;
(十二)CPU发送业务信道请求原语给L1D,使TD-SCDMA及3G和4G终端DSP固件反向或上行信道状态机跳转到业务信道状态,在这一时刻,L1D完成:设置全局反向或上行状态变量为业务信道状态;根据信道掩码设置全局反向或上行信道A的类型变量为基本信道或专用业务信道和/或信道B的类型变量为专用控制信道;通过CPU的请求设置反向或上行信道A和/或B的无线承载或无线配置、速率、帧长度、缺省反向或上行链路复用选项全局变量;设置反向或上行信道A和/或B的相应的编码率。
6.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:CPU发送原语给物理层控制固件L1D,使TD-SCDMA及3G和4G终端DSP固件状态机的状态跳转,除反向或上行业务信道状态外,在状态跳转时,L1D必须对与信道处理相关的解调器、信道解码器、调制器、信道编码器进行初始化,启动它们开始工作:
(一)CPU通过发送获取请求原语给物理层控制固件L1D,将固件状态机设置成前向或下行导频信道获取状态,L1D调用解调器固件获取初始化函数来启动获取状态处理;
(二)CPU发送一个原语给物理层使TD-SCDMA及3G和4G终端DSP固件状态机跳转到前向或下行同步信道状态,在这时刻,物理层调用解调器固件的前向或下行同步信道初始化函数,启动前向或下行同步信道解调,调用信道解码器的前向或下行同步信道初始化功能,将信道编码器参数设置成前向或下行同步信道状态;
(三)CPU发送寻呼信道请求原语到L1D,使TD-SCDMA及3G和4G终端DSP固件状态机跳转到空闲状态,在该时刻,L1D调用解调器固件的寻呼信道初始化函数,启动寻呼信道解调,调用信道解码器的寻呼信道初始化功能,准备启动寻呼信道解码;
(四)当L1D收到CPU的前向或下行公共控制信道请求原语时,调用解调器固件前向或下行公共控制信道初始化功能,启动前向或下行公共控制信道解调,调用信道解码器前向或下行公共控制信道初始化功能,准备开始前向或下行控制信道解码;
(五)当L1D收到CPU的广播信道请求原语时,调用解调固件广播信道初始化功能,调用信道解码器广播信道初始化功能,准备启动广播信道解码;
(六)在收到CPU业务信道请求原语时,L1D调用解调器固件的业务信道初始化功能,调用信道译码器业务信道初始化功能,准备启动基本信道或专用业务信道解码;
(七)CPU发送包含封装的接入信道消息的接入信道请求原语给L1D,之后,CPU给L1D发送接入试探请求原语,启动一个接入试探,在这一时刻,L1D调用调制器接入信道初始化功能;
(八)当L1D从CPU接收反向或上行公共控制信道请求原语,调用调制器固件的反向或上行公共控制信道CCCH初始化功能。
7.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:在TD-SCDMA及3G和4G终端DSP固件状态机的状态跳转到反向或上行业务信道状态时,物理层控制固件L1D不会调度任何反向或上行信道相关的固件任务,它一直等待从CPU过来的反向或上行前缀发送请求原语从而能够进行反向或上行链路处理,这一情形只发生在接收到前向或下行链路的时候,此时,L1D:
(一)调用调制器固件业务信道初始化功能;
(二)设置物理层复用子层MAD解复用器全局变量为缺省值;
(三)如果音频激活,调用反向或上行音频处理初始化程序。
8.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:当CPU发送业务信道配置请求原语给物理层控制固件L1D,L1D设置专用信道和业务选项,L1D执行下面的操作:
(一)根据信道掩码设置全局反向或上行信道A的类型变量为基本信道或专用业务信道,和/或反向或上行信道B的类型变量为专用控制信道,和/或反向或上行信道C的类型变量为补充业务信道;
(二)设置全局反向或上行信道A或B或C无线承载或无线配置、速率、帧长度、编码率;
(三)调用物理层复用子层MAD反向或上行业务选项更新功能;
(四)如果基于DSP的语音业务选项是连接的,调用语音编码初始化功能。
9.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:前向或下行业务信道处理过程包括依次完成对以下序列的处理:
(一)解调器固件对每一个激活的信道前向或下行基本信道FCH或专用业务信道DTCH和前向或下行专用控制信道DCCH执行输入符号处理,并将解调出的符号集中到对应于指配的硬核信道的环形缓存区,补充业务信道由硬核处理,所以不需要用缓存区;
(二)一旦解调器固件到达帧的结束点,它调用物理层控制固件L1D;
(三)L1D检查TD-SCDMA及3G和4G终端的固件前向或下行信道状态机的当前状态,并将信道解码器对专用控制信道DCCH的接收格式化任务放入前台任务列表中;
(四)预Viterbi任务完成块解交织和去比特打孔,然后激活卷积解码功能;
(五)卷积解码函数通过Viterbi硬核加速器写入软判决编码数据,读出硬判决输出数据,实现卷积译码,每当Viterbi加速器写硬判决缓存区,它就产生一次Viterbi中断发送给DSP,DSP读取硬判决数据并将下一个软判决数据写入,业务信道的卷积编码是不连续的,每完成一个业务信道数据帧,Viterbi译码器被重新初始化;
(六)一旦完成整个帧数据的解码,Viterbi中断请求调用L1D扩展功能,把专用控制信道DCCH的后Viterbi处理和物理层复用子层MAD解复用任务,以及前向或下行基本信道FCH或专用业务信道DTCH的预Viterbi任务放入前台任务列表;
(七)前向或下行专用控制信道DCCH的后Viterbi任务对每一帧数据计算CRC校验并与接收到的CRC校验尾比特相比较,并去掉CRC尾比特,之后,物理层复用子层MAD解复用任务将数据发送到CPU;
(八)前向或下行专用基本信道FCH或专用业务信道DTCH的预Viterbi任务完成块解交织和去比特打孔,如果允许除全速率以外的速率,则对于1/2,1/4和1/8速率的帧进行去比特重复,下一步便是激活卷积解码功能;
(九)一旦完成整个帧数据的解码,Viterbi中断请求调用L1D扩展功能,把前向或下行基本信道FCH或专用业务信道DTCH的后Viterbi处理和物理层复用子层MAD解复用任务放入前台任务列表,如果音频功能被使用,那么语音解码器和前向或下行音频处理任务也会被加到列表里,如果有卷积的补充业务信道SCH将被激活,L1D将在前台调度SCH的预Viterbi任务;
(十)前向或下行基本信道FCH或专用业务信道DTCH的后Viterbi任务执行帧质量指示计算和执行所有使能的帧速率的相关矩阵;一旦帧质量指示和使能的帧速率的相关矩阵准备好,速率判决程序将被启动;速率判决程序功能检测当前帧的速率,正确定位数据指针,以及设置正确的帧类别;
(十一)基于当前业务选项配置,物理层复用子层MAD解复用器任务为语音解码器提取原始数据流,并将整个数据帧发送到CPU;
(十二)语音解码器任务采用线性PCM采样产生音频数据帧,L1D通过将指针传送到语音译码器,而将数据置于声音输出环形缓存区里,缓存区的大小必须至少是数据的双倍;
(十三)语音解码完成后,前向或下行声音处理任务从前台任务列表中被激活,该任务取出语音解码器输出数据,进行处理,然后写回到输出缓存区;
(十四)音频模拟前端中断服务子程序基于8kHz中断从前向或下行音频缓存区中读出数据并写入语音基带模拟前端VBAFE硬核寄存器中;
(十五)如果低数据速率补充业务信道SCH被激活,包括解交织、去比特打孔的所有的符号级处理在硬核中完成,在一帧数据处理完成时,硬核解交织器产生一个中断发给DSP,解交织器中断服务子程序ISR设置SCH数据读标志,指示补充业务信道SCH预Viterbi任务从硬核中读数据到接收帧缓存区,并启动采用Viterbi硬核加速器的卷积解码功能,在完成整个SCH帧译码后,Viterbi ISR调用L1D激励函数,其将补充业务信道的后Viterbi和物理层复用子层MAD解复用器任务放入前台任务列表,补充业务信道SCH后Viterbi任务计算每帧的CRC校验,并将计算出的CRC校验与接收到的CRC尾比特相比较,并去掉每帧的CRC尾比特,完成这些处理之后,物理层复用子层MAD解复用器任务传送数据到CPU;
(十六)如果高数据速率补充业务信道SCH被激活,扩展的硬核功能可执行Turbo及CRC译码,Turbo及CRC译码是在完成符号合并和对齐及块解交织之后进行,当帧解码完成后,Turbo及CRC解码器发中断给DSP,Turbo及CRC解码器中断服务子程序ISR从硬核拷贝数据,并将补充业务信道的物理层复用子层MAD解复用器任务加入到前台任务列表里。
10.根据权利要求1所述的TD-SCDMA及3G和4G终端DSP固件***,其特征是:反向或上行业务信道处理过程包括依次完成对以下事件序列的处理:
(一)语音编码硬核以8KHz的基准中断速率,对语音数据采样并发送到DSP,语音基带模拟前端VBAFE的中断服务子程序ISR从VBAFE硬核寄存器读取输入数据,并写入到反向或上行语音缓存区中,当整个数据帧准备好了的时候,VBAFE ISR调用物理层控制固件L1D激励功能;
(二)L1D检查当前TD-SCDMA及3G和4G终端DSP固件反向或上行信道状态机的状态,并放置反向或上行语音处理和语音编码器任务在后台任务列表中;
(三)反向或上行音频处理取出线性PCM数据帧,经过相应的处理,输出到语音编码任务;
(四)一旦反向或上行音频处理完成,语音编码任务就启动,对当前的帧提取语音参数,将编码数据放入编码语音缓存区,提供给在物理层复用子层MAD复用器任务,一旦语音编码任务确定当前编码帧的速率,它就会通知物理层复用子层MAD通过程序调用并且后者给CPU发送指示原语,询问与语音复用的数据大小;
(五)在帧开始后,调制器中断服务子程序ISR启动L1D调度处于后台级的基本信道或专用业务信道的MAD复用器和信道编码器任务,L1D在后台任务列表按下列次序设置任务:补充业务信道SCH复用器、SCH信道编码器、DCCH复用器、DCCH信道编码器、FCH或DTCH复用器、FCH或DTCH信道编码器、调制器功率控制任务,这个次序是给CPU足够的时间发送包含当前帧数据的反向或上行业务请求原语;
(六)物理层复用子层MAD复用器一帧一帧地从MAC接收数据,物理层复用子层MAD发出指示原语通知CPU,DSP已经准备好接收新的数据,即新反向或上行业务请求原语,物理层复用子层MAD复用器任务将语音编码数据与CPU中运行的复用子层MAC提供的数据复用在一起,在基于CPU的业务选项,反向或上行业务请求原语包含要求物理层复用子层MAD和信道编码器处理的下一帧数据,在基于DSP的语音业务选项,只能在基本信道或专用业务信道传输,来自CPU的数据需要与语音编码数据复用;
(七)信道编码器任务对每一个信息帧执行卷积编码、符号重复、块交织,如果使用Turbo编码,仅用于高速率补充业务信道SCH,整个信道编码由硬核完成,SCH信道编码器任务仅需要将数据写入到硬核寄存器;
(八)调制器功率控制任务基于反向或上行链路增益表和当前帧特性,计算所有需要用到的码道的码道增益,在帧边界,调制器ISR将所有需要用到的码道的码道增益写入到相应的调制器硬核寄存器;
(九)工作于4.8KHz的调制器中断服务子程序ISR完成DSP固件和调制器硬核之间的编码数据传输,在使用硬核信道编码器时,数据是直接发送到硬核寄存器,而不涉及任何固件,同时,调制器ISR还负责完成由门控掩码确定的功率控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610155272.4A CN101076163B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端的dsp固件*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610155272.4A CN101076163B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端的dsp固件*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101076163A CN101076163A (zh) | 2007-11-21 |
CN101076163B true CN101076163B (zh) | 2013-10-16 |
Family
ID=38976941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610155272.4A Expired - Fee Related CN101076163B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端的dsp固件*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101076163B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651464B (zh) * | 2008-07-18 | 2014-12-10 | 美满电子科技(上海)有限公司 | 激活码检测方法和装置 |
EP2425669B1 (en) * | 2009-04-29 | 2018-09-12 | Koninklijke Philips N.V. | A method for communicating in a mobile network |
CN104571945B (zh) * | 2014-11-27 | 2017-12-01 | 江西洪都航空工业集团有限责任公司 | 一种在吊舱中实现大容量数据记录的方法 |
CN110995750B (zh) * | 2019-12-18 | 2021-09-28 | 展讯通信(上海)有限公司 | 终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001050147A1 (en) * | 1999-12-30 | 2001-07-12 | Morphics Technology, Inc. | A configurable code generator system for spread spectrum applications |
JP3284037B2 (ja) * | 1995-11-29 | 2002-05-20 | ニチハ株式会社 | 建築板の塗装方法 |
CN1395442A (zh) * | 2002-08-08 | 2003-02-05 | 宋荣宗 | 一种三合一手机集成*** |
CN1438779A (zh) * | 2002-02-14 | 2003-08-27 | 三菱电机株式会社 | 移动体通信机的通信控制方法及移动体通信机 |
-
2006
- 2006-12-18 CN CN200610155272.4A patent/CN101076163B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3284037B2 (ja) * | 1995-11-29 | 2002-05-20 | ニチハ株式会社 | 建築板の塗装方法 |
WO2001050147A1 (en) * | 1999-12-30 | 2001-07-12 | Morphics Technology, Inc. | A configurable code generator system for spread spectrum applications |
CN1438779A (zh) * | 2002-02-14 | 2003-08-27 | 三菱电机株式会社 | 移动体通信机的通信控制方法及移动体通信机 |
CN1395442A (zh) * | 2002-08-08 | 2003-02-05 | 宋荣宗 | 一种三合一手机集成*** |
Non-Patent Citations (7)
Title |
---|
张丽娟.DSP在移动通信中的应用.电子产品世界 12.2000,(12),47. |
张丽娟.DSP在移动通信中的应用.电子产品世界 12.2000,(12),47. * |
曹晓琳,吴平,丁铁夫.一种基于ARM和DSP的通讯***终端设计.电子器件28 2.2005,28(2),428-431. |
曹晓琳,吴平,丁铁夫.一种基于ARM和DSP的通讯***终端设计.电子器件28 2.2005,28(2),428-431. * |
耿满足.基于DSP的网络会议电话话音终端***设计.西南交通大学学位论文.2006,17-33. * |
郭小峰,廖建明.基于前/后台***的嵌入式VoIP电话终端的设计与实现.成都信息工程学院学报19 3.2004,19(3),354-358. |
郭小峰,廖建明.基于前/后台***的嵌入式VoIP电话终端的设计与实现.成都信息工程学院学报19 3.2004,19(3),354-358. * |
Also Published As
Publication number | Publication date |
---|---|
CN101076163A (zh) | 2007-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FI111308B (fi) | Tilaajayksikkö langatonta digitaalista tilaajaliikennöintijärjestelmää varten | |
US5822313A (en) | Seamless handover in a cordless TDMA system | |
CN1099171C (zh) | 接收和搜索以猝发段形式发射的信号的方法 | |
JP3248911B2 (ja) | 不連続cdma受信方式 | |
JP4319538B2 (ja) | ブロードキャストおよびローカルキャスト通信を行うためのシステムおよび装置 | |
JP2596388B2 (ja) | ディジタルコードレス電話システム | |
KR100742548B1 (ko) | 듀얼 모드 가입자국을 위한 슬롯된 휴지 모드 | |
TW201031157A (en) | Software parameterizable control blocks for use in physical layer processing | |
CN105680885A (zh) | 减少多模式移动设备的多个无线通信之间的设备内干扰 | |
HU228612B1 (en) | A mobile station, method for synchronizing a mobile station and wireless communication system | |
CN101076163B (zh) | Td-scdma/3g/4g终端的dsp固件*** | |
FI104029B (fi) | Signaalinkäsittelypiiri eurooppalaista digitaalista solukkoradiopuhelinjärjestelmää varten | |
CN101263660B (zh) | 通信设备中的信号处理任务调度 | |
US7720046B2 (en) | Synchronizing a channel codec and vocoder of a mobile station | |
US7340266B2 (en) | Method and apparatus for communicating with multimode receiving device in non-synchronized wireless systems | |
WO2007002712A1 (en) | A communication apparatus including a buffer circuit having first and second portions for alternately storing results | |
EP0856951A1 (en) | Interface de système d'exploitation pour piles de protocoles GSM multi-tâches | |
CN1988521B (zh) | 移动通信***终端的信道译码器及译码方法 | |
CN201039406Y (zh) | Td-scdma/3g/4g终端的dsp固件*** | |
US20030026237A1 (en) | Cellular base station architecture with soft partitioning | |
US7706313B2 (en) | Method and arrangement for implementing minimum activity during discontinuous transmission | |
JP3273949B2 (ja) | 可変データレートシステムのための後続フレームの可変データレート指示方法 | |
CN1795631B (zh) | 用于调整数据帧尺寸的选择性可变速率编码 | |
EP0932259A1 (en) | Iterative decoding on demand | |
WO1998047245A1 (fr) | Procede pour commander les communications d'un equipement mobile et equipement mobile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131016 Termination date: 20171218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |