第9章--设计实例.ppt_第1页
第9章--设计实例.ppt_第2页
第9章--设计实例.ppt_第3页
第9章--设计实例.ppt_第4页
第9章--设计实例.ppt_第5页
免费预览已结束,剩余190页可下载查看

下载本文档

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

文档简介

第9章设计实例,第9章设计实例,9.1数字定时器9.2数控直流稳流电源9.3滑移脉冲信号发生器,9.1数字定时器,9.1.1功能要求9.1.2整体方案调研9.1.3整体方案论证9.1.4硬件电路设计9.1.5程序设计,9.1.1功能要求,9.1.1功能要求我们以一个具有一定实用价值而功能又比较简单的数字定时器做系统设计入门的实例。该定时器有如下技术要求:(1)定时时间的设置范围为199分,开机上电后的隐含值为10分。(2)使用0.5英寸红色LED数码管显示时间。,功能要求,(3)定时时间可以用按键或其它方式输入。(4)定时器控制一个220V1A的用电设备,上电时不允许用电设备瞬间通电。(5)定时时间设定后,启动计时,用电设备通电,同时显示器逐分倒计时。其间,分个位数码管的小数点每秒闪亮一次。,功能要求,(6)计时到0分时,切断用电设备电源。(7)计时误差:100分误差0.5mA已可明亮显示。若VF=1.5V,每笔段的限流电阻为2k,则LED点亮时每笔段IF1.75mA,动态扫描时每个笔段的平均电流约为0.875mA,满足亮度要求。考虑到MCU口线的IOH较小,限流电阻应接为上拉形式。八段笔划直接由P1口驱动。被点亮LED数码管的最大电流为81.75=14mA,利用P3.0、P3.1的IOL是可以承受的。,硬件电路设计,按键共设两个:功能切换键“S”,和加键“+”。分别接至INT0(P3.2)和INT1(P3.3)。设计的功能为:上电后,定时器处于等待时间设置状态,隐含时间10分。按下“S”键,分个位LED闪烁。按“+”键,可设置分个位值。设好后,再按“S”键,分个位LED停止闪烁,分十位LED开始闪烁,再按一次“S”键,分十位LED停止闪烁,定时器启动,设置的时间值存储,并开始倒计数。两只10k的上拉电阻,保证键按下低电平有效,相应的硬件电路如图9.1.3所示。,硬件电路设计,数字定时器硬件电路,硬件电路设计,考虑到上电过程中不允许用电设备瞬间动作,强电执行部件应为低电平驱动,它由P3.4完成。强电执行部件选用价格低的小型电磁继电器,而不用性能虽好,但价格较高的SSR。根据负载以及+12V供电的情况可选用JQX-14F12V的电磁继电器(特性见表2.6.1)。其电气寿命达105次,应能满足用电设备的要求。相应的驱动电路如图9.1.3所示。AT89C2051采用简单的RC复位电路。,硬件电路设计,MCU时钟频率直接影响指令执行速度与芯片的功耗。本课题对执行速度并不要求快,而且希频率低一点可降低功耗,故选为6MHz,由于机器周期为时钟频率的1/12,即2s,为整数值,定时器中断时间亦为2s的整数倍,对计时精度有利,何况6MHz的石英晶振为长线器件,价格较低。,硬件电路设计,+12V供电由7805降至+5V供系统使用。按LED所有笔段全亮,所需电流约12.5mA。JQX14F通电时线圈耗电约45mA,AT89C20515V供电时工作电流约12.5mA,电路总电流约70mA。7805压降为7V,管耗为0.49W。其热阻/W,即使不加散热片,其相对环境温度的温升约22。即使在+50环境温度下,结温才72。,9.1.5程序设计,1确定整体的程序结构硬件电路采用的动态扫描方式,编程序时要不停地扫描它。由于只有两位LED数码管,若扫描频率选为50Hz,则每个数码管点亮的时间为10ms。,程序设计,(1)最常用的程序结构图9.1.4为设计人员最喜欢采用的主程序流程图。主程序执行它初值化以后,即进入循环的显示扫描程序。其它所有的功能模块,如设置命令、设置时间的输入、计时等统统以中断的方式切入。如果初值化以后只是一个简单的循环等待,这种方式从可靠性和程序编写上都是很可取的。,程序设计,但是本设计中的两个按键,由于本身固有的抖动特性(如欧姆龙公司B3F-4055按键开关的抖动时间10ms),一般均采用软件去抖,即查觉按键动作后,先软件延时20ms,躲过抖动时间再接着处理按键相应的功能。在软件延迟的时间里,显示扫描被打断,会导致显示闪动的不良现象。,程序设计,(2)RTOS多任务实时操作系统(RTOS,如C/OS-)可以很好的解决这一并行请求的矛盾。然而这似乎“杀鸡用牛刀”。况且89C2051的程序存储器容量也有限。,程序设计,(3)以系统时钟为核心的程序结构我们统计一下本设计要使用的几个时间量:10ms每个数码管显示时间;20ms按键去抖时间;0.5s分个位LED小数点亮/灭时间;1s计时的单位时间。,程序设计,选择其最短的时间10ms做系统时钟基准。即利用MCU的定时器每10ms中断一次。然后确定每个时钟需完成的任务:轮流点亮LED一次;判有无键按下,若有键按下激活一个标志,并记录键按下的时间;检查键标志,并检查是否已到去抖时间(20ms,二个系统时钟时间),若已到则判定哪个键按下并做相应处理。因为每个时钟均访问LED一次,动态驱动得以保证。而进行键功能处理,有10ms的时间足矣!,程序设计,至于0.5s和1s时钟事件处理可以由计另一时时钟来完成,它承担每0.5s设置位LED闪烁和1s计时信号产生的任务,分为二个计时器可以使程序编写起来更容易一些。,程序设计,2资源分配(1)硬件资源分配功能键KS,边沿触发;加键KAD,边沿触发P1.0P1.7LED段码输出,高电平有效P3.0LED数码管分十位阴极,低电平有效,K1P3.1LED数码管分十位阴极,低电平有效,K2P3.4继电器驱动输出,低电平输出有效,JT016位计时器,系统时钟,10ms中断一次T116位计时器,计时时钟,0.1ms中断一次,程序设计,(2)寄存器资源分配(3)标志位资源分配与功能以上两项请直接参阅程序清单,程序设计,3程序流程图图9.1.5为主程序流程图。,程序设计,图9.1.6为系统时钟程序流程图。其中在进行分个位或分十位值加一时,有可能分个位或分十位正处于消隐期,即此值为20,这样会导致错误的时间。故必须在加之前调时间值,加完以后再存入时间值。,程序设计,图9.1.7为显示子程序流程图。显示分个位还是分十位由DSS标志值决定,由于每显示一次DSS取反,所以分个位和分十位得以轮流显示。因为在设置时间时,设置的那一位LED0.5s闪烁一次,故程序首先判定是否消隐或正常显示,这要由闪烁标志位FMF决定。,程序设计,图9.1.8为计时时钟程序流程图。在设置时间时,用闪烁控制标志FMF决定是否闪烁,通过SFF来决定在显示时是消隐还是正常显示。在计时时,停止时间闪烁,用DP取反的办法,使分个位小数点每秒闪动一次。,程序设计,图9.1.9(a)和(b)分别是功能键和加键的中断子程序X0和X1。这两个中断程序只执行将有键按下的标志位KEY置1的同一语句。程序短到无可再短,当然不会因中断影响显示,更不会影响其它程序的参数。,程序设计,4容错设计允许错误存在,并能防止它对系统正常工作的破坏,称为“容错”。人为操作失误是造成系统工作失败的最重要的因素。世界上许多次严重的事故,如切尔诺贝利核洩漏,就是错误操作造成的。,程序设计,4容错设计一个没有考虑容错的设计,包括一个程序,不能算一个完美的设计。上述数字定时器程序就至少没有考虑二种人-机交互易产生的错误:(1)上电后,显示10分隐含时间。正常操作应当是:不设新时间;或者先按功能键,设分个位。再按功能键,设分十位。再按一次功能键正常倒计时。但是如果上电后直接按加键,则分个位将动作,这将导致功能键动作次数紊乱。(2)倒计时开始后,如果按任何一键,也将出现非正常情况。,程序设计,4容错设计对于第一种情况,可以在系统时钟程序检测到“+”键时,先判别一下功能键次数是否为零,若是则不做加法而直接退出,见下面所列程序。对于第二种情况,可以在开始计时后关闭外部中断,而在计时结束后再重新允许外部中断。,程序设计,5软件的简单抗干扰措施(1)指令冗余现以CK0程序中的含有冗余指令的几个语句为例简单说明一下它的抗干扰原理。语句如下:(具体程序见程序清单),程序设计,(1)指令冗余程序正常运行时,程序计数器(PC)指针在执行JMPMPRO语句时指向095H,这条指令对应的机器码为80H,25H。前者是指令码,后者为相对跳转地址,即执行此指令后程序指针应跳转到25H加下条指令的PC值,即跳至OBCH。后面的三条空操作冗余指令对程序运行毫无影响。,程序设计,(1)指令冗余倘若程序计数器的值受到了外界干扰,指向25H(如虚线所示),如果不加冗余指令,则25H被当做指令码,将执行ADDA,dataaddr,即执行累加器ACC加一个数据地址为紧跟其后的20H。下一条指令,由于PC指向B2H,将执行CPLbitaddr,即对18H这个位地址了反。可见程序被完全破坏。,程序设计,(1)指令冗余如果干扰后指针仍是指向25H,但下面有三条NOP指令,程序执行的是ADDA,00H,累加器的值会改变。但PC下一个指向的二个NOP,再下一个指向的将是正常的JBKS,RCKO语言。至少减少了程序被破坏的程度,能接着恢复正常运行。冗余指令NOP通常加在2字节或3字节指令的后面。,程序设计,5软件的简单抗干扰措施(2)软件陷阱程序的长度总是小于程序存储器的容量,本课题中程序长度为170H(368Byte),而89C2051内部Flashmemory的容量为2kB(800H),有大片的内存的FFH剩余区。FFH为MCS-51内核的指令代码MOVA,R7。在剩余区里可以安排若干跳转到初值化地址的指令,以便程序跳飞时能被这些陷阱所捕获,还原到初值化或其它程序,请参看程序清单。,程序设计,5软件的简单抗干扰措施(3)监视定时器监视定时器(WatchDogTimer-WDT)俗称“看门狗”,是一种最常用的很有效的抗干扰方法。它的工作原理可以用图9.1.10来说明。,程序设计,监视定时器是一个时间计数器,复位以后,每隔一个固定的时间tWDT由Q端发生一个进位脉冲,迫使MCU复位。MCU在程序正常运行时,启动WDT,并每隔tWDT的时间通过I/O口向WDT发送复位信号,所以WDT永远没有强迫MCU复位的可能。当程序受到干扰,“跑飞”以后,程序不能正常的向WDT发送,于是在跑飞tWDT时间以后,MCU复位,程序又纳入正常运行。WDT可以用外部器件自行设计,也可以使用具有WDT功能的IC,如X5045。现在已经有不少MCU内部已带有WDT,只需程序控制其运行即可。对低端产品的本设计而言还没有必要使用WDT。,程序设计,6计时精度既然课题提出了对时间精度的要求,设计时就必须予以考虑。本设计是利用MCU的定时器软件计时。计时误差首先取决于MCU的时钟。(1)MCU时钟引起的计时误差MCU的fosc=6MHz,是由石英晶体振荡器产生的,其频率稳定度优于106,有时可达1011。按106计算,每秒变化6s,100分的变化仅0.036s,故此变化可以忽略。,程序设计,6计时精度(2)中断响应时间造成的误差计时定时器的初填值,是按下式计算出来的式中为计时器的容量,这里是65536,TINT为中断(计数溢出)的时间,TC为机器周期,这里TC=2s。0.1s中断的初填值为15536(3CB0H)。由TC为整数,此初填值是无误差的。,程序设计,6计时精度但是由于中断请求到执行中断服务程序的第一条指令是需要几个TC的时间,即中间响应时间。何况执行第一条执令填入TL1还需要三个TC。若中断响应时间为3TC,0.1s内的计时误差为6T=12s,100分计时误差为0.72s,完全满足计时精度要求。如果将初填值补偿(加大)6个字,则可使精度大大提高。,程序设计,7程序清单(略),9.2数控直流稳流电源,9.2.1功能要求9.2.2总体方案设计9.2.3硬件设计9.2.4软件设计9.2.5DAC的标度变与线性补偿算法9.2.6测试数据,9.2.1功能要求,9.2.1功能要求1输出电流范围:20mA2000mA,步进1mA;2改变负载电阻,输出电压在10V以内变化时,要求输出电流的变化输出电流的0.1%+1个字;3能显示输出电流的给定值和实际值,测量误差0.1%+3个字;4纹波电流0.2mA。,9.2.2总体方案设计,1总体方案论证系统的关键在恒流源电路。,总体方案设计,方案1恒流源可以通过一个经典的数控稳压源来实现。在输出回路串联一个电流取样电阻,通过实测电流与给定电流的比较,运用恰当的控制算法,调整输出电压使实测与给定两个电流相等,就可以达到稳流的目的。这种方案的最大问题是:不论是输入电源电压变化,还是负载变化,都要经过一段调整时间才能使电流稳定。此方案实质上就是设计一个受控电压源。,总体方案设计,方案2最好的方案应该是一个硬件的闭环稳流电路,稳流的过程几乎不需要时间。图9.2.1就是一种典型电路。根据集成运放虚短的概念可得:ILViR,R为电流取样电阻,由于R固定,因此IL完全由Vi决定,只要Vi不变,则IL不变,这就是恒流原理。对某一特定的Vi下的IL,无论是VCC或是RL变化,利用反馈环的自动调节作用,都能维持IL的稳定,,总体方案设计,即:VCCILI1V1V-(V+V-)V1I1ILVCCILI1V1V-(V+V-)V1I1ILRLILI1V1V-(V+V-)V1I1ILRLILI1V1V-(V+V-)V1I1IL本设计采用方案2。,总体方案设计,2系统框图系统框图如图9.2.2所示,主要由两个单元电路组成。主体单元电路:恒流源电路,输出的负载电流由恒流电路运算放大器的输入电压决定。控制单元电路:核心为微控制器MCU,DAC的输出作为恒流源控制电压的输入。从键盘设定电流数字量,经MCU处理后控制输出不同值的电流。ADC将实际输出的电流值转换为数字量,经MCU处理后通过点阵图形LCD显示。,9.2.3硬件设计,1恒流源电路2MCU的选择3键盘扫描4LCD显示5系统硬件电路图6线性电源,硬件设计,采样电阻的选择由于R上电流的范围为20mA2000mA,ViILR,Vi为DAC的输出电压,Vref为DAC的参考电压(一般为几伏),由于ViVref(DAC的参考电压),所以R的取值应在欧姆的数量级;Vcc=Vo+Vce+ILR,取样电阻越小,Vcc可以取得越低;而为了易于ADC的处理又应取大一些;电阻的功耗IL2R应尽量小,避免温度过高引起R阻值变化过大,使得输出电流值产生偏差。,硬件设计,鉴于以上考虑,采样电阻取为金属氧化膜1.0/10W电阻。优点是易获得,转换出的电压较高,在电流为最大值2A时,取样电阻的实际消耗功率为4W。对电阻而言减额因子S(实际功率/额定功率)0.5故选用额定功率为10W的电阻已满足可靠性指标。,硬件设计,运算放大器的选择R阻值为1,因此ViILR约为0.02V2V,即输入电压值较小,这就要求运放的输入失调电压、噪声电压相对要很小;OP07输入电压范围:14V,供电电压最大18V,输入失调电压75V,噪声电压峰峰值0.6V,失调电压温漂1.3V/,满足精度的要求。,硬件设计,(3)调整管的选择稳流电路的闭环增益由运放和调整管决定。总增益越高,稳流特性越好。为此,调整管以选用达林顿管为宜。,硬件设计,2MCU的选择:MCU种类繁多,由于系统速度要求不高,程序量不大,很多低端MCU都可以胜任。再看一下对DAC和ADC的要求:虽然Iomax/Iomin=100,但设置数的分辩率为:1mA/2000mA=1/2000,故DAC和ADC的分辩率必须1/2000,即DAC和ADC的位数必须在11位以上。为保证精度,通常应该选取12位的DAC和ADC。,硬件设计,低端MCU一般均不带DAC和ADC,外接DAC和ADC使电路复杂,接线增多,可靠性降低,而且成本也不低。选取内部自带12位的DAC和ADC的SoC型C8051F120MCU是很合适的。它使外部电路得到最大的简化,系统的可靠性大为提高。,硬件设计,一般说来,SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,SoC是一个微小型系统。如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。,硬件设计,SoC定义的基本内容主要表现在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器CPU内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC/DAC的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA或ASIC实现)以及微电子机械模块。更重要的是一个SoC芯片内嵌有基本软件(RTOS或COS以及其他应用软件)模块或可载入的用户软件等。系统级芯片形成或产生过程包含以下三个方面:1)基于单片集成系统的软硬件协同设计和验证;2)再利用逻辑面积技术,使用和产能占有比例的有效提高、开发和研究IP核生成及复用技术,特别是大容量的存储模块嵌入的重复应用等;3)超深亚微米(UDSM)、纳米集成电路的设计理论和技术。,硬件设计,应该说C8051F120也属于一种SoC,C8051F120是集成在一块芯片上的混合信号系统级单片机,封装形式为100引脚TQFP,其中有64个数字I/O引脚,,硬件设计,其突出特点为:与8051兼容的高速的CIP-51微控制器内核在系统、全速、非侵入式调试接口12位的片上ADC,速度为100ksps,有8个多路复用模拟信号通道及PGA(可编程增益放大器)2个12位的片上DAC,可编程更新数字量128K字节系统可编程FLASH存储器8448字节的片上RAM外部数据存储器有64K字节个地址空间SPI、SMBus/I2C、2个UART串行接口5个通用16位的定时器带有6个捕捉/比较模块的可编程计数/定时器阵列片上看门狗定时器、VDD监控器、温度传感器,硬件设计,图9.2.3和9.2.4是C8051F120/124的封装和原理框图,硬件设计,(1)CIP-51TM微控制器内核CIP-51与MCS-51TM指令集完全兼容,可以使用标准的803x/805X的汇编器和编译器进行软件开发。,硬件设计,CIP-51采用流水线结构,与标准的8051结构相比,指令执行速度有很大的提高。在标准的8051中,除MUL和DIV以外的所有指令都需要12个或24个系统时钟周期,并且通常最大的系统时钟为12到24MHz,而在CIP-51中,70%的指令的执行时间为1个或2个系统时钟周期,仅仅只有四条指令的执行时间超过4个系统时钟周期。CIP-51总共有109条指令,表9.2.1列出了指令条数与执行时所需的系统时钟周期数的关系。由于CIP-51最高的系统时钟可达100MHz,因此C8051F120最大的指令执行速度可达100MIPS。,硬件设计,(2)片内存储器CIP-51有标准的8051程序和数据地址配置。它包括256字节的数据RAM,其中高128字节为2个地址空间:用间接寻址访问通用RAM的高128字节,用直接寻址访问128字节的SFR地址空间。空间数据RAM的低128字节可用直接或间接寻址方式访问。前32字节为4个通用工作寄存器区,接下来的16字节既可以字节寻址又可以位寻址。,硬件设计,该器件还有一个片内8K字节的RAM块,及访问片外数据存储器的外部存储器接口(EMIF)。这个8K字节的RAM块可以在整个64KB外部数据存储器地址空间中被寻址。,硬件设计,在C8051F120内部,MCU的程序存储器包含了128K字节的FLASH存储空间,从0 x1FC000 x1FFFF的1024字节被保留,如图9.2.5所示。,硬件设计,(3)JTAG调试和边界扫描C8051F120具有片内JTAG边界扫描及调试电路。通过4脚的JTAG接口,并使用安装在应用系统中的单片机可以进行非侵入式、全速的在系统调试。该JTAG接口完全符合IEEE1149.1标准,为测试和生产提供完全的边界扫描功能。,硬件设计,SiliconLabs的调试系统支持观察和修改存储器、寄存器、断点、观察点、堆栈指示器及单步执行,不需要额外的目标RAM、程序存储器、定时器或通信通道。在调试时所有的模拟和数字外设都工作正常。当单片机单步执行或遇到断点而停止运行时,所有的外设(除ADC和SMBus外)都停止运行以便保持同步。,硬件设计,开发套件C8051F120DK具有开发应用代码所需要的全部硬件和软件,并可分别对C8051F12X,C8051F13X单片机进行在系统调试。开发套件包括Windows开发环境、一个连接至JTAG端口的适配器,还有一个安装有C8051F120MCU的目标应用板。套件中还包括所有必要的通信电缆及电源适配器。对于开发和调试嵌入式应用来说,SiliconLabs的调试功能比采用标准MCU仿真器要优越得多。标准的MCU仿真器应使用在板仿真芯片和目标电缆,还需要在应用板上留有单片机的插座。SiliconLabs的调试环境既便于使用又能保证精确模拟外设的性能。,硬件设计,图9.2.6和9.2.7分别为调试环境示意图和使用USB的调试环境。,硬件设计,(4)可编程数字I/O和交叉开关C8051F120单片机具有标准8051的端口(P0,P1,P2,P3),另外还有4个端口(P4,P5,P6,P7),总共有64个通用I/O口,它们的工作情况与标准的8051相似,并有一些改进。每个端口都可以被配置为推挽或漏极开路输出。在标准8051中固定的弱上拉可以被禁止,这为低功耗应用提供了进一步节电的能力。,硬件设计,数字交叉开关是一个很大的数字开关网络,允许将内部的数字系统资源分配给P0,P1,P2,P3的I/O引脚上。与具有标准复用数字I/O的微控制器不同,这种结构支持所有的功能组合。图9.2.8为交叉开关原理图。,硬件设计,可通过设置交叉开关控制寄存器,将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出及微控制器内部的其它数字信号配置为在I/O引脚输出。允许用户根据自己特定的应用选择通用端口I/O和所需数字资源的组合。,硬件设计,优先权交叉开关译码器按照一定的优先权顺序将P0P3口上的引脚分配给器件上的数字外围(UARTs、SMBus、PCA、Timers等),从P0.0开始一直往下直到P3.7。表9.2.2列出了数字外围按照优先顺序分配P口引脚的情况,其中,UART0的优先权最高,CNVSTR2优先权最低。,硬件设计,(5)12位DACC8051F120内部有2个12位的DAC,单片机与每个DAC之间的数据和控制接口通过特殊功能寄存器实现。单片机可将任何一个DAC置于低功耗关断方式。图9.2.9为DAC原理图。DAC为电压输出方式,并且拥有一套灵活的转换启动机制,该机制允许在软件写或定时器2、3、4溢出的情况下更新DAC的输出。DAC的参考电压由专门的VREFD输入引脚提供。,硬件设计,本设计中选用的是DAC0,图9.2.10为其结构图。由于恒流源的输入电压要求约为0.02V2V,所以参考电压为2.4V,由VREFD引脚提供,其输入代码范围为0 x000到0 xFFF,相应的输出电压从0伏到(VREF-1LSB)。DAC0由相应的控制寄存器DAC0CN使能或禁止。,硬件设计,当被禁止时,输出保持在高阻状态。图9.2.11为DAC0控制寄存器指令表。DAC0H:DAC0数据的高位字节寄存器DAC0L:DAC0数据的低位字节寄存器DAC0CN:图9.2.11为DAC0EN控制寄存器指令表。表中Bit7:DAC0ENDAC0使能位,Bit4-3:DAC0MD1-0DAC0输出更新触发方式位,Bit2-0:DAC0DF2-0DAC0数据格式位,指定16位数据寄存器中有效的12位单元。,硬件设计,(6)片内12位ADC(ADC0)C8051F120片内12位的ADC包括一个9通道输入多路选择开关及可编程增益放大器。当ADC工作在100ksps的最大采样速率时可提供真正的12位精度,INL为1LSB。ADC0的参考电压可由外部VREF引脚提供,也可由DAC0的输出提供。在C8051F120中,ADC0有它自己专门的参考电压输入引脚。通过VREF输出引脚,片内参考电压可以为其它系统元件及片内的ADC提供参考电压。,硬件设计,图9.2.12和9.2.13为ADC和ADC0内部结构示意图。,硬件设计,ADC完全由CIP-51通过相关的SFR(特殊功能寄存器)控制。9个通道中,有1个输入通道被连到内部温度传感器,其它8个通道接入外部输入。通道的每一对都可被配置为2个单端输入或1个差分输入。系统控制器可以关断ADC以节省功耗。,硬件设计,可编程增益放大器接在模拟多路选择器之后。增益可以用软件设置,从0.516以2的整数次幂递增。当不同ADC输入通道之间输入的电压信号范围差距较大,或需要放大一个具有较大直流偏移的信号时,这个放大环节是非常有用的。,硬件设计,ADC转换可有4种启动方式:软件命令、定时器2溢出、定时器3溢出、外部信号输入。这种灵活性允许用软件事件、外部硬件信号、周期性定时器的溢出信号进行连续转换。一次转换完成会产生一个中断(如果该中断打开),也可以通过查询相应的状态位来判断转换结束与否。转换完成时,转换结果即12位的数据字被锁存到2个SFR(特殊功能寄存器)中,它们在寄存器中可以是左对齐也可以是右对齐,这由软件控制。,硬件设计,这里采用了ADC0,如图所示,AMUX0是一个9通道、可配置的模拟信号多路复用器,控制它的寄存器有AMX0CF(通道配置寄存器)和AMX0SL(通道选择寄存器),它们的数据状态决定了选择输入哪路模拟信号及该信号的输入方式;PGA0(可编程增益放大器)则对输入的模拟信号进行可编程放大;ADC0按照ADC0CF(模数转换配置寄存器)和ADC0CN(模数转换控制寄存器)的数据状态对模拟信号进行数字转换,转换的结果存放在数据寄存器ADC0H和ADC0L中,其有效的12个数据位由ADC0CN中的AD0LJST位的状态决定。转换结果的精度为1/212(1/4096)。,硬件设计,(7)参考电压芯片内部有一个参考电压电路,主要由1.2V的参考电压发生器及增益为2的输出缓冲放大器组成。内部的参考信号可通过VREF引脚连接到外部系统的元件或连接到参考电压输入引脚上。,硬件设计,图9.2.14和9.2.15为参考源内部结构和控制寄存器指令表。,硬件设计,参考电压控制寄存器REF0CN使能或禁止内部参考电压发生器和内部温度传感器。其中,BIASE位使能片上的参考电压发生器,而REFBE位使能能够驱动VREF引脚的增益为2的缓冲放大器。如果内部能带隙被用作参考电压发生器,那么BIASE位和REFBE位都应该置为“1”。,硬件设计,如果不使用内部参考信号,那么REFBE位可以为“”。值得注意的是,无论参考电压来自片上的参考信号还是由片外的信号源提供,只要使用了DAC或ADC,那么BIASE位都应置“”。如果,DAC和ADC都不使用,则BIASE位和REFBE位都可以置“”。,硬件设计,本设计中由于使用了DAC0和ADC0,因此,BIASE位和REFBE位都置“1”,且参考电压均为2.4V。,硬件设计,3键盘扫描键盘扫描选用的是扫描管理芯片ZLG7290,通过I2C串行接口,提供键盘中断信号,方便与处理器接口;一共可扫描64个按键。本设计中采用的54键盘矩阵。,硬件设计,图9.2.16为其电路。,硬件设计,4LCD显示选用的是YXD12864,这是一种图形点阵液晶显示模块,它主要由行驱动器、列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示48个(1616点阵)汉字。,硬件设计,5系统硬件电路图如图9.2.17为数控模块与恒流源模块组成的数控直流电流源的系统电路图。,硬件设计,集成运放OP07即是恒流源的核心,C8051F120的DAC输出作为它的输入,运放的输出经晶体管扩流后由集电极供给负载,输出电流经采样电阻变换为电压后,由电压跟随器送入片上ADC。其中,在C8051F120的DAC输出端DA与恒流源的输入端之间采用了电位器,采样电压与C8051F120的ADC输入端AD之间用了放大倍数为1.5倍的放大器(运放为OP37)及电位器。这两个电位器前者用以调整实际输出电流,后者用以调整显示的电流值。,硬件设计,6线性电源图9.2.18为一典型的线性稳压电源电路,其中U1为扩流管。输出电压Vo为Vo=1.25(1+R2/R1)+IadjR2-VbeIadj为LM317调整端电流,Iadj=100uA,Vbe约为0.7V,扩流管是2N3055型NPN管。,9.2.4软件设计,1资源分配2程序设计,软件设计,1资源分配地址分配SLA30H:ZLG7290器件的从地址SUBA31H:ZLG7290器件的子地址NUMBYT32H:读/写的字节数变量Z729070H:Z7290的器件地址MRD33H:接收Z7290键值的存储单元MTD34H:向Z7290发送数据的存储单元AD0H3DH:ADC结果的暂存单元(MSB)AD0L3EH:ADC结果的暂存单元(LSB),软件设计,1资源分配CNT03FH:每一次DAC时,ADC0采样的次数COM40H:LCD参数寄存器DAT141H:LCD显示数据寄存器DAT242H:LCD显示数据寄存器COUNT43H:LCD计数寄存器OX44H:X坐标低8位寄存器(字节);X坐标低8位寄存器(点列)OY45H:Y坐标寄存器(字符行/点行)CODD46H:汉字代码,软件设计,1资源分配X47H:X=015Y48H:Y=07COT149H:计数器1COT24AH:计数器2COT34BH:计数器3COT44CH:计数器4,软件设计,1资源分配BZ351H:前零消隐子程序的通用存储单元,BZ3(H)BZ252H:前零消隐子程序的通用存储单元BZ153H:前零消隐子程序的通用存储单元BZ054H:前零消隐子程序的通用存储单元,BZ0(L),软件设计,1资源分配标志位SCLP2.1:I2C的时钟端SDAP2.0:I2C的数据发送接收端ACK00H:I2C的应答标志位FUN_KEY_FLAG01H:功能键状态总标志位SET_VALUE_FLAG02H:欲设电流标志位,软件设计,1资源分配ACK_VALUE_FLAG03H:确认设置电流值的标志位CLEAR_VALUE_FLAG04H:清除设置电流值的标志位CDP1.6:指令/数据选择信号WRRP0.7:写操作信号RDDP0.6:读操作信号CSP1.7:LCD的片选信号端,软件设计,2.程序设计主程序:由C8051F120控制、协调各功能模块的工作,其流程图如图9.2.19所示。,软件设计,中断服务程序:用户通过键盘,使得电流源输出不同值的电流。按键分为09十个数字键;“设置键”:用以设定新的电流值;“删除键”:用以修改键入的数值;“确认键”:用以确认新的电流值;中断服务程序流程图如图9.2.20所示。,9.2.5DAC的标度变与线性补偿算法,DAC的标度变换算法是:从图9.2.1可知,Io=Vi/R=VDAC/R,,R为取样电阻1,VDAC(V)=1000Io(mA)。由于DAC的VDACmaxVrNDAC/4096,Vr=4.096V。NDAC为DAC输入的数字值。考虑到留有一定的余量,取:NDAC=2Io(mA),DAC的标度变与线性补偿算法,理想状态下,设置电流Is(NDAC)与输出电流IO应该是一条通过0点的直线,由于运放Vp和Vn之间的电位差不为0,使实际电流IA的直线存在一个截距,如图9.2.21所示。本设计中采用了线性补偿,使得实际输出的电流与设定电流值之间的关系得以改善。,DAC的标度变与线性补偿算法,补偿公式为:NDACC=NDAC+K(4000-NDAC)式中,NDACC:补偿后DAC0中的数字量;K1/565。,9.2.6测试数据,1测试数据略2测试结果分析,测试数据,2测试结果分析由以上数据结果可知:(1)设计达到预期指标。(2)当电流不是很小时,由于12位ADC,12位DAC及测量仪表的分辨率大于设计要求的精度,所以实际输出电流值与设定的电流值相等,且步进可达1mA;(3)放大电路负反馈环的调节作用良好,当负载变动或主回路电压变化时,输出的电流值几乎不变,即达到了“稳流”的目的。,测试数据,2测试结果分析(4)当电流很小,趋于几十毫安的时候,实际输出电流值与设置电流值存在一定的误差。其主要原因在于:模拟量转换为数字量时,量化误差是不可避免的,尤其是当模拟量很小的时候,量化误差的影响更明显。(5)稳流闭环电路的增益还不够高,运放Vid0。进一步采取措施,提高闭环增益,可使此误差减少。,9.3滑移脉冲信号发生器,滑移脉冲信号发生器是一种幅度/频率谱(如核能谱)分析仪器专用的信号源,它能够输出幅度可变、频率可变、脉冲宽度可变的窄脉冲序列。,9.3滑移脉冲信号发生器,9.3.1设计要求9.3.2总体方案论证9.3.3单元电路设计9.3.4系统软件设计,9.3.1设计要求,设计要求我们这里所提到的滑移脉冲信号如图9.3.1所示:图中每一条垂直线代表一组一定幅度、一定宽度、一定频率的矩形脉冲。它们在一个滑移周期内,由0线性增大到最大幅值,再由最大幅值线性减小到0。一个滑移周期内脉冲幅度变化的等级数又称为“道数”。,设计要求,滑移脉冲示意图,设计要求

温馨提示

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

评论

0/150

提交评论