找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2297|回复: 0
打印 上一主题 下一主题
收起左侧

房间电器综合控制系统

[复制链接]
跳转到指定楼层
楼主
ID:195285 发表于 2017-5-1 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
房间电器综合控制系统
Control system of the electrisic in the room
摘    要
本设计的目的是寻找一种方法来实现房间内多种电器的综合控制,采用了单片机与红外遥控相结合的方式,制作出一种房间电器综合控制系统。系统的核心由AT89S52单片机和红外收发装置构成,整个系统包括发射部分和接收部分。发射部分以AT89S52单片机为中心控制芯片,外围扩展了矩阵键盘,红外发射电路以及电源电路;接收部分则以AT89S52单片机为核心,外围扩展了红外接收电路,按键显示电路,电源电路以及与按键相应的继电器控制家用电器电路。红外信号的发射采用脉冲个数编码的方式,根据不同的按键设定不同的编码,通过软件实现解码,从而控制相应电器的开和关。通过硬件和软件相结合的方式,此设计实现了手持遥控器,按下一个按键,相应的电器接通电源开始工作,并显示按键号码,再按一下,该电器切断电源停止工作。此设计具有操作码个数可随意设定,编程灵活多样等优点。

关键词:单片机;红外;编码解码
























ABSTRACT
     The aid of this ariticle is to search a way to

Key Words:MCU;Inframed;



























目    录
1 引言        1
1.1智能家居的发展        1
1.2微处理器的功能及其应用        1
1.3通信技术的发展及其前景        1
2 系统原理和部分方案比较        3
2.1系统原理综述        3
2.2课题总体要求        5
2.3 系统各部分方案比较        6
2.3.1控制方式比较        6
2.3.2 信号处理方案        7
2.3.3 微处理器的选择        8
3 系统硬件设计方案        9
3.1 系统工作原理流程        9
3.2 系统主控制器选择         12
3.2.1 单片机(MCU)概述        12
3.2.2 MCU芯片简介及器件选择        14
3.2.3 AT89S52简单介绍说明        15
3.3 信号的发射接收电路        9
3.3.1 红外发射电路设计        9
3.3.2 红外接收电路设计        9
3.4 遥控键盘电路        10
3.4.1 按键安装方法        9
3.4.2 矩阵扫描        9
3.4.3 健功能        9
3.5数码显示电路        10
3.5.1 驱动电路        9
3.5.2 数字显示电路        9
3.6 继电器控制家电输出电路        9
3.6.1 继电器原理        9
3.6.2 控制电路        9
4 程序控制        11
4.1系统软件介绍        11
4.2总程序流程        11
4.3程序        11
4.4系统整体电路图        11
5 开发环境及程序下载        3
5.1 开发环境        3
5.2 程序下载        5
5.2.1系统下载        6
5.2.2 外加软件下载        7
6 系统测试及数据记录        9
6.1 软件测试        9
6.1.1 功能仿真        12
6.2.2         14
6.2 硬件测试及仿真         12
6.3 系统数据记录         12
7 课题相关技术发展前景        3
结    论        12
参考文献        13
附录1: 程序        14
附录2: 系统电路图        14
附录3: 系统PCB图        14
致    谢        15

  1 引言
当今社会是数字化的社会,也是数字集成电路广泛应用的社会。而数字集成电路本身也在不断地进行更新换代,不断的进步创新。它由早期的电子管、晶体管、小中规模集成电路,发展到超大规模集成电路(VLSIC,几万门以上)以及具有许多特定功能的专用集成电路(ASIC)。并且在现代高新电子产品的设计和生产中,数字集成电路技术和现代电子设计技术是相互促进、相互推动又相互制约的两个技术环节。前者的进步就表现在大规模集成电路加工技术,即半导体工艺技术的发展上;而后者的核心则是EDA(电子设计自动化)技术,它使得设计者的工作仅限于软件的方式,即利用硬件描述语言(本文只涉及到VHDL硬件描述语言)和EDA软件来完成对系统硬件功能的实现,避免了硬件电路在搭接时所出现的问题。
1.1 ASIC技术促使可编程逻辑器件发展
随着微电子技术的发展,设计与制造集成电路的任务已经不再由某个大规模的生产厂商来独自承担了,更甚至于系统设计师们都愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中。也就是这种现场可用的思想促成了现场可编程逻辑器件(FPLD)的出现,其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)了[1]~[2]。
对于电子系统设计来说,在以前的很长一段时间里,设计某个电子控制系统大多数情况下是用指令少、功能单一的单片机,但是用其开发出来的硬件系统及其电路结构庞大而复杂、成本高、经常容易发生电路方面的故障,并且由于系统是针对某一个特定的功能而设计的,对今后系统的升级和功能扩展都非常困难。显然这样的单片机在某种程度上已经不能再满足设计要求了。而CPLD(或FPGA)芯片作为一种新兴的设计器件,在技术上与单片机相比有很多优势,光说其实现的工艺就有反熔丝技术、EPROM技术和EEPROM技术等。实现了电可擦除、电可改写和紫外线擦除,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性。这些PLD器件的一个共同特点,就是可以实现速度特性较好的逻辑功能,可见用这种CPLD芯片进行开发设计时,只需要增加少量的外围电路,并结合可控制它的丰富的指令集合,就可以获得功能强大的控制系统。又由于这种芯片内含有可下载程序固定接口和EEPROM、Flash。因此,开发出来的系统具有可升级性(内部程序可擦除,进行重新烧写),用户可以根据需要对其进行功能扩展,既可以缩短系统开发周期,又可以减少开资。
利用EDA技术(CPLD/FPGA)进行电子系统设计的最终目标,是完成专用集成电路ASIC的设计和实现,而在电子科技高速发展的当今,再加上上述CPLD/FPGA(复杂可编程逻辑器件/现场可编程门阵列)的各种优点,它以成为实现这一途径的主流器件。其特点是直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,成本低,上市时间短,技术维护简单,工作可靠性能好。例如Altera公司最新生产的MAXII系列PLD ,这是一种基于FPGA(LUT)结构,集成配置芯片的PLD,在本质上它就是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以与传统的PLD一样使用,加上容量和传统PLD类似,所以Altera公司把它归作PLD。 还有像Lattice公司的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和PLD类似,但是因为容量大,性能和传统与FPGA相同,也是LUT架构,所以Lattice仍把它归为FPGA之列。总之,由于以上的各种突出优点,CPLD或FPGA芯片已成为大多数电子设计工程师进行电子设计的首选器件。
1.2 CPLD(FPGA)实现系统控制
把以CPLD(或FPGA)芯片为核心,作为主控制器开发出来的各种测量及控制系统,作为家用电子产品的一个组成部分嵌入某个系统中,使其更具智能化、拥有更多功能,便于人们操作和使用,从而更具时代感,这也是家用电子产品的发展方向和趋势所在。有的家用电器领域要求增加显示、报警和自动诊断等功能。这就要求我们生产的产品具有自动控制系统。而所谓的自动控制功能的实现主要是由计算机来完成的,可用的方法主要有两种:离线控制和在线控制。离线控制包括利用计算机实现对控制系统总体的分析、设计、仿真及建模等工作;在线控制就是以计算机代替常规的模拟或数字控制电路,使控制系统“软化”,让计算机位于其中,并成为控制系统、测试系统及信号处理系统的一个组成部分。这类控制由于需要有像计算机一样的智能控制系统身处其中,因此对控制系统有体积小、功耗低、价格低廉以及控制功能强大等要求,而为了满足这些要求,就应当使用可编程逻辑器件的具体芯片来实现。例如:本文所研究的课题就是利用CPLD器件(EP1K100QC208-3)为主控芯片,来实现系统的整体功能的。
然而,由于CPLD与控制对象联系密切,所以设计一个系统,不但对CPLD芯片的性能要求高,而且对设计者的要求也很高。他们不但要熟练掌握CPLD知识,而且还要了解控制对象,懂得传感器技术,具有一定的控制理论知识等。还拿本文所研究的课题为例,除了利用CPLD具体芯片外,还用到了传感器,A/D转换器以及放大显示电路等,才实现完成了系统总体功能——检测室温显示,并实现报警。

2 系统原理和部分方案比较
一个完整的系统,必须经过系统整体原理分析和各部分的方案比较,选择最佳最优的实现方法,才能完美而立于不败之地。
2.1 系统原理概述
当今社会,随着现代测量、控制和自动化技术的发展,信息采集的方法越来越多,而在所有信息的采集途径中,用的最普遍、最基础的,就是传感器。如果把电子计算机比作人的“大脑”,那么传感器则酷似人的“五官”(视觉、嗅觉、味觉、听觉和触觉)了。其重要性则可一目了然,不过对传感器的要求可要比人的五官的要求高得多,并且传感器的种类也在日益增多,涉及到的范围也日益变广。如AD公司生产的模拟电压输出型的温度传感器TMP35/36/37,它主要应用于环境控制系统、过热保护、工业过程控制、火灾报警系统、电源系统监控以及仪器散热风扇的控制等。还有NATIONAL SEMICONDUCTOR生产的与微处理器相结合的测温及温度控制、管理的温度测量控制器LM80,它主要应用于个人计算机及服务器的硬件及系统的温度监控、办公室设备、电子测试设备等。以及MAXIN公司生产的主要应用于CPU冷却控制的PWM风扇控制器及遥控温度传感器MAX1669。因此,测量外界温度的方法有很多种,然而,由于热敏电阻及其放大电路受到环境的影响,在不同的条件下会出现不同的测温偏差,而TMP35/36/37,LM80,MAX1669这些传感器的造价又太高,在相同条件下,由于测温精度、处理精度等多方面的因素,不同的通道也会出现不同的偏差,因此必须采用一种灵活的修正方式,这便用到了电压型的温度传感器LM35D。它的线性好(10mV/℃),宽量程(0--100℃),精度高(+0.4℃ ),低成本,而且采集到的是电压型信号,易于处理,使得电路简单实用[3]。
如上所述,本课题的设计就是利用温度传感器LM35D来采集温度信号的,随后将采集到的微弱模拟电压信号经过放大器OP07放大十倍后送入A/D转换器(ADC0804),将其转换为数字信号后,再传给CPLD芯片(这里用到的型号是EP1K100QC208-3),即该系统的核心部件,通过硬件描述语言(VHDL)编程进行信号处理,然后经过预先设置好的端口将数字信号传送给74LS138译码器以及驱动器CD4511和报警器,使LED八段数码管动态显示室温和实现报警。经实验调试,用该方法对0℃--100℃范围的温度测量时,测量误差为+0.4℃,可靠性好、抗干扰性能强。采用CPLD芯片作为核心监控器对外界温度进行测量,这样,既可以降低对温度传感器和放大电路的要求,从而降低成本,又可以针对不同外部环境或不同通道对温度显示的显示监控设定进行灵活修改,实现系统的升级。
2.2 课题总体要求
(1) 利用电压型温度传感器LM35D作为信息采集器件采集室温并产生10mv/℃的电压信号;
(2) 利用OP07放大器将微弱的电压信号放大预先设置好的倍数,以驱动后面电路;
(3) 利用A/D转换器将放大后的模拟信号转换为数字信号,供系统处理;
(4) 将数字信号送入CPLD芯片进行处理;
(5) 时时显示转换后的室温,进行监控;
(6) 温度超过警戒温度时,进行报警。
2.3 系统各部分方案比较
2.3.1 信号采集方案比较
在目前,信号采集有多种方法,而可用于本系统的温度的信号采集大致有三种方法,下面分别介绍各种方法的优缺点,讨论它们的可行性。
    方案一:采用热敏电阻采集室内温度信号。用此方法可满足40℃--90℃的测量范围,但热敏电阻的精度、重复性及其可靠性都比较差,并且对于检测小于1℃的温度信号时,误差大、不可靠,所以此方法不可取。
