当前位置:首页 > EDA > 电子设计自动化
[导读]随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片EPM7128SLC84-15为控制核心、附加一定外围电路组成的出租车计费器系统。

随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片EPM7128SLC84-15为控制核心、附加一定外围电路组成的出租车计费器系统。

1 系统组成

基于CPLD/FPGA的出租车计费器的组成如图1所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(三位整数,1位小数)。



2 功能模块设计

出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用VHDL编写功能模块,然后用顶层原理图将各功能模块连接起来。

2.1 车型调整模块

出租车车型并非单一,各个车型的轮胎直径亦有所不同。据调查统计,现行出租车轮胎直径大致有四种,直径分别为520mm、540mm、560mm和580mm。若要使不同车型的出租车每行驶一百米均送出一个脉冲,可通过设置“可预制分频器”的系数来完成。根据上述车轮直径计算出的分频系数分别为61、59、57和55。预制数据受两个车型设置开关控制,DIP开关状态与车轮直径对应关系如表1所示(表中“1”为高电平,“0”为低电平)。

表1 车型设置

车轮直径(mm)
520
540
560
580
DIP开关(两位)
00
01
10
11

 

在参数预制中,使用With_Select语句(查表法)做分频选择:

with cartype select

typecounter<=“111101”when“00”, --520mm

“111011”when“01”, --540mm

“111001”when“10”, ——560mm

“111000”when“11”, --580mm

“000000”when others;

分频器采用的是加法分频电路,其占空比可通过datal(x)进行调整,并且分频器带有“开始”/“清零”端(高电平清零)。时序仿真波形如图2所示。从图中可以看出,对于设置开关为“10”的车型,当第57个脉冲到来时,该模块oclk端从高变低,输出一低电平信号。车型调整模块(以下简称FP)封装见图4。

2.2 计程模块

计程模块是一个模为10、步长为1的加法计数器。该模块可以预制参数,使其实际计数值大于预制数值后,每500米送出一个脉冲,并将计数值送译码动态扫描模块进行显示。预制参数采用非压缩BCD码,所以在计数器设计时必须将二进制1010至1111六个状态跳过去。在VHDL程序中,用IF语句来实现。

if km(3 downto 0)=“1001”then km:=km+“0111”:

else km:=kin+1;

end if;

计程模块也带有“开始”/“清零”端。参数预制同样使用With_Select语句。“起步里程”和“开关设置”对应关系如表2所示。计程模块(以下简称MILE)封装见图4。

表2 起步里程设置

起步里程(km)
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
DIP开关(3位)
000
001
010
011
100
101
110
111

2.3 计费模块

计费模块是一个模为10、步长可变的加法计数器。该模块通过开关量预制步长,当超过一定预制参数时改变步长。计费模块也采用非压缩BCD码,但因步长不为1,所以在做非压缩BCD加法时必须调整,否则可能导致在超过或未超过预置参数时出现超程错误。这里采用模仿微机的AF标志位,在其设立一个半进位标志,当累加和大于9或半进位标志为“1”时,对累加和进行调整。

if datal(3 downto 0)>9 or datal(4)=‘1'then

datal(3 downto 0):=datal(3 downto 0)+“0110”;

datal(8 downto 5):=datal(8 downto 5)+1;

end if;

其中,data(4)为半进位标志。“起步价格”和“超价加费”设置参数分别如表3和表4所示。计费模块(以下简称MONEY)封装见图4。

表3 起步价格设置

起步价格(元)
1.2
1.6
2.0
2.4
2.8
3.2
3.6
DIP开关(3位)
001
010
011
100
101
110
111

表4 超价加费设置

超价加费(元)
10.0
15.0
20.0
25.0
DIP开关(2位)
00
01
10
11

2.4 显示模块

显示模块由七段LED数码管译码和动态扫描显示两部分组成。

2.4.1 七段LED数码管译码

本次设计采用的是共阴极七段数码管,根据16进制数和七段显示段码表的对应关系,用VHDL的With_Select或When_Else语句可方便实现它们的译码。



2.4.2 动态扫描显示

动态扫描是利用人眼的视觉暂留原理,只要扫描频率不小于24Hz,人眼就感觉不到显示器的闪烁。本系统24Hz的扫描脉冲由相应的外围电路提供。动态扫描电路设计的关键在于位选信号要与显示的数据在时序上一一对应,因此电路中必须提供同步脉冲信号。这里采用八进制计数器提供同步脉冲,VHDL程序段如下:

cIkl_label:PROCESS(scp)

BEGIN

IF scp'vent and scp=‘1'THEN count<=count+1;

END IF;

END PROCESS clkl_label;

显示数据的选择由计数器控制,VHDL程序段如下:

