微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于单片机的程控交换机多机通信应用

基于单片机的程控交换机多机通信应用

时间:03-19 来源:3721RD 点击:

本文介绍单片机在程控交换机中的应用, 使用五个ATMEL 公司的AT89C52 和AT89C51 作为主控制器和从控制器, 多机通讯, 硬件结构清晰, 模块化程序结构。

0 引言

国内单片机多机通信方向技术开发应用已有相当长时间,在智能化仪器、工业自动控制、家用电器机电一体化等方面的应用成果尤为显著。本文介绍AT 系列单片机多机通信在程控交换机中应用。

多机程控交换机将1 至2 条电话外线扩展成4 绳路、12 个分机容量, 可以多部分机同时通话而互不干扰(可以内外线混用); 分机可以为电话机、传真机、答录机和电脑等任何电讯产品。

1 硬件结构简介

本程控交换机应用AT 系列单片机, CPU 使用一个AT89C52 和四个AT89C51, 进行多机通信, 如图1 所示。

其中一个CPU(AT89C52)作为上位机, 实现分机摘机/ 挂机查询、分机振铃等功能。四个CPU(AT89C51)作为下位机, 各控制一根绳路, P10、P11 口作为CPU 地址, CPU 进行查询外线来电、分机挂线(内线和外线)、分机撤线、分机拨号处理等工作, 提供内线拨号音、回音铃、忙音、证实音等信号音。0_CPU 和1_CPU各有一个继电器J 控制开关, 用于接通或切断电话外线与绳路的连接。

硬件线路保证每CPU 各施其职, 互不串扰。某分机一旦挂线后, 该分机的信号音、拨号等只受该绳路的CPU 控制, 而且分机摘机、挂线后拨号才有效; 撤线后, 该分机不再受绳路的CPU 控制。

2 多机通信协议

在多机通信协议中定义上位机为主动, 下位机为被动。

2.1 上--下位机联络握手

上位机向下位机广播地址信息; 下位机收到地址信息后判断是否是本机地址, 若不是, 不应答; 若是, 向上位机发应答信号, 同时作好接收数据准备。上位机收到应答信号后, 判断应答信号是否正确。若不正确, 重发地址信号; 若正确, 发送数据(命令代码)。已握手的下位机接收数据(命令代码)后, 执行相应功能或实施服务。地址信息与命令代码设置不重码, 以便下位机能判别出。

2.2 上位机向下位机发送命令类

是否接外线(仅为0_CPU 和1_CPU)、有否请求服务、指定分机挂某一根内/ 外线、指定分机撤线、释放外线继电器、编程密码、长途等级(内部、市内、国内和国际)、长途解锁、要求绳路发内线拨号音、内线回音铃、内线忙音铃或内线证实音等。

2.3 下位机向上位机请求服务

下位机只有在上位机"有否请求服务"时, 才可向上位机发送信息。发送信息有:本绳路有外电呼叫、拨打内部分机、三方通话、代接外线、设置转移功能(无条件转移、遇忙转移、无应答转移、撤消转移)、设置外线来电振铃方式(指定若干分机振铃、全部分机振铃、三机四组轮流振动铃、外线来电时指定分机振铃)、设置长途密码 长途等级 长途解码、强插监听等。

3 多机程控交换机软件设计方法

程序设计思路是根据多机程控交换机工作过程而制定的, 采用上下位机包干控制, 充分利用CPU 资源, 实现程控交换机功能。

3.1 上位机软件设计思路

根据多机程控交换机功能, 上位机程序分成初始化、摘机处理、挂机处理、发送命令、下位机请求服务处理、振铃处理和定时器处理(包括看门狗)七个模块, 程序模块结构如图2 所示。

初始化模块主要是定义常数变量、变量单元、位标志、缓冲区、中断设置、定时器设置/ 启动、电话分机工作初始状态等。

摘机处理模块主要判别是外线来电摘机、内线来电摘机还是要拨打外线或内线电话。

挂机处理模块比较复杂, 既有内外线通话结束挂机, 又有内外线通话中止挂机, 还有三方通话主叫机挂机和从叫机挂机, 其它有中止拨打外线/ 内线挂机、分机功能设置完毕挂机等。

发送命令模块主要是根据电话分机发生摘/ 挂机时, 向下位机发送挂线/ 撤线命令、内线拨号音等命令, 发送询问下位机有否请求服务等命令。

下位机请求服务处理模块主要根据下位机CPU 请求, 完成外线来电、拨打内线分机、分机功能设置等工作。

振铃处理模块主要处理外线来电时, 根据振铃模式进行分机振铃、轮流振铃等; 内线呼叫分机时, 根据分机转移功能, 作相应的振铃处理; 被呼叫分机摘机后停止振铃等功能。

定时器处理模块配合振铃处理模块产生各种振铃计时以及看门狗定时常数刷新等。

3.2 下位机软件设计思路

为便于编辑和管理, 4 个下位机程序使用同一版本, 程序运行时根据地址作相应的处理。

根据多机程控交换机功能, 下位机程序分成初始化、连接外线查询、发送请求服务、外线来电中断请求、分机拨号中断请求和定时器中断(包括看门狗)六个模块, 程序模块结构如图3 所示。

初始化模块主要是定义变量单元、位标志、缓冲区、中断设置、定时器设置/ 启动等。

连接外线查询模块在开机复

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top