方案二:利用电流型温度传感器AD590采集室内温度信号。AD590具有较高精度和重复性(重复性优于0.1℃),其良好的非线性可以保证优于+0.2℃的测量精度,利用其重复性较好的特点,通过非线性补偿,可以达到+0.2℃测量精度。
电流型温度传感器AD590是二端器件,它采用了一种独特的电路结构,利用最新的薄膜激光微调技术作最后的定标,因而具有很高的精度。且其灵敏度为1uA/K,具有很宽的工作电源电压范围和很高的输入阻抗。作为一种高阻电流源,我们不需要考虑其传输线上的电压信号损失和噪声干扰的问题,因此特别适合做远距离测量或控制应用。出于同样的道理,AD590也特别适用于多点温度测量系统,而不必考虑选择开关或CMOS多路转换开关所引入的附加电阻造成的误差。
但是,由于AD590采集到的信号是电流信号,所以在将数据传给ADC0804模数转换器之前,必须先把电流信号转变成电压信号,在此期间不但造成了一定的信号损失,又影响了精度,这就要求我们在A/D转换器前设计一个信号保持电路。这样一来,用AD590来检测、采集室温的电路就显得很复杂。而且,在高精度测温电路中,还必须考虑AD590的输出电流不被分流影响,因此也放弃使用本方案。
方案三:采用电压型温度传感器LM35D采集温度信号。LM35D是精密集成电路温度传感器,它的输出电压与摄氏温度线性成比例,比例关系是10mV/℃。并且,LM35D无需外部校准或微调来提供±0.4℃的常用的室温精度,就把信号损失减少到了最小。而又因为它的线性性极好,所以编程时很容易实现。因此,对于本课题来说,选用此方案。
2.3.2 模拟信号数字化处理方案
    由于整个系统主要是处理数字信号而进行工作的,所以当由传感器采集到模拟信号后,必须先进行模数转换才能够使整个系统运行工作。而对于模数转换器件的选择,本课题用的是ADC0804,即系统采用ADC0804模数转换器作为模拟信号数字化的器件,进行数字化处理,为系统提供数字信号量的。
2.3.3 信号处理方案
本系统利用CPLD芯片进行信号处理。将经过A/D转换器转换后的数字信号送入CPLD芯片,进而根据已经编好的程序(程序见附录)处理温度的数字信息,进一步时时显示室内温度和报警,达到时时监控的目的。也就是说采用CPLD芯片作为系统信号处理主控制器。
2.3.4 显示部分方案比较
方案一:以前的电子工程师们进行电子设计时,大部分都使用单片机通过串口通信线TXD、RXD(P3.0、P3.1),再加移位寄存器74LS164来实现LED的显示功能,如图2-1所示。这样一来,使得每一个LED数码管都需要一片74LS164,使得电路比较麻烦,并且与单片机接口的编程程序不易实现,所以本课题放弃使用次方案。



                      RXD
TXD

图2-1    通过串口通信线TXO 、RXD实现LED显示功能
方案二:近年来,国内外有许多基于串行总线方式的LED显示器接口芯片不断出现,这些芯片与另一种功能更强、速度更快的控制芯片连接,可实现以往单片机不能实现的多种功能,并且具有占用I/O口线少,进行功能扩展方便,使用起来十分容易等特点,这就是用EDA技术来开发的CPLD芯片,因此本系统选用此方案。
在选用CPLD芯片后,再选用3个共阴极的8段数码显示管(TOD5201AE)来实现动态显示,用CPLD已经编好的程序来驱动一片CD4511和一片74LS138就可以控制段码和位选,以实现温度显示的功能。
2.3.5 系统报警方案设计
在设计开始时,想要的系统功能之一,是想让在室温达到并超过警戒温度时,系统可实现报警,给人以提示。在此,可用一个风鸣器和一个三极管放大电路来实现报警功能。具体的电路分析,详述见下文中。

3 系统整体硬件设计方案
3.1 系统工作原理流程
根据课题设计要求可知,该系统需要利用电压型温度传感器采集室内温度,产生10mV/℃的电压信号,随后,将该信号送入放大器进行放大,再把此放大后的信号送给A/D转换器进行模数转换,之后由CPLD芯片编程处理,即通过CPLD芯片编程设定上下限报警温度,并显示转换后的室温。具体流程图如图3-1所示。










图3-1 系统流程图
在温度信号采集电路中采用方案三,使用线性成比例(10mV/℃)的电压型温度传感器采集信号,之后,将微弱电压信号经过整个硬件与软件系统放大100倍后的电压信号使其显示就是室温。首先,使采集到的电压信号经过放大电路放大十倍后送入A/D转换器(ADC0804)。在此,将ADC0804的基准电压设为2.5V,由于它为8位转换器,其内部转换关系将输入信号扩大50倍后,才将模拟信号转换为数字信号。之后,将转换后的数字信号传给CPLD芯片(EP1K100QC208-3),通过VHDL编程将扩大了500倍的信号缩小5倍,即可将输入的微弱电压信号最终放大100倍,现在的电压值便是室温值。然后经过设置的I/O口将数字信号传送给74LS138译码器以及驱动器CD4511和报警器,使LED八段数码管动态显示室温和实现报警,从而实现整个系统的设计功能。
3.2 传感器及放大电路
3.2.1 电压型温度传感器LM35D
如图3-2所示,是一般传感器的工作原理方框图。





图3-2 传感器原理框图
本系统的设计所用的传感器为LM35D,它是LM35系列的一种,是精密集成电路温度传感器,其输出电压与摄氏温度线性成比例(10.0mV/℃),如图3-3所示其关系[3]。
               U(V)


40
                 30
                 20
                 10
                    0   1   2   3   4   5                 T(℃)
图3-3 传感器温度电压关系曲线
因而LM35系列有优于用开尔文作为标准的线性温度传感器,在额定工作温度范围内精度为±3/4℃。其密封适合用TO-46晶体管封装,也适合用塑料TO-92晶体管封装。其特性如下:
(1) 直接用摄氏温度校准,线性+10.0mV/℃比例因数;
(2) 在-55~+150℃额定范围内保证0.5℃精度(在+25℃时);
(3) 适用于遥控设备,因晶体片微调而低费用;
(4) 工作在4~30V,小于60μA漏泄电流,有较低自热,在静止空气中0.08℃;
(5) 只有±1/4℃非线性值,低阻抗输出,1mA负载时0.1Ω。
   LM35系列中的LM35D的工作电压为4V~20V,故可直接用温控电路的电源,但要加一个隔离二极管及平滑电容C。LM35D测温范围0℃~100℃,输出电压直接与摄氏温度成比例,灵敏度为10mV/℃。将其输出电压接2V直流电压挡数字万用表,可读出的分辨率为0.1℃的温度读数。例如:室内温度是28.7℃,那么其转换关系是
                        28.7℃×10 mV/℃=287mV                        (3.1)
则表上的读数就为287mV,即反映室内温度:28.7℃。
集成温度传感器LM35D是把测温传感器与放大电路做在一个硅片上,形成一个集成温度传感器,它的外形与封装如下图(见图3-4)。
LM35D是一种输出电压与摄氏温度成正比例的温度传感器,精度为±1℃。最大线性误差为±0.5℃,静态电流为80uA。该器件如塑封三极管(TO-92)。该温度传感器最大的特点是使用时无需外围元件,也无需调试和较正(标定)。如下图所示(图3-5)是LM35D的典型测温电路及其转换电路的接口电路。
图3-5  LM35D的典型测温电路及与转换电路接口
  在图3-5中,经LM35D输出端输出的信号经过了由75 的电阻和1uF的电容构成的积分滤波网络,可滤除其他的杂质信号,使采集到的与温度成比例(10mV/℃)的电压信号更加稳定,之后再将温度信号经过放大器送给ADC0804进行转换。
3.2.2 放大电路设计

图3-6  系统的放大电路部分
如图3-6所示,为系统的放大电路部分,电压型温度传感器LM35D采集到的室温为很微弱的模拟量。例如:若室温为26℃,那么经LM35D采集后得到的电压信号为0.26 V,这样一个微弱的电压信号,既不利于处理又容易产生误差且不稳定。所以我们需要将此信号在整个硬件系统和软件系统中放大100倍(如前所述),之后将其送入驱动电路,即可在LED数码管上显示室温,达到目的。如图所示,在放大电路中,取R6为1K是为了好计算放大倍数,R5用20K的滑动变阻器使这个0.26 V的微弱电压信号可以在0--20的放大倍数范围内可调,在此,将其放大10倍,因此需要将R5调至10K。这样经放大器OP07放大后从第6脚输出的电压信号就为放大十倍的2.6V。这样就足以驱动后面的电路进行工作,达到系统设计的目的。
3.3 A/D转换电路部分分析
3.3.1 A/D转换器
随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测领域中,为提高系统的性能指标,对信号的处理无不广泛的采用了数字计算机。但由于系统的实际对象往往都是一些模拟量(如温度、压力、位移、图象等),所以要使计算机或数字仪表能识别和处理这些信号,首先就必须将这些模拟信号转变为数字信号,这样就需要一种能将模拟信号转化为数字信号的电路——模数转换器(A/D转换器)。而为了将时间和幅值都连续的模拟信号转化为时间和幅值都离散的数字信号,一般要经过四个过程[5],如图3-7所示。





图3-7  模数转换流程
而在实际电路中,上述四个过程中有的是合并进行的。例如,取样和保持、量化和编码,往往都是在转化过程中同时实现的。具体介绍如下:
(1) 取样与保持
取样是将随时间连续变化的模拟量转换为时间离散的模拟量(这里要注意的是取样以后信号依然是模拟量)。取样的过程示意图如图3-8 所示。





图3-8  取样过程
图中的传输门受取样信号S(t)的控制,在S(t)的脉宽τ期间,传输门导通,输出信号Vo(t)为输入信号Vi(t),即Vo(t)=Vi(t),而在(Ts-τ)期间,传输门关闭,输出信号Vo(t)=0。可见,取样就是在一个固定的时间点上采集一个模拟信号的具体值,而要将取样得来的模拟信号转换为数字信号得经过一段时间,所以有必要将取样电路每次取得的信号通过保持电路保持一段时间,以便给后续的量化编码提供一个稳定值,即使用保持电路使整个系统更加协调稳定。
(2) 量化与编码
数字信号不仅在时间上是离散的,而且在幅值上也是不连续的。任何一个数字量的大小只能是某个规定的最小数量单位的整数倍。为了将模拟信号转化为数字量,在A/D转化过程中,还必须将取样-保持电路的输出电压,按某种近似方式归化到与之相应的离散电平上。这一转化过程称为数值量化,简称量化。量化后的数值最后还必须用某一个代码表示出来,这个过程就叫做编码。经编码得到的代码就是A/D转换器的最后输出量,就是表示模拟信号大小的数字信号量。
3.3.2 A/D转换器的选择
近年来,A/D转换器随着半导体技术的不断发展而日新月异,各种性能优异的A/D转换器层出不穷。早期的A/D转换器与CPU接口一般采用并行总线方式,现在一些采用I2C、SPI 总线的新型A/D转换器相继被国外一些公司推出,极大地丰富了A/D转换器的种类。
A/D转换器的位数与一个应用系统前向通道中被测量对象的精度有关。一般情况下,由于客观条件的影响,电路设计中A/D转换器的分辨率要高于被测量对象的信号最低分辨率。假如,我们要测量一组电源电压,其电压的输出范围是0—10V,如要求精确到0.1V,即分辨率为0.1/10=1%,那么在实际应用中我们选择分辨率为1/256=0.4%的8位A/D转换器便可满足要求。当然,A/D转换器的位数越多,分辨率也就越高,但是成本也就随之愈高。因此在实际电路的设计中,选择A/D转换器也不能一味强调位数,应该在满足系统性能指标的前提下,追求最高的性能价格比。
目前,被广泛使用的A/D转换器种类很多,从接口协议上分为串行和并行两种方式。串行接口的A/D转换器占用较少的CPU外部I/O资源,主要采用的协议有SPI和I2C等方式,程序设计较并行接口略显繁琐,典型的芯片有TI公司的TLC2543\1543等等。并行接口的A/D转换器芯片目前仍占多数,流行的有ADC0804、ADC0809 、AD574等等。而本课题的设计使用的是ADC0804来完成模拟信号向数字信号转变的。下面就来介绍A/D 转换芯片的硬件设计方法。
3.3.3 A/D转换电路

图3-9  A/D转换电路
如图3-9 所示,是A/D转换器ADC0804的硬件设计电路,其中ADC0804是逐次逼近型8位8通道A/D模数转换器。它的主要技术指标是:8位分辨率,±1/2LSB的转换精度,转换时间典型值为100us(时钟频率为640KHZ时),电源电压为单电源5V。其引脚中DB0—DB7为8位数字信号输出端(即转换后的数字量),VCC为电源端,GND为接地端,VREF为参考电压输入端,CLK是时钟信号输入端,第6脚接的是放大器送出的温度信号量。
信号从ADC0804的第6脚送入,R3与C3通过ADC0804的19脚(CLKR)接地与4脚(CLK)向内部电路提供时钟信号,以给ADC0804一个正确的时序,使其正确工作。
如果从量程为0--100℃LM35D采集到最高温度100℃,那么由于LM35D灵敏度为10mV/℃以及经过放大器OP07后放大十倍,则传到ADC0804输入脚VI+的电压信号为10V,再经过ADC0804内部的输入电压与基准电压的公式(如下)放大50倍(此50倍为数字量的50倍):
                                 (Ui/VREF*2)*256                        (3.2)                     
其中“*”符号表示乘的意思,Ui表示为输入电压,即VI+,VREF为ADC0804内部设定的基准电压(随时可以更改)。如下图(图3-10)是A/D转换过程:

                 Ve
                 Vx


                      (1000)(0100)(0110)(0111)
                         t
                      图3-10  A/D转换过程原理图                        
在硬件设计中,我们将基准电压(VREF)调至2.5V,将VI+=10V代入上公式则可得ADC0804的输出为10V电压的256/5≈50倍,将其送入电路的信息处理部分—CPLD芯片,再利用软件的方法将结果除以5便可达到最终的放大目的,之后送入驱动电路使其显示出最大温度为100℃。由于A/D转换器的分辨率为1/256=0.4%,我们将最高温度设为100℃的话,可得它的测量精度为100/256=0.4℃。那么如果将最高温度设为50℃,我们可得它的温度范围为0--50℃,测量精度为50/256=0.2℃。为了提高精度,我们将最高报警温度设为50℃。
还如前面的例子,如果室温为26℃,那么经放大电路放大后传到ADC0804输入角VI+的电压信号为2.6V,将其代入上公式则可得ADC0804的输出为2.6V电压的256/5≈50倍的二进制数,将其送入系统的主控制器,我们再利用软件的方法将结果除以5便可得送入驱动电路使其显示出的温度为26℃。在这个转换电路中,ADC0804起着两个作用,一是将模拟量转换为二进制的数字量,二是将此输入信号在放大电路放大10倍后再放大50倍。
ADC0804由CPLD芯片预设控制端启动,它与CPLD的接口电路工作的流程图如图3-11所示。
经ADC0804转换后的二进制数字信号通过DB0---DB7端口传CPLD芯片的预设输入端,供后面编程控制,使其缩小5倍,然后显示室温。CS端为ADC0804的片选信号端,低电平有效。 、 分别为写、读端,将其与CPLD芯片的写、读端相连。INTR端为中断口,当其为高电平时表示转换完成,之后,送中断信号给单片机,等待CPLD芯片发出信号接收转换好的数据。可见,在整个系统中,A/D转换电路起着至关重要的作用。它的设计好坏直接影响着整个系统的工作性能。
















图3-11  ADC0804工作流程图
3.4 系统主控制器选择
3.4.1 CPLD(FPGA)概述
集成电路的发展大大促进了EDA的发展,从而使电路设计从传统的“自上而下”的设计方法转变为“自下而上”的设计方法。设计师们都希望自己设计的芯片能够反映自己的思想,并且能够及时的投入生产使用,这都有益于可编程逻辑器件(PLD)的出现。
现在应用最广泛的PLD主要是现场可编程门阵列(FPGA,Field programmable Gate Array)和复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)[7]~[9]。
可编程逻辑器件(PLD,Programmable Logic Device)是ASIC的一个重要分支,其发展历程大致经历了以下几个阶段:
(1) 20世纪70年代,熔丝编程的PROM和PLA器件是最早的可编程逻辑器件。
(2)         20世纪70年代末,对PLA进行了改进,AMD公司推出PAL器件。
(3)         20世纪80年代初,Lattice公司发明电可擦写的,比PAL使用更灵活的GAL器件。
(4)         20世纪80年代中期,Xilinx公司提出现场可编程概念,同时生产出世界上第一块
    FPGA芯片,并且,Altera公司推出EPLD器件,较之Gal器件具有更高的集成度,可用电或紫外线擦除。
(5)         20世纪80年代末,Lattice公司又提出系统可编程技术,推出一系列具备系统可编
程能力的CPLD器件,能实现更复杂的逻辑功能。
(6) 20世纪90年代,可编程逻辑集成电路技术进入飞速发展时期,器件的可用逻辑门超过百万门,并出现了内嵌发展功能模块(如加法器、乘法器、RAM、CPU核、DSP核、PLL等)的SOPC。
总的说来,PLD器件是厂家作为一种通用型器件生产的半定制电路,用户可通过对器件编程实现所需要的逻辑功能。并且它是一种用户可配置的逻辑器件,其成本比较底,使用灵活,设计周期短,而且可靠性高,风险小,因而很快得到普及应用,发展非成迅速。从20世纪70年代发展到现在,PLD已经在各个方面的工艺上取得了突破和不断发展。经历了从PROM、PLA、PAL、GAL到CPLD(FPGA)、ispLSI等高密度的PLD发展过程。其中PAL和GAL都所于简单的PLD,它们结构简单,设计灵活,对开发软件的要求低,但是规模都很小,难以实现复杂的逻辑功能,所以随着技术的发展,种种弊端也暴露出来,因此,CPLD等一系列的复杂PLD迅速的发展起来,并向着高密度,高速度,低功耗以及结构体系更灵活、通用范围更广的方向发展。
复杂可编程逻辑器件(CPLD,复杂PLD。统称将集成度达到一定程度的PLD器件叫做CPLD。),是20世纪80年代末Lattice公司提出的在线可编程(isp,In system programmability)技术以后,于20世纪90年代初出现的。它是在EPLD的基础上,采用E2CMOS工艺制作发展起来的。与EPLD相比,它增加了内部连线,对逻辑宏单元和I/O口都有重大的改进。CPLD至少包括三个部分:可编程逻辑宏单元,可编程I/O单元和可编程内部连线。典型的器件有Altera的MAX7000系列,Xilinx的7000和9500系列,Lattice的PLSI/ispLSI系列和AMD的MACH系列。
随着数字逻辑系统功能复杂化程度的不断加大,集成芯片正朝着超大规模、高密度的方向发展。与此同时,人们发现一个超大规模的数字时序系统芯片在工作时从时间轴上来看,并不是每一瞬间系统的各个部分都在工作,而系统是各个局部模块功能在时间链上的总成。同时还发现,基于SRAM编程的CPLD/FPGA可以在外部逻辑的控制下,通过存储于存储器中不同的目标系统数据的重新下载,来实现芯片逻辑功能的改变。正是基于这个称之为静态系统重构的技术,有人设想利用芯片的这种分时复用特性,用较小规模的CPLD(或FPGA)芯片来实现更大规模的数字时序系统。在研究过程中人们却发现常规的SRAM的CPLD只能实现静态系统重构。因为该芯片功能的重新配置大约需要数毫秒到数十毫秒量级的时间;而在重新配置数据的过程中,旧的逻辑功能失去,新的逻辑功能尚未建立,电路逻辑在时间轴上断裂,系统功能无法动态连接。要实现高速的动态重构,要求芯片功能的重新配置时间缩短到纳秒量级,这就需要对CPLD的内部组成结构进行革新。
在早期的CPLD中,由结构相同的逻辑阵列组成宏单元模块。对一个逻辑阵列单元来说,输入项由专用的输入端和I/O端组成,来自I/O端口输入项,可通过I/O结构控制模块的反馈选择,也可以由I/O端直接输入,也可以是本单元输出的内部反馈。所有的输出项都经过缓冲器驱动,并输出其输入的原码及补码。可以看出,早期CPLD中的逻辑阵列结构与PAL、GAL中的结构极为类似,只是用EPROM单元取代了PAL中的熔丝和GAL中的EEPROM单元。和GAL一样,CPLD可实现擦除和再编程功能。在基本结构中,每个或门有8个固定乘积项,也就是说逻辑阵列单元中的或门阵列是固定的、不可编程的,当遇到复杂的组合逻辑时,需要的乘积项可能超过8个,这就要用两个或多个逻辑单元来实现,致使器件的利用率不高。为此,目前的CPLD在逻辑阵列单元结构方面做了很大的改进,主要表现在以下两个方面:
(1) 乘积项数目不同的逻辑阵列单元
  对于复杂的逻辑器件来说,逻辑函数往往需要附加乘积项。以便利用其他宏单元以提供以提供所需的逻辑资源,还可以利用其结构中具有的共享和并联扩展乘积项。达到尽可能的少占资源,并且尽可能的加快工作速度的目的。
