基于FPGA的实用电子砰设计论文.docx
《基于FPGA的实用电子砰设计论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的实用电子砰设计论文.docx(54页珍藏版)》请在冰豆网上搜索。
基于FPGA的实用电子砰设计论文
基于FPGA的实用电子称
摘要:
该设计以现场可编程门阵列FPGA为核心控制部件,并基于超高速硬件描述语言VHDL在Xilinx公司的SpartanⅡE系列的XC2S100E芯片上编程实现;系统的硬件部分包括FPGA最小系统板,数据采集、人机交互界面三大部分。
最小系统部分主要是扩展了外部数据存储器,数据采集部分由压力传感器、信号的前级处理和A/D转换部分组成。
人机界面部分为键盘输入,点阵式液晶显示,软件基于VHDL语言实现了本设计的全部控制功能,包括基本的称重功能,和发挥部分的显示购物清单的功能,并增加了时钟、过载提示欠量程提示、语音提示等创新功能。
整机系统结构简单,使用方便。
功能齐全,精度高,具有一定的开发价值。
关键词:
电子称,计价,压力传感器,FPGA,VHDL
DesignofappliedElectronic-balance
BasedonFPGA
Tutor:
YanWang
WeiqingXUZhengyuTangRenfuLan
(ElectricEngineeringCollegeNanHuaUniversityHengyangHunan,China)
Abstract:
Thisisadesignforappliedelectronic-balancewhichisbasedonFPGA(FieldProgrammableGateArray).ThedesignwillbeachievedintheSpartan-IIE-XC2S100EchipofXilinxcorporationbyprogrammingwiththeVHDL(VeryHigh-speedDescriptionLanguage)ThehardwareofthesystemincludestheminimumsystemofFPGA,thedatacollector,theinterfaceofpersonandmachine.Theminimumsystem’sfunctionmainlyistoexpandthestorage,ThedatacollectoriscomposedofpressuresensorandA/Dconvertor,TheinterfaceofpersomandmachineincludeskeyboardandLCDdisplay.ThesoftwarewillachieveallcontrolfunctionsofthisdesignaccordingtothelanguageofVHDL.Thisfunctionsisincludingtoweighthefunctionbasically,andthefunctionoftheshoppingdetailedlist.Besides,weaddingseveralexpandingfunctionssuchasdisplayingclockandpromptingwhenthematterisoverload.Thestructureofthewholemachineissimple,theusageisconvenience.,theaccuracyishigh,Itisworthofempolderingtothisappliedelectronic-balance.
Keyword:
Theelectronicbalance,Pressuresensor,FPGA,VHDL
第一章系统方案的设计
1.1电子称的设计要求
1.1.1基本要求
1)能用简易键盘设置单价,加重后能同时显示重量、金额和单价;
2)重量显示:
单位为公斤;最大称重为9.999公斤,重量误差不大于±0.005公斤;
3)单价金额及总价金额显示:
单价金额和总价金额的单位为元,最大金额数值为9999.99元,总价金额误差不大于0.01元;
4)具有去皮功能和总额累加计算功能。
1.1.2发挥部分
能显示购物清单,自拟10种商品名称或代号,清单内容包括:
商品名称,数量,单价,金额,本次购物总金额。
1)清单内容的商品名称等可使用代号显示;
2)清单内容增加购货日期和收银员编号;
3)清单内容在
(2)的基础上增加售货单位名称(自拟),且全部内容采用中文显示。
1.1.3创新部分
在完成基本要求和题目所提出的发挥部分要求的情况下,考虑到电子称实际应用的需要,又增加了时钟功能,另外由于实际当中,称可以有一定量的过载,但不能超出要求的范围,为此我们还设计了过载提示功能。
1.2设计的基本思路
题目要求设计一个实用电子称,按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互界面模块。
其中数据采集模块完成对来自稳重传感器的电压信号的检测、放大、AD转换。
此时的数字信号送给控制器处理,由控制器完成被测物体重量的判断、显示等功能。
此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。
在扩展功能上,本设计增加了一个时钟芯片(PCF8563)用以显示购物日期/时钟,一个声光报警电路用以过载提示。
1.3系统方案比较和论证
1.3.1控制器
方案一基于51系列单片机来实现。
目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量,由于系统需要的按键较多,因此要加一个键盘显示管理芯片(ZLG7289)原理方框图如图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为大的电解电容,主要用于滤除低频噪声。
优点:
输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R6可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。
输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。
缺点:
此电路要求R3、R4相等,误差将会影响输出精度,难度较大。
实际测量,每一级运放都会引入较大噪声。
对精度影响较大。
方案三采用专用仪表放大器INA126实现。
此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。
INA126接口如图1.3.3所示。
可以通过改变
的大小来改变放大器的增益。
图1.3.3INA126外部接线图
基于以上分析,我们决定采用方案三实现前级放大功能,即制作方便而且精度很好的专用仪表放大器INA126。
1.3.3A/D转换器
由上本设计使用的压力传感器和精度的分析可知:
A/D转换器误差应在
以下
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显示输出电路
方案一全部采用数码管显示,数码能显示时钟,以及被测物体的重量等信息,此方案显示直观,而且编程简单,但若要同时显示单价,金额售货员编号等诸多信息则需要要大量的数码管,而且不能显示中文。
由此增加了电路的复杂程度。
也加大了编程的难度。
方案二使用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称重传感器
按照设计的要求,称重范围0~9.999Kg,重量误差不大于
Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重(9。
999Kg)。
采用的是湖南宇航科技限公司生产的LS-1型传感器,表2。
1。
1为称重传感器的技术指标。
其量程为20Kg,精度为±
,满量程时误差
0.002Kg。
可以满足本系统的精度要求。
其原理如图2.1.1所示。
表2.1.1LS-1型传感器的技术指标
灵敏度
mv/v
1±0.10(1-3kg) 2±0.10(6-25kg)
非线性
%FS
±0.02
重复性
0.02
蠕变
%FS/30min
±0.02
零点输出
%FS
±1
零点温度系数
%FS/10℃
±0.02
输入电阻
Ω
420±15
输出电阻
350±3
绝缘电阻
MΩ
≥5000
供桥电压
V
10(DC/AC) MAX:
15(DC/AC)
温度补偿范围
℃
-10~+50
允许温度范围
-20~+60
允许过负荷
%FS
150
连接电缆
mm
Φ4×400
连接方式
输入:
红(+)、黄(-)输出:
蓝(+) 白(-)
图2.1.1称重传感器电桥原理图
LS-1称重传感器是利用电阻应变原理构成,当外力F直接作用在贴有R1,R2,R3,R4四片应变的弹性体上时,弹性体发生变形,电阻应变片的阻值发生变化,致使电桥发失去平衡,在R1、R3输入额定桥压时,R2、R4上刚有与外力成正比的电压信号输出。
输出信号电压可由下式给出:
2.2前端信号处理
由于稳重传感器输出的信号为毫伏级信号,比AD转换器的输入信号低2-3个数量级,故需要设计一个前置放大器。
经过方案比较和论证,我们选择了仪用放大器INA126,
构成的放大器及去皮电路。
其电路原理图如图2.2.1所示。
图2.2.1前置放大硬件电路图
图中,通过调节RAD1的阻值来改变放大倍数。
其放大增益为
微弱信号Vi1和Vi2被分别放大后从INA126的第6脚输出。
A/D转换器TLC7135的输入电压变化范围是-2V~+2V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可将R接成100K的电位器。
由于TLC7135对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。
因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。
图中的LM741的输出端与INA126的地端相连,LM741的2脚与6脚相连构成电压跟随器,R4与正负电源相接,通过改变R4的阻值可使VO与RET之间的压差变化,从而实现调零、去皮的功能。
2.3A/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的利用率。
图2.3.1A/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公司的SpartanⅡE系列的XC2S100E芯片为控制核心,FPGA最小系统为控制器实现电子称的各项功能。
FPGA器件采用现场可编程单元阵列LCA结构,它由三个可编程基本模块组成:
输入/输出模块IOB阵列、可配置逻辑块CLB阵列及可编程互连网络PI。
配置逻辑功能块CLB的可编程逻辑单元,由分层的通用布线通道(RouningChannel)连接,同可编程输入输出功能块围绕来实现,基中CLB提供实现逻辑功能的逻辑单元;IOB提供引脚到内部信号线的接口,布线通道则提供CLB和IOB的到连接通道。
设计使用的FPGA最小系统板由XC2S100E、50MHZ晶振、电源部分、指示部分和开关组成,电源部分将5V直流经过TPS70451转换得到+3。
和5V+1。
8V的直流电,PROM(XC18V02)是一个掉电存储器,在掉电时可自动保存数据,4个脚双列插针用于其它外部设备连接。
图2.4.1为FPGA电路接口图。
系统实现的功能主要通过软件的编程实现,FPGA内部分为四个模块:
数据处理模块、LED和LCD驱动模块、I2C通讯模块和键盘控制模块,各模块的设计将在第三章详细介绍。
图2.4.1FPGA最小系统插脚原理图
2.5人机交互界面
人机交互界面显示是否直观,控制是否方便直接影响收银员的工作效率和顾客的满意程度,困此设计时经多方考虑,我们尽可能将显示界面友好化,将控制键盘简单化。
由于FPGA可利用的引脚多,可以控制键盘、LCD和LEC。
不需要外加键盘或显示控制芯片,从而简化了外部电路。
而且编程难度不大,容易实现。
2.5.1键盘接口电路
由于电子称需要设置单价,这就需要一个设置键和十个数字键,还具有去皮、结算、确认、删除等功能,总共需设置16个键(包括一个复位键)。
考虑到FPGA负载电流能力有限,因此按键一端均通过10K电阻再与PFGA引脚相连,其电路原理图如图2.5.1所示,图中REL1、RSL2为10K排阻。
图2.5.1键盘电路原理图(RSL1、RSL2为排阻)
2.5.2LCD显示接口电路
图2.5.2为液晶显示接口电路,其中主要引脚说明如下:
4脚为寄存器选择,5脚为读写选择,6~14脚为数据总丝,15脚为片选端,本设计接VCC使其处于工作状态。
16脚悬空,17脚为复位信号输入端,18脚为LCD负压驱动脚。
图2.5.2液晶显示接口电路图
2.5.3LED数码管显示电路
由于LCD为144*32点阵式液晶,显示界面有限,本设计增设的八位共阳极LED数码管能够显示商品的重量和商品的总价,使顾客对自己购买的物品一目了然。
其显示的功能主要由软件的设计实现,为了节省系统的资源,本系统采用动态显示。
动态显示原理如下:
当向LED的段码数据口发送第一个8位数据,这时只有一个数码管显示该数码,延时一段时间后可以发送第二8位数据,显示器分时轮流工作,虽然每次只有一个显示器显示,但由于人的视觉暂留现象,我们仍能感觉到所有显示器都在同时显示。
图2.5.3为显示电路的原理图,考虑到FPGA驱动能力有限,我们采用三极管(9012)驱动数码管,并由74HC138译码器控制位码的选通,只有当使能端G1为1,G2A,G2B为0时译码器有效,故G1接VCC,G2A,G2B接地,否则所有的输出被封锁在高电平上。
数码管的位码由FPGA通过一个低功耗的锁存器(74HC573)给出。
2.53数码管显示电路连接图
2.6日历时钟电路
按发挥部分的要求,需要显示购货日期。
最简单的办法是在电路中增加了一颗日历时钟芯片。
系统采用PCF8563完成时钟设计,PCF8563是Philips公司推出的一款带I2C总线,具有极低功耗的多功能时钟/日历芯片,它具有四种报警功能和定时功能;内部时钟电路、内部振荡电路、内部低电压检测以两线制I2C总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。
本系统PCF8563与FPGA接口采用图2.6.1所示接口方案。
图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相似,因此不再画出。
图2.7.1+5V电源电路图
2.8其它扩展电路
2.8.1通讯接口电路
一般的商用电子称都能与上位机(PC机)进行通讯,可以将大量的商品数据存于上位机,然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。
基系统采用RS232串口实现该项功能。
RS-232的逻辑电平用正负电压表示,且信号使用负逻辑,逻辑0的电压范围是+5V~+15V,而逻辑1的电压范围是-5V~-15V,RS-232端口是计算机与其他设备沟通的最常用的接口,不但操作简单,而且价格便宜。
FPGA的输入和输出使用的是5V逻辑电平而不是RS-232电压,如何进行两种信号的转换,是连接时需要解决的问题,事实上,解决的方法很简单,只需使用一个MAX232电平转换专用芯片即可,其电路如图2.8.1所示。
MAX232包含两个将TTL输入转换成RS-232输出的驱动器,还包含两个将RS-232输入翻译成CMOS输出的接收器,这些驱动器和接收器具有反向的功能。
图2.8.1RS232通讯接口电路
2.8.2语音电路
语音电路是系统主要扩展功能之一,能够由语音电路发出超载、欠量程或商品重量、价格等语音提示。
本系统采用的ISD1420语音电路为美国ISD公司出品的优质单片语音录放电路,ISD1420由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成,能够录放的时间为20秒。
一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成如图2.8.2所示。
图2.8.2语音单元录放电路原理图
录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利——直接模拟存储技术(DASTTM)实现的。
利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。
直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。
不仅语音质量优胜,而且具有断电语音保护功能。
2.8.3报警电路
图2.8.3为系统报警电路原理图,除了上一小节中语音可能用于超载和欠量程提示外,系统还设计了两个发光二极管