基于FPGA的实用电子称.pdf_第1页
基于FPGA的实用电子称.pdf_第2页
基于FPGA的实用电子称.pdf_第3页
基于FPGA的实用电子称.pdf_第4页
基于FPGA的实用电子称.pdf_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

沈阳单片机开发网帮您精确掌握电子器件的使用细节 基于 FPGA 的实用电子称 基于 FPGA 的实用电子称 摘 要:该设计以现场可编程门阵列 FPGA 为核心控制部件,并基于超高速硬件描述语言 VHDL 在 Xilinx 公司的 SpartanE 系列的 XC2S100E 芯片上编程实现; 系统的硬件部分包括 FPGA 最小系统板,数据采集、人机交互界面三大部分。最小系统部分主要是扩展了外部数据 存储器,数据采集部分由压力传感器、信号的前级处理和 A/D 转换部分组成。人机界面 部分为键盘输入 , 点阵式液晶显示, 软件基于 VHDL 语言实现了本设计的全部控制功能, 包括基本的称重功能,和发挥部分的显示购物清单的功能,并增加了时钟、过载提示欠 量程提示、语音提示等创新功能。整机系统结构简单,使用方便。功能齐全,精度高, 具有一定的开发价值。 关键词:电子称,计价,压力传感器,FPGA,VHDL 第 1 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 目录 目录 第一章 系统方案的设计第一章 系统方案的设计 . 4 1.1 电子称的设计要求1.1 电子称的设计要求 4 1.1.1 基本要求 4 1.1.2 发挥部分 . 4 1.1.3 创新部分 4 1.2 设计的基本思路1.2 设计的基本思路 . 4 1.3 系统方案比较和论证1.3 系统方案比较和论证 . 4 1.1.3 控制器 4 1.3.2 前级放大器 5 1.3.3 A/D转换器 6 1.3.4 显示输出电路 6 1.4 系统组成1.4 系统组成 . 7 第二章 单元电路设计第二章 单元电路设计 . 7 2.1 称重传感器2.1 称重传感器 . 7 2.2 前端信号处理2.2 前端信号处理 . 8 2.3 A/D转换电路2.3 A/D转换电路 9 2.4 主控制控制电路2.4 主控制控制电路. 10 2.5 人机交互界面2.5 人机交互界面. 11 2.5.1 键盘接口电路. 11 2.5.2 LCD显示接口电路 . 12 2.5.3 LED数码管显示电路 . 12 2.6 日历时钟电路2.6 日历时钟电路 13 2.7 电源电路2.7 电源电路 14 2.8 其它扩展电路2.8 其它扩展电路 14 2.8.1 通讯接口电路 14 2.8.2 语音电路 15 2.8.3 报警电路 16 第 2 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 第三章 系统软件的设计 16 3.1 开发软件及编程语言简介3.1 开发软件及编程语言简介. 16 3.2 系统软件的设计3.2 系统软件的设计. 16 3.1.1 软件率程序流程. 16 3.1.2 VHDL模块设计 17 3.2.3 程序设计顶层映射原理. 19 3.3 程序清单及仿真3.3 程序清单及仿真 19 第四章 系统测试第四章 系统测试 21 4.1 测试仪器清单4.1 测试仪器清单. 21 4.2 测试方法4.2 测试方法. 21 4.3 测试结果和误差分析4.3 测试结果和误差分析. 21 4.3.1 测试结果. 21 4.3.2 误差计算及分析. 22 第五章 设计总结第五章 设计总结 22 参考文献参考文献 22 附录 主要元器件清单附录 主要元器件清单 . 23 附录 2 印制板图附录 2 印制板图. 23 附录 3 程序清单附录 3 程序清单. 24 第 3 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 第一章 系统方案的设计 第一章 系统方案的设计 1.1 电子称的设计要求 1.1.1 基本要求 1.1.1 基本要求 1) 能用简易键盘设置单价,加重后能同时显示重量、金额和单价; 2) 重量显示:单位为公斤;最大称重为 9.999 公斤,重量误差不大于0.005 公斤; 3) 单价金额及总价金额显示:单价金额和总价金额的单位为元,最大金额数值为 9999.99 元,总价 金额误差不大于 0.01 元; 4) 具有去皮功能和总额累加计算功能。 1.1.2 发挥部分 1.1.2 发挥部分 能显示购物清单,自拟 10 种商品名称或代号,清单内容包括:商品名称,数量,单价,金额, 本次购物总金额。 1) 清单内容的商品名称等可使用代号显示; 2) 清单内容增加购货日期和收银员编号; 3) 清单内容在(2)的基础上增加售货单位名称(自拟) ,且全部内容采用中文显示。 1.1.3 创新部分 1.1.3 创新部分 在完成基本要求和题目所提出的发挥部分要求的情况下,考虑到电子称实际应用的需要,又 增加了时钟功能,另外由于实际当中,称可以有一定量的过载,但不能超出要求的范围,为此我 们还设计了过载提示功能。 1.2 设计的基本思路 1.2 设计的基本思路 题目要求设计一个实用电子称,按照设计的基本要求,系统可分为三大模块,数据采集模块、 控制器模块、 人机交互界面模块。 其中数据采集模块完成对来自稳重传感器器的电压信号的检测、 放大、AD 转换。此时的数字信号送给控制器处理,由控制器完成被测物体重量的判断、显示等功 能。此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。在扩展功能上,本 设计增加了一个时钟芯片(PCF8563)用以显示购物日期/时钟,一个声光报警电路用以过载提示。 1.3 系统方案比较和论证系统方案比较和论证 1.3.1 控制器控制器 方案一 基于 51 系列单片机来实现。 目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机 对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量,由于系统需要的按键较 多,因此要加一个键盘显示管理芯片(ZLG7289)原理方框图如图 1.3.1 所示。 单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能 强,技术成熟等优点.但其缺点是外围电路比较复杂,编程复杂。使用这种方案会给系统设计带来一 定的难度。 第 4 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 MCU AT89S52 放 大 器 AD 转 换 器 显示器 键盘电路 时钟芯片 传感信号 ZLG 7289 图 1.3.1 单片机实现方案原理框图 图 1.3.1 单片机实现方案原理框图 方案二 采用现场可编程门阵列(FPGA)为控制核心 采用现场可编程门阵列(FPGA)为控制核心,利用 EDA 软件编程,下载烧制实现。系统集成于 一片 Xilinx 公司的 Spartan系列 XC2S100E 芯片上,体积大大减小、逻辑单元灵活、集成度高以 及适用范围广等特点,可实现大规模和超大规模的集成电路。 采用 FPGA 测频测量精度高,测量频率范围大,而且编程灵活、调试方便,本设计要求的 精度较高,所以要求系统的稳定性要好,抗干扰能力要强。因此,我们决定采用方案二, 即采用 FPGA 为控制核心。 1.3.2 前级放大器前级放大器 压力传感器输出的电压信号为毫伏级,所以对运算放大器要求很高。我们考虑可以采用以下 几种方案可以采用: 方案一 利用普通低温漂运算放大器构成多级放大器。 普通低温漂运算放大器构成多级放大器会引入大量噪声。由于 A/D 转换器需要很高的精度, 所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此中方案不宜采用。 方案二 由高精度低漂移运算放大器构成差动放大器。 差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如 OP07)做成一个差动放大 器。此方案原理图如图 1.3.2 所示。 图图 1.3.2 高精度运算放大器电路图高精度运算放大器电路图 电阻 R1、R2 电容 C1、C2、C3、C4 用于滤除前级的噪声,C1、C2 为普通小电容,可以滤 除高频干扰,C3、C4 为大的电解电容,主要用于滤除低频噪声。 第 5 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 优点:输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器 R6 可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放 大器,所以输出电阻不是很大,比较符合应用要求。 缺点:此电路要求 R3、R4 相等,误差将会影响输出精度,难度较大。实际测量,每一级运 放都会引入较大噪声。对精度影响较大。 方案三 采用专用仪表放大器 INA126 实现。 此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外 部接口简单。INA126 接口如图 1.3.3 所示。可以通过改变的大小来改变放大器的增益。 G R 图 1.3.3 INA126 外部接线图 图 1.3.3 INA126 外部接线图 基于以上分析,我们决定采用方案三实现前级放大功能,即制作方便而且精度很好的专用仪 表放大器 INA126。 1.3.3 A/D 转换器转换器 由上本设计使用的压力传感器和精度的分析可知:A/D 转换器误差应在以下 %03. 0 12 位 A/D 精度:10Kg/4096=2.44g 14 位 A/D 精度:10Kg/16384=0.61g 考虑到其他部分所带来的干扰,12 位 A/D 无法满足系统精度要求。 所以我们需要选择 14 位或 者精度更高的 A/D。 方案一 逐次逼近型 A/D 转换器,如:ADS7805、ADS7804 等。 逐次逼近型 A/D 转换,一般具有采样/保持功能。采样频率高,功耗比较低,是理想的高速、 高精度、 省电型 A/D 转换器件。 高精度逐次逼近型 A/D 转换器一般都带有内部基准源和内部时钟, 基于 FPGA 构成的系统设计时仅需要外接几个电阻、电容。但考虑到所转换的信号为一慢变信号, 逐次逼近型 A/D 转换器的快速的优点不能很好的发挥,且根据系统的要求,14 位 AD 足以满足精 度要求,太高的精度就反而浪费了系统资源。所以此方案并不是理想的选择。 方案二 双积分型 A/D 转换器:如:TLC7135/ICL7135、ICL7109 等。 双积分型A/D转换器精度高,但速度较慢(如:TLC7135),具有精确的差分输入,输入阻抗高(大 于 103M) ,可自动调零,超量程信号,全部输出于TTL电平兼容。 双积分型 A/D 转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对 50HZ 的工频干扰抑制能力较强,对高于工频干扰(例如噪声电压)已有良好的滤波作用。只要干 扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号,很容易受到 工频信号的影响。故而采用双积分型 A/D 转换器可大大降低对滤波电路的要求。 作为电子秤,系统对 AD 的转换速度要求并不高,精度上 14 位的 AD 足以满足要求。另外双积 分型 A/D 转换器较强的抗干扰能力和精确的差分输入,低廉的价格。综合的分析其优点和缺点, 我们最终选择了方案二,即使用 TLC7135 对信号进行 AD 转换。 。 1.3.4 显示输出电路显示输出电路 第 6 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 方案一 全部采用数码管显示,数码能显示时钟,以及被测物体的重量等信息,此方案显示 直观,而且编程简单,但若要同时显示单价,金额售货员编号等诸多信息则需要要大量的数码管, 而且不能显示中文。由此增加了电路的复杂程度。也加大了编程的难度。 方案二 使用 LED 与字符型 LCD 相结合显示。考虑到系统要求显示的信息量较多,可以用 LED 与 LCD 分别显示不同信息,LED 可以显示时钟和特重量,LCD 采用带中文字库的144*32点 阵式液晶显示器系列: LM3037,,可以设置显示单介,金额,中文,购物日期等。LCD 具有低功耗、 可视面大、画面友好抗干扰能力强等功能,在显示技术已得到广泛应用。 由上述分析综合,我们采用了方案二,让其各自完成相应的显示任务。 1.4 系统组成系统组成 经过方案比较和论证, 最终确定的系统组成框图如图 1.4.1 所示。 从图中可以看到系统的基本 工作流程和各单元电路所用到的核心器件, 其中控制器采用 Xilinx 公司可编程器件 FPGA 为核心, 基于 ISE 软件平台,采用 VHDL 编程实现数据处理、LED 和 LCD 驱动、时钟芯片的 I2C 通讯、 键盘控制等模块,其它单元电路在前面都有所介绍。 图图 1.4.1 电子称系统的组成结构图电子称系统的组成结构图 第二章第二章 单元电路设计单元电路设计 2.1 称重传感器称重传感器 按照设计的要求,称重范围 09.999Kg,重量误差不大于005. 0Kg,考虑到秤台自重、振 动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重(9。999Kg) 。采 用的是湖南宇航科技限公司生产的 LS-1 型传感器,表 2。1。1 为称重传感器的技术指标。其量程 为 20Kg,精度为,满量程时误差%01. 00.002Kg。可以满足本系统的精度要求。其原理如图 2.1.1 所示。 表表 2.1.1 LS-1 型传感器的技术指标型传感器的技术指标 灵敏度 mv/v 10.10(13kg) 20.10(6 25kg) 非线性 %FS 0.02 重复性 0.02 第 7 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 蠕变 %FS/30min 0.02 零点输出 %FS 1 零点温度系数 %FS/10 0.02 输入电阻 42015 输出电阻 3503 绝缘电阻 M 5000 供桥电压 V 10(DC/AC) MAX:15(DC/AC) 温度补偿范围 1050 允许温度范围 2060 允许过负荷 %FS 150 连接电缆 mm 4400 连接方式 输入:红() 、黄() 输出:蓝() 白() 图图 2.1.1 称重传感器电桥原理图称重传感器电桥原理图 LS-1 称重传感器是利用电阻应变原理构成,当外力 F 直接作用在贴有 R1,R2,R3,R4 四片 应变的弹性体上时, 弹性体发生变形, 电阻应变片的阻值发生变化, 致使电桥发失去平衡, 在 R1、 R3 输入额定桥压时,R2、R4 上刚有与外力成正比的电压信号输出。输出信号电压可由下式给出: 2.2 前端信号处理前端信号处理 由于稳重传感器输出的信号为毫伏级信号,比 AD 转换器的输入信号低 2-3 个数量级,故需 要设计一个前置放大器。经过方案比较和论证,我们选择了仪用放大器 INA126, 构成的放大器及去皮电路。其电路原理图如图 2.2.1 所示。 第 8 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 RG 1 I- 2 I+ 3 V- 4 REF 5 VO 6 V+ 7 RG 8 INA126 100K RAD1 IN+ IN- 10K R4 3 2 6 74 LM741CN U1 +12 -12 -12 1K R3 1K R2 +12-12 +12 VO RET GNDM 图图 2.2.1 前置放大硬件电路图前置放大硬件电路图 图中,通过调节 RAD1的阻值来改变放大倍数。其放大增益为 1 80 5 AD R K G += 微弱信号 Vi1 和 Vi2 被分别放大后从 INA126 的第 6 脚输出。A/D 转换器 TLC7135 的输入电 压变化范围是-2V+2V, 传感器的输出电压信号在020mv左右, 因此放大器的放大倍数在200 300 左右,可将 R 接成 100K 的电位器。由于 TLC7135 对高频干扰不敏感,所以滤波电路主要针 对工频及其低次谐波引入的干扰。因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很 低。 图中的 LM741 的输出端与 INA126 的地端相连,LM741 的 2 脚与 6 脚相连构成电压跟随器, R4 与正负电源相接,通过改变 R4 的阻值可使 VO 与 RET 之间的压差变化,从而实现调零、去 皮的功能。 2.3 A/D 转换电路转换电路 TLC7135 是一种双积分式 4 位半单片 A/D 转换器,其工作原理是将输入电压转换成时间(脉 冲宽度信号)或频率 I 俯冲频率) ,再通过定时器(计数器)获得数字信号。其主要性能是: i. 具有高输入阻抗(109) ,对被测电路几乎没有影响; ii. 具有自动校零和自动判别信号极性; iii. 有超、欠输出信号; iv. 采用位扫描与 BCD 码输出。 A/D 转换电路如图 2.3.1 所示。由于 TLC7135 内部没有振荡器,所以需要外接。但 A/D 转换 器精度与时钟频率的漂移无关。 正向积分时间 T1 和反向积分时间 T2 按相同比例增加并不影响测 量的结果。ICL7135 的时钟频率典型值为 200kHz 最高允许为 1200kHz,时钟频率越高,转换速度 越快。每输出一位 BCD 码的时间为 200 个时钟周期,选通脉冲位于数据脉冲的中部,如果时钟 频率太高,则数据的接受程序还没有接受完毕,数据就已经消失了。考虑到此系统频率要求不是 太高,因此我们取时钟频率 250kHz。对于这个时钟频率,本设计由 FPGA 的 50M 晶振分频得到, 既减少了硬件电路的设计,又提高了 FPGA 的利用率。 第 9 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 1uF C2 1uF C4 1uF C5 100K R9 1M 21 R10 0.1uF C7 0.01uF C6100K R11 -VCC VCC DW1 DW2 VCC VI 3 1 +VO 2 GND LM317VCC 1K R6 10K R8 10K R7 4K7 R5 0.1uF C1 TD2 TD3 TD4 TD5 TDBY TCLK TDR TDS TDG TDQ TD1 KG KQ 470 C8 0.1uF C9 B3 B4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VCC+ 11 17 JP_OUT VCC- 1 VREF 2 AGND 3 INT 4 AZ 5 BUF 6 CREF+ 7 CREF- 8 IN- 9 IN+ 10 D5 12 B1 13 B2 14 B3 15 B4 16 D4 17 D3 18 D2 19 D1 20 BUSY 21 CLK 22 POL 23 DGND 24 R/H 25 STR 26 DR 27 UR 28 TLC7135 * B1 B2 VO RET 图图 2.3.1 A/D 转换电路原理图转换电路原理图 在设计中, TLC7135 的所需的基准电源由 VCC 经过三端可调稳压器 LM317 稳压后提供, C8、 C9 为滤波电容。图中 C2 是基准电容;C4 和 R9 为积分元件;C5 为自零电容;R11 和 C7 组成标 准的滤波网络;R10、C6 和 DW1、DW2 组成输入过压保护电路;R7 为基准电压调节电位器,可 以根据需要显示的满度值选择基准电压的大小,本设计选择的基准电压为 1.0000V,它们的关系 是;满度值为基准电压的两倍。 由于 A/D 转换器精度与外接的积分电阻、积分电容的精度无关,故可以降低对元件质量的要 求。不过积分电容和积分电容的介质损耗会影响到 A/D 转换器的精度,所以应采用介质损耗较小 的聚丙乙烯电容 2.4 主控制控制电路主控制控制电路 本设计以Xilinx公司的SpartanE系列的XC2S100E芯片为控制核心,FPGA 最小系 统为控制器实现电子称的各项功能。FPGA器件采用现场可编程单元阵列LCA结构, 它由三个可编程基本模块组成:输入/输出模块IOB阵列、可配置逻辑块CLB阵列及 可编程互连网络PI。配置逻辑功能块CLB的可编程逻辑单元,由分层的通用布线通 道(Rouning Channel)连接,同可编程输入输出功能块围绕来实现,基中CLB提供 实现逻辑功能的逻辑单元;IOB提供引脚到内部信号线的接口, 布线通道则提供CLB 和IOB的到连接通道。 设计使用的FPGA最小系统板由XC2S100E、50MHZ晶振、电源部分、指示部 分和开关组成,电源部分将5V直流经过TPS70451转换得到+3。和5V +1。8V的直 流电,PROM(XC18V02)是一个掉电存储器,在掉电时可自动保存数据,4个脚双 列插针用于其它外部设备连接。图2.4.1为FPGA电路接口图。 系统实现的功能主要通过软件的编程实现,FPGA内部分为四个模块:数据处理 模块、LED和LCD驱动模块、I2C通讯模块和键盘控制模块,各模块的设计将在第 三章详细介绍。 第 10 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 163164 165166 167168 169173 174175 176 178179 180181 187188 189191 192193 194 198199 200201 202203 204205 206 210 212 FPGAD 34 56 78 910 1115 1617 1820 2122 2324 27 3029 3331 3534 4036 4241 4443 4645 4847 49 FPGAA 55 57 59 61 63 69 71 74 77 83 87 89 94 96 98 100 102 108109 101 99 97 95 93 88 86 84 82 75 73 70 68 64 62 60 58 56 FPGAB 110111 112113 114115 116 120121 122123 125126 127129 132 133134 135136 138139 140141 145 146147 148149 150151 152154 160 161162 FPGAC DS1 DS2 DS3 DS4 DS5 DS6 DS7 DS8 DS9 DS10 DS11 DS12DS13 DS14 DS15 DS16 INT SCL SDA DYK1 DYK2 DYK3 DY1 DY2 DY3 DY4 DY5 DY6 DY7 DY8 DX0 DX1 DX2 DX3 DX4 DX5 DX6 DX7 DXA DXB DXC KQ KG 2TXD 2RXD D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 D32 D33 D34 BP1 BP2 BP3 BP4 BP5 BP6 BP7 BP8 VCC D35 D36 D37 D38 D39 D40 RST PSB 图图 2.4.1 FPGA 最小系统插脚原理图最小系统插脚原理图 2.5 人机交互界面人机交互界面 人机交互界面显示是否直观, 控制是否方便直接影响收银员的工作效率和顾客的满意程度, 困 此设计时经多方考虑,我们尽可能将显示界面友好化,将控制键盘简单化。由于 FPGA 可利用的 引脚多,可以控制键盘、LCD 和 LEC。不需要外加键盘或显示控制芯片,从而简化了外部电路。 而且编程难度不大,容易实现。 2.5.1 键盘接口电路键盘接口电路 由于电子称需要设置单价,这就需要一个设置键和十个数字键,还具有去皮、结算、确认、 删除等功能,总共需设置 16 个键(包括一个复位键) 。考虑到 FPGA 负载电流能力有限,因此按 键一端均通过 10K 电阻再与 PFGA 引脚相连,其电路原理图如图 2.5.1 所示,图中 REL1、RSL2 为 10K 排阻。 第 11 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 S1 S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16 VCC 1 2 3 4 5 6 7 8 9 10K RSL1 1 2 3 4 5 6 7 8 9 10K RSL2 VCC DS1 DS2 DS3 DS4DS5DS6 DS7 DS8 DS9 DS10DS11DS12DS13DS14DS15DS16 图图 2.5.1 键盘电路原理图(键盘电路原理图(RSL1、RSL2 为排阻)为排阻) 2.5.2 LCD 显示接口电路显示接口电路 图 2.5.2 为液晶显示接口电路,其中主要引脚说明如下:4 脚为寄存器选择,5 脚为读写选择, 614 脚为数据总丝,15 脚为片选端,本设计接 VCC 使其处于工作状态。16 脚悬空,17 脚为复 位信号输入端,18 脚为 LCD 负压驱动脚。 VCC RT1 VCC DYK1 DYK2 DYK3 DY1 DY2 DY3 DY4 DY5 DY6 DY7 DY8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 MHDR1X18 JP2 VCC PSB RST 图图 2.5.2 液晶显示接口电路图液晶显示接口电路图 2.5.3 LED 数码管显示电路数码管显示电路 由于 LCD 为 144*32 点阵式液晶, 显示界面有限, 本设计增设的八位共阳极 LED 数码管能够 显示商品的重量和商品的总价,使顾客对自己购买的物品一目了然。 其显示的功能主要由软件的设计实现,为了节省系统的资源,本系统采用动态显示。动态显 示原理如下:当向 LED 的段码数据口发送第一个 8 位数据,这时只有一个数码管显示该数码,延 时一段时间后可以发送第二 8 位数据,显示器分时轮流工作,虽然每次只有一个显示器显示,但 由于人的视觉暂留现象,我们仍能感觉到所有显示器都在同时显示。 图2.5.3为显示电路的原理图,考虑到FPGA驱动能力有限,我们采用三极管(9012)驱动数码 管,并由74HC138译码器控制位码的选通,只有当使能端G1为1,G2A,G2B为0时译码器有效, 故G1接VCC,G2A,G2B接地,否则所有的输出被封锁在高电平上。数码管的位码由FPGA 通过一 个低功耗的锁存器(74HC573)给出。 第 12 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 QX1QX2 QX3QX4 QX5QX6 QX7 QX8 10K R17 10KR18 10K R19 10KR20 10KR21 10K R22 10K R23 10KR24 470 R25 470 R26 470R27 470 R28 470 R29 470 R30 470R31 470R32 LA LB LC LD LE LF LG LH LA LB LC LD LE LF LG LH LA LB LC LD LE LF LG LH H 3 2.6 日历时钟电路日历时钟电路 按发挥部分的要求, 需要显示购货日期。 最简单的办法是在电路中增加了一颗日历时钟芯片。 系统采用PCF8563 完成时钟设计,PCF8563 是Philips公司推出的一款带I2C总线,具有极低功耗的 A 1 B 2 C 3 G2A 4 G2B 5 G1 6 Y7 7 GND 8 Y6 9 Y5 10 Y4 11 Y3 12 Y2 13 Y1 14 Y0 15 VCC 16 74HC138 VCC OE 1 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 GND 10 LE 11 Q7 12 Q6 13 Q5 14 Q4 15 Q3 16 Q2 17 Q1 18 Q0 19 VCC 20 74HC573(2) VCC AX0 AX1 AX2 AX3 AX4 AX5 AX6 AX7 DX0 DX1 DX2 DX3 DX4 DX5 DX6 DX7 DXA DXB DXC VCC VCCVCC VCCVCCVCCVCCVCC A 11 B 7 C 4 D 2 E 1 F 10 G 5 H 3 1 12 2 9 3 8 4 6 DIS1 A 11 B 7 C 4 D 2 E 1 F 10 G 5 3 8 2 9 1 12 4 6 DIS2 2.53 数码管显示电路连接图数码管显示电路连接图 第 13 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 多功能时钟/日历芯片,它具有四种报警功能和定时功能;内部时钟电路、内部振荡电路、内部低 电压检测以两线制I2C总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。本系统 PCF8563 与FPGA接口采用图 2.6.1 所示接口方案。 OSCI 1 OSCO 2 INT 3 VSS 4 SDA 5 SCL 6 CLKOUT 7 VCC 8 PCF8563 32.768K Y1 15P C11 15P C12 VCC 104 C13 5.1K R1 5.1K R2 5.1K R3 VCC SCL SDA INT 图图 2.6.1 日历时钟电路原理图日历时钟电路原理图 图中,在 1、2 端接入 32.768kHz 的石英晶振,配置成片内振荡器,VDD 与地之间接入 1 个 电容供电维持时钟芯片。 PCF8563 与 FPGA 接口采用 3 根口线, FPGA 通过 I2C 总线读取PCF8563 的基准时间。其中 SCL 为时钟输入端,数据随时钟信号同步输入器件或从器件输出; SDA 为双 向引脚,用于串行数据的输入输出。另外值行一提的是,SDA、SCL、INT 均为漏极开路,必须 加上拉电阻。 2.7 电源电路电源电路 系统多个电源,FPGA 需要5V 电源,传感器需要10V 以上的线性电源(不能用开关电源, 否则称重数据不稳定) 。 我们采用了三端固定稳压芯片 7805 和 7812 为系统提供稳定的电源。 这个 部分由整流电路、滤波电路、稳压电路等组成,如图 2.7.1 所示。图中 D 为桥式整流管,C1、C2 为滤波电容,C3、C4 为旁路电容,用以改善负载的瞬态响应。 在这里只给出了5V 电源电路,+12V 电源电路与+5V 相似,因此不再画出。 4 1 2 3 BRIDGE1 D18 3K R33 LED D19 104 C2 104 C4 470U C1 470U C3 POWER(+9V) J7 Vin 1 GND 2 +5V 3 LM7805 1 2 CON2 J1VCC VCC GND 图图 2.7.1 +5V 电源电路图电源电路图 2.8 其它扩展电路其它扩展电路 2.8.1 通讯接口电路通讯接口电路 一般的商用电子称都能与上位机(PC 机)进行通讯,可以将大量的商品数据存于上位机, 然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。基系统采用 RS232 串口实现该 项功能。 RS-232 的逻辑电平用正负电压表示,且信号使用负逻辑,逻辑 0 的电压范围是+5V+15V, 而逻辑 1 的电压范围是-5V -15V,RS-232 端口是计算机与其他设备沟通的最常用的接口,不但 第 14 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 操作简单,而且价格便宜。 FPGA 的输入和输出使用的是 5V 逻辑电平而不是 RS-232 电压,如何进行两种信号的转换, 是 连接时需要解决的问题,事实上,解决的方法很简单,只需使用一个 MAX232 电平转换专用芯片 即可,其电路如图 2.8.1 所示。MAX232 包含两个将 TTL 输入转换成 RS-232 输出的驱动器,还包 含两个将 RS-232 输入翻译成 CMOS 输出的接收器,这些驱动器和接收器具有反向的功能。 C1+ 1 C1- 3 C2+ 4 C2- 5 T1IN 11 T2IN 10 R1OUT 12 R2OUT 9 R2IN 8 R1IN 13 T2OUT 7 T1OUT 14 GND 15 V- 6 V+ 2 VCC 16 2MAX232 104 2C2 104 2C3 104 2C5 104 2C4 104 2C6 VCC 2TXD 2RXD 1 6 2 7 3 8 4 9 5 JTX 图图 2.8.1 RS232 通讯接口电路通讯接口电路 2. .8. .2 语音电路语音电路 语音电路是系统主要扩展功能之一,能够由语音电路发出超载、欠量程或商品重量、价格等 语音提示。本系统采用的 ISD1420 语音电路为美国 ISD 公司出品的优质单片语音录放电路, ISD1420 由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大 器组成,能够录放的时间为 20 秒。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、 一个电源、少数电阻电容组成如图 2.8.2 所示。 A0 1 A1 2 A2 3 A3 4 A4 5 A5 6 A6 9 A7 10 PLAYL 23 REC 27 PLAYE 24 RECLED 25 XCLK 26 AGC 19 MIC 17 MIC REF 18 ANA OUT 21 ANA IN 20 SP+ 14 SP- 15 VSS A 13 VSS D 12 VCCA 16 VCCD 28 ISD1420 100K RSL1 100K RSL2 100K RSL3 VCC DS11K R4 0.001uF C1 S1 S2 S3 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 S4 470K R5 4.7uF C2 0.1uF C3 5.1K VCC R6 0.1uF C4 0.1uF C5 1K R7 10K R8 0.1uF C6 220uF C8 10K R9 LS A8 A9 A10 MK 图图 2.8.2 语音单元录放电路原理图语音单元录放电路原理图 录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国 ISD 公司的专利直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储, 以其原本的模拟形式进入 EEPROM 存储器。直接模拟存储允许使用一种单片固体电路方法完成 其原本语音的再现。不仅语音质量优胜,而且具有断电语音保护功能。 第 15 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 2.8.3 报警电路报警电路 图 2.8.3 为系统报警电路原理图,除了上一小节中语音可能用于超载和欠量程提示外,系统 还设计了两个发光二极管作为超载和欠量程指示灯,使系统更加完善。当系统判断为超载或欠量 程时,FPGA 给输出一个低电平信号 KG(超载)或 KQ(超载) ,从而驱动发光二极管发光提示。 QGYQQY 10K R13 10K R14 470 R15 470 R16 12 LED2 DS1 12 LED2 DS2 VCC KGKQ 图图 2.8.3 报警电路原理图报警电路原理图 第三章 系统软件的设计第三章 系统软件的设计 3.1 开发软件及编程语言简介开发软件及编程语言简介 系统采用硬件描述语言 VHDL(Very High Speed Integrated Circuit Hardware Description Language)按模块化方式进行设计,并将各模块集成于 FPGA 芯片中,然后通过 Xiliinx ISE7.1 软 件开发平台和 ModelSim SE6.仿真工具,对设计文件自动的完成逻辑编译、综合及优化、逻辑布 局布线、逻辑仿真,最后对 FPGA 芯片进行编程,实现系统的设计要求。 VHDL 具有多层次的描述系统硬件功能的能力;支持自顶向下(Top to Down)和基于库 (Library-Based)的设计方法;VHDL 对设计的描述具有相对独立性。因此,设计者可不必了解 硬件结构,从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用 VHDL 对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化 工具生成具体的门级逻辑电路的网表,下载到具体的 FPGA 器件中去,从而实现可编程逻辑器件 的专用集成电路(ASIC)设计。 3.2 系统软件的设计系统软件的设计 根据系统的要求,系统的大部分功能都以硬件为基础,通过 VHDL 编程实现,本设计软件实现 的主要能如下 1) 设置单价 2) 显示重量、金额和单价 3) 显示日期、时钟 4) 去皮 5) 累计 6) 汇总 7) 语音报警(超载、欠量程) 3.2.1 软件率程序流程 3.2.1 软件率程序流程 系统的主程序流程图如图 3.2.1 所示,该程序流程图是根据系统软件的工作流程得出的,它 实际上是各个程序模块的集合,如程序初始化包括系统分频、LCD 初始化、语音控制模块初始化 等。主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。 第 16 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 图图 3.2.1 系统主程序流程图系统主程序流程图 3.2.2 VHDL 模块设计模块设计 1 分频模块分频模块 本设计所使用的 FPGA 最小系统的晶振为 50MHZ,要把这个频率的晶振应用于实际中,就 必须对该频率做一些处理,简单地说就是分频。分频为我们所需要的固定频率值再投于应用中。 比如本系统中 TLC7135 的时钟信号 clkout1 就是对标准 clk 进行分频,分频系统为 200。所以 clkout1 的频率为: 50M Hz/ 200 = 250KHz 也就是说每秒发出 25K 个 clkout1 信号,且占空比为 50%。另外分频模块还给出一个 5KH 的频供 图图 3.2.2 分频模块分频模块 其它模块使用。分频模块示意图如图 3.2.2 所示。 原理图原理图 2 SDA,另一根是时钟 线 S 50MHZ 5KHZ 250KHZ Clk clkout Reset clkout1 I2C 通讯模块通讯模块 I2C 总线是一种串行数据总线,只有二根信号线,一根是双向的数据线 CL。目前,支持 I2C 总线通信协议的视频编、解码芯片大多只支持 100Kb/s 或 400Kb/s 的传 输速度,并且支持两种地址:从设备地址(SCLAVE ADDRESS,8bit) ,分为读地址和写地址, 高 7 位用于选中芯片, 第 0 位是读/写控制位(R/W) ,决定是对该芯片进行读或写操作;内部 第 17 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 寄存器单元地址(SUBADRRESS,8bit) ,用于决定对内部的哪个寄存器单元进行操作,通常还 支持地址单元连续的多字节顺序读写操作。I 设计的核心工作是对 I2C 总线命令及时序的状态划分。在控制核内共设置了两个状态机,分 别称 3数数 包括接收部分,数据 RAM,乘法运算模块等。系统将商品的代号、名称、单 价等 单价 并自动检测商品是否大于称重传感器的量程,如果大于传感器的量程则向报警电路输出一个低电 CD 译码模块。 图 3.2.3 为数据处理模块结 构图 为命令状态机和时序状态机。 其中, 命令状态机用于管理 I2C 总线上的命令状态, 并实现 I2C 总线具体的读、写操作的命令状态转移过程;时序状态机用于实现 I2C 总线上启动、停止、读、 写、确认等命令的具体时序关系。这样就把控制核从逻辑上分为两个状态机,共同完成最终的总 线命令与时序。 I2C 程序流程图如下图所示。 开始 发开始信号 发开始信号 写器件地址 写器件地址 写器件从地址 写器件从地址 重发开始信号 写寄存器地址 写器件读命令 写入初始化数据 读各个寄存器 发结束信号 发结束信号 图图 3.3.3 时钟芯片时钟芯片 I2C 程序流程图程序流程图 结束 写 PCF8563 各个寄存器 读 PCF8563 各个寄存器 据处理模块据处理模块 数据处理模块 信息存于数据 RAM 中,当接收到 AD 转换器的数据(电压信号)后,将其转化为相应重量 数据信号,并将其进行乘法运算得到金额,即 金额=重量 平信号 BG,使发光二极管点亮。数码管全部显示零。 在进行乘法运算得出结果后, 各信息送到 LED 或 L 。 第 18 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 数据 RAM 乘法 模块 接收 AD 转换数据 电压-重量 转换模块 至译码模块 判断 模块 报警信号 键盘控制 图图 3.3.4 数据处理模块原理图数据处理模块原理图 4. 译码显示模块译码显示模块 译码显示模块是建立在内部系统和观测人之间的桥梁。通过译码显示,使输出结果可视化, 界面友好化。 该模块由 LED 译码和 LCD 译码组成,主要是将各信息量转换成相应的显示代码。 LED 译码模块是将数字量转换为 BCD 码来驱动数码管。采用动态显示,因此采用 VHDL 状态机 设计,共分为八个状态,即八个数码管的位码依次选通点亮数码管。 用 FPGA 驱动液晶显示的原理是对 LM3037 进行控制, 通过 8 位的总线, 先对 LM3037 进行配置, 即写入命令,然后输入要显示的内容,即写入数据,状态转换图如图 3.3.5 所示。 3.2.3 总控制模块原理图 图 3.3.5 液晶驱动程序状态转换图 图 3.3.5 液晶驱动程序状态转换图 5. 键盘控制模块 5. 键盘控制模块 键盘控制电路由 16 个按键组成,其中数据键 10 个,控制键 6 个。键盘控制程序的设计将各 按键设置为特定的功能,使用起来十分方便。可以通过键盘设置日期、时间、商品代号、单价等 不同信息。 3.2.3 程序设计顶层映射原理 3.2.3 程序设计顶层映射原理 系统的程序设计是基于 VHDL 的模块化设计,通过 ISE 工程编辑器(Project navigator)产 生原理图模块 (Create Schematic Symbol) 或自动产生顶层映射的原理图 (View RTL Schematic) , 如图 3.3.6 所示 3.3 程序清单及仿真 3.3 程序清单及仿真 程序清单(见附录) 。 设计输入利用 VHDL 语言完成后,接下来是对程序进行功能仿真(Function Simulation)其 仿真的目的是检查程序是否有错,是否达到预定的目标。之后是时序仿真(Timing Simulation) , 其目的是通过时序可以更清楚的了解程序的工作过程, 在较复杂的系统中时序仿真是必不可少的。 第 19 页 共 33 页 沈阳单片机开发网帮您精确掌握电子器件的使用细节 各模块的时序仿真图见附录。

温馨提示

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

评论

0/150

提交评论