基于单片机的程控交换机多机通信设计

最新更新时间:2011-12-08来源: OFweek半导体照明网关键字:系列单片机  多机通信  程控交换机 手机看文章 扫描二维码
随时随地手机看文章

  国内单片机多机通信方向技术开发应用已有相当长时间,在智能化仪器、工业自动控制、家用电器机电一体化等方面的应用成果尤为显著。本文介绍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 所示。

  

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

  连接外线查询模块在开机复位后查询本CPU 是否接外线(2_CPU 和3_CPU 跳过), 然后置标志, 上位机通过问询下位机知道程控交换机接几根外线。

  命令处理模块主要完成上位机下达的命令, 命令有指定分机挂外线/ 内线、对挂内线分机发送或停止内线信号音(内线拨号音、内线回音铃、内线忙音铃或内线证实音等)、指定分机撤外线/ 内线等等。

  发送请求服务模块主要向上位机发送外线来电处理、分机拨打内线电话、分机设置功能等请求服务。

  外线来电中断请求模块在外线来电时(0_CPU 和1_CPU),向CPU 请求中断。CPU 响应中断后, 首先判断是否干扰信号, 确认为外线来后, 竖立外线来电标。当上位机查询下位机有否请求服务时, 向上位机发送外线来电服务请求。为防外线来电中止,下位机CPU 发送请求后即清除外线来电标。上位机在送出分机振铃后一秒钟内, 如分机未摘机, 而下位机又没发来新的外线来电请求服务, 立马中止振铃。

  分机拨号中断请求模块在分机拨号后, 向CPU 请求中断。

  CPU 响应中断后, 根据所拨号码, 产生对应请求服务代码。上位机收到请求服务后, 对其进行译码, 作相应处理。如分机是挂外线, 除判别该分机长途等级外, 对拨号不作任何处理。分机在挂线情况下, 拨号才有中断请求信号产生, 这由硬件保证。

  定时器处理模块主要产生450 方波信号, 产生各种内线铃声所需脉冲信号以及看门狗定时常数刷新等。

  上下位机源程序限于篇幅, 不作介绍。

  4 编程中特点

  由于多机程控交换机上位机CPU 要对四个下位机CPU, 而分机摘/ 挂机状态采用查询方式, 又要处理分机振铃等, 查询过程中要采用抗干扰措施, 防止CPU 误判、误动作。所以编程中要考虑整体时间分配, 以免延误用户通话。

  上位机在查询下位机有否服务请求时, 采用轮流查询法。在发送信息前又要与下位机握手, 所以查询时间较长。当下位机有服务请求时, 上位机马上中止查询下一CPU, 为当前下位机服务。

  为缩短上下位机通信时间, 下发代码采用单字节, 按位定义。如“D7”位表示挂线或撤线,“D6”位表示挂内线或外线,“D5、D4”位表示发内线拨号音、内线回音铃、内线忙音或内线证实音,“D3”~“D0”表示分机号。

  上发代码采用多字节, 长短不同, 这是由于多机程控交换机功能丰富多采, 下位机在上发代码最后加一个结束符。

  多机程控交换机功能较多, 分机拨号中断请求模块要分成外线拨号、内线拨号(包括代接、转接和三方通话)和功能设置三个小模块。为提高CPU 利用率, 分机拨号中断请求模块采用流水线作业方式, 按一次键, 模块执行一次。所以要保护好现场,竖立相应的标志, 保证分机拨号中断请求模块工作正常。当某功能拨完后, CPU 再将请求服务代码送到发送缓冲区。

  5 结束语

  多机程控交换机可连接二根外线, 十二只内部分机, 四绳路通话容量, 具有丰富的实用功能, 可不间断连续工作。分机之间可多对电话(最多四对八机)同时通话而彼此互不干扰。分机可直拨外线、强插外线、长途加锁设置等。外线来电响铃方式有二种, 一为选择某些分机振铃, 二为分机轮流振铃, 由1 号分机进行设置。分机可代拨、代接、征询转接和三方通话等。

  本文作者的创新点:上、下位机CPU 串行通信发送采用查询方式, 接收采用中断循环队列缓冲区方式。多机程控交换机不使用扩展外RAM, 上位机采用AT89C52, 其内RAM为256 字节, 足够CPU 工作所需, 同时给硬件上分清上位机和下位机CPU 芯片带来好处, 一举二得。

  多机程控交换机样机已小批量投入某些公司、企业使用, 用户反映程控交换机基本功能工作正常, 使用方便, 由此说明多机程控交换机达到设计要求。

关键字:系列单片机  多机通信  程控交换机 编辑:探路者 引用地址:基于单片机的程控交换机多机通信设计

上一篇:电流反馈运放大器工作原理的问题
下一篇:基于C语言的RS232串行接口通信设计与实现

推荐阅读最新更新时间:2023-10-18 16:12

