基于VxWorks 操作系统的双下行信道CMTS 的研制

作者: 吴资玉,冯海东   发布日期:2006-09-12 15:51   查看数:0
中文摘要:

  随着网络多媒体业务的不断发展,现有CMTS 的数据传输能力已不能满足用户的大数据量传 输业务,为解决这一问题,设计开发了支持双下行信道CMTS ,对其研制过程中的主要技术问题进行了分析,给出了基于嵌入式操作系统VxWorks双下行信道CMTS 的实现方法。

英文摘要:

  With the development of Internet multimedia service , existing CMTS can not satisfy the users’large numbers of data transmission. To solve this problem , we have designed CMTS with two downst ream channels. In this article ,the primary problems of exploitation are investigated, and the solution based on VxWorks system is given.


1  引言
     目前,信息高速公路正以前所未有的速度在中华 大地上迅猛发展。在骨干网方面,由于密集波分复用 等技术得到广泛应用,网络链路容量有了巨大的突破。 在接入网方面,各种方式的宽带接入网都已在各个城 市中大面积的铺开。其中,光纤同轴混合网(HFC) 以 其较低的价格及与普通CATV 兼容的特性成为广电 系统发展宽带接入业务的首选。 不过,在HFC 网络发展的同时,也遇到了一些问 题。目前各个厂家生产的电缆调制解调器头端系统 (CMTS) ,一般只提供1 个传输速率为30~55 Mbit/ s 的下行信道和多个传输速率为2~10 Mbit/ s 的上行信道。由于用户对多媒体业务的需求越 来越大,如果在一个服务区内集中了一大批电 缆调制解调器( CM) , 它们都接到同一台 CMTS ,并且在同一个时段进行大数据量传输, 现有的CMTS 就不能满足用户的要求,很有可 能造成信道拥塞,影响传输质量。为了解决这 个问题,就需要提出一个能提供更强大数据传 输功能的解决方案。
3  具体研制与实现
     根据上述的第二种解决方案,需要研制一台能够 支持两个下行信道的CMTS。考虑到开发工作的难度 和周期问题,新CMTS 的硬件结构是基于原有的只支 持一个下行信道的CMTS 的硬件结构,根据新的功能 需求进行修改。采用的是在一台新CMTS 中同时存 在两个子系统,每个子系统由一个下行信道和多个上 行信道所组成,如图1 所示。 新的设计除了要求CPU 控制芯片要完成原有的 控制处理功能外,还要管理所连接CM 的通信流量,并 且根据各CM 所需资源和系统可用资源情况指示CM 在两个下行信道之间动态切换来实现流量平衡。因 此,原有CMTS 的CPU 控制芯片不能满足新CMTS 的要求,必须在设计中选用一款功能更强大的CPU , 本设计选用了BROADCOM 公司生产的BCM1250 芯 片。该芯片的功能非常强大,在片内集成了两个64 bit 的MIPS 核,每个核的运算速率高达1 GHz ,还自 带512 kB 的高速缓存,可以满足新CMTS 的要求。 另外,芯片还自带了内部总线、内存控制器、串行接口、 吉位以太网接口、PCI 桥及PCI 接口等功能模块,如图 2 所示。这样,设计CPU 控制板时就可以在该芯片的 外围根据需要进行扩展,降低了设计的复杂程度。 VxWorks 为用户提供控制任务调度的手段,并为用户 提供安排实时应用任务的依据,用户可自行安排实时 应用。VxWorks 提供了一套丰富的任务间通信机制, 包括共享内存、信号量、消息队列和管道等,可根据具 体情况选择使用。VxWorks 还配备了完整的网络协 议栈,由用户自行选用。这些都是本设计选用VxWorks 作为软件开发平台的原因。 (4) 两个下行信道间业务的动态切换 本设计通过软件编程实现,主要利用VxWorks 所 提供的消息队列机制。VxWorks 有两个消息队列函 数库,msgQLib 库提供专为VxWorks 设计的Wind 消 息队列,而mqPxLib 库则提供与POSIX 实时扩展标 准(1003. 1b) 兼容的POSIX 消息队列。消息队列允许 长度可变、数目可变的消息排队,多个任务可以向同一 个消息队列发送消息或接收消息,两个任务间可以通 过两个消息队列进行全双工通信。本设计选用的是 Wind 消息队列。在CMTS 系统启动时,先调用Vx2 Works 库函数建立两个消息队列,分别为MasQ0 和 MasQ1 ,并为每个下行信道分别建立一个专门的任务, 假定为下行信道DC0 创建的任务为Task0 ,该任务定 时地从MasQ0 接收消息。一个同步在DC0 上的CM 可以利用动态业务添加请求消息(DSA - REQ) 发送请 求到CMTS ,当DC0 还有信道资源可用时,Task0 根据 请求消息为CM 分配下行信道的资源。如果DC0 的 信道资源已被耗尽,同时又没有从消息队列MasQ0 收 到消息,则认为另一个下行信道还有资源可分配,就指 示发出请求的CM 同步到另一个下行信道上,同时将 CM 发出的请求消息放入MasQ1 排队。如果这之前 Task0 从MasQ0 收到了消息,则认为另一个下行信道 也没有资源可分配,就直接拒绝CM 的请求。而系统 为另一个下行信道DC1 创建的任务Task1 ,收到从 MasQ1 发送来的消息后,就预先为即将从DC0 转而同 步到DC1 的CM 预留信道资源。在系统运行过程中, Task0 和Task1 的工作是相似的, 只不过Task0 从 MasQ0 中接收消息,向MasQ1 中发送消息;而Task1 则刚好相反。其原理如图3 所示。 两个下行信道间业务的动态切换通过以上所提供的 一系列方法,就可以使新设计的CMTS 支持双下行信道, 并且根据CM 所需资源与信道可用资源状况,灵活指示CM 在两个下行信道间切换。 电缆调制解调器头端系统,双下行信道,VxWorks