4.3.3 程控交换软件技术
程控交换系统是一个复杂而庞大的实时系统,它要能够处理可能同时发生的大量呼叫,并具有高可靠性,因此程控交换软件具有实时性,能够支持多任务并发处理和具有高可靠性。程控交换软件的特点和呼叫处理的基本原理决定了程控交换系统的软件设计具有其特殊性,本节将介绍在程控交换软件设计中经常使用的一些技术。
1)群处理
为提高效率,在软件设计中尽可能地对一群对象同时进行逻辑运算和处理,将这种方法称作群处理。下面以用户线摘挂机扫描为例说明群处理的基本方法。
设处理机的字长为16位,由于每个用户摘挂机扫描的状态只用一个二进制比特就可表示,所以每次可以同时对一组16个用户进行摘挂机检测。图4.50所示为用户摘挂机扫描的群处理流程。
图4.50 用户摘挂机扫描群处理流程
在群处理过程中,设交换机对16个用户扫描的状态数据和运算数据如图4.51所示。在群处理的流程中,逐位检查摘机、挂机用户实际上就是逐位检查相应运算结果哪一位为“1”,16位比特分别对应16个用户。对摘机运算结果的检测,可知用户8和10摘机;对挂机运算结果的检测,可知用户1和15挂机。
不仅对用户线扫描可采用群处理技术,对中继线状态扫描、按键号码标志信号扫描等都可采用群处理技术,群处理技术在程控交换软件设计中应用广泛。
图4.51 群处理举例
2)逐次展开法
在分析处理过程中,需要对各种数据进行分析。由于分析对象的复杂性,所以在分析表的设计和相应的分析方法上会采取一些有效的措施,逐次展开分析表和相应的分析方法就是一种常用的有效方法。下面以号首分析为例详细介绍逐次展开法。
逐次展开法基于逐次展开分析表,该表为多级检索表,呈树型结构,如图4.52所示。每一级表对应一位号码,即收到第一位号码,查第1级表,收到第二位号码,查第2级表等等。表中每个单元由两部分组成:指示位和地址字段。指示位用以指示地址字段存放的是下一级(位)检索表首地址,还是结论表首地址。前者表示号首分析还没有结果,还得继续收号、分析,后者表示号首分析完成,分析结果可在结论表中查到,它包括呼叫的接续类型、应收号长和路由等信息,如可用“0”来表示分析还没有结论,用“l”表示分析已有结论。
图4.52 逐次展开法
号首分析也可以采用图4.53所示的方法,即第1级表对应3位号首,大多数情况下,通过第1级表就可以分析出结果,这时地址字段指向结论表。如果不能分析出结果,则继续进行下一级表的分析。可以将其看做是逐次展开法的一种变形。
图4.53 号首分析的另一种方法
3)表格驱动
表格驱动就是根据所给参数查表来启动程序执行的方法,它是程控交换软件设计中经常采用的一种技术,可灵活地实现程序的调用执行。表格驱动技术包括两部分内容:驱动表格和调度管理程序。下面以周期级程序的调度为例来说明表格驱动技术。
图4.54是周期级程序调度的驱动表格结构,它是由时间计数器、屏蔽表、时间表和程序地址表组成的。
图4.54 驱动周期级程序调度执行的表格结构图
时间表的每一行代表时间,每一列为一个比特,代表一个程序。若在第i行第j列的比特位的值为“1”,则表示在这个时刻该程序被调用;若为“0”则不被调用。每次时间中断到来时,都要对时间计数器做加“1”操作,时间计数器的值形成了时间表的行地址。程序地址表保存被调用程序的入口地址。屏蔽表用于控制在该时刻该程序是否被调用执行,屏蔽表的每一位对应一个程序,如果某一位为“1”则表示该程序可执行,否则不执行。屏蔽表提供了一种灵活控制程序调用的机制,不用频繁更改时间表了。
若时间中断周期为10ms,则由上述表格结构的设计可知:
拨号脉冲识别程序每隔10ms被调用执行。
按键号码识别程序每隔20ms被调用执行。
位间隔识别程序每隔100ms被调用执行。
用户线扫描程序每隔100ms被调用执行。
中继线扫描程序每隔100ms被调用执行。
图4.55是基于表格驱动调度管理程序的流程图。
图4.55 基于表格驱动的调度管理程序流程图
4)有限状态机的实现
呼叫处理过程可以用扩展的有限状态机来描述,因而呼叫处理程序的实现,就是实现呼叫处理的有限状态机。设计实现有限状态机的方法有很多,在这里介绍常用的两种实现方法:二维数组法和多级表法。
基于二维数组的有限状态机的实现如图4.56所示。二维数组下标分别由状态号和事件号构成,下标(n,m)所对应的数组元素则是在n状态下接收到m事件时,应进行的下一步工作的执行程序入口地址,该程序完成相应的分析、任务执行和输出处理,并跃迁到下一个状态。
基于多级表的有限状态机的实现如图4.57所示,该多级表的第一级为状态索引表,通过状态号可检索到该状态下可能接收的事件索引表的地址,再由所接收的事件号检索到该状态下收到该事件完成下一步工作的程序地址,调用相应程序执行,即可完成相应的呼叫处理。
需要说明的是,基于二维数组和多级表的有限状态机的实现方法实质上也是表格驱动,在这里查表的参数是状态号和事件号。
图4.56 基于二维数组的有限状态机的实现
图4.57 基于多级表的有限状态机的实现
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。