单片通信之变量初始化的重要…
单片机多机通信之变量初始化的重要性 博文题目之所以要加上变量初始化的重要性,是因为我在调试单片机多机通信程序时,也就是下面将给出的程序,花了一整个晚上才发出,原来是有一个变量没有初始化,从而导致,多机通信不成功。主机程序中为红色的注释的变量一定要初始化,否则将失败。 仿真图如下: 主机程序: 单片机多机通讯 说明:该程序为多机通讯程序,最多可以挂255个从机。 该程序主机发送端与多个从机的接收端相接,主机的接收端与多个从机的发送端相接。 该程序主要的目的为给从机发送作为命令的数据。 该程序调试成功,从机可正确接收。
[单片机]
单片通信程控交换机中应用
引言 国内单片机多机通信方向技术开发应用已有相当长时间,在智能化仪器、工业自动控制、家用电器机电一体化等方面的应用成果尤为显著。本文介绍AT 系列单片机多机通信在程控交换机中应用。 多机程控交换机将1 至2 条电话外线扩展成4 绳路、12 个分机容量, 可以多部分机同时通话而互不干扰(可以内外线混用); 分机可以为电话机、传真机、答录机和电脑等任何电讯产品。 1 ,硬件结构简介 本程控交换机应用AT 系列单片机, CPU 使用一个AT89C52 和四个AT89C51, 进行多机通信, 如图1 所示。 其中一个CPU(AT89C52)作为上位机, 实现分机摘机/ 挂机查询、分机振铃等功能。四个C
[单片机]
单片<font color='red'>机</font><font color='red'>多</font><font color='red'>机</font><font color='red'>通信</font>在<font color='red'>程控交换机</font>中应用
基于C8051F系列单片机的血糖仪解决方案
   血糖测量的电化学原理   血糖测量的电生物化学原理是当施加一定电压于经酶反应后的血液产生的电流会随着血液中的血糖浓度的增加而增加。通过精确测量出这些微弱电流,并根据电流值和血糖浓度的关系,反算出相应的浓度。所以,确定这个关系是问题的核心。但其关系复杂,受多方面因素影响。电压强度、所使用的试条以及检测的血液量都会对其产生影响。理论上需要在所有浓度点上大量实验才能确定最终的关系。在实际操作中,只需在选择若干重要浓度点做大量实验,然后采用曲线拟合或插值等数据处理方式来确定其与电流值之间的关系。   血糖测量通常采用电化学分析中的三电极体系。三电极体系是相对于传统的两电极体系而言,包括,工作电极(WE),参比电极(RE)
[单片机]
SST89C54/58系列单片机的IAP应用技术
    摘要: SST89C54/58j Silicon Storage Technology公司推出的带有20KB/36KB Flash的单片机。芯片内部集成了可以对Flash进行操作的功能模块。通过对Flash的分区实现在应用中可编程的功能。本文介绍它们的IAP功能,并给出IAP功能的一些子程序。     关键词: SST89C54/58 IAP Flash存储器 SST89C54/58单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,只是加大了内部程序存储器Flash的容量。 SST89C54/58的特色: *256×8位内
[工业控制]
一种单片通信系统的设计
1 引言 随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。许多应用都涉及到单片机多机通信。然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其是有的单片机只提供8 位的数据收发接口,这在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法,对单片机多机通信系统进行研究,在设计单片机网络的通信协议的基础上,系统网络拓扑结构
[单片机]
一种单片<font color='red'>机</font><font color='red'>多</font><font color='red'>机</font><font color='red'>通信</font>系统的设计
STM8系列单片机定时器操作
1、void TIM1_DeInit(void) //复位TM1所有寄存器参数 2、使能TIM_1所用时钟 CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE) 3、设置定时器周期 函数void TIM1_TimeBaseInit(uint16_t TIM1_Prescaler, TIM1_CounterMode_TypeDef TIM1_CounterMode, uint16_t TIM1_Period, uint8_t TIM1_RepetitionCounter) 第一个参数:定时器的预分频系数
[单片机]
51系列单片机程序跑飞的经验总结
一、 程序运行跑飞现象: 单片机中的程序计数器(PC)的值出乎我们所需要的,发生了异常的偏移,脱离了原本设定好的程序要执行的位置,进入原定程序以外的区域,例如:程序的空白区、程序以外的空间或者是某种死循环中。 二、 跑飞的影响: 使指令的地址码和操作码发生改变,而PC把操作码当作指令来执行,操作码改变就代表着将执行错误的指令;或者PC的值指向一个不符合逻辑关系的指令或非程序的区域,会造成运行结果进入死循环,即常说的“死机”。 三、 程序跑飞的原因: 1. 意外中断。打开了某个中断,但是没有响应和清除中断标志,导致程序一直进入中断,造成死机假象。 2. 中断变量处理不妥。 3. 地址溢出。 4. 无条
[单片机]
用AT89C系列单片机实现5英寸TFT-LCD的遥控
LCD由于具有薄、轻及功耗低的特点,已广泛应用在计算机显示器、VCD显示板、便携式医疗设备等工业和民用领域。在这些产品中,应用单片机能大大地提高其智能性、易用性,给人们的生活带来舒适和方便。本文采用美国Atmel公司的单片机AT89C2051和AT89C51,为5英寸的TFT-LCD设计了遥控系统。该系统主要由遥控发射、遥控接受、TFT-LCD驱动电路3部分组成,可以遥控TFT-LCD的电源开关、亮度、色饱和度、对比度和音量,并具有扩展功能。 1 硬件设计 硬件总体设计框图如图1所示。 1.1 遥控发射电路设计 遥控发射电路由AT89C2051单片机、键盘、红外发射电路和电源组成。这里选用4%26;#215
[应用]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved