课程设计报告
课程设计题目: 时间表调度原理与设计分析
学 号:201320130224 学生姓名:程占伟 专 业:通信工程
班级:1321302 指导教师:涂其远
2016年 6月
1日
时间表调度原理与设计分析
课题研究目的:
研究程控交换机中的时间表实现任务调度方法的原理,并编程实验时间调度。 原理:
周期级程序由时间表调度、启动。本实验所编模块??时间表调度模块,就是以时间表为依据,通过时间表以不同周期调用下属的七个周期级模块及相应程序(维持模拟系统正常运行的屏幕显示模块、垃圾箱处理模块及基本级程序)。关于设计时间表完成任务调度的方法可参见教材,本实验系统的时钟中断周期定为10MS。
实现方法及数据结构,给定的原始数据是各程序模块的名称和规定的执行周期,要求由时间表调度的程序模块有以下几种: 周期级:
模块名
MFLSCM (摘挂机识别模块) MFPIDE (脉冲识别模块) MFMID (位间隔识别模块) MFTMOD (计时模块) MFSCOC (驱动交换网络模块) MFDRSN (送音模块) MFSEDT (收号、停收号模块)
基本级及其他:
模块名
SCAN_H( ) SCAN_COMMU( ) SCAN_T( ) SCAN_D( ) CERCOMMU_PROC( )
执行周期 200MS 100MS 50MS 50MS 50MS 执行周期 200MS 10MS 100MS 50MS 100MS 100MS 50MS
CEDRECEIVE_COMMU( ) LFCOMC( ) SECHARD( )
MFDUST (垃圾箱模块)
50MS 50MS 10MS 无周期
实验主要数据结构:
函数功能:完成调度表的初始化;
函数原型:initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]);
其中SchTalLen和SchTabWdh为在bconstant.h中的宏定义:
#define SchTabLen 20 //代表这个调度表为20行(相邻行之间的时间间隔为10ms);
#define SchTabWdh 3 //代表三个周期性调度任务
//0:摘挂机检测任务;1:脉冲检测任务; //2:位间隔检测任务;
1. 实验效果检验
当调度表初始化正确时,能够进行正常的通话;如果初始化不正确,可能会造成周期性程序的不正常调用,例如位间隔调度的延迟会造成识别位间隔的延误甚至丢失。
注:由于为循环程序,所以调度表的初始化方案不唯一。
2. 实验代码
#include
void initSchTable(int ScheduleTable[][SchTabWdh]) { }
for(int I=0;i ScheduleTable[i][1]=1; if(i==0){ } else if(i==(int)(SchTabLen+1)/2) ScheduleTable[i][2]=1; ScheduleTable[i][0]=1; ScheduleTable[i][2]=1; main() { } 3. 实验结果 int ScheduleTable[SchTabLen][SchTabWdh] = {0}; int r,l; initSchTable(ScheduleTable); for(r=0;r system(\ return 0; for(l=0;l printf(\ printf(\
时间表调度原理与设计分析



