电子秤课程设计报告.doc_第1页
电子秤课程设计报告.doc_第2页
电子秤课程设计报告.doc_第3页
电子秤课程设计报告.doc_第4页
电子秤课程设计报告.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

电子秤设计 2009 课 程 设 计 课程名称 传感器与自动检测技术 设计题目 电子秤 专 业 电子科学与技术 班 级 一班 学 号 06040132 学生姓名 简文宇 实习成绩 指导教师 宫香山 2009年 5 月 1 日电子秤设计目录1、 设计概述 2、 总体设计 1.2.2.1 电源电路 2.2 金属箔式变片全桥电路 2.3 放大电路 2.4 模数转换电路 2.5 控制电路 2.6 显示电路 2.7 vhdl描述 3、 设计总结 附录 参考文献 1. 概述1) 课程设计要求基本要求:利用金属电阻应变片工作原理设计电子称,测量范围在0200g,有放大级,ad转换电路,显示电路,ad转换部分可以用单片机、cpld、或基本数模电路。提高:可以外加电源电路,对于用单片机、cpld等实现ad转换的还可以附加程序代码,可扩大测量范围等。2) 课程设计目的理论联系实际,学习金属箔式应变片的简单应用,学会查芯片手册,巩固模拟电路、数字电路基础知识,了解设计过程,增强动手能力。2. 总体设计1) 电源本次设计用的是220v交流市电,而本次设计用到的是020v之间的直流电压,需要设计一个直流电源。2) 核心原理部分应变片直流电桥。根据金属式应变片的工作原理设计一个性能最优的电桥。根据理论课程的学习知道全桥性能最好。3) 放大电路分为两级放大,第一级放大为差分放大电路,第二级放大为反比例放大电路,主要实现电压的放大作用。4) ad转换电路是放大电路输出信号(模拟量)转化成数码管可以显示的数字量。5) cpld控制电路控制adc的转换工作及数码管的输出6) 显示电路及接口电路实现数码管输出及相关功能7) vhdl描述用vhdl语言用状态机对ad转换过程进行描述,对数码显示功能进行描述1.2.2.1 电源电路 直流电源的组成:电源变压器、整流电路、滤波电路、稳压电路。2.1.1 电源变压器电源变压器需要把220v市电变为5v交流电,由公式: (2-1)可以算出匝数比为44。2.1.2 整流电路此次设计采用单相桥式整流电路,电路中采用了四个二极管,接成电桥,故称为桥式整流电路。桥式输出电压为 (2-2)脉动系数为 (2-3)1.1.1 滤波电路采用电容滤波电路。1.1.2 稳压电路采用三端集成稳压器。理由:电路内部包括了串联型的直流稳压电路的各个部分,另外加上了保护电路和启动电路。用滑动变阻器使得输出电压可调。输出电压 (2-4)可以算出的变化范围为5.5到60v。其中为w7805的输出电压如上图,有关资料见附录。调节滑动变阻器使输出为15v (2-5) (2-6)这样就输出了多个直流电压。2.2 金属箔式变片全桥电路r1为保护电阻,r15为差分输入调零端,理论上当r15在中点时,由于接的两个正负电源两边压降相同,使得r1上没有电流流过。但实际上由于干扰等缘故,需要调节r15使r1上的电流为零。电桥工作原理当被测量无变化时,电桥输出为零,即电桥平衡,据此选择全桥上的四个电阻相等都为。当电桥电阻发生变化,即称重物使应变片发生形变时,则相应的输出电压为: (2-7)其中,为应变片发生形变时的电阻变化。为输入电压值,这里。要实现测量范围为,称重传感器的电灵敏度为满负荷输出电压与激励电压的比值。使用 5mv/v灵敏度和10v激励电压的传感器时,其满度输出电压为50 mv。通常,为了使用称重传感器线性度最好的一段称重范围,应当仅使用满度范围的三分之二。因此满度输出电压应当大约为30 mv。当负载为500g时要使传感器信号能够实现1 g的精度,总共需要500次计数,并显示在lcd显示屏上。1 g的重量转换为电压形式可等效为:30 mv / 500g x1g = 0.06mv。为了实现1 g的测量精度,adc的lsb电压应取0.06mv/0.4=0.15mv。即当放上1g砝码时数码管显示为1g,adc转换的输入电压为0.02v时转换得到00000001,当放上500g砝码时数码显示为500g,adc的输入电压为4.88v时转换得到11110100。所以需要放大的倍数为。2.3 放大电路差分放大电路由于电路结构对称,他们的漂移和失调都有相互抵消的作用。由于对称性,先算出u3的输出电压,同理可以算的u2的输出电压,有下式: (2-8)则 (2-9) (2-10)则差动放大倍数为 (2-11)u4为差分输入比例放大电路,其放大倍数为 (2-12)所以总的放大倍数经过放大之后uo的变化范围为。反比例放大电路 (2-13)当滑动变阻器滑到最左端时,au=1,当滑动变阻器滑到最右端时au=20。r9、r11、r13组成差分输入的调零端。最终放大输出给ad转换的电压为。2.4 8位微处理器兼容模数转换器adc08042.4.1 封装2.2.12.22.32.42.4.12.4.2 adc0804外围应用电路转换控制由cpld提供的时序控制,转换之后的数据通过adc0 - adc7送到cpld的io口上。由于adc0804输出电平为5v ttl电平,maxii系列提供io设计是3.3v,但是它可以通过串接一个电阻来平衡电平。所以,不需要电压转换芯片,为系统设计节约了成本。2.4.3 adc0804的时序图及其解释(译自datasheet) the normal operation proceeds as follows. on the high-to-low transition of the wr input, the internal sar latches and the shift-register stages are reset, and the intr output will be set high. as long as the cs input and wr input remain low, the a/d will remain in a reset state. conversion will start from 1 to 8 clock periods after at least one of these inputs makes a low-to-high transition. after the requisite number of clock pulses to complete the conversion, the intr pin will make a high-to-low transition. this can be used to interrupt a processor, or otherwise signal the availability of a new conversion. a rd operation (with cs low) will clear the intr line high again.一般的转换过程描述如下。在输入端(write写)由高电平到低电平的变化后,内部的sar锁存器和移位寄存器的状态被复位,同时输出端(interrupt中断)会被置为高电平。只要输入端(chip select片选)和保持低电平,adc会保持一个复位的状态。当这两个输入端中的任何一个从低电平跳变到高电平时,转换会在1到8个时钟周期后开始。当经过数个周期,转换过程结束后,输出端会发生从高电平到低电平的跳变,可用来给处理器产生一个中断,或用来标志可以开始新的转换过程。(read读)低电平且也为低电平时,会将重新置为高电平。the device may be operated in the free-running mode by connecting intr to the wr input with cs = 0. to ensure startup under all possible conditions, an external wr pulse is required during the first power-up cycle. a conversion-in-process can be interrupted by issuing a second start command.将输出端与输入端连接在一起(同时为低电平),adc会处在自运行模式。为确保能够在任何可能出现的情况下启动转换,在第一次上电的时候需要加一个外部的脉冲。正在转换的进程会被之后发出的启动转换命令打断。the digital control inputs (cs, rd, and wr) meet standard ttl logic voltage levels. these signals are essentially equivalent to the standard a/d start and output enable control signals, and are active low to allow an easy interface to microprocessor control busses. for non-microprocessor based applications, the cs input (pin 1) can be grounded and the standard a/d start function obtained by an active low pulse at the wr input (pin 3). the output enable function is achieved by an active low pulse at the rd input (pin 2).逻辑电平输入信号(cs,rd和wr)符合ttl逻辑电平标准。这些输入信号相当于adc开始转换和输出使能的控制信号,并且为了使得微处理器控制简便,这些输入端都采用低电平有效。在没有微处理器参与的应用中,输入端cs(1管脚)可以接地,并且当输入端wr(3管脚)为低电平时,ad转换启动。输入端rd(2管脚)的低电平信号可以激活输出端的使能功能。2.4.4 状态转换过程根据datasheet中上面节选的对于时序转换的描述,总结出的adc0804的状态转换过程,以便使用vhdl语言编写状态机来完成模数转换的过程。st0(启动):cs=0,wr=0,rd=1,此时中断intr:1st1(转换):cs=1,wr=1,rd=1,此时中断intr:10(0时结束转换并输出到锁存中)st2(输出):cs=0,wr=1,rd=0,此时中断intr:1st3(结束):cs=1,wr=1,rd=1,此时中断intr:12.5 altera公司maxii系列cpldepm570t100c52.5.1 选用altera公司目前市场性价比较高的maxii系列cpldaltera推出的max ii器件系列是一款革命性的cpld产品。它基于突破性的cpld架构,提供业界所有cpld系列中单个i/o管脚最低成本和最小功耗。这些器件采用新的查表(lut)体系,采用tsmc的0.18m嵌入flash工艺,使其裸片尺寸仅为同样工艺器件的1/4。max ii系列和上一代max产品相比,成本降低了一半,功耗只有其1/10,同时保持max系列原有的瞬态启动、单芯片、非易失性和易用性。新的系列器件容量翻了两番,性能是上一代max cpld的两倍多,使消费类、通信、工业和计算机产品的设计者能够采用max ii系列器件代替昂贵和不够灵活的小型asic和assp。2.5.2 max ii系列器件的主要特征max ii系列cpld器件具有成本优化的架构、低功耗、高性能、用户可访问且可编程的8k比特flash存储器、实时在系统可编程能力(isp)允许用户编程正在工作的器件、灵活的多电压multivolt内核、maxii cpld的jatg翻译器(jtag)、i/o驱动能力强等特征。epm570t100c5有570个逻辑单元,等效宏单元是192个,资源比较丰富,内有8kbit flash的存储空间;采用12mhz的晶振,为cpld提供主时钟;jtag接口可使用标准byteblasterii或usb blaster进行下载。表1.2 max ii的i/o标准i/o标准性能3.3v lvttl/lvcmos300mhz2.5v lvttl/lvcmos220mhz1.8v lvttl/lvcmos200mhz1.5v lvcmos150mhz3.3v pci33mhz122.12.22.32.42.52.5.12.5.22.5.3 cpld外围应用电路2.5.3.1 模数转换器adc0804转换后的数据:port 1 port 7(adc0 adc7)2.5.3.2 全局时钟clock(12mhz晶振):port12(clk0)2.5.3.3 模数转换器adc0804的控制端:port 15 port 18(/adcs,/adrd,/adwr,/adintr)2.5.3.4 7段数码管位选:port 19 port 21(sel1,sel2,sel3)2.5.3.5 jtag:port 22 port 25(tms,tdi,tck,tdo)2.5.3.6 7段数码管段选:port 68 port 75(dpya dpyg,dpydp)2.6 数码显示电路3个七段数码管组成三位数码显示,通过cpld的i/o端口分别进行段选、位选的控制来对测量的电压值进行数字显示输出。由于max ii系列cpld的io驱动能力比较强,所以可以直接驱动数码管。不过为了保护io口,在每一个回路之中各自串接了200保护电阻。2.7 vhdl设计代码- 输入电压范围0-5v,显示0-255数位-库定义、 包定义-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-实体定义-entity balance isport ( clk : in std_logic; - 全局时钟输入,12mhz晶振产生 reset : in std_logic; - 复位输入 intr : in std_logic; - ad转换结束产生的中断输入 data_i : in std_logic_vector(7 downto 0); - adc转换后的数据输入 data_o : out std_logic_vector(7 downto 0); - 数码管数据输出 l : out std_logic_vector(2 downto 0); - 输出数码管位选 cs : out std_logic; - adc使能 wr : out std_logic; - adc写控制 rd : out std_logic - adc读控制 );end balance;-结构体-architecture bhv of balance istype state is (start, convert, read1, read2);- 状态机定义signal current_state, next_state : state; - 状态定义signal read_data : std_logic; - 读数据寄存器signal clock : std_logic; - 扫描时钟signal p : integer range 0 to 255; - 数据寄存器signal b0,b1,b2 : integer range 0 to 9; - 3位数码管显示数据寄存器signal cnt : integer range 0 to 3 := 0; - 扫描寄存器begin-显示进程-process(p, clk)begin case p is when 0|10|20|30|40|50|60|70|80|90|100|110|120|130|140|150|160|170|180|190|200|210|220|230|240|250 = b0 b0 b0 b0 b0 b0 b0 b0 b0 b0 null; end case; case p is when 0|1|2|3|4|5|6|7|8|9|100|101|102|103|104|105|106|107|108|109|200|201|202|203|204|205|206|207|208|209 = b1 b1 b1 b1 b1 b1 b1 b1 b1 b1 null; end case; if (p 100) then b2 = 100 and p 200) then b2 = 200) then b2 = 2; end if;end process;-分频进程-process(clk)variable cnt1 : integer range 0 to 100;variable cnt2 : integer range 0 to 20;begin if (clkevent and clk = 1) then if (cnt1 = 100) then cnt1 := 0; if (cnt2 = 20) then cnt2 := 0; clock = not clock; if (cnt = 3) then cnt = 0;else cnt = cnt + 1;end if; else cnt2 := cnt2 + 1; end if;else cnt1 := cnt1 + 1;end if; end if;end process;-状态驱动进程-sync : process(clock, reset)begin if (reset = 0) then current_state = start; elsif (clockevent and clock = 1) then current_state - 启动状态 next_state = convert; cs = 0; wr = 0; rd = 1; read_data - 初始化 if (intr = 0) then next_state = read1; else next_state = convert; end if; cs = 1; wr = 1; rd = 1; read_data - 读状态1 next_state = read2; cs = 0; wr = 1; rd = 0; read_data - 读状态2 next_state = start; cs = 1; wr = 1; rd = 1; read_data - 其他状态 next_state = start; end case;end process comb;-读取adc数据-get_data : process(clock, reset)begin if (reset = 0) then p = 0; elsif (clockevent and clock = 1) then if (read_data = 1) then p smg7 := 11111100; - abcdefgh when 1 = smg7 := 01100000; when 2 = smg7 := 11011010; when

温馨提示

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

最新文档

评论

0/150

提交评论