(2) 具有两个或项输出的逻辑阵列单元
每个逻辑阵列单元可以共享相邻单元中的乘积项,也可以使本单元中的两个或项都可用于相邻的两个单元中,这样,既提高了器件内部各单元的利用率,又可实现更为复杂的逻辑功能。
CPLD的I/O口控制模块,根据器件的类型和功能的不同,可有各种不同的结构形式,但基本上每个模块都由输出极性转换电路、触发器和输出三态缓冲器三部分及于它们相关的选择电路组成。各个生产厂家可以根据不同的用途和使用对象的不同进行选择生产,以求达到最佳的生产和使用目的。
3.4.2 CPLD芯片简介及器件选择
CPLD(或FPGA)的主要生产厂家是Altera公司、Xilinx、Lattice等,各自都有自己的产品特点。
(1) Altera公司CPLD的系列型号
Altera公司多年来一直在PLD行业保持着领先地位,并在我国有着较多的用户,该公司的PLD器件具有高性能、高集程度、高性价比、低功耗等特点。主要型号有胶合(glue)逻辑类的MAX系列,低价位的ACEX系列、高速FLEX系列、高密度的APEX系列等。而后来又推出的EPM系列和EPF系列的集程度更是大大提高,性能更加优越。
在众多的产品系列中,Altera公司推出的新型低成本CPLD器件—ACEX系列的主要特点为:密度范围大,从1万到10万门(56,000到257,000系统门);配备锁相环(PLL)技术,与64位、66MHZ的PCI兼容;产品系列从原1.8v扩展至2.5v;提供系统速度超过115MHZ的高性能功能。所以,ACEX系列是许多设计者进行设计的优选器件。
(2) Xilinx公司CPLD的系列型号
Xilinx公司是在1985年首次推出CPLD器件的,随后不断的推出新的集程度更高、速度更快、价格更低的CPLD器件。其主要的CPLD器件以CoonRunner和XC9500两大系列为代表。其中XC9500系列被广泛应用于通信、网络和计算机等产品中。该系列器件采用快闪存技术,比E2CMOS技术工艺的速度更快,功耗更低。目前,Xilinx公司XC9500系列CPLD的tPD可达4ns,宏单元数可达288个,系统时钟可达200MHZ。XC9500系列器件支持PCI总线规范和JTAG边界扫描测试功能,具有在系统可编程(isp)能力。该系列有XC9500、XC9500XV和XC9500XL三种类型,内核电压分别为5V、2.5V、3.3V,也就如前所说,其功耗很低。
(3) Lattice公司CPLD的系列型号
Lattice公司是最早推出PLD器件的公司,20世纪90年代以来,Lattice公司首先发明了isp技术,并将E2CMOS与isp技术相结合,使CPLD的应用领域有了巨大的发展。其产品主要有ispLSI、ispMACH等系列。集程度在1万门到2.5万门之间。工作电压在3.3V,而其I/O口引脚可兼容5V、3.3V和2.5V等接口标准。可用于高位的数字系统中,准确率很高。
其中ispLSI系列器件又分为四个系列:ispLSI1000系列、ispLSI2000系列、ispLSI6000系列和ispLSI8000系列。都可以满足复杂程度很高的逻辑功能设计。
根据以上所述,各个厂家生产的CPLD芯片可谓各有各的优点,功能都很齐全,而在本系统的设计中,对CPLD芯片的选择是选用了Altera公司ACEX1K系列的EP1K100QC208-3。因为本人在平时的实践训练中用的多数都是此芯片,有较多的关于EP1K100QC208-3的资料可以查询,对EP1K100QC208-3的大多性能都有了一定的了解,用起来可以得心应手,并且与其他的CPLD芯片比起来,EP1K100QC208-3这一型号的优点也很多,功能也很强大,故选择该器件。
3.4.3 EP1K100QC208-3简单介绍说明
     EP1K100QC208-3(管脚图见附录2)是Altera公司生产的ACEX1K系列中的一个型号。它一共有208个管脚,其中I/O口有124个,GNDIN有20个,VCCIN有11个,VCCIO有14个,VCC_CLK和GND_CLK各有一个,另外还有时钟、数据输入、专用程序下载口等一共是37个。在此芯片上有如此多的I/O口,其目的就是为了方便用户可以任意定义信号的输入输出口,从而实现复杂的逻辑功能。这也是CPLD的复杂功能所在,更是EP1K100QC208-3的用途所在。
3.5 报警电路
图3-12  报警电路
由于由CPLD芯片的预设输出口发出的电压信号非常微弱,因此,需要将其放大,才能带动蜂鸣器使其工作。R8用一个滑动变阻器使这个电压信号的放大倍数可调,此报警电路的输入引脚由CPLD芯片输出端给,我们在系统中设的下限报警温度为10℃,上限报警温度为30℃。在软件设计中,当由ADC0804采集到的温度超出10—50℃的范围,令CPLD芯片的固定输出口为“1”,则可实现蜂鸣器报警,如图3-12所示。
3.6 译码、驱动电路

图3-13  译码、驱动电路
如图3-13中所示,译码器74LS138与共阴极LED数码管驱动器CD4511是由CPLD的输出口控制的,其中,P1、P2、P3与译码器的输入相接,C为高位,A为地位。对四个共阴极数码管实现位选。在一个控制测试系统中,对共阴极LED显示器的控制采用“接地方式”,即通过控制LED的“GND”引脚的电平高低来达到选通的目的,该引脚即通常所说的位选线。例如:我们想要让第三位数码管工作,那么需要使L3的位选线接低电平来达到目的,也就是使译码器输出中的Y3为0,其他为1。本系统中,我们采用动态显示方式,因此,需要不断的片选,而共阴极LED显示器的发光二极管负极接地,当发光二极管的正极为高电平时,发光二极管被点亮。这就需要用CD4511来驱动,例如:要显示0字形时,需要LED显示器的8个发光二极管“a,b,c,d,e,f,g”七个字段中的“a,b,c,d,e,f”亮,那么,就需要使CD4511输出中的A、B、C、D、E、F为高电平。这是CD4511芯片内部已设定好的,表3-1为CD4511芯片内部的二进制与输入与输出的对应关系列表。
表3-1  CD4511输入输出逻辑对应关系
D  C  B  A        dp   G  F  E  D  C  B  A
    0  0  0  0        0   0  1  1  1  1  1  1
0  0  0  1        0   0  0  0  0  1  1  0
0  0  1  0        0   1  0  1  1  0  1  1
0  0  1  1        0   1  0  0  1  1  1  1
0  1  0  0        0   1  1  0  0  1  1  0
0  1  0  1        0   1  1  0  1  1  0  1
0  1  1  0        0   1  1  1  1  1  0  0
0  1  1  1        0   0  0  0  0  1  1  1
1  0  0  0        0   1  1  1  1  1  1  1
1  0  0  1        0   1  1  0  0  1  1  1













3.7 显示电路(LED)   
3.7.1 数码管的选择
在一个控制应用系统中,显示是人机通道的重要组成部分。目前广泛使用的显示器件主要有LED(二极管显示器)、LCD(液晶显示器)和VFD(真空荧光管)等。LED显示器造价低廉,与核心控制设备接口方便灵活,技术上易于实现,但只能显示阿拉伯数字和少数字符,通常用于对显示要求不高的场合。LCD和VFD显示器成本较高,但可以显示包括汉字在内的多种字符,甚至是复杂的图形和曲线,并且耗电极省,可广泛用于各种终端设备,如PDA、手机、触摸屏等等。本文主要介绍LED显示方式,及本系统的选择显示方式。
LED显示器的基本结构和原理:LED显示器采用发光二极管显示字段。一般的控制电路系统中经常采用的是八段显示器,即LED显示器中有8个发光二极管,代表“a,b,c,d,e,f,g”七个字段和一小数点“dp ”。再者LED有共阴和共阳两种结构。共阴极LED显示器的发光二极管负极接地,当发光二极管的正极为高电平时,发光二极管被点亮。而共阳极LED显示器正好相反,发光二极管正极相连,当二极管的负极为低电平时,发光二极管被点亮。
在一个电子控制系统中,对共阴极LED显示器的控制采用“接地方式”,即通过控制LED的“GND”引脚的电平高低来达到选通的目的,该引脚即通常所说的位选线。共阳极LED显示器控制方式则相反。两种控制方式中,共阴极LED控制方式受系统器件功耗限制,只能用在小尺寸的LED显示器中。对于大尺寸LED显示器的控制(如大屏幕计时器)一般使用共阳极方式。
LED的显示和接口方式:LED数码管的显示有静态和动态两种方式。从接口上分又有并行和串行两种,这要视接口和驱动芯片而定。常用的并行LED接口芯片有8155、8255 以及键盘和显示专用芯片8279等。而与并行方式相比,串行方式仅占用CPU少数几根I/O口线便可实现LED显示功能。在静态显示方式中,多个LED显示器中的每一个段代码都与一个独立的8位并行口连接,公共端则根据LED的种类(共阴或共阳)连接到“GND”或“VCC ”上。假如有四位静态LED显示电路中,那么每个LED的段代码都要有独立的并行8位I/O口线控制,可以在同一时间内显示不同的字符。静态LED显示方式的优点是编程容易,但功耗大,占用CPU的I/O口线较多,成本也较高。因此在电子设计系统中较多使用的还是动态显示方式。所谓动态显示,实质上就是各个不同的LED显示器按照一定的顺序轮流显示。它利用了人眼的“视觉暂留现象”,只要多个LED显示器的选通扫描速率足够快,人眼就觉察不到数码管的闪烁现象。在动态扫描方式下,所有LED段选线并联在一起,只由一个8位的I/O口控制,而各个LED的位选线则由另外一组I/O口控制。动态LED显示方式的优点是功耗较低,占用CPU的I/O线少,外围接口简单,所以本系统便是采用了动态LED显示方式。
3.7.2 显示电路设计
由于测量室温的精度为0.2℃,因此,显示中会出现小数点,在这里我们选用四个数码管,第一个备用,因为本系统选用的测温元件为LM35D,测温范围为0~100℃,当不需要很大精度时,可以通过软件将显示范围调到0~+100℃,也就是可以将上限报警温度设置为100℃,这样,显示最高温度再加上小数点后一位,就是四位显示。为简单起见,显示电路中的第三个数码管中的dp位我们可以将其接个200  的电阻之后接+5V电压,这样,当片选L3时,L3中的小数点便总是亮的。

