程控用户摘挂机检测仿真实验_第1页
程控用户摘挂机检测仿真实验_第2页
程控用户摘挂机检测仿真实验_第3页
程控用户摘挂机检测仿真实验_第4页
程控用户摘挂机检测仿真实验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程控用户摘/挂机扫描监视识别实验一、实验目的

(1)掌握用户摘挂机原理。

(2)熟悉MATLAB仿真软件的使用。二、实验内容

(1)编写MATLAB程序仿真用户摘挂机程序。

(2)观察本次(当前)扫描结果。

(3)观察前次扫描结果。

(4)观察用户摘挂机的逻辑运算结果。

(5)分析仿真中观察的数据,撰写实验报告。三、实验原理由于用户线的状态变化是随机的,因此处理机要对用户线的状态作周期性的监视。那么,扫描周期应该是多少呢?理论证明,摘/挂机识别的扫描周期在100~200 ms之间较为合适,因为周期过短会使处理机工作过于频繁,而周期过长又不能及时捕捉到摘/挂机信息。实际应用中常取200 ms为摘/挂机识别的扫描周期,即处理机每隔200 ms对所有用户线扫描1次。识别主叫摘机的逻辑运算式为识别用户挂机的逻辑运算式为式中:SCN——扫描存储器,存储本次(当前)扫描结果;LM——用户存储器,存储前次扫描结果。程控交换机用户摘挂机检测SCN——扫描存储器,存储本次(当前)扫描结果;LM——用户存储器,存储前次扫描结果。设D8D7D6D5D4D3D2D1SCN10000010LM01100001 编程计算 并画出SCNLM 波形图四、实验步骤

(1)预习用户摘挂机原理

(2)根据系统方框图,画出仿真流程图。

(3)编写MATLAB程序并上机调试。

(4)观察SCNLM 波形图。

(5)撰写实验报告。五、摘/挂机识别程序流程图如图六、

MATLAB程序#include<stdio.h>#include<conio.h>#include<dos.h>#defineFIRST_BOARD_HOOK_ADDRESS0x260#defineOFFHOOK_QUEUE_SIZE16#defineONHOOK_QUEUE_SIZE16#defineSUM_BOARD_3inti;unsignedcharUM_offhook;unsignedcharLm[1];unsignedcharSubs_Bit[8];unsignedcharOffHook_Queue[OFFHOOK_QUEUE_SIZE];unsignedcharOffHook_Spos,OffHook_Rpos,OffHook_Queue_Flag;unsingedcharOnHook_Queue[ONHOOK_QUEUE_SIZE];unsignedcharOnHook_Spos,OnHook_Rpos,OnHook_Queue_Flag;unsignedcharUM_OffHook_1,UM_OnHook_1;voidScanFirstBoard(void);main()OffHook_Queue[0]=0;OffHook_Spos=0;OffHook_Rpos=0;OffHook_Queue_Flag=0;OnHook_Queue[0]=0;OnHook_Spos=0;OnHook_Rpos=0;OnHook_Queue_Flag=0;Lm[0]=0;Subs_Bit[0]=0x01;Subs_Bit[1]=0x02;Subs_Bit[2]=0x04;Subs_Bit[3]=0x08;Subs_Bit[4]=0x10;Subs_Bit[5]=0x20;Subs_Bit[6]=0x40;Subs_Bit[7]=0x80;UM_OffHook_1=0;UM_OnHook_1=0;Outportb(0x369,0);clrscr();printf(“Pleaseoffhook,checkoffhooksubscribernumber.\n”);printf(“Thenonhook,checkonhooksubscribernumber.\n”);for(;;){If(kbhir())Break;Delay(20);ScanFirstBoard();}Return0;}VoidScanFirstBoard(){unsignedcharScn;unsignedcharNewScan_OffHook;unsignedcharNewScan_OnHook;unsignedcharOldLm;unsignedcharCurrentBoardNum;unsignedintJudgeWord;inti;CurrentBoardNum=0x01;Scn=inportb(FIRSR_BOARD_HOOK-ADDRESS)&0xff;JudgeWord=UM_OffHook_1&Scn;i=7;while(JudgeWord!=0){While((JudgeWord&Subs_Bir[i])!=Subs_Bit[i])i--;if(((OffHook_Spos+1)==OffHook_Rpos)||((OffHook_Spos==OFFHOOK_QUEUE_SIZE)&&(OffHook_Spos==0))){Printf(“OffHook_QueueisFull.NotInsert.\n”);}Else{OffHook_Queue[OffHook_Spos]=i;printf(“OffHook_Queue:BoardNum:%d,OffHook_Sub:%d\n”,CurrentBoardNum,i+1);}JudgeWord=JudgeWord&(~Subs_Bit[i]);i--;}printf(“OffHook_Queue:%x\n”,OffHook_Queue[OffHook_Spos]);NewScan_OffHook=Scn;OldLm=Lm[0];UM_OffHook_1=NewScan_OffHook&(~OldLm);NewScan_OnHook=Scn;JudgeWord=UM_OnHook_1&(~NewScan_OnHook);i=7;while(JudgeWord!=0){While((JudgeWord&Subs_Bit[i])!=Subs_Bit[i]i--;if(((OnHook_Spos+1)==OnHook_Rpos)||((OnHook_Spos==ONHOOK_QUEUE_SIZE)&&(OnHook_Rpos==0))){Printf(“OnHook_QueueisFull.NotInsert.\n”);}else{OnHook_Queue[OnHook_Spos]=i;printf(“OnHook_Queue:%d,OnHook_Sub:%d\n”,}JudgeWord=JudgeWord&(~Subs_Bit[i]);i--;}NewScan_OnHook=Scn;OldLm=Lm[0];UM_OnHook_1=(~NesScan_OnHook)&OldL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论