051
基于单片机控制的小型程控交换系统样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
基于单片机控制的小型程控交换系统
1 摘
要
随着经济的发展和人民生活水平的提高,电话通讯在生活及工作中发挥了重大作用,但普通的一个或多个话机并行接入一根外线的模式已经远远不能满足生活和工作上的需要,并带来许多不便;专用的交换机又太昂贵及功能太过强大造成浪费.小型程控交换机便是为了填补这个空白而设计的.本文将主要从硬件构架和工作原理上讨论一个一拖八的小型程控交换机设计.
用户交换机是构成现代交换式通信网的重要设备,主要由用户线接口部分、交换网络和控制系统3大部分组成。控制系统依靠存储器中的程序和数据,引导微处理器对各种信令进行适当的处理,对交换网络和接口实行必要的控制。由于微处理机功能的不断增强和集成电路成本的不断下降,人们已有可能用合理的造价生产出功能齐全的交换机。实际中实现交换系统的方案有较大差别,缺乏统一模式,这就给详细、具体地掌握系统的内部结构带来了一定的困难。基于以上原因,我们考虑将单片机知识与程控交换的基本原理相结合来设计简易的交换系统。该系统采用单片机、网络交换芯片和用户接口电路芯片,以单片机为微控制器来实现通信系统的呼叫响应、处理、应答,话路接续,通话计时及复位拆线等基本功能。
关键词: 单片机;呼叫处理;交换网络;用户线接口
2 Abstract
With the
development of the economy and improving the people's living
standards, telephone communication in life and work played a major
role, But an ordinary phone number or an outer lane parallel access
model could no longer meet the life and work of the needs and bring
a lot of inconvenience; dedicated switch is far too expensive and
too powerful functional wastage. PABX is to fill this gap and
design. This paper will focus on the hardware architecture and the
working principle of a discussion on a delay of eight small program
- controlled switchboards design.
Users switch constitutes a
modern communications network to exchange key equipment, mainly by
the subscriber line interface, exchange network and control system
composed of three parts. Memory control system depends on the
procedures and data for various microprocessor guide Signaling
appropriate, to exchange network and interface implementation of
necessary controls. As microprocessor functions and the continuous
enhancement of the integrated circuit costs are declining, it has
been possible to use reasonable cost to produce fully functional
switches. Practical realization of the exchange programs differ
greatly, a lack of unified model, which gives detailed specific
understanding of the internal structure resulted in some
difficulties. Based on the above reasons, we consider programmable
microcontroller to exchange knowledge and the combination of the
basic principles to design simple exchange system. The system uses
single-chip microcomputer, network switching chips and user
interface circuit chip, MCU for a micro-controller to achieve
communication system to respond to the call, handling, response,
then the road successor, call time and reset the removing of basic
functions.
Key Words: Microcontroller call handling; Switching
Network; Subscriber Line Interface
3 目录
摘
要 0
ABSTRACT 0
目录 1
第一章 绪言 1
1.1
课题背景 1
1.2
本课题的任务和要求 9
1.3系统解决的问题和拟采用的研究手段 14
1.4本文的工作 15
第二章
系统的总体设计 16
2.1核心单元电路 16
2.2工作控制程序设计 34
2.3模拟软件调试 38
第三章系统的实现和关键技术 48
3.1硬件的选择与说明 48
3.2汇编程序与模拟软件 58
第五章
总结 84
致谢 86
参考文献 87
附
录 88
4 第一章 绪言
4.1 1.1
课题背景
话音信息的交换仍然是当今社会信息交换的重要内容之一。实现话音信息交换的工具是电话。电话通信系统用的终端设备是电话终端(也称为电话机)。
电话通信的最基本原理就是每个用户使用一部电话机,用导线将话机连接起来,通过声能与电能的转换,使两地的用户可以互相通话。如果有三部电话机,并要使这三部电话机间都能分别成对通话,则就需要用三对线将它们分别连接起来,以此类推,若有N部电话机,则就需要对连线,才能使N部话机间能任意成对的通话。
电话交换是伴随着电话通信的出现而同时产生的,随着电话通信技术的飞速发展,交换系统也经历着相应的变化和发展,归纳起来可分为四个时代:
1、人工交换机:这是最古老的交换机,这是依靠人(话务员)完成主被叫用户间的接续的。它可分为磁石式或共电式交换机两种。现在这种交换机已被淘汰,但这种人工接续方式,在一些特殊场合还有应用。
2、步进制和旋转动作交换系统。从人工交换机到自动交换系统的革命性变革最早是由步进制交换系统完成的。步进制交换机是由电动机的转动带动选择器(又叫接线器)垂直和旋转的双重运动来实现主叫和被叫用户的接续的。
3、纵横制交换系统:该系统使用电磁力建立和保持接续。“纵横”是指它的选择器采用交叉的“横棒”和“纵棒”选择接点。后期的选择器虽然使用了专门设计的电磁继电器构成接线矩阵,但“纵横”一词却一直被沿用下来。
步进制和纵横制电话交换系统通常又被称为机电式电话交换系统,以区别于后来出现的电子交换系统。
4、电子交换系统:早期的电子交换系统,只是使用电子元件如晶体管和集成器件代替纵横制交换系统中的电磁继电器等体积大、耗电多的机电元件。但随着计算机技术在通信技术中的应用,交换技术开始了它的第二次革命性的变革。新一代的交换系统利用予先编制好的计算机的存储程序来控制整个交换系统的运行,以代替用布线方式连接起来的逻辑电路控制整个系统的运行,所以这种新型的交换系统叫做存储程序控制交换系统(SPC),简称程控交换系统。
步进制、纵横制和程控交换系统都属于自动交换系统。一个自动交换系统由两个主要部分组成:话路系统和控制系统。前者用来建立交换系统的入端和出端之间的连接,而后者则对收到的信号进行译码并发布各种命令去控制交换网络。早期的程控交换机在话路系统方面与机电式交换机并无本质区别,它仍然使用了空间分割的话路交换网络,而所交换的信息也都是模拟信号,因而这一类交换机叫做模拟程控交换机。
随着脉冲编码调制技术(PCM)得到应用。PCM传输系统的发展,促使程控交换向时间分割的数字交换机发展,数字交换机所交换的信息是数字信号。所以这类交换机就称为数字程控交换机。
4.2 1.2
本课题的任务和要求
单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。
由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。
单片机主要用于计算机外设、实时控制、仪器仪表、通信和家用电器等各个领域,是计算机技术和电子技术的综合性应用,在不同应用场合其技术要求各不相同,因此设计方法和研制的步骤不完全一样。
单片机应用系统由硬件和软件组成。硬件是指MCU、存储器、I/O接口和外设等物理器件的有机组合。软件是指系统监控程序的总称。在开发的过程中,它们的设计不能完全分开,二者需要互相配合、不断调整才能组成高性能的应用系统。单片机应用系统的开发包括系统总体设计、硬件设计、软件设计、系统调试等几个阶段,它们有时交叉进行。
一、 设计任务
(1)系统总体设计任务
在进行系统设计之前,首先应根据对系统的功能要求及其应用环境等确定合理的、具体的功能和技术指标,对应用系统的可靠性、通用性、先进性、可维护性、以及成本等进行综合考虑,以尽量合理并符合相应的标准。然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选择合适的机型。接下来要根据系统中可能遇到的传感器、模拟电路、I/O接口、存储器和显示器等器件和设备进行器件选择,使之符合系统在精度、速度和可靠性等方面的要求。最后确定硬件和软件的功能划分。由于在系统设计中某些功能用硬件和软件都能实现,在设计中应综合考虑研制周期和成本等因素具体划分软硬件功能。
(2)系统硬件设计任务
硬件设计的任务是根据总体要求,在所选的MCU和各个元器件型号的基础上设计出系统的电路原理图,做一些必要的不见实验,以及工艺结构的设计加工,印刷电路板的设计制作和样机的组装等。在硬件设计中,需要考虑系统总线的负载能力、系统扩展时的片选方式、模拟电路的速度和精度等,如需扩展存储器则尽量用一片完成,这样既降低了成本,又减小了线路板的面积,同时提高了系统的可靠性。
(3)系统软件设计任务
单片机应用系统的软件设计是系统设计中最基本而且工作量较大的任务。与系统机上操作系统支持下的纯软件不同,单片机的软件设计是在裸机的条件下进行的,而且随应用系统的不同而不同。在软件中一般需考虑以下几个方面:
1) 根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现场的保护和恢复,以及它们和主程序之间的信息交换方法。
2) 程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向下的方法。
3) 在进行程序设计时,先根据问题的定义描述出各个输入变量和输出变量之间的数学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编写。
4) 在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的机器码。
(4)系统的调试任务
在系统样机的组装和软件设计完成以后,就进入系统的调试阶段。应用系统的调试步骤和方法是相同的,但具体细节与采用的开发系统(即仿真器)及选用的单片机型号有关。调试的过程就是软硬件的查错过程,分为硬件调试和软件调试。
1) 硬件调试
单片机应用系统的软硬件调试是分不开的,通常是先排除明显的硬件故障后再和软件结合起来进行调试。常见的硬件故障有逻辑错误、元器件失效、可靠性差和电源故障等。在进行硬件调试时先进行静态调试,用万用表等工具在样机加电前根据原理图和装配图仔细检查线路,核对元器件的型号、规格和安装是否正确。然后加电检查各点电位是否正常。接下来再借助仿真器进行联机调试,分别测试扩展的RAM、I/O口、I/O设备、程序存储器以及晶振和复位电路,改正其中的错误。
2)软件调试
软件调试就是检查系统软件中的错误。常见的软件错误有程序失控、中断错误(不响应中断或循环响应中断)、输入/输出错误和处理结果错误等类型。要把各个程序模块分别进行调试,调试通过后再组合到一起进行综合调试,达到预定的功能技术指标后即可将软件固化。系统的调试过程要结合具体的仿真器进行。
4.3 1.3系统解决的问题和拟采用的研究手段
本程控交换系统是由硬件和软件两大部分组成。这里所说的基本结构是指程控交换机的硬件结构。程控交换系统的硬件可分为两个系统:话路系统和中央控制系统,整个系统的控制软件都存放在控制系统的存储器中,该结构图既适用于空分交换系统也适用于时分数字交换系统,因为不管何种交换方式,其区别存在于交换网络和用户电路的具体结构,系统的功能并无本质区别。为方便,我们假定控制系统和话路系统都是以集中控制方式工作的。
1、话路系统:它由交换网络和外围电路组成,其中外围电路包括用户电路、中继器、扫描器、网络驱动器和话路接口等几部分。交换网络的作用是为音频信号(模拟交换)或话音信号的PCM数字信号(数字交换)提供接续通路。用户电路是交换网络和用户线间的接口电路。它的作用是一方面把语音信息(模拟或数字)传送给交换网络,另一方面把用户线上的其它信号,如铃流等,和交换网络隔离开来,以免损坏交换网络。中继器是交换网络和中继线间的接口电路。所谓中继线是该系统与其他系统或远距离传输设备的连接线。中继器具有出局中继和入局中继之分。中继器除具有用户电路的功能外,还具有指定信号形式、中继线工作方向以及为计费提供反极信号等功能。扫描是用来收集用户信息的。用户状态(包括中继线状态)的变化通过扫描器可送到控制部分。网络驱动器是在中央处理系统的控制下,具体地执行交换网络中通路的建立和释放。而话路设备接口,又称信号接收分配器,统一协调信号的接收、传送和分配。
2、中央控制系统:控制系统的功能包括两个方面:一方面是对呼叫进行处理;另一方面对整个交换系统的运行进行管理、监测和维护。控制系统硬件由三部份组成:一个是中央处理芯片(CPU),它可以是一般数字计算机的中央处理芯片,也可以是交换系统专用芯片。二是存储器(内存储器),它存储交换系统常用程序和正在执行的程序和执行数据。三是输入输出系统,包括键盘、打印机可根据指令或定时打印出系统数据,外存储器存储常用运行程序,机器运行时调入内存储器。一些小型交换机的外存储器常常保持在控制系统之中,所有程序都固化在专门的EPROM存储器中。
用AT89C51
控制、交换网络用MT8816,用户接口用MH88612和PCM,解码TP3067.
4.4 本文的工作
本文的工作就是介绍如何做一个小型程控交换机,第2部分给出相关方案的研究为后面程序设计打下基础,第3部分给出了系统的总体设计,对程序的模块分析、设计思想第4部分给出详细的实现过程和重要的技术实现。最后给出了我对这个设计一个看法,这个系统有些什么特色,还有展望之类的。
5 第二章
系统的总体设计
5.1 2.1核心单元电路
1. 核心单元电路
单芯片微处理器是属于Embedded System(嵌入系统),此系统的是把CPU
加上一些少量的记忆体和输出入组件(I/O),都嵌入在一颗芯片内,再使用 特定的组译和编译软体编辑程序,利用烧录器把程序储存到单芯片,如此
加上一些简单的周边电路,即可变成一个控制系统,所以单芯片又称为微
程控器(microcontroller)。
8051是由INTEL公司发展出来的8bit MCU(微处理器),目前在工业界
的应用相当的普及化,目前已有相当多家的公司也制造与8051兼容的单晶 片,除的基本的构造相同外,更增加其周边的控制功能
,例如DALLAS 公司生产的DS87C550,已经内建A/D转换和PWM,如此可减少周边组件
和布线的成本,而国内的华邦电子公司也推出了40MHZ W78C51/52/54/58
ATMEL半导体公司的AT89C51系列的产品,不需紫外线的清除,而是用电
子式抹除,比一般的51系列更为方便,目前在一般的学校实习,大都采用此
系列产品。PHILIPS半导体公司出产的P87C552家族,除了51本身的UART 外,更增加的I2C(Inter-integrated
Circuit)的功能,这是利用SDA和SCL两条 传输线,和周边的IC互相沟通、传送资料,而且这些IC都必须有I2C的编
号,这使得选购IC时,受到一些限制,所一在目前的工业应用上,还不是
相当的普及化。由于51家族繁多,所以在设计之前,必须针对51家族功能有相当的认识
如此才能选购符合自己所需,而且价格便宜的MCU。
INTEL 8051家族介绍:
INTEL公司是第一家出产8051,其它公司也依照INTEL所发展出来的8051
为最基本的架构,再加上自己一些额外的功能以显示出自己的特色,让使用
者能依照电路所需,选择最适合的8051去做控制,而且最重要的是,为了方
变设计者能随时更换不同厂牌的8051,其接脚大都是40Pin,而且每Pin的定
亦都相同,但也有24Pin(87C748、87C751)和68Pin PLCC
包装(DS87C550),不过这些都是特殊规格的MCS-51。
MCS-51单芯片一般分为三个版本:
1. 单芯片内部不包含程序记忆体,称为ROMless。
2. 单芯片内部已内建ROM。
3. 单芯片内部已内建EPROM。
其中(2)和(3)的区别在于(2)的单芯片只可烧录一下,较适合于程序已完成,用
于大量生产,因为其价格较便宜,可节省产品的成本,(3)的单芯片适合用于
程序发展阶段,因为需要重复的更改程序,而内含有EPROM的MCS-51,只
需要使用紫外线清除器,就可把MCS-51的程序记忆体清为空白,达到重复烧录的特性。
INTEL公司出产的各版本MCS-51编号如下:
组件编号 内部程序内存大小 定时器 中断个数
ROM容量 RAM容量
8031AH None 128*8RAM 2*16Bit 5
8051AH 4K*8ROM 128*8RAM 2*16Bit 5
8051AHP 4K*8ROM 128*8RAM 2*16Bit 5
8751H 4K*8EPROM 128*8RAM 2*16Bit 5
8751H-8 4K*8EPROM 128*8RAM 2*16Bit 5
8751BH 4K*8EPROM 128*8RAM 2*16Bit 5
8032AH None 256*8RAM 3*16Bit 6
8052AH 8K*8ROM 256*8RAM 3*16Bit 6
8752BH 8K*8EPROM 256*8RAM 3*16Bit 6
其特性如下:
1. 是一个8位的MCU。
2. 具有布尔代数的运算能力。
3. 4个8位Port,共有32条双向且可独立被控制的I/O Port。
4. 有128*8
RAM,可以储存资料记忆体(8052为256*8)。
5. 有4K*8 ROM的程序记忆体(8052为8K*8)。
6. 有2组16 Bit计时器(8052有3个)。
7. 具有全双工传输信号UART。
8. 5个中断源(8052有6个),具有两层优先权中断架构。
9. 内部有时脉(CLOCK)振荡器电路(12MHZ)。
10. 程序记忆体(ROM)可扩充至64K
Byte。
11. 资料记忆体(RAM)可扩充至64K Byte。
ATMEL家族介绍:
ATMEL公司所出产的ATC89C51可以说是目前一般在实验阶段最时常
被用到MCS-51,因为ATMEL所出产的MCS-51系列其程序记忆体是做成 Flash
memory,可以省略使用EPROM照紫外线的时间,而且重复烧录的次
数多,价格又比价一般的便宜,其烧录的次数可高达1000次,8051之所以
能如此盛行,ATMEL公司其功不可没,因为它使学习者的学习方式变的简单
价格上也EPROM型的8051系列便宜的多,虽然目前DALLAS公司所推行
的高速8051(HSM)已渐渐威胁到ATMEL的地位,不过它目前所推出的51系
列含有更高的速度和增加了更多功能,未来和DALLAS公司所推出的8051
都值得消费者注意。为了方便让读者选购ATMEL公司出产的MCS-51,以下 介绍其IC编号所代表的意义:
ATMEL公司生产的各版本MCS-51编号如下:
组件编号 程序内存(Program
Memory) 数据存储器容量(Data Memory Bytes) 16bit定时器(16bit
timer)
AT89C1051 1K Flash 64
RAM 1
AT89C2051 2K Flash 128
RAM 2
AT89C51 4K Flash 128
RAM 2
AT89C32 8K Flash 256
RAM 3
AT89C55 20K Flash 256
RAM 3
AT89S8252 8K Flash 256 RAM
2K
EEPROM 3
AT89S53 12K Flash 256
RAM 3
由于AT89C51/52/55是一般较为通用的MCU,我们就把它与8051/8052做功能上的比较,其所增加功能如下
:
1. 具有4K/8K Bytes可重复规划的快闪记忆体(Reprogrammable Flash
Memory),可写入/抹除1000次以上,程序可保存10年以上。
2. 操作频率:0MHz~24MHz(AT89C55为高速可达33MHz)。
3. 操作电压:5V
。
4. AT89C51 具有两层优先权的5个中断向量结构,AT89C52/55具两层优先权的6个中断向量结构。
5. 三个可规划的记忆体上锁位。
6. ALE脚可规划为,只在执行MOVC和MOVX时才动作。(可减少EMI,因为方波的电磁干扰很大)
7. AT89C52/55的计数器2共有四种操作模式:
1)捕获(capture)。
2)自动重载(auto-reload)(往上或往下计数) 。
3)鲍率产生器(baud rate generator)
。
4)时钟输出(clock-out)。
其中第(2)种操作模式增加了可往上或往下计数的功能(一般为上数功能),
第(4)种操作模式为新增加的功能,利用P1.0可以规划出50%责任周期的 时钟输出。
而AT89S53增加了一个相当令人注意的功能:ISP,这个功能使得程序可经 由ISP(In-System
Reprogrammable)接口下载,其具有12K可可重复规划的快
闪记忆体,可写入/抹除1000次以上,使得使用者更加方便使用。
Dallas家族介绍:
Dallas公司所出产的8051家族,一般都是用在对高速有严格要求之下才会考虑使用,一般统称为高速微控器(HSM),目前较为常用得有DS80C310和DS80C320,如果考虑高速动作这两颗是一般常用的微控器,而且价格和其它高速微控器来比是较为便宜的,但唯一的缺点是其内部没有ROM,一般都是外接EPROM,但不能超过64K
位组,由于在高速动作,所以周边的IC存取速度就需要相当的注意,以74HC373来说,就要换成74F373,在EPROM的存取速度也要配合微控器的振荡器频率,一般模拟所用的ICE是无法做高速模拟的所以必须使用Dallas公司自己出产的ICE;以往Dallas公司所标榜的是高速微控器,但目前华邦公司也出厂了高速微控器(40MHZ),其速度不输于Dallas的产品,如果设计上对速度有严格的要求,倒也可以考虑一下华邦的W78E51/52
/54/58,但假设你要整合性强又要高速的话DS87C550或许可以满足你的要求。以下介绍其IC编号所代表的意义:
Dallas公司出产的各版本MCS-51编号如下:
组件编号 程序内存(Program
Memory) 定时器/计数器 串联I/O
(Serial
I/O)
DS80C310 NO 3
1
DS80C323 NO 3+WDT 2
DS87C520 16KB
EPROM 3+WDT 2
DS83C530 16KB
EPROM 3+WDT 2
DS87C530 16KB
EPROM 3+WDT 2
DS87C550 8KB
EPROM 3+WDT 2
WDT:看门狗计时器
Serial I/O:UART
一般常用的为DS80C310和DS80C320,我们就把它与80C32做功能上的比较,其所增加功能如下 :
DS80C310:
1. 有两组DPTR,一般只有一组。
2. 振荡器频率范围:0~33MHZ,一个机械周期需4个振荡周期,一般为12个振荡周期。
3. 可变机械周期的MOVX指令,用来配合ROM或周边组件的读取速度。
4. 有6个外部中断,一般只有/INT0和/INT1。
5. 有两层优先权的10个中断,因为外部中断多了4个。
DS80C320除了具有DS80C310外,还增加了一些功能:
1. 有13个中断源,其中包含了6个外部中断。
2. 有看门狗计时器(Watchdog timer)的功能。
3. 提早警告电源失效中断。
4. 电源下降自动重置(Rest)功能。
目前Dallas公司所出产的微控器除了以上介绍的功能外,更添加了其它的功能,而且是百分之百和8051兼容,这使得使用者在设计时更加的方便,现就以DS87C520为例:
1. 有OTP(只能烧录一次)和EPROM(可多次烧录)版本,增加使用的弹性。
2. 可用软体规划特殊功能暂存器(SFR),控制ALE脚对EMI干扰。
3. 可用软体规划特殊功能暂存器(SFR),控制指令周期速度为÷64或是÷1024,一般内定÷4(8051为÷12)。
4. 可用MOVX指令读取内部1K Bytes 的SRAM(一般只有256 Bytes的资料记忆体)。
5. 内部的16K Bytes
的ROM,可用软体规划特殊功能暂存器(SFR),成为从0到16Kbytes的ROM使用。
由于Dallas的微控器增加了许多的功能,如果使用者有需要使用的话,就必须事先在程序中定义特殊功能暂存器(SFR),否则在组译时会产生错误的讯息,但如果你没有使用到这些特殊功能,就不需去定义,这是在使用Dallas微控器时必须注意的事情。
目前在8位微控器的市场,有Microchip公司出产的PIC16CXX,其特色为省电、低功率,而且对于周边的电路整合性比8051强,因为其内部有些已内建A/D、PWM、I2C、LCD控制功能,这让使用者有更多选择的空间,如果读者有兴趣也可上网(
http://www.microchip.com/)查看该公司的资料,而且也可向该公司索取资料;另外还有Motrola公司所出产68HC05,该公司所出产的微控器在工业界更是占有一席之地,其使用者和8051相比是不相上下;ATMEL公司目前也相当积极在推动AVR微控器,而且它还提供整套发展工具给学校做实验,未来的发展值得注意。
综合考虑系统扩展方便性、系统工作可靠性、性价比等因素,系统主机芯片采用AT89C51。
硬件电路如图1所示。它由单片机8051为核心加上有关集成电路及元器件组成。
2.1.1
工作原理
本系统是依据程控交换原理设计的微型空分交换系统,系统原理框图如图1所示。其基本工作原理:当用户1摘机呼叫用户2时,交换机向主叫方发送拨号音,同时由单片机将主叫号码送七段显示器显示,主叫方拨打相应号码后,DTMF译码电路译出对应的编码并引起单片机中断,AT89C51读入数据同时显示被叫号码,此时交换机切断拨号音并检测被叫方状态,若被叫用户忙则交换机向主叫方发送忙音,否则,向被叫方送铃流、向主叫方送回铃音。当被叫方摘机后,交换机切断铃流和回铃音,接续话路,双方开始通话并启动通话计时。当一方挂机后,计时停止显示通话时间并向对方送催挂音,对方挂机后系统拆线复原。
2.1.2
硬件电路组成
(1)信号检测、信号音控制电路
信号检测电路用来检测用户的状态并接收用户拨打的电话号码,并根据用户状态启动相应的信号音控制信号。以2个通话用户为例,采用AT89C51的P1口与用户接口电路相连,用以检测是否有用户呼叫并控制DTMF解码电路。P1.0、P1.1用于接收主、被叫方的摘挂机信号,用户摘机则话机经P1.0、P1.1向AT89C51发出一高电平信号,此时表示有用户呼叫。P1.3、P1.4通过模拟开关CD4066控制主、被叫双方的DTMF解码电路,高电平有效。采用8255的PC口接收话机经用户接口发送来的电话号码,单片机中断时从PC口读入数据。
信号音控制电路采用8255芯片的PA、PB口进行控制,PA0、PA1作为铃流控制输出信号,PA4、PA5用作回铃音控制信号,PB0、PB1为忙控制信号,PB4、PB5为拨号音控制信号,各控制信号均为高电平有效。因此,1片8255可同时对2对用户的信号音进行控制。单片机根据检测到的用户状态产生相应信号音的控制信号,以便向用户端发送信号音。信号检测、信号音控制电路如图2所示。
(2)双音多频解调电路
MT8870是双列直插DTMF解码专用电路。双音多频解调电路如图3所示。
AT89C51的P1.3、P1.4接模拟开关CD4066的13、12脚来控制MT8870的解码,高电平时允许解码电路工作。2个用户的双音多频信号分别由CD4066的1、11脚输入,经过MT8870内部的前置放大器送入高低频组带通滤波器,再经幅度检测器进入译码电路,最后从输出端输出相应的编码。采用CD4066还可起到隔离话音信号与DTMF信号的作用,以免对解码造成干扰。MT8870的STD接AT89C51的INT0,当STD电平由低变高时引起单片机中断读取电话号码。
(3)交换网络电路
电子接线器是空分交换网络的核心部件,我们采用MT8816来完成通话双方线路的接续。MT8816芯片是8×16的模拟开关阵列,8路列输入/输出(Y0~Y7)和16路行输入/输出(X0~X15)形成模拟交换矩阵,芯片有保持电路,可保持任一交叉点处于接通状态,直至接收到复原信号为止,其引脚如图4所示。
AT89C51的P0口通过列地址线AY0~AY2和行地址线AX0~AX3控制列线与行线选择需要接通的交叉点(例如,要接通Y0和X1间的交叉点需向AY0~AY2送000,向AX0~AX3送1000)。DATA为交叉点开关控制位,高电平时交叉点开关连通相反则断开。RST为复位信号输入,高电平时全部开关均置于截止状态。STB为选通脉冲输入,AT89C51送入列、行地址码后还必须给STB端送一脉冲信号同时DATA置高电平,才能使MT8816完成接续工作,MT8816拆线复原的过程与接续过程类似,此时只须将DATA置低电平即可。
交换网络向用户端发送的各种信号音的接通和切断可通过相应的信号音控制信号(8255的PA、PB口)选通CD4066来实现。
(4)用户接口电路
用户接口电路是由用户线接口芯片MH88612和PCM编解码芯片TP3067组成,两者共同完成BORSCHT七项功能。用户线接口检测到用户1摘机后,MH88612的SHK引脚输出一高电平至P1.0,AT89C51将8255的PB4端置高电平控制交换网络向用户1送拨号音,单片机收到正确号码后控制系统发出振铃控制信号即将8255的PA1置高电平并由MH88612的RC脚输入,驱动继电器K闭合向用户线接口2送振铃,同时将PA4置高电平控制交换网络向用户1送回铃音。当用户2摘机时,其接口电路的SHK脚输入一高电平至P1.1,单片机控制MT8816接续通话线路。当任一方挂机时其相应的SHK输出一低电平控制系统向另一方送催挂音。
线路接续成功后,话音信号经MH88612的VX输出送入TP3067中进行编码。PCM编码器的抽样频率为8
kHz,由帧同步脉冲FSX获得,FSX除提供PCM抽样频率外,还选通输出缓存器使缓存器中的8
B,自FSX下降沿开始以主时钟2.048
Mb/s的速率由DX端输出至交换网络,主时钟由MCLKX脚输入。PCM解码是指将来自交换网络的主时钟频率的PCM信号在帧同步信号FSR的下降沿开始时由DR接收至输入缓存器中,其主时钟频率由MCLKR输入仍为2.048
Mb/s。用户接口电路如图5所示。
(5)其他电路
交换机向用户发送的铃流信号是25
Hz、幅度为90 V的方波信号,拨号音、回铃音、忙音、催挂音是通过控制450
Hz交流信号的断续时间来产生的,各种信号音可由单片机编程产生,但为避免程序过于复杂,使AT89C51更好的对系统主要部分进行监控,设计中各种信号音的产生均采用硬件电路完成,可由555芯片配以适当的外围电路产生各种信号音。
显示电路主要利用了8155芯片作为AT89C51的扩展输出口,由8155、74LS240和MC1413及七段LED组成,用来显示主叫、被叫方号码及通话时间。8155的PA口与MC1413相连经反相后作为数码管的位选信号,PB口经74LS240作为段选信号送数码管显示,片选信号接AT89C51的P2.7。由于整个系统较为复杂,在显示电路的调试过程中我们只采用了5位数码显示管,中间3位显示通话时间(1位分钟,2位秒针),前后2位分别显示主被叫方的代号(如用户1用1表示,用户2用2表示),但只须对程序稍加变动既可使分别显示主被叫放的电话号码和通话时间。
5.2 2.2工作控制程序设计
(1)系统初始化程序
对AT89C51设置中断及内部数据存储器单元清零,8155和8255进行端口功能设置。
(2)主叫摘机检测程序
主叫方摘机后,显示电路显示主叫号码,拨号音控制信号置高电平,交换网络向主叫方送拨号音,等待主叫方拨打电话号码。
(3)拨号检测与等待摘机程序
检测到拨号脉冲后,立刻切断拨号音,AT89C51响应中断读取电话号码对应的二进制编码。若被叫号码对应的话机不存在或被叫方处于状态,则忙音控制信号置高电平,交换网络向主叫方送忙音,催其挂机;若号码检测正确则铃流控制信号置、回铃音控制信号置高电平,交换网络向被叫方送铃流信号,同时向主叫方送回铃音。
(4)话路接续程序
检测到被叫方摘机信号后,系统停止发送铃流和回铃音,AT89C51启动MT8816接通通话线路。
(5)计时与通话检测程序
线路一旦接续成功,双方即可进行通话,AT89C51内部时钟计时开始,通过8155芯片加以显示。对用户状态进行判断,当检测到任一方挂机信号后,跳出计时程序交换网络向未挂机用户送催挂音(本系统中催挂音用忙音代替),双方挂机后,AT89C51控制MT8816拆除通话线路,回初始化程序重新等待用户摘机。
(6)显示程序
动态显示主、被叫方的电话号码及通话时间。
5.3 2.3模拟软件调试
单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说
,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样
就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。总结一下两者的不同与相同:
相同点:
1:都可以检测单片机执行时序下的片内资源情况(如R0-R7
、PC计数器等)
2:可以实现断点、全速、单步、运行到光标等常规调试手段。
不同点:
1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。
2:软件调试执行单片机指令的时间无法与真实的单片机执行时间画上等号,也就是说如果一个程序在单片机中要执行300us,可能在计算机中执行的时间可能会比这个长很多,而且无法预料。仿真器则是完全与单片机相同。
3:软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成,如果是一个协调系统,可能还需要借助几个单片机仿真器和相关的仪器才能解决。
4:软件仿真不需要额外花钱,而硬件需要,一个仿真器一般都上千元,同时可以仿真许多种单片机的工作。
Keil
uVision2是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言。
这里我们仅仅介绍
Keil uVision2 的简单使用,更详细的使用方法见本光盘\单片机软件\Keil
c51\Keil书籍与资料目录中的内容。
下面将具体介绍如何使用Keil uVision
来软件调试单片机程序。
首先:打开一个已经编译通过的单片机项目(如何新建与编译单片机程序项目这里省略)
选择Debug下面的Start/Stop Debug
Session,这个选项可以打开调试也可以关闭调试
接下来看到的窗口就是调试窗口了:
下面具体说说相关子窗口的功能:
1:左侧的ProjectWorkspace
Regs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。Regs很简单就不多说。具体介绍一下Sys
a
累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
b
寄存器B ,主要用于乘法和除法操作
Sp sp_max
dptr 数据指针DPTR
PC $
states
执行指令的数量
sec 执行指令的时间累计(单位 秒)
psw
程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。
p
奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
f1
ov
溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
rs
f0
ac
辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
cy
进位标志CY(PSW7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0
由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)
根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。
虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。
上图所示,Port0,Port1,Port2,Port3就对应于单片机的四个P0,P1,P2,P3
口,共32个针脚。
这是全部打开后的效果。
有了输出,就应该有输入的设置:
这个按钮可以打开输入预设窗口,输入值窗口如下:
选择不同的Int Source 会有不同的 Selected
Interrupt的变化,通过选择与赋值达到模拟输入的目的。
接下来是串口的设置:
这是设置串口的窗口
监测窗口数据还有一个窗口:
点击:
将会出现,这个窗口可以监测从串口输出的ASCII代码。
关于串口的问题,以后我会有专门的文章介绍,这里就这样大致介绍一下。
最下面还有一个定时器的设置:
3个定时器与一个看门狗,设置定时器的数量与工程选择的单片机种类有关系,如果是8051就只有2个定时器,如果是选择8052
就有3个定时器了。
定时器的设置很简单:
下面再介绍一下一些常用的调试按钮:
就是Reset
,相当于单片机最简系统的复位按钮,按下后,所有的系统状态将变成初始状态
这是全速运行,相当于单片机的通电执行。
这个就是停止全速运行的按钮。
step
into 逐语句;进入并单步执行;单步执行
step over 逐过程
step
out 跳出
执行到断点处
可以在代码所在窗口的最左边右击按钮插入一个断点,如下图所示:
有了这个功能,你就可以控制监控要执行到某位置时系统的状态。