4 程序控制
    对于一个电子控制系统来说,程序设计及其控制,对系统性能的优劣和功能体现是相当重要的。程序开始的初始化,控制信号的输入输出及其时序的先后,以及系统逻辑功能在程序中体现,都必须经过非常严密思考,才能在程序上微妙不差的表现出来,下面简单介绍一下本课题程序的设计思想和功能。
4.1 系统软件介绍
对于一个控制系统来说,软件部分就是其“思维”过程,就是其工作时序关系的体现,并且规定该系统的功能实现,而本设计的软件部分主要用来实现的功能如下:
(1) 输出信号控制ADC0804启动;
(2) 将数字信号进行BCD调整,输出代表十进制数的信号;
(3) 设定测量温度的上下限,超过此温度报警;
(4) 调整系统的放大倍数;
(5) 控制译码管及驱动器实现数码管动态显示;
4.2 总程序流程图
利用程序软件来完成对系统放大倍数的调整,并转换数据值和判断报警界限,实现系统功能。
A/D转换器的始能端、转换标志、转换结束标志以及数据输出始能端的信号(电压的高低电平)都是由程序控制CPLD芯片给出的,并且经程序设定标准来转换数据和实现高低温度报警。整体流程图如图4-1所示,


















图4-1 总程序流程图
4.3 程序[11]
本课题的程序编制,主要是针对模数转换器ADC0804的控制和数据转换后的判断(也就是说高低温度的判断和显示数据的判断)来进行的。
根据ADC0804的工作特点和时序关系(如图4-2所示),将其工作过程分为7个状态,即用状态机的方式来实现完成对ADC0804的控制。比如:现在ADC0804正处在状态一的工作模式,等系统程序判断后,就会自动转换到状态二的工作模式下进而等待下一次判断和转换,如此反复工作,等到7个状态重复一遍时,程序就会控制CPLD芯片输出转换后的数字数据给数码管进行显示。与此同时,转换后的数据与程序设定的警戒温度值进行比较判断,可实现报警。这整个过程就完成了系统的整个预设功能——时时显示、高低温度报警。主控程序见附录1。

cs

WR

     INTR

     RD  
                   高阻
数据输出                                              读数

                       图4-2 ADC0804工作时序图
4.4 系统整体电路图(见附录3)
本系统的整体电路图设计所依据的原理,在本文第二部分的第一小节有比较详细的
介绍,此处就不再赘述了。但是,值得一提的,就是系统在工作时一定要注意它的时序关系,错误的时序不但不会出结果,更甚至在有时会毁掉真个系统。所以,在工作前,一定要对ADC0804的工作特性有比较深的了解,才能使系统的工作性能既可靠有安全。

5 开发环境及程序下载
5.1 开发环境
针对目前电子设计领域的CPLD(FPGA)的应用,各个芯片生产厂家都开发了不同的开发仿真软件,即开发环境各有各的不同。而针对本系统应用的具体芯片(EP1K100QC208-3)的开发环境,是Altera公司开发的MAX+plusII系列软件,其全称为Multiple Array Matrix and Programmable Logic User System[12]。它具有原理图输入和文本输入两种输入手段,利用该工具配备的编辑、编译、仿真、综合和芯片编程等功能,将设计的电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(本系统是EP1K100QC208-3),做成ASIC芯片,可实现预期功能。其特点有以下几点:
(1) 可在多种平台下运行。可基于Windows NT3.51、Windows98或Windows2000操作系统下运行,也可在Sun SPAC Stations、HP9000Series 700/800等工作站上运行。
(2) 提供了与结构无关的设计环境。可加快动态调试,缩短开发周期。
(3) 可与其他工业标准的EDA设计工具相连接。
(4) MAX plusII提供丰富的库单元供使用者调用,可以减轻工作者的设计负担,也可以缩短设计周期。
总之,MAX plusII集成了可编程逻辑器件的设计环境,提供了灵活和高效的界面,能够是设计者轻松的掌握和使用该软件,完成复杂逻辑功能的设计。
5.2 程序下载
   程序的下载大体分为系统自带功能下载和外加软件下载两种,下面分别进行介绍。
5.2.1 系统下载
在程序编好,并且编译、仿真正确的前提下,我们可以点击MAX plusII子菜单中的Programmer选项来启动编程器,即可完成下载,进行调试。值得注意的是,如果Programmer是第一次启动使用,那么就会出现如下图5-1所示的对话框,
图5-1 下载设置
提示用户对下载线进行设置。
当设置好下载线后,就会出现Programmer的对话框窗口(如图5-2所示)。此时单击Programmer选项。就可以将生成的器件文件烧录到系统所选的器件中了。在此系统设计中,主要用到的就是此种设计方法。
                     图5-2  Programmer界面
5.2.2 外加软件下载
此方法的硬件连接方式与上述方法的连接方式大致相同,不同的只是用MAX plusII系统以外的另一个下载程序进行下载操作。
在此方法中,设计者可以对下载的目标程序文件和目的器件,以及管脚的分配进行锁定,以求得最佳的下载效果。因为此方法在此课题设计中不用,且操作比较简单,设计者可以很快的掌握,此处不再赘述。
以上这两种下载程序的方法所用到的硬件设备基本是一样的,都用到指定的下载线将程序下载到指定的芯片中,实现功能。但是对下载线的要求也是很高的,其长度一般不超过30厘米,因为距离过大会产生串行干扰,也就是我们所说的串扰。一但有串扰现象伴随下载过程,也就是说下载到芯片里的程序是错误的,甚至是致命的(对于系统来说)。那么,如果我们运行程序,就会产生意想不到的后果,其造成的损坏不亚于时序错误对系统所造成的损坏。还有一点值得一提的,是下载过程中不益中断,此也是为了避免上述的问题。
以上提到的几点注意事项,在本次设计中,都已经尽量的克服和避免到了最小值,以便系统可以实现最优的功能。如图5-3所示为下载线电路图。其中,器件244是一缓冲器,也起到了克服串行干扰的作用。
图a  总下载线
图b  下载线与芯片连接
图5-3 下载线原理图
如图a中左边的20端口是与计算机并口相连的,图b的10端口与指定芯片相连。                  
依照原理图,将固定器件连接好,启动运行下载的外加程序,即可将指定程序下载到EP1K100QC208-3器件中。如果有需要可在外部加一个闪存,以保证程序的固定。

6 系统测试及数据记录
测试原理是系统测试活动的理论基础,测试方法是测试原理的实际应用和获得测试数据的手段。测试主要依据的是本系统的技术指标,是对系统整体功能和性能的综合测试与评估。
6.1 软件测试
基于软件的共性,对于软件的测试遵循一般软件的测试原理和方法。而针对本软件的特性,则应用合适的测试方法,主要是从功能和时序两个方面进行测试仿真的。
6.1.1 功能仿真
所谓功能,最简单的说,就是程序要起的作用。它能起什么作用,就是可实现什么功能。我们可以通过观察功能仿真的最后结果,来分析系统设计的不足[13],还可以发觉错误的地方,以求得最完美的系统功能。如图6-1所示,为本系统的功能仿真结果。



图6-1  功能仿真图
   6.1.2 时序仿真
    系统的时序是说系统实现功能的先后顺序,只有有一个良好的、有条不紊的工作次序,系统的功能才能很好得以体现,才能实现与预期功能最吻合的效果。如下图6-2所示,为系统的时序功能仿真图。
图6-2  时序仿真图
从图中可以很清楚的观察到系统各个变量的时序关系,以及系统功能的各个可能值。这一步,是我们将程序下载到指定器件前的最后一步,通过观察分析此波形,发现并且即使排除错误,以使系统正常可靠的运行。
6.2 硬件测试及仿真
在仿真测试无误后,将程序下载到EPM1K100QC208-3中,对实际的系统电路板进行测试。
在这一过程中主要用到的器件有:电源和万用表等,并根据系统整体设计的原理图进行有关测量。
6.3 系统数据记录
对于任何一个系统来说,表征其性能好坏优劣的最重要的指标就是系统测试的数据。根据设计方案分析其理论值,再经过测试得到实际数据。将两者进行对比,分析实际的误差,就可以得到系统的稳定性和可靠性指标。如表6-1是实际的测试结果。
项目
第一次        第二次        第三次
室温        28℃        32℃        38℃
显示        28℃        32℃        38℃

表6-1 测试结果
         显示(℃)

              38
              32
              28                                       



0    28    32     38                 室温(℃)
                       图 6-1 测试显示温度对照表
在上述表(表6-1)中,第三次测试的温度超过了警戒温度,所以在硬件测试中则可以实现报警,即系统设计正确。图6-1是测试值与显示值的对比曲线,从图中可以看到其两者不是纯正比的关系,其原因有很多,最主要的可能是系统外的干扰以及硬件连接时造成的隐患干扰,此方面还有待进一步的提高。
       
7 课题相关技术发展前景
目前,电子系统的EDA设计正从主要着眼于数字逻辑向模拟电路和数模混合电路的方向发展。在硅集成电路制造工艺方面已进入超深亚微米(VDSM,Very Deep Sun-Micro)阶段,正在向0.05um发展。可编程逻辑器件在其等效逻辑门数、工作电压及时钟频率等 性能指标上将有突破性进展。其逻辑门可达到上百万个,甚至更多。随着芯片集成度的加大,单个芯片内集成通用微控制器/微处理器、专用数字信号处理器核心、存储器核心、嵌入式软件/硬件、数字和模拟混合器件、RF处理器等,并且EDA与上述器件间的物理与功能的界限已日益模糊[15]。
再纵观CPLD(FPGA)的发展历程,展望未来,可知该技术以及本系统的发展大致有两个方向。其一,就是理论上有所突破,使现有的检测方法(传感器)更加精细化。在有很精确要求的科研条件下采用该类型的仪器进行科学研究,提高准确度。其二,就是在实际应用上有所发展。在以后的发展和生产中,可能有更高逻辑功能的器件开发出来,用户只需要对外加的设备稍微加以改动,就可以实现复杂的逻辑功能。这对于企业的现代化改造有不可替代的作用。
综上各方面所述,EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC设计技术的发展,软硬核功能库的建立,IP复用,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师门的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。当前,EDA的主要应用方向为微控制器、ASIC和DSP等方面。

