通信实验课程设计报告 - 图文 联系客服

发布时间 : 星期三 文章通信实验课程设计报告 - 图文更新完毕开始阅读3e659f8cd0d233d4b14e69f0

——————————————————————————

装 订 线————————————————————————————————

实验总成绩: 报告份数:

课程设计报告

专业班级: 学生姓名: 学号(班内序号): (号)

年 月 日

实验一 时间表调度实验

一、 实验目的

时间调度表实验用来考查自己对时间表调度原理的掌握情况。

二、 实验原理及设计

在程控数字交换的体系结构中,周期级程序(例如摘挂机检测

程序、脉冲识别程序、位间隔识别程序)是由时间表调度实现的。所谓时间表调度,是指每经过交换系统的最短有效时间(这通常是指各周期性程序周期的最大公约数),都会检查调度表的调度要求,如果某个程序在这时需要执行,则调度程序开始执行它。

这个交换系统提供了三个周期性调度程序(摘挂机检测程序、脉冲识别程序和位间隔识别程序),它们的调用周期分别为200ms、10ms和100ms,所以我们系统的最小调度时间为10ms。如图所示,每隔10ms,我们就会检查这个表的一行,如果该行上某一列为1,我们就执列所对应的任务,如果为0,就什么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。此实验中调度表可定义为一个20*3的二维数组。

三、实验过程

实验主要数据结构:

函数功能:完成调度表的初始化;

函数原型:initSchTable(int

ScheduleTable[SchTabLen][SchTabWdh]);

其中SchTalLen和SchTabWdh为在bconstant.h中的宏定义: #define SchTabLen 20//代表这个调度表为20行(相邻行之间的时间间隔为10ms);

#define SchTabWdh 3 //代表三个周期性调度任务——0:摘挂机检测任务;1:脉冲检测任务;2:位间隔检测任务;

四、实验结果 1.源程序:

#include \extern

\

_declspec(dllexport)

void

initSchTable(int

ScheduleTable[SchTabLen][SchTabWdh]) { int i,j;

for(i=0;i<=19;i++) for(j=0;j<=2;j++)

{if(i==19&&j==0) //摘挂机检测任务,周期为200ms ScheduleTable[0][0]=1;

else if(i==0&&j==2) //位间隔检测任务,周期为100ms ScheduleTable[0][2]=1;

else if(i==10&&j==2) //位间隔检测任务,周期为10ms

ScheduleTable[10][2]=1; else if(j==1) //脉冲检测任务 ScheduleTable[i][1]=1; else ScheduleTable[i][j]=0; } }

2、对此程序进行编译后运行成功,然后再对其演示,拨打的号码为:62283166,如下图所示: a.拨号图:

b.拨号成功后接通如下图所示: