中文摘要:
随着网络多媒体业务的不断发展,现有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
在两个下行信道间切换。