8 课题设计总结
毕业设计是学生即将完成学业的最后一个重要环节,它既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好的开端。所以在此有必要对这次的毕业设计作一个系统的总结。
这次毕业设计,我选择了实做的题目,这不仅是对我的一种锻炼,也是对我大学四年所学知识的综合检查。从开始设计到设计的完成,我感觉收获很多,不仅在理论上有了很大的升华,并且还在实践中锻炼了自己。使自己成长了许多。
本文首先对整个系统的工作原理和实现方法进行了简单的介绍,给出了系统工作的整体框图。在此基础上,介绍了系统设计用到的各个模块的功能特性,并进性了方案比较,选择出了最优越的方案。在理论上对整个系统有一定了解的情况下,进行了系统模块的电路的设计,充分利用各方面的资料,发挥我所学的特长。设计出了以CPLD为核心,实现了与译码驱动电路和显示电路的相连接,并显示室温的工作状态,完成系统功能。
整个系统的开发过程是曲折的,首先在硬件设计上,由于以前所学课程有一定的基础,我多方查阅资料,不断的向老师、同学学习请教,以确保设计的电路系统完整,并能实现最完美的系统功能。经过几个月学习,我设计出了各个部分的电路图,并实现了电路图的组合。经过测试与修改,最终完善了硬件电路的设计,并能够比较理想的完成本次毕业设计功能——时时显示和警戒报警。
对于软件设计,因为以前的编程经验不够,再加上对EPM1K100QC208-3这一芯片的了解不是很彻底,因此,在这方面花费了很多的精力和时间。尽管过程很艰难,但是在真正意义上学到了知识,为以后的工作和学习积累了宝贵的经验。
在研制过程中注重先进、适用的原则,注重科技与应用结合,来用产、学、研结合,侧重于科研技术转化为生产力。本系统经过了设计阶段、开发实现阶段以及最后的应用测试阶段。经过4个月的努力,核心问题已经全部解决,所有功能均已基本实现,只是在通用性上还有待提高。这次毕业设计的经历使我对CPLD(FPGA)的一些特征、性能,以及应用及原理有了深刻的了解,真正做到了学有所得、学有所用,可以说获益匪浅。
但是,总的说来,由于我在理论和实践方面存在一定的不足,所以在设计思路和实现功能上难免有不足之处,请各位老师多多批评指正。




























参  考  文  献