temp<=counterl when count=“000”else...

counter4 when count=“011”else

milel when count=“100”else...

mile4 when count=“111”;

位选信号时序仿真如图3所示。从时序仿真图和上述程序可以看出,位选信号和要显示的数据实现了同步。



动态扫描电路中小数点的显示无法在译码电路中完成。由于小数点的位置是固定的,因此可由计数器提供的同步信号产生另一信号控制DP。VHDL程序实现如下:

if (count:“101”or count=“001”)then data(0)<=‘1';

else data(0)<=‘0';

end if;

显示模块(以下简称SHOW)封装见图4。此模块中应用了两个过程,在过程内程序顺序执行,其中第一个过程触发第二个过程。

3 系统综合

3.1 模块联调

各个功能子模块设计完成后,利用MAXPLUSⅡ的图形编辑器(Graphic Editor)将各功能子模块(.sym)进行连接。由于MILE模块中存在毛刺,故不能直接与后级相连,通过对输出脉冲信号加门电路延时,再与原始信号相“与”的方法即可消除毛刺。系统顶层原理图如图4所示。

芯片管脚定义可以直接用编辑.pin文件或在Floor—Plan Editor下进行。完成管脚定义后选择器件(EPM7128SIC84—15),编译后生成.sof、.pof及报告文件.rpt。查看报告文件可得到器件管脚的利用情况及器件内部资源的使用情况。通过更换适当的器件使其资源配置达到最优。选择器件的一般原则是系统所使用的资源不要超过器件资源的80%,若超过90%,系统功耗将增大,工作不稳定。从本次设计器件部分报告中得知:输入、输出管脚各用16只,芯片资源利用率仅为51%,具有较大的扩展空间。



3.2 硬件设计说明

本次设计的出租车计费器计数脉冲CP来自车轮转速传感器(干簧管),脉冲经器件内部整形后送计数器;动态扫描脉冲由外围电路给出;系统使用整流、滤波、降压后的出租车电源供电;由于CPLD/FPGA的驱动能力有限,为了增强数码管的亮度,提高系统的可靠性,设计中在LED驱动和位驱动上分别增加了电流驱动器件ULN2803和2SCl015。

现场实验表明:该计费器实现了按预制参数自动计费(最大计费金额为999.9元)、自动计程(最大计程公里数为999.9公里)等功能;能够实现起步价、每公里收费、车型及加费里程的参数预制(如:起步价5.00元;3公里后,1.20元/公里;计费超过15.00元,每公里加收50%的车费等),且预置参数可调范围大。由于采用了CPLD/FPGA大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。另外,根据实际需要,系统可方便地增加以下功能:①通过芯片内部编程增加时钟功能(器件内部资源足够),既可为司机和乘客提供方便,又能为夜间行车自动调整收费标准提供参考;②用CPLDFPGA的输出引线控制语音芯片,可向乘客发出问候语、提醒乘客告诉司机所要到达的地点、报出应收缴的费用等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

阿布扎比和沙特正在权衡,是否在瑞信(Credit Suisse)股价低迷之际,对该行的投资银行和其他业务进行投资。阿联酋和沙特在分别探索通过各自的主权基金,例如阿布扎比穆巴达拉发展公司和沙特公共投资基金(PIF)进行潜在...

关键字: MICHAEL UI SE PI

摩根大通(JPMorgan Chase)首席执行官戴蒙(Jamie Dimon)预测,美国经济可能在明年陷入衰退。他警告称,经济低迷可能在信贷市场引发“恐慌”,令美国股市价值再蒸发20%。花旗集团(Citigroup)首...

关键字: CE SE MORGAN GROUP

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

据全球最大石油生产商沙特阿美(Saudi Aramco)称,全球石油市场依然紧张。对于一个仍然严重依赖化石燃料的世界来说,这不是一个好兆头。沙特阿美CEO Amin Nasser表示,如今闲置产能非常低。如果亚洲重新开放...

关键字: NAS RAM SE CE

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

摩根大通(JPMorgan Chase)首席执行官戴蒙(Jamie Dimon)预测,美国经济可能在明年陷入衰退。他警告称,经济低迷可能在信贷市场引发“恐慌”,令美国股市价值再蒸发20%。投资者密切关注戴蒙的经济声明,亿...

关键字: CE 华尔街 SE MORGAN

(全球TMT2022年10月11日讯)Autowise.ai仙途智能宣布获得商汤国香资本等机构B3轮战略投资,这是公司今年7月以来第二轮融资,融资将主要用于自动驾驶车辆研发制造和市场扩张,尤其是海外业务落地。...

关键字: 人工智能 芯片 新思科技 SE

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