《企业通用培训协议栈的结构及模块培训》由会员分享,可在线阅读,更多相关《企业通用培训协议栈的结构及模块培训(17页珍藏版)》请在金锄头文库上搜索。
1、协议栈的结构及模块培训目录1.协议栈的总体架构21概述21.协议实现22.协议运行过程简述32、GSM部分的体系结构图:63、GPRS部分的体系结构图:72.协议栈的模块功能71.API模块82.CC模块83.SM模块84.SS模块85.SMS模块86.CB模块87.SNDCP模块88.MM模块99.LLC模块910.RR模块1011.LAPDm模块1012.RLU模块1013.RLD模块1114.L1模块1115.SIM模块1116.RLP模块113.协议栈的TRACE实现11Change HistoryDateChapterTypeContentsOwner2006.01.16AllNew
2、LiujianguoNote: Type includes: New, Add, Modify, Delete1. 协议栈的总体架构1 概述1. 协议实现StackCom协议栈是基于3GPP规范release 1999,实现了GSM/GPRS的基本功能。StackCom协议栈是基于StackCom的嵌入式实时操作系统(SXR)开发的。该操作系统实现了内存及队列管理,信箱管理,信号量管理,定时器管理,任务表管理,JOB管理等功能。StackCom协议栈主要使用了操作系统的内存及队列管理,信箱管理,定时器管理,任务管理,JOB管理。StackCom协议栈的实现主要是通过消息传送驱动任务调度及帧中断
3、驱动JOB调度来实现,还采用了部分函数调用。L2、L3的功能实现基本是依靠任务调度。L1使用了任务及JOB,在接收上层控制时,是通过任务实现的,而处理帧内容(8时序),响应帧中断,是通过JOB调度实现的。任务调度通过消息驱动来实现,在Stackcom中,消息由消息ID、消息长度和消息体(message body)组成。其中消息ID和消息长度构成了消息头(message header)。消息在各个任务间传递方式有两种:信箱(mailbox)和队列(queue)。在stackcom中定义了两种信箱,主信箱(main mailbox)和保存信箱(save mailbox)。主信箱,用于任务间通讯。任
4、务在发送消息后,如果接收消息的模块优先级高于发送消息模块的优先级,则转入接收消息的任务,对该消息进行处理,同时把发送消息的任务挂起。当task在某些状态下无法处理接收到的消息,但该消息可以随后处理时,task把该消息保存到保存信箱中,在适当的时候进行处理。消息通过队列传递存在于L1,L2之间,用于L2发送block到无线接口,使用队列的目的是避免无谓的激活L1,因为L1只有到特定的时间才发送保存的block。帧中断根据启动的JOB及JOB优先级调用不同JOB处理相关的信息。2. 协议运行过程简述协议在开始运行后首先从操作系统预留的空间(起始地址为_HEAP_START,长度为SXS_HEAP_
5、SIZE)创建堆。创建堆分为两类,内部SRAM,和外部SRAM。然后初始化信箱,任务,JOB,分配可用信箱ID(即创建信箱),然后初始化定时器,队列,串口,I/O。创建Idle task,根据用户task配置表创建各个用户task。创建任务包括给各个任务分配栈,优先级(Idle任务优先级最低)。设置trace位图,设置各个task中能够输出trace信息的级别;然后在在外部RAM堆(heap)中根据用户需要创建cluster,创建出大小不同的块。最后启动适合的任务。流程建图1:图1对于JOB,协议在运行期间根据需要可以创建,挂起或者删除JOB。在创建JOB时包括给各个JOB分配栈,优先级(Id
6、le任务优先级最低),JOB ID,JOB响应处理函数,JOB退出函数等。协议栈一共包括API,SMS,SS,CC,MM(MMC,MMP),CB,SIM,RR(MAC),LAPDm,SM,SNDCP,LLC,RLU,RLD,RLP ,L1 16个模块,由17个任务完成,其中一个为IDLE任务。16个模块是由21个状态机实现。其中SMS由4个状态机实现。MM由两个状态机实现,包括MMC,MMP分别实现GSM与GPRS功能。SMS与MM的关系见图2: 图2RR由三个状态机实现。RRI_P主要负责PLMN选择功能,RRI_C负责小区选择及重选、系统消息的接收及测量报告的发送功能。RR_RRD主要负责
7、在专用模式下的无线资源的管理。3. 体系结构图下面为协议栈的体系结构图,表明了各个模块之间的交互及控制和数据的流向.2、GSM部分的体系结构图:图33、GPRS部分的体系结构图:图4JOB一共包括Cch Job,Cbch Job, Bcch Job,Rach Job,SDcch Job,Tch Job,Power Job,Near Job,PCch Job,PBcch Job,Pdch Job,PTCch Job,PS Job,TBFSetUp Job,Monitoring Job,HoAccess Job,TBFRelease Job,17个Job是根据逻辑信道及有关功能进行划分的。2. 协
8、议栈的模块功能协议栈中,每个模块都实现了各自的功能。下面分述如下:1. API模块为上层应用提供与协议栈的接口。2. CC模块这个模块负责电路切换呼叫控制,主要包括:普通呼叫建立,包括主叫与被叫。紧急呼叫建立呼叫保持及呼叫终止(挂断)呼叫中修改(Bearer)DTMF控制呼叫相关的附加业务3. SM模块SM(session management)会话管理,是指GPRS MS连接到外部数据网络的处理过程,支持用户终端的PDP上下文处理。功能主要包括:PDP上下文的激活、解除和修改。4. SS模块该模块主要功能是处理独立于呼叫的附加业务和非结构性的附加业务数据流程。附加业务包括呼叫转移,用户参与转
9、移,三方通话等。5. SMS模块该模块处理短消息。包括电路交换或者包交换信道下点对点的发送短消息的链路建立及短消息传送的处理流程、接收短消息的处理流程。6. CB模块主要根据时间表非连续性的接收小区广播消息。7. SNDCP模块SNDCP( Subnetwork Dependent Convergence Protocol ),子网汇集协议。MS或者SGSN中继的分组数据协议(PDP)使用SNDCP提供的业务。此外,一个控制实体也可以是一个SNDCP用户,例如AT命令解释器。SNDCP使用逻辑控制链路(LLC)层和会话管理(SM)子层提供的业务。SNDCP的主要功能包括:1、 若干PDP的合路
10、;2、 N-PDU的缓存3、 端对端的应答LLC业务的建立及释放;4、 XID参数协商5、 用户数据的压缩和解压缩;6、 协议控制信息的压缩和解压缩;将网络协议数据单元(N-PDU)分解成逻辑链路控制协议数据单元(LL-PDU),同时,也将LL-PDU组装成 N-PDU。8. MM模块该模块主要实现GSM/GPRS移动性管理,安全管理功能,例如通知网络它的当前位置和提供用户机密性身份。MM子层的进一步功能是为上层接续管理子层的不同实体提供连接管理服务。TMSI再分配流程鉴权流程ID标识流程异常终止流程IMSI分离流程普通注册更新流程周期更新流程IMSI附加流程MM连接管理流程GPRS TMSI
11、再分配流程GPRS 鉴权和计算流程GPRS ID标识流程GPRS MM信息流程GPRS IMSI分离流程GPRS IMSI附加和结合GPRS附加流程GPRS IMSI分离和结合GPRS分离流程普通路由区域更新和结合路由更新流程、周期路由区域更新流程、服务请求9. LLC模块LLC主要为GMM,SMS,SNDCP提供一条可靠的加密链路。主要功能包括:应答模式的建立、重建立和释放;传输上层的应答数据和非应答数据;错误检测和恢复;加密;10. RR模块该模块主要是对GSM/GPRS物理信道的分配、管理及保持。也包括了GPRS的MAC。主要功能有:小区选择和重选;PLMN选择和重选;获取BCCH和PB
12、CCH上的系统信息;转发系统信息给相应的模块;建立和释放dedicated链路;传输和路由GSM高层信令消息;加密控制;Handover;建立和释放包信道,TBF;传输RLC数据Block;传输RLC/MAC控制Block;网络控制的cell change小区更新测量和测量报告设置物理层参数TLLI管理11. LAPDm模块LAPDm为3层传送来自GSM PLMN空口上的消息。主要提供下列功能:非应答数据的传输;多帧操作的建立和释放;多帧操作建立冲突的解决应答数据的传输;多帧操作时异常的报告和恢复;多帧操作的挂起和恢复;L3数据的分段和重组;多帧操作的终止12. RLU模块在LLC层和MAC层
13、间向下传输LLC PDU;把LLC PDU分段成RLC block;把RLC/MAC 控制消息分段成RLC/MAC 控制block;把RLC/MAC 控制block重组成RLC/MAC 控制消息;BEC流程;RLC数据block的选择性重传13. RLD模块在LLC层和MAC层间向下传输LLC PDU;把RLC block重组成LLC PDU;14. L1模块L1在处于RR的控制下,进行与小区的同步,在逻辑信道上接收及传送数据及信息。主要功能有:FCH/SCH检测;在(P)BCCH、(P)CCCH、(P)PCH、SDCCH、TCH(/H)、FACCH(/H)、SACCH(/H)、PDCH和PT
14、CCH上接收数据;在(P)BCCH、(P)CCCH、(P)PCH、SDCCH、TCH(/H)、FACCH(/H)、SACCH(/H)、PDCH和PTCCH上发送数据;Handover管理;测量;接收增益控制;功率控制;时间和频率控制;15. SIM模块该模块主要负责与SIM的操作,包括有关数据的读写操作,安全验证等。16. RLP模块RLP是无线链路协议(radio link protocol),处理GSM有关数据的业务。3. 协议栈的TRACE实现Trace输出根据用户设定输出级别选择性进行输出。用户设置trace位图,设置各个task中能够输出trace信息的级别。每个任务及相应函数会根据内容设定不同的输出级别。举个例子:假设在MM位置注册请求处理函数中,有信息需要输出,设置的输出级别为2。在用户设置的trace位图中,用户没有开放个级别,即在MM的trace位图变量中,相应的第二个bit没有置位。 用户可以设置模块相应trace位图为