[1] 姜雪送,刘东升.硬件描述语言VHDL教程,第一版,西安交通大学大学出版社,2004年,         6~20页
[2] 陈耀和.VHDL语言设计技术,第一版,电子工业出版社,2004年,11~18页
[3] 王化祥,张淑英.传感器原理及应用,第一版,天津大学出版社,2005年,3~9页
[4][张磊,雷震.高速电路设计和信号完整分析,《集成电路设计》,2004年,第一期
[5] 康华光.电子技术基础数字部分,第四版,高等教育出版社,2000年,402~420页
[6] 杜振芳,梅阳.基于FPGA的高速信号发生器,《电子技术应用》,2003年,第11期
[7] 潘松,黄继业.EDA技术与VHDL.,第一版,清华大学出版社,2005年,4~11页
[8] 杨春玲.现代可编程逻辑器件及SOPC应用设计,第一版,哈尔滨工业大学出版社,2005年,      7~14页
[9] 何希才,刘洪梅.新型通用集成电路实用技术,第一版,国防工业出版社,1997年,6~8页
[10] 刘常澍.数字逻辑电路,第一版,国防工业出版社,2002年
[11] 谭会生.EDA技术及应用,第二版,西安电子科技大学出版社,2001年,129~147页
[12] 黄任.VHDL入门•解惑•经典实例•经验总结,第一版,北京航空航天大学出版社,2005年,67~78页
[13] 金西.VHDL与复杂数字系统设计,第一版,西安电子科技大学出版社,2003年,8~16页
[14] 邓素萍.串行通信RS232/RS485转换器,《国外电子原器件》,2003年,第7期              
[15] 李国洪.可编程逻辑器件EDA技术与实践,第一版,机械工业出版社,2004年,3~26页
[16] Michael A. Miller. Data and Network Communications,第一版,科学出版社,2002年
[17] J.Bhasker著,徐振林译..Verilog HDL硬件描述语言,第一版,电子工业出版社,2004年













致 谢

毕业设计是我大学学习生活的最后一项学习任务,是对我大学四年学习的综合考核。而也为了使我的综合素质技能可以有一个很大的提高,这次毕业设计,我选择了张建民教授所带的这个比较具有实用性的有意思的课题——基于CPLD的室温检测电路设计。在为期两个多月的毕业设计过程中,我不仅较为系统的复习了以前学的知识,而且又学习了许多新知识,使我的知识结构更加系统化,也更加完善。同时,也提高了我独立分析问题、解决问题的能力。
本次毕业设计能够顺利地完成,首先要感谢我的指导老师张建民教授。张教授严谨的治学态度,深厚的学术造诣以及忘我的工作精神给我留下了深刻的印象。张教授的严格要求和孜孜不倦的教导是我完成这次毕业设计的重要保证,他给予了我很大的帮助和支持,在课题研究期间,张教授提供了很多指导性的意见,对存在的问题给予细心的分析并提出许多宝贵的意见,使我受益匪浅。在此谨向导师表示衷心的感谢!同时我要感谢给予我帮助和支持的舍友们,感谢在编程和程序调试过程中给我提供帮助的秦建川同学,感谢电子工程系的老师为我们做毕业设计提供的各方面的帮助!
同时,我要感谢我的母校——天津工程师范学院,特别是在我即将踏上工作岗位时,给了我这样一个锻炼、学习的机会,使我加深了对以前知识的理解,拓宽了知识面,也提高了我对所学知识的综合的应用能力。
在整个设计制作过程当中,我感觉收获非常大,我获得的不仅是理论上的收获,还有实践中的丰收,同时还有的就是同学们之间的合作精神。在此,祝愿我院日后蓬勃发展,成为一所独具风格的综合性大学。祝愿母校的将来更美好!
最后,我要再一次感谢所有在此期间帮助过我的人,我衷心的祝福你们!
                                              通信0201  布冬冬
                                         2006年6月于天津工程师范学院                                          











附录1 程序
A/D转换控制程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity ADKONGZHI is
  port(d:in std_logic_vector(7 downto 0);
        rst:in std_logic;
        clk:in std_logic;
        eoc:in std_logic;
        ale:out std_logic;
        start:out std_logic;
        oe:out std_logic;
        adda:out std_logic;
        bcdout:out std_logic_vector(11 downto 0)
);
end entity SDKONGZHI;
architecture art of ADKONGZHI is
  type states is (st0,st1,st2,st3,st4,st5,st6);
  signal current_state,next_state:states;
signal regl:std_logic_vector(7 downto 0);
signal lock0,lock1:std_logic;
signal value:std_logic_vector(11 downto 0);
signal cen:std_logic;
signal ale0:std_logic;
signal start0:std_logic;
signal oe0:std_lognal;
begin
  statesystem:block is
    begin
      adda<=’1’;
      process(current_state,eoc)
case current_state is
        when st0 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
                   lock0<=’0’;next_state<=st1;cen<=’0’;
        when st1 =>ale0<=’1’;start0<=’0’;oe0<=’0’;
                   lock0<=’0’;next_state<=st2;cen<=’0’;
        when st2 =>ale0<=’0’;start0<=’1’;oe0<=’0’;
                   lock0<=’0’;next_state<=st3;cen<=’0’;
        when st3 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
                   lock0<=’0’;cen<=’0’;
                    if eoc=’1’ then next_state<=st3;
                       else next_state<=st4;
                    end if;
        when st4 =>ale0<=’0’;start0<=’0’;oe0<=’0’;
                   lock0<=’0’; cen<=’0’;
                    if eoc=’0’ then next_state<=st4;
                       else next_state<=st5;
                    end if;
        when st5=>ale0<=’0’;start0<=’0’;oe0<=’1’;
                   lock0<=’1’;next_state<=st6;cen<=’1’;
       when st6=>ale0<=’0’;start0<=’0’;oe0<=’1’;
                   lock0<=’1’;next_state<=st0;cen<=’0’;
       when others =>ale0<=’0’;start0<=’0’;oe0<=’1’;
                   lock0<=’0’;next_state<=st0;cen<=’0’;
      end case;
      end procsee;
   process(rst,clk)
    begin
     if rst=’1’ then current_state<=st0;
        elsif rising_edge(clk) then current_state<=next_state;
     end if;
   end process;
process(clk)
  begin
   if rising_edge(clk) then ale<=ale0;start<=start0;oe<=oe0;lock1<=lock1;
   end if;
end process;
process(lock1)
begin
  if rising_edge(lock) then regl<=d;
  end if;
end process;
  end block statesystem;
conversion:block is
  signal v:std_logic_vector(7 downto 0);
  signal hb,lb:std_logic_vector(11 downto 0);
  signal c30,c74,c118:std_logic;
  signal tempa,tempb,tempc:std_logic_vector(4 downto 0);
   begin
process(regl)
  begin
   v<=regl;
    case v(7 downto 4) is
      when “1111” =>hb<=”010010000000”;
      when “1110” =>hb<=”010001001000”;
      when “1101” =>hb<=”010000010110”;
      when “1100” =>hb<=”001110000100”;
      when “1011” =>hb<=”001101010010”;
      when “1010” =>hb<=”001100100000”;
      when “1001” =>hb<=”001010001000”;
      when “1000” =>hb<=”001001010110”;
      when “0111” =>hb<=”001000100100”;
      when “0110” =>hb<=”000110010010”;
      when “0101” =>hb<=”000101100000”;
      when “0100” =>hb<=”001001010000”;
      when “0011” =>hb<=”000010010110”;
      when “0010” =>hb<=”000001100010”;
      when “0001” =>hb<=”000000110010”;
      when   others =>hb<=”000000000000”;
    end case;
    case v(3 downto 0) is
      when “1111” =>lb<=”000000110000”;
      when “1110” =>lb<=”000000101000”;
      when “1101” =>lb<=”000000100110”;
      when “1100” =>lb<=”000000100100”;
          when “1011” =>lb<=”000000100010”;
          when “1010” =>lb<=”000000100000”;
          when “1001” =>lb<=”000000011000”;
          when “1000” =>lb<=”000000010110”;
          when “0111” =>lb<=”000000010100”;
          when “0110” =>lb<=”000000010010”;
          when “0101” =>lb<=”000000010000”;
          when “0100” =>lb<=”000000001000”;
          when “0011” =>lb<=”000000000110”;
          when “0010” =>lb<=”000000000100”;
          when “0001” =>lb<=”000000000010”;
          when   others =>lb<=”000000000000”;
         end case;
end process;
process(hb,lb cen)
  variable temp1,temp2,temp3:std_logic_vector(3 downto 0);
begin
if rising_edge(cen) then
   temp1:=hb(3 downto 0)+lb(3 downto 0);
  if temp1>”1001” then
    temp1:=temp1+”0110”;
    temp2:=hb(7 downto 4)+lb(7 downto 4)+’1’;
   if temp2>”1001” then
    temp2:=temp2+”0110”;
    temp3:=hb(11 downto 8)+lb(11 downto 8)+’1’;
   if temp3>”1001 then
     temp3:=temp3+”0110”;
   end if;
  else temp3:=hb(11 downto 8)+lb(11 downto 8);
   if temp3>”1001” then
    temp3:=temp3+”0110”;
   end if;
end if;
else
temp2 :=hb(7 downto 4)+lb(7 downto 4);
if temp2>”1001” then
temp2:=temp2+”0110”;
temp3:=hb(11 downto 8)+lb(11 downto 8)+’1’;
if temp3>”1001” then
   temp3:=temp3+”0110”;
end if;
else
temp3:=hb(11 downto 8)+lb(11 downto 8);
if temp3>”1001” then
   temp3:=temp3+”0110”;
end if;
           end if;
         end if;
end if;
value<=temp3&temp2&temp1;
end process;
bcdout<=value;
end block conversion;
end architecture;














附录2  EP1K100QC208-3简单介绍说明



附录3 系统整体电路图

附录4 系统PCB板图




                                英文资料及中文翻译
                  Digital Communication System
For modern people, if you do not know “Digital Communication” or “Digital Signal”, it is seem to be outdated, even would be laughed as “a ignorant men” . well then ,what is the “Digital Communication” and what is the “Digital Signal” ? This text is to do an generalize in the way of brief and plain.
1、Why Digital?
Why are communication system,military and commercial alike,“going digital”?The primary advantage is the ease with which digital signals,compared with analog signals,are regenerated. Figure 1 illustrates an ideal binary digital pulse propagating along a transmission line. The shape of the waveform is affected by two basic mechanisms: (1) as all transmission lines and circuits have some nonideal frequence transfer function,there is a distorting effect on the ideal and pulse; and (2) unwanted electrical noise or other interference further distorts the pulse waveform. Both of these mechanisms cause the pulse shape to degrade as a function of line lenge,as shown in Figure 1. During the time that the transmitted pulse can still be reliably identified before it is degraded to an ambiguous state,the pulse is amplified by a digital amplifier that recovers its original ideal shape. The pulse is thus “rebor” or regenerated. Circuits that perform this function at regular intervals along a transmission system are called regenerative repeaters.
Distance 1   Distance 2    Dance 3    stance 4     Distance 5
Original   Some signal  Degraded  Signal is badly  Amplification
dstortiuon   dstortiuon   dstortiuon    degraded    regenerate pulse






                  Propagation distance               
Figure 1   Pulse degradation and regeneration
Digital circuit are less subject to distortion and interfernce than analog circuit . Becanse binary circuits opoerate in one of two states fully on fully of —to be meaningful,a disturbance must be large enough to change the circuit ooperating point from one state to the other. Such two-state operation facilitates signal regeneration and thus prevents noise and other disturbances from accumulating in transmission. Analog signals,however,are not two-state signals; they can take an infinite variety of shapes. With analog circuits,even a small disturbance can render the reproduced waveform unacceptably distorted. Once the analog signal is distorted,the distortion cannot be removed by amplification. Because accumulated noise is irrevocably bound to analog signals,they cannot be perfectly regenerated. With digital techniques,extremely low error rates produres high signal fidelity are possible through error detection and correction but similar procedures are not available with analog.
There are other important advantages to digital communications. Digital circuit are more reliable and can be produced at a lower cost than analog circuit . Also, digital hardwave lends itself to more flexble implementation than analog hardwave (e.g., microprocessor, digital switching, and large-scale integrated (LSI) circuit). The combing of digital signals using time-division multiplexing (TDM) is simpler than the combing of analog signals using frequcency-division multiplexing (FDM). Different types of digital signals (data, telegraph, telephone, television) can be treated as identical signals in transmission and switching ---a bit is a bit. Also, for convenient switching, digital messages can be handled in autonomous groups called packets. Digital techniques lend themselves naturally to signal processing functions that project against interferene and jamming,or that provide encryption and privacy. Also much data communication is from computer to computer, or from digital instruments or terminal to computer. Such digital terminations are naturally best served by digital communication links.
What are the costs associated with the beneficial attributes of digital cimmunication system? Digital system tend to be very signal-processing intensive compared with analog. Also, digital system need to allocate a significant share of their resources to the task of synchroniztion at various levels . With analog system , on the other hand , synchroniztion often is accomplished more easily. One disadvantage of a digital communication system is non-graceful degradation. When the signal-to-noise ratio drops below a certain threshold, the quality of service can change suddenly from very poor. In cintrast, most communication aystem degrade more gracefully.
2、Typical Blook Diagram and Transformations
  The function block diagram shown in Figure 2 illustrates the signal flow and the signal-processing steps through a typical digital communication system (DCS). This figure can serve as a kind of road map, guiding the reader through the chapter. The upper blocks --- format, source encode, encrypt, channel encode, multiplex ,pulse modulate, bandpass modulate, frequency spread, and multiple access-denote signal transformations from the source to the transmitter. The lower block denote signal transformations from the receiver to the sink, essentially reversing the signal processing steps performed by the upper blocks. The modulate and demodulate/detect blocks together are called a modern. The term “modern” often encompasses several of the signal processing steps shown in Figure 2 ; When this is the case, the modern can be though of as the “brain” of the system. The transmitter and receiver can be though of as the “muscles” of the system. For wireless applications, the transmitter and consists of a frequency up-conversion stage to a radio frequency (RF), a high-power amplifier(LNA). Frequency down-conversion is performed in the fornt end of the receiver and/or the demodulator.
Figure 2 illustrates a kind of reciprocity between the block in the upper transmitter part of the figure and those in the lower receiver part. The signal processing steps that take place in the transmitter are, for the most part, reversed in the reveiver. In Figure 2 , the input information source is converted to binary digits (bis); the bits are then grouped to from digital message or message.
Each such symbol (mi,where i=1,2,3,…,M) can be regarded as a memerber of finite alphabet set containing M members. Thus, for M=2, the message symbol mi is binary (meaning that it constitutes just a signal bit). Even though binary symbol fall within the general definition of M-ary, nevertheless the name M-ary is usually applied to those cases where M>2 ; hence, such symbol are each made up of a sequence of two or more bits. (Compare such a finite alphabet in a DCS with an analog system, where the message waveform is typically a member of an infinite set of possible waveform ). For system that use channel coding (error correction coding), a sequence of message symbol is denoted ui. Because a message symbol or a channel symbol can consist of a single bit or a group of bits, a sequence of such symbol is also described as a bit stream, as shown in Figure 2.
Consider the key signal processing block shown in Figure 2 , Only formatting, modulation, demodulation/detection, and synchronization are essential for a DCS. Formatting, transform the source information into bits, thus assuring compatibility between the information and the signal processing within the DCS. From this point in the figure up to the pulse-modulation block, the information remains in the form of a bit stream. Modulation is the process by which message symbols or channel symbols (when channel coding is used) are converted to waveforms that are compatible with the requirements imposed by the transmission channel . Pulse modulation is an essential step because each symbol to be transmitted must first be transformed from a binary representation (voltage levels representing binary ones and zeros) to a baseband waveform. The term baseband refers to a signal whose spectrum extends from (or near) dc up to some finite value, usually less than a few megahertz. The pulse-modulation block usually includes filtering
for minimizing the transmission bandwidth. When pulse modulation is applied to binary sym-


                                                      si(t)
                                               From other
                                                   sources




Digital
input    mi                              ui                     gi(t)



m(t)                                       u(t)
Z(t)



                                                 To other         
destination
r(t)




Figure 2  A typical digital communication system
bols, the resulting binary waveform is called a pulse-code modulation (PCM) waveform. There are several types of PCM waveform. In telephone applications, these waveforms are often called line codes. When pulse modulation is applied to nonbinary symbols, the resulting waveform is called an M- ary pulse modulation wave form. There are several types of such waveforms,where the one called pulse-amplitude modulation (PAM) is emphasized. After pulse modulation , each message symbol or channel symbol takes the form of a baseband waveform gi(t) , where i=1,2,3,…,M. In any electronic implementation, the bit stream, prior to pulse-modulation, is represented with voltage levels. One might wonder why there is a separate block for pulse modulation when in face different voltage levels for binary ones and zeros can be viewed as impulse or as ideal rectangular pulses, each pulse occupying one bit time. There are two important differences between such voltage levels and the baseband waveforms used for modulation. First, the pulse-modulation block allows for a variety of binary and M-ary pulse-waveform types. Second, the filtering within the pulse-modulation block yields pulses that occupy more than just time. Filtering yields pulses that are spread in time, thus the pulses are “smeared” into neighboring bit-times. This filtering is sometimes referred to as pulse shaping; it is used to contain the transmission bandwidth within some desired spectral region.
For an application involving RF transmission, the text important step is bandpass modulation; it is required whenever the transmission medium will not support the propagation of pulse-like waveforms. For such cases, the medium requires a bandpass waveform si(t), where i=1,2,…,M. The term bandpass is used to indicate that the baseband waveform gi(t) is frequency translate by a carrier wave to a frequency that is much larger than the spectral content of gi(t). As si(t) propagates over the hannel, it is impated by the channel characteristics, which can be described in term of the channel’s impulse response hc(t). Also, at various point along the signal route, additive random noise distorts the received signal r(t), so that its reception must be termed a corrupted version of the signal si(t) that was launched at the transmitter. The received signal r(t) can be expressed as:
                     r(t)= si(t)* hc(t)+n(t)     i=1,2,…,M.
where “*” respresents a convolution operation, and n(t) represents a noise.
In the reverse direction, the receiver front end and/or the demodulator provides frequency down-conversion for each bandpass waveform r(t). The demodulator restores r(t) to an optimally shaped baseband pulse z(t) in preparation for detection. Typically, there can be several filters associated with the receiver and demodulator filtering to remove unwanted high frequency terms (in the frequency down-conversion of bandpass waveforms), and filtering for pulse shaping. Equalization can be described as a filtering option that is used in or after the demodulator to reverse any degrading effects on the signal that were caused by the channel. Equalization becomes essential whenever the impulse reponse of the channel hc(t), is so poor that the received signal is badly distortion caused. An equalizer is implement to compensate for (i.e., remove or diminish) any signal distortion caused by a nonideal hc(t). Finally, the sampling step transforms the shaped pulse z(t) to a sample z(t), and the detection step transforms z(t) to an estimate of the channel symbol ui or an estimate of the message symbol mi (if there is no channel coding). As we known,demodulation is degrading the digital meaning of that waveform.
The other signal processing steps within the modern are design option for specific system needs. Source coding produces analog-to-digital (A/D) conversion (for analog sources) and removes redundant (unneeded) information. Note that a typical DCS would either use the source coding option (for both digitizing and compressing the source information ), or it wpuld either use the simpler formatting transformation(for digitizing alone). A system would not use both source coding and formatting, because the former already includes the essential step of digitizing the information. Encryption, which is used to provide communication privacy, prevents unauthorized users from understanding message and from injecting false message into the system. Channel coding, for a given data rate, can reduce the probability of error, PE, or reduce the required signal-to-noise ratio to achieve a desired PE at the expense of transmission bandwidth or decoder complexity. Multiplexing and multiple-access procedures combine signals that might have different characteristics or might originate from different sources, so that they can share a portion of the communications resource(e.g., spectrum, time). Frequency spreading can produce a signal that is relatively invulnerable to interference (both natural and intentional) and can be used to enhance the privacy of the communications. It is also a valuable technique used for multiple access.





















数字通信系统

对于现代人来说,如果不知道“数字通信”或“数字信号”,那就显得很落伍了,甚至会被人讥笑“孤陋寡闻”的。那么何为“数字信号”,何为“数字通信”呢?本文就来做一个简单浅显易懂的概括说明。
一、为什么要进行数字化
在现今,无论是军用还是商用,为什么通信系统都在进行“数字化”呢?这有许多原因,其中最重要的原因是,数字信号与模拟信号相比,更易于再生。如图1所示,是沿传输线传输的一种理想二进制数字脉冲。其波形的形状要受到两个基本因素的影响:第一,所有传输线和电路都具有非理想的频率传递函数,因而使理想脉冲产生了失真;第二,电子噪声或其他干扰进一步使脉冲波形产生失真。这两种失真机理实际线路长度的函数,都会引起脉冲形状发生畸变。还来看图1,在传输脉冲恶化到模糊状态之前,传输脉冲仍可被可靠的识别,由数字放大器将脉冲放大并恢复最初的理想的形状,脉冲就这样“再生”了。在传输系统中,在规定时间间隔内执行这种功能的电路成为“再生中继器”。






        图1  脉冲编码再生
与模拟电路相比,数字电路不易产生失真和干扰。因为二进制数字电路工作在全通或全断的开关状态下才有意义,所以干扰必须足够大才能使电路从一种状态变到另一种状态。这两种工作状态有助于信号的再生,因而能在传输中有效地抑制噪声和其他累积干扰。然而模拟信号不是双态信号,它的波形有无限多个。在模拟电路中,即使很小的干扰也能导致信号产生难以接受的失真。失真一旦产生,就无法通过放大器去驱除。由于模拟信号和累积噪声密不可分,所以不能完全再生。若采用数字技术,通过检错和纠错可获得极低的差错概率,从而高保真信号,而模拟系统没有这样类似的技术。
数字通信系统还有其他的优点:数字电路比模拟电路更可靠,且其生产成本比模拟电路低;数字硬件比模拟硬件更具灵活性,比如微处理器、数字开关、大规模集成电路等;时分复用(TDM)信号比频分复用(FDM)信号的模拟信号更简单;不同类型的数字信号(数据、电报、电话、电视等)在传输和交换中都被看成是相同的信号——比特信号;为方便交换,还可将数字信号以数据包(packet)的形式进行处理。数字技术本身借助与信号出处理,具有抗人为干扰和自然干扰的功能,还能够提供加密和隐私处理。计算机与计算机之间、数字设备或终端与计算机之间的数据通信需求越来越多,这些数字终端可以通过数字通信链路获得最好的服务。
数字通信系统获得这些优点的代价是什么呢?与模拟系统相比,数字系统侧重于信号处理技术,并在通信的各个阶段,都需要分配一部分共享的资源用于实现同步。而在模拟系统中,同步相对比较容易。数字通信系统的另一个缺点是具有门限效应。即当信噪比下降到一定限度时,服务质量就会急剧恶化,而大部分模拟通信系统服务质量的下降则比较缓慢。
二、典型的通信系统框图
如图2所示,其功能框图描述了典型数字通信系统(DCS)的信号流程和信号处理过程,该图作为一种地图引导读者浏览本文的内容。方框图的上部表示从信源到发送端的信号传输过程,包括格式化、信源编码、加密、信道编码、多路复用、脉冲调制、带通调制、频率扩展和多址接入;下部表示从接收端到信宿的信号传输过程,基本上是方框图上部信号处理的反过程。调制和解调/检测方框合称为调制解调器。术语“调制解调器”通常是由图2所示的信号处理过程中的一部分构成,这时调制解调器相当于系统的“大脑”,而发送端和接收端则相当于系统的“肌肉”。在无线电应用中,发送端将频率上变频到射频频段(RF),经过高功率放大器馈送到天线。接收端部分由天线和低噪声放大器(LNA)组成下变频由接受器或调制器的前级末端完成。
图2显示出上部的发送方框图和下部的接受方框图存在可逆性,发送方框图中大部分信号处理步骤与接受部分方框图中的步骤相反。在图2中,输入信息源先转换成二进制数字(比特),然后将其组合为数字信息或信息符号。
每个码元(Mi,i=1,2,3,…,M)都可看成是长度为M个码元集合元素中的一个组成部分,因而当M =2是,消息码元Mi就是二进制数的(这意味着它仅包含1比特的信息)。尽管二进制数符号也包含在M进制数的定义中,通常M进制数用于M >2的情形,所以每个M符号都由两个或两个以上比特构成(与DCS中这种有限码元集不同,模拟系统的信号波形集是无限的)。对于采用信道编码(纠错编码)的系统而言,信息码元标识为ui。由于每个信息码元或信道由一个或一组比特构成,这样的码元序列也成为比特流,如图2所示。
考察图2所示的框图,对于DCS,关键信号处理过程仅包括的格式化、调制、解调/检测和同步。格式化把源信息转换为数字比特,以保证在DCS内信息与信号处理的一直性。在图2中,脉冲调治2方框        之前的信息仍是比特流的形式。调制过程将信息码牙或信道码元(采用信道码元)转换成与传输信道特性匹配的波形。脉冲调制是必不可少的步骤,因为要传输每个符号必须先将从二进制代码(表示二进制1或0的电压电平)转换成基波形式。术语基带是直流延伸到某个有限值的信号频谱,这个值通常是小于几MHZ的有限值。脉冲调制方框通常包含使传输基带最小化的滤波器。当对二进制数符号应用脉冲调治时,产生的二进制数波形就称为脉冲编码调制波形。PCM(脉冲编码调制)波形有几种类型,在电话通信中,这些波形通常称为线路码。当脉冲调制用于非二进制符号时,产生的波统称为M进制调制波形,这样的波形也有好几种类型,这里我们重点介绍脉冲幅度调制(PAM)。经过脉冲调制后每个信息码元或信道码元都转变为基带波形形式gi(t)。在任何电子设备中,脉冲调制之前的比特流都用电压电平来表示。读者可能想知道,既然实际上代表二进制数的1和0的不同电平,可以看为每个脉冲占用一个比特时间的冲激或理想的矩形脉冲波形,那么为什么还需要一个单独的方框用于脉冲调制呢?这是因为这些电压电平和用于调制的基带波形之间有另个重要的区别:第一,脉冲调制方框适用于各种二进制数和M进制数脉冲波形;第二,脉冲调制方框中的滤波器产生持续时间大于1比特时间的脉冲。由于滤波器产生的脉冲有时间展宽,因而会占据相邻比特时间。这种滤波有时候称为脉冲成形,用于把传输带宽限制在给定的频谱范围内。


                                                      si(t)
                                               From other
                                                   sources




Digital
input    mi                              ui                     gi(t)



m(t)                                       u(t)
Z(t)



                                                 To other         
destination
r(t)


图2  数字通信系统
在涉及到射频传输的应用中,下一个重要的步骤是带通调制,只要传输介质不支持脉冲波形的传输,就必须应用带通调制,此时传输介质所要求的信号是带通波形si(t)(其中i=1,2,…,M)。带通意味着基带波形的频谱经过一个载波被搬移到一个比gi(t)频谱大的多的频率点。当si(t)经信道传输时会受到信道特性的影响,而信道特性可以用信道冲激响应hc(t)来描述的。此外,在信号传输线路的各个点上,加性随机噪声会使接受信号r(t)进一步失真,所以接受信号是发送信号si(t)的一种失真的形式。接受信号r(t)可以表示为
                     r(t)= si(t)* hc(t)+n(t)      i=1,2,…,M      (1)
式中,*表示卷积运算,n(t)表示噪声。
在相反的方向上,接收机前端或解调器对每个带通波形r(t)进行下变频转换,解调器把r(t)恢复成最佳基带脉冲波形z(t),为后面的检测做准备。通常还会有几个与接收机、解调器相连的滤波器,滤除不需要的高频部分(带通波形的下变频),并改善脉冲波形。均衡可以认为是一种滤波过程,用以对抗由信道引起的任何不良影响,它可以包含在解调器之中,也可以在解调器之后;当信道冲激响应hc(t)使接收信号严重失真时,均衡器就显得十分重要了,它用于补偿(即消除或削弱)由非理想的hc(t)所导致的任何形式的信号失真。最后,采样过程把成形的脉冲信号z(t)变换成采样信号z(t),而检测则把z(t)变成信道码元或信息码元(若没有采用信道编码)的估值ui或Mi人们所知,解调是波形(基带脉冲)的恢复,而检测则是指与波形的数字意义有关的判决。
调制解调器中其他的信号处理步骤可根据系统的具体要求进行设计选择。信源编码对模拟信号进行模/数(A/D)转换,去除冗余信息。值得注意的是,典型的DCS或者采用信源编码(数字化和压缩信源信息),或者采用较简单格式化变换(只有数字信号时),系统不会同时采用信源编码和格式化,因为前者已经包含数字化信源信息这个必要步骤。加密用于提供通信的保密性,防止没有被授权的用户获得信息或将差错信息加入系统中。对于给定的数据数率,在增加传输带宽或解码器复杂性的条件下,信道编码能降低差错概率PE,或者保持期望的差错概率PE的条件下降低所需的信噪比。多路复用和多址接入
把不同特性或不同信源的信号进行合成,以便共享通信资源(如频谱、时间)。扩频能产生抵御干扰(自然或认为干扰)的信号,提高通信装备的保密性,同时它在多址接入方面也是一项有用的技术。










分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表