一种存储系统信息码流的基站及方法 【技术领域】
本发明涉及 LTE(Long Term Evolution, 长期演进 ) 通信系统领域中, 具体涉及一 种存储系统信息码流的基站及方法。背景技术
系统信息主要提供接入网系统的信元参数信息, 系统信息以广播的形式通知 UE(user equipment, 用户设备 )。 E-UTRAN(Evolved Universal TerrestrialRadio Access Network, 演进通用陆地无线接入网络 ) 的系统信息向小区中的 UE 进行广播, 使 UE 通过接 收到的系统信息广播获得足够的接入信息, 方便 UE 和 E-UTRAN 建立起无线连接。UE 获取 E-UTRAN 发送的系统信息如图 1 所示。
系统信息分为 MIB(Master Information Block, 主信息块 ) 和其他需要广播的 SIB(System Information Block, 系统信息块 )。LTE 系统信息中总共有 11 个 SIB, 分别是 SIB1, SIB2, SIB3, SIB4, SIB5, SIB6, SIB7, SIB8, SIB9, SIB10 及 SIB11, 每个 SIB 都有不同 的功能, 如表 1 所示。
表1: SIB 功能描述分类 MIB SIB1 SIB2 SIB3 SIB4 SIB5 SIB6 SIB7 SIB8 SIB9 SIB10 功能 传输在 BCH 上的几个关键信息 包括 UE 接入小区相关的信息及 SI 的调度信息等 包括诸多公用无线资源配置信息 包括诸多公用的小区重选信息 包括同频临区重选信息 包括异频临区重选信息 (E-UTRA) 包括 UTRA 临区重选信息 包括 GERAN 临区重选信息 包括 CDMA2000 临区重选信息 包括 HNBID 信息 包括 ETWS 优先通知信息4101998510 A CN 101998515说SIB11明书2/5 页包括 ETWS 次优先通知信息
MIB 以及所有的 SIB 在发送前, 都必须经过 ASN.1(Abstract SyntaxNotation.1) 编码, 编码后形成对应的码流, 通过广播下发的也就是这些码流信息, UE 收到后再进行 ASN.1 解码获取相关信元参数。
SI(SystemInformation) 是多个 SIB 构成的一个分组, SIB 信息的调度是以 SI 为 单位进行的。相同调度周期的 SIB 可以映射到一个 SI 中, 但是每个 SIB 只能映射一次。除 MIB 和 SIB1 外, 其它 SIB 需要映射到 SI 中才能调度发送。
在具体实现时, 存在以下问题 :
一、 在设计实现时, 必须对广播信元参数进行存储, 方便后面处理系统信息更新时 进行判断。因为系统信息可能由于后台配置的修改而发生改变, 需要重新组织广播信息码 流并发送寻呼消息通知 UE。庞大的广播信元参数存储会极大地浪费内存。
二、 若 SI 信息发生了变化, 需要修改 SIB1 中的 Value Tag。 如果系统信息发生改变 了, 但是发送广播信息时 valueTag 没有修改, 则 UE 不能够接收 SI 信息。 若系统信息没发生 变化, 但是发送广播信息时 ValueTag 修改了, 则 UE 接收广播, 导致 UE 比较耗电。valueTag 参数是 SI 是否发生变化的标志, 但是若系统信息以 SIB 结构存储, 在判断 SI 是否发生变化 时处理繁杂, 效率低下。
三、 SIB 结构中指针信元的处理极为不方便, 特别是指针列表, 即使为指针结构分 配内存也难于释放, 需要区分释放和不释放的情况, 容易造成内存泄漏。 还有涉及到判断系 统信息是否有更新时, 需要对 SIB 信元进行比较是否发生变化, 因为存在指针成员造成设 计难于实现。
四、 系统信息广播过程流程简单, 但是实现起来相当麻烦, 不便于维护, 还有就是 处理效率比较低下。
综上所述, 若对系统信息以 SIB 结构存储, 上面提到的问题很难解决, 而且很浪费 内存。
发明内容 本发明要解决的技术问题是提供一种存储系统信息码流的基站及方法, 极大地节 省了系统信息的存储空间, 简化了处理流程, 优化高效, 便于维护。
为了解决上述问题, 本发明提供了一种存储系统信息码流的方法, 包括 : 基站读取 需要广播的配置信息, 对系统信息进行编码后存储 ;
基站将各 SI 按码流形式存储, 存储后的 SI 包括 SI 的长度及 SI 码流两部分。
进一步地, 所述 SI 码流部分包括一头部及映射到该 SI 中各 SIB 的码流 ;
所述基站将各 SI 存储到同一存储区域, 存储后的各 SI 依次排列, 形成 SI 码流结 构;
存储后的 SI 码流结构还包括 SI 总数部分。
进一步地, 所述 SI 总数部分占 1 个字节 ;
每个 SI 的长度部分占 2 个字节 ; SI 码流部分长度为该 SI 头部的长度与映射到该
SI 的所有 SIB 码流的长度之和。
进一步地, 对系统信息中的 MIB 及 SIB1 进行编码后按码流形式存储 ;
存储的 MIB 包括 MIB 的长度及 MIB 码流, 其中 MIB 的长度占 1 个字节 ;
存储的 SIB1 包括 SIB1 的长度及 SIB1 码流, SIB1 长度占 1 个字节。
进一步地, 当系统信息更新后, 所述基站对更新后的 SI 进行存储后, 从存储的第 1 个 SI 码流开始比较更新后的 SI 码流与更新前的 SI 码流是否相同, 若相同则继续比较下一 个 SI 码流是否相同, 若不同则修改 SIB1 中的 Value Tag。
本发明还提供一种存储系统信息码流的基站, 包括编码模块、 填充模块及存储模 块;
所述编码模块用于对系统信息进行编码, 并将编码后的码流发送至填充模块 ;
所述填充模块用于将接收的码流存储至存储模块 ;
所述存储模块用于存储各码流 ;
所述填充模块将各 SI 流形式存储, 存储后的 SI 包括 SI 的长度及 SI 码流两部分。
进一步地, 所述 SI 码流部分包括一头部及映射到该 SI 中各 SIB 的码流 ;
所述填充模块将各 SI 存储到存储模块的同一存储区域, 存储后的各 SI 依次排列, 形成 SI 码流结构 ; 存储后的 SI 码流结构还包括 SI 总数部分。
进一步地, 所述 SI 总数部分占 1 个字节 ;
每个 SI 的长度部分占 2 个字节 ; SI 码流部分长度为该 SI 头部的长度与映射到该 SI 的所有 SIB 码流的长度之和。
进一步地, 所述填充模块还用于按码流形式存储 MIB, 存储后的 MIB 包括 MIB 的长 度及 MIB 码流, 其中 MIB 的长度占 1 个字节 ; 以及
按码流形式存储 SIB1, 存储后的 SIB1 包括 SIB1 的长度及 SIB1 码流, SIB1 长度占 1 个字节。
进一步地, 所述填充模块还用于当系统信息更新后, 对更新后的 SI 进行存储后, 从存储的第 1 个 SI 码流开始比较更新后的 SI 码流与更新前的 SI 码流是否相同, 若相同则 继续比较下一个 SI 码流是否相同, 若不同则修改 SIB1 中的 Value Tag。
本发明提供了一种存储系统信息码流的基站及方法, 以码流形式存储系统信息, 极大地节约了内存, 而且将各 SI 存储到同一存储区域, 可最大程度地节省存储空间, 另外, 按本发明提出的存储方式, 当系统信息发生变化时简化了新旧 SI 的比较流程, 优化高效, 便于维护。
附图说明
图 1UE 获取 E-UTRAN 发送的系统信息 ; 图 2 是本发明各 SI 按码流形式存储的示意图 ; 图 3 是本发明基站结构示意图 ; 图 4 是本发明 SI 码流存储方法 ; 图 5 是本发明 MIB 码流存储方法 ; 图 6 是本发明 SIB1 码流存储方法 ;图 7 是本发明优化后的 SI 码流存储方法。具体实施方式
本实施例提供一种存储系统信息码流的基站, 如图 3 所示, 包括编码模块、 填充模 块及存储模块 ;
编码模块, 用于根据调度信息对系统信息进行编码, 包括对 MIB 进行编码得到 MIB 码流, 对 SIB1 进行编码得到 SIB1 码流, 以及对需要广播的其他 SIB(SIB2 至 SIB11 中的一 个或多个 ) 进行编码得到 SIBi 码流, 2 ≤ i ≤ 11 ; 还用于将编码后的各个码流发送至填充 模块 ;
填充模块, 用于接收编码后的各个码流, 并将各码流存储至存储模块 ; 具体为,
将 MIB 码流按码流形式存储至存储模块, 存储后的 MIB 码流如图 5 所示, 包括两部 分: MIB-LEN 及 MIB-STREAM ; MIB-LEN 占 1 个字节, 表示 MIB 码流的长度, MIB-STREAM 表示 MIB 码流 ;
将 SIB1 码流按码流形式存储至存储模块, 存储后的 SIB1 码流如图 6 所示, 包括两 部分 : SIB1-LEN 及 SIB1-STREAM ; SIB1-LEN 占 1 个字节, 表示 SIB1 码流的长度, SIB1-STREAM 表示 SIB1 码流 ; 将 SIBi 按照映射规则进行映射, 可以是 1 个 SI 中只映射 1 个 SIB 码流, 也可以是 多个 SIB 码流映射到同一 SI 中 ;
映射后形成的每个 SI 如图 2 所示, 为每个 SI 分配的存储空间均能容纳 SIB2 至 SIBn 中所有的 SIB 码流, 各 SI 按码流形式存储后包括两部分, 即 SI-LEN 及 SI-STREAM, SI-STREAM 包括 SI 头部长度与映射到该 SI 中各 SIB 码流, 这种将 SI 按码流形式存储的方 式相比现有技术将各 SI 按结构形式存储的方式能很好地节省存储空间 ; 但这种存储方式 仍然会浪费掉一部分存储空间, 其中斜线部分所示的为填充了 SIB 码流的区域, 后面的空 白区域为没有被填充的区域, 这样为每个 SI 分配的存储空间都会空出一些区域, 因此, 为 了最大程度地节省存储空间, 填充模块可按如图 7 的方式存储各 SI, 具体地,
填充模块将各 SI 存储到存储模块的同一存储区域, 存储后的各 SI 依次排列, 形成 SI 码流结构, 如图 7 所示, 这样单个 SI 仍然是码流形式, 如图 4 所示, 其中 SI-LEN 占 2 个 字节, 表示 SI 码流长度, 但 SI-STREAM 的长度相对图 2 发生了变化, 此时 SI-STREAM 的长度 为 SI 编码后的长度, 包括 SI 头部长度与映射到该 SI 中各 SIB 码流的长度之和, 因此不存 在如图 2 所示的空白部分, 所以更进一步地节省了存储空间 ; 存储后的 SI 码流结构还包括 SI 总数部分, 占 1 个字节。
填充模块还用于对 SI 进行存储后, 比较本次存储的 SI 与上一次存储的 SI 是否发 生变化, 其方式可以但不限于是 : 填充模块设置一指针, 从存储的第 1 个 SI 码流开始进行比 较, 若相同则将指针后移比较下一个 SI 码流, 若不同则说明本次存储的 SI 与上一次存储的 SI 发生变化 ;
填充模块还用于当存储的 SI 发生变化时修改 SIB1 码流中的 Value Tag ;
存储模块, 用于存储 MIB 码流、 SIB1 码流及 SI。
本实施例提供一种系统信息的存储方法, 对采用 ASN.1 编码后的系统信息码流采 用优化的缓存方法, MIB 缓存方法如图 5, SIB1 缓存方法如图 6, SI 缓存方法可以按如图 2
所示的方式存储, 还可以按如图 7 所示的优化后的方式存储。具体实现步骤如下 :
步骤 101, eNB( 基站 ) 读取后台需要广播的配置信息。
步骤 102, 依据后台配置的调度信息 ( 包含需要广播哪些 SIB, SIB 到 SI 如何映 射 ), 分别填充需要广播的 SIB 信元参数。其中 MIB, SIB1, SIB2 是必须广播的。
步骤 103, eNB 对 MIB 进行 ASN.1 编码, 并缓存编码后的 MIB 码流, MIB 码流的存储 方式如图 5 所示, 包括 MIB-LEN 及 MIB-STREAM 两部分, MIB-LEN 表示 MIB 码流的长度, 占1 个字节, MIB-STREAM 表示 MIB 码流 ;
步骤 104, eNB 对 SIB2 至 SIBn 进行 ASN.1 编码, 并依据 SIB 映射关系将编码后的 SIB 码流映射形成 SI ;
映射后形成的每个 SI 如图 2 所示, 为每个 SI 分配的存储空间均能容纳 SIB2 至 SIBn 中所有的 SIB 码流, 各 SI 按码流形式存储后包括两部分, 即 SI-LEN 及 SI-STREAM, 这 种将 SI 按码流形式存储的方式相比现有技术将各 SI 按结构形式存储的方式能很好地节省 存储空间 ; 但这种存储方式仍然会浪费掉一部分存储空间, 如图 2 所示, 其中斜线部分所示 的为填充了码流的区域, 后面的空白区域为没有被填充的区域, 这样为每个 SI 分配的存储 空间都会空出一些区域, 因此, 为了最大程度地节省存储空间, eNB 还可以可按如图 7 的方 式存储各 SI, 具体地, eNB 将各 SI 存储到存储模块的同一存储区域, 存储后的各 SI 依次排列, 形成 SI 码 流结构, 如图 7 所示, 这样单个 SI 仍然是码流形式, 如图 4 所示, 其中 SI-LEN 占 2 个字节, 表示 SI 码流长度, 但 SI-STREAM 的长度相对图 2 发生了变化, 此时 SI-STREAM 的长度为 SI 编码后的长度, 包括 SI 头部长度与映射到该 SI 中各 SIB 码流的长度之和, 因此不存在如图 2 所示的空白部分, 所以更进一步地节省了存储空间 ; 存储后的 SI 码流结构还包括 SI 总数 部分, 该 SI 总数部分是当个 SI 填充完成后最后填写的, 占 1 个字节。
步骤 105, eNB 对 SIB1 进行 ASN.1 编码, 并缓存编码后的 SIB1 码流, SIB1 码流的 存储方式如图 6 所示, 包括 SIB1-LEN 及 SIB1-STREAM 两部分, SIB1-LEN 表示 SIB1 码流的 长度, 占 1 个字节, SIB1-STREAM 表示 SIB1 码流。
当系统信息更新后, eNB 依照上述方式存储 SI 码流后, 需要判断新 SI 码流相对于 旧 SI 码流是否发生变化, 判断方式可以但不限于是 : 设置一指针, 从存储的第一个 SI 开始 比较新旧 SI 码流是否相同, 若相同则将指针移至下一 SI, 并比较下一个 SI 的新旧 SI 码流 是否相同, 若不同则说明本次 SI 码流发生变化, 需要修改 SIB1 的 Value Tag, 然后对 SIB1 进行编码并存储。
因按图 7 所示的存储方式是为所有的 SI 分配一个存储空间, 顺序填写各个 SI, 不 会造成存储空间的浪费。
步骤 106, 下发广播信息 ; 如图 1 所示系统信息成功下发, UE 可以获取广播。
采用优化的码流缓存方法后, SIB 信元中的指针结构也很容易处理了, 编码后就可 以释放, 仅存储码流信息, 避免了内存泄漏的可能性。在一个小区的情况下, 以 SIB2-SIB8 为例, 保存 SIB 信元结构需要内存约 49K, 使用优化存储方案后码流需要内存约 500BYTE, 使 用内存仅原来的 1%左右, 极大地节约了内存。程序处理流程简单化, 高效化, 便于维护。