基于FIR算法的汽车动态称重系统的理论研究_第1页
基于FIR算法的汽车动态称重系统的理论研究_第2页
基于FIR算法的汽车动态称重系统的理论研究_第3页
基于FIR算法的汽车动态称重系统的理论研究_第4页
基于FIR算法的汽车动态称重系统的理论研究_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、编号 本科生毕业设计基于 FIR 算法的汽车动态称重系统的理论研究Theoretical Research of FIR Algorithm-Basedin Vehicle Dynamic Weighing Systems学 生 姓 名专 业 学 号 指 导 教 师 学 院二一三年六月毕业设计(论文原创承诺书1. 本人承诺:所呈交的毕业设计 (论文 , 是认真学习理解学校的长春理工大学本科毕业设计(论文工作条例 后,在教师的指导下,保质保量独立地完成了任务书中规定的内容,不弄 虚作假,不抄袭别人的工作内容。2.本人在毕业设计(论文中引用他人的观点和研究成果,均在文 中加以注释或以参考文献形式列

2、出, 对本文的研究工作做出重要贡献的个 人和集体均已在文中注明。3.在毕业设计(论文中对侵犯任何方面知识产权的行为,由本人 承担相应的法律责任。4.本人完全了解学校关于保存、使用毕业设计(论文的规定,即:按照学校要求提交论文和相关材料的印刷本和电子版本; 同意学校保留毕 业设计(论文的复印件和电子版本,允许被查阅和借阅;学校可以采用 影印、缩印或其他复制手段保存毕业设计(论文 ,可以公布其中的全部 或部分内容。以上承诺的法律结果将完全由本人承担!作 者 签 名: 年 月 日摘要交通运输业的发展无疑对国民经济建设起到了积极的推动作用,但是号称公路隐 形杀手的营运车辆超载现象屡禁不止,其危害是多方

3、面的:加速损坏公路路面,增加 公路养护成本;使国家税费大量流失;造成交通事故频繁发生;严重的环境污染;加 速车辆的损坏。因此加强公路运输的管理、保障行车安全等问题也显得日趋重要。车 辆动态称重,即在非停车的运动状态下的称重,与停车状态下的静态称重相比,其主 要特点是节省时间,效率高,使得称重时不至于造成对正常交通的干扰。汽车动态称 重是加强公路超限运输、强制实施超限法规等管理现代化、科学化的技术条件。动态 车辆称重系统的研究对于保护公路的正常使用有着重要的经济意义和社会价值。关键字 :动态称重 称重本体 FPGA FIR 单片机ABSTRACTThe development of commun

4、ication and transportation industry has undoubtedly played an active role in the construction of national economy. However, the overloading of trucking vehicles, which is known as stealthy killers of the highway, remains incessant in despite of repeated prohibition. Harms created by overloading are

5、of manifolds, accelerating road damage, increasing road maintenance cost, leading to substantial run off of taxation and toll fee, bringing about frequent occurrence of traffic accidents, seriously polluting the environment, speeding up vehicle wear-off etc. So that it becomes more and more importan

6、t to reinforce control over road transportation. Dynamic weighing, i.e. weighing the vehicle on its moving state, with the characteristic of higher efficiency and time-saving, avoids the disturbance to the traffic in the weighing process, as compared with static weighing. Vehicle dynamic weighing is

7、 the technical precondition to the modernized and scientific management of reinforcing overloading control and forcing overloading control regulations. And the study of dynamic weighing system is of economic significance and social value in assurance of appropriate use of the roads.KEY WORDS:dynamic

8、 weighing; Weighing noumenon; FPGA; FIR; single chip microprocessor目录第 1章 前言1.1选题背景及意义随着经济的发展和科技的进步,现代交通运输业飞速发展。近几年来我国对公路 基础设施特别是高速公路建设的力度逐年加大,全国公路建设完成投资日益增加。交 通运输业的发展无疑对国民经济建设起到了积极的推动作用,但是号称公路隐形杀手 的营运车辆超载现象屡禁不止,其危害是多方面的 1。主要表现在:加速损坏公路路 面,增加公路养护成本;使国家税费大量流失;造成交通事故频繁发生;严重的环境 污染;加速车辆的损坏等几个方面。因此加强公路运输的

9、管理、保障行车安全等问题 也显得日趋重要。依据交通部对车辆轴类型及轴载质量的标准,我们准备对满足我国 管理规范要求的全自动车辆动态称重超限管理系统进行实验性研究,为交通部门实施 有效的超限管理提供了强有力的手段。鉴于国内车辆超载、超限的严重性,公路交通管理相关部门急于收集当前公路上 行驶的车辆车型组成、轴载谱和超重程度、分析超重车辆对路面的损害影响程度,以 便估算公路交通部门需为此增加的建设投资,并制定相应的管理措施和法规,为公路 运营部门按车重收费提供有效技术手段。同时提高动态称重的精度,提高称重时车辆 通过速度、降低称重系统的成本仍是一个未能解决的问题,国内外一直都在探索一种 全新型的动态

10、称重方案。如何设计出速度快、抗干扰能力强、准确度高的新型全自动 汽车动态称重超限管理系统,对交通部门有效地实施超限管理,保证行车安全、延长 公路的使用寿命、降低公路养护的成本、减少环境污染等方面有着显著的社会效益和 经济效益。1.2动态称重概述车辆动态称重, 即在非停车的运动状态下的称重。 与停车状态下的静态称重相比, 其主要特点是节省时间,效率高,使得称重时不至于造成对正常交通的干扰。这对公 路建设与管理有着极为重要的意义, 同时对车辆运输现代化管理也有较大的促进作用。 目前较为流行的是轴重称量 轴重仪,即分别测出车辆各轴的轴重量,再由测 量系统计算出整车重量。在静态称重时,车辆的轮胎平稳地

11、作用于轴重仪称台上,无 任何其它外力干扰,能反映真实轴重。因此可以实现高精度测量。动态称重时,车辆以一定速度通过轴重仪测量平台,不仅轮胎对平台的作用时间 很短 (在几百毫秒以内 , 而且作用在平台上的力除真实轴重外, 还有许多因素产生的干扰力,如:车速、车辆自身谐振、路面激励、轮胎驱动力等。可以说真实轴重被淹 没在各种干扰力中,给动态称重实现高精度测量造成很大困难。因此,在外界随机不 确定的干扰力作用下如何准确测量真实轴重,就成了动态轴重测试系统的技术难点和 关键。就所存在的干扰进行整理、分析综合,从动态测试系统的整体角度探讨能减小 或消除这些干扰力影响程度的措施和测试方式,无疑有助于高精度动

12、态称重技术的进 步及测试系统的发展 1。1.3动态车辆称重系统国内外研究现状在 20世纪 60年代末 70年代初, 国外开始研究高速公路动态车辆称重系统以防止 车辆超载对路面所造成的损坏,我国则起步较晚,开始于 80年代初期 2。 1974年,法 国取得了一项压电缆动态汽车称重器 Vibracoax 的专利。 1988年,英国研制出了性能 优于 Vibracoax 的新型压电称重传感器 Vibetek5。 1992年,由欧洲高速公路系统研究 实验室联盟 (FEHRI发起, 按照欧盟运输委员会 (ECTD的程序框架进行了 COST323计 划。该计划主要内容就是研究对公路上行驶的汽车进行动态载荷

13、监控的相关问题,其 中最重要的是在瑞士进行为期 30个月的 WIM 系统实际应用测试。 1994年, 欧盟开始 进行 WA VE(weighing in motion of axleand vehicles for Europe计划即著名的 CET(cold environment test测试。 结果表明德国 PAT 、 美国 Mikros 等在测量性能方面处于领先水 平。 2000年 ITS 年会上展出由美国 MSI 公司开发的共聚物压电轴传感器, 可以同时测 量车速、 车轴数、 轴距及车型分类、 动态称重。 为了规范世界上的动态称重系统, 1990年德克萨斯大学的学者起草了 ASTME1

14、318 90标准 3。1目前,国外汽车动态称重系统的研究以美国和德国水平较高,德国 PAT 公司生产 的产品精度已达到 ±3%4。2 我国高等级公路的发展较国外晚, 但超载现象特别严重, 尤其是矿产资源富有地区。 我国于 20世纪 80年代出现了带基坑和无基坑两种电子汽车衡 5, 1994年一种动、静 态两用电子轨道衡 6在太原钢铁公司通过了鉴定,该产品集动态和静态轨道衡的优点 子一身,较好地解决了检测精度与汽车通过速度之间的矛盾。作为国家 “ 八五 ” 重点科 技项目,交通部重庆公路科学研究所研制了一种固定式动态汽车称重系统 7,该系统 轴重误差小于 ±10%,置信度为

15、95%。3 汽车动态称重技术在现实中的应用。 发达国家在公路骨干网上普遍设立了车辆动态 称重检测设备,对汽车超载现象实施严格管理。目前,国内还没有一家企业能够自主 生产汽车动态称重仪,其关键总成或配件依靠进口。本课题主要对动态车辆称重系统 进行深入的分析和研究以解决其关键问题。1.4 几种动态测试方式及系统动态称重时,车辆以一定速度通过轴重仪测量平台,不仅轮胎对平台的作用时间 很短 (在几百毫秒以内 , 而且作用在平台上的力除真实轴重外, 还有许多因素产生的 干扰力,如:车速、车辆自身谐振、路面激励、轮胎驱动力等。可以说真实轴重被淹 没在各种干扰力中,给动态称重实现高精度测量造成很大困难。因此

16、,在外界随机不 确定的干扰力作用下如何准确测量真实轴重,就成了动态轴重测试系统的技术难点和 关键。就所存在的干扰进行整理、分析综合,从动态测试系统的整体角度探讨能减小 或消除这些干扰力影响程度的措施和测试方式,无疑有助于高精度动态称重技术的进 步及测试系统的发展 89。所谓算术平均,即对传感器输出信号进行多次快速数据采集,然后取算术平均值 作为测试结果,以滤除随机误差。该测试系统基于高速 A/D转换器与单片机数据采集 处理功能。当车轮通过称台时,单片机在称重时区段内通过高速 A/D转换器对传感器 输出信号进行自动快速采集,并将多次采集的数据进行预处理和存储,然后取算术平 均,其结果认为是在动态

17、下测试的轴重。从理论上来讲,该系统应能保证一定的测量精度。但是,在实际操作中,会受到 若干条件限制 (如称量时间较短、 模数转换不够快 , 致使车辆通过速度上限与称量精 度相矛盾。而且,由于称台较短,称重时间有限,所采集的数据不可能足够的达到精 确平均值,有相当的偏差。因此,依此测试方式研制的轴重仪比较适合于静态称重或 低速准动态称重(限速称重 。由于干扰因素的存在,使行驶车辆在某些固有频率下震动。当车辆通过称台时对 称台的作用力波形将由两部分组成,即与轴重成正比的静态分量和由各种谐波成分组 成的动态分量(如图 1-1所示 。80年代,日本提出了一种位移积分法的测试方式,较好的解决了滤除动态分

18、量干 扰问题,大大提高了动态轴重称量精度。其原理大致是:将称重系统的输出信号对一 小段位移沿 (L1 其长度(L 积分, L 1的两端是通过对称的前后排传感器的输出进行比 较给定的。图 1-1示出了称重的典型波形,图中阴影部分面积用于该测试方式中的计算,以 得到接近于轴重的静态分量,消除动态分量。动态分量在积分区间被比较理想的平均了,使车辆震荡造成的干扰影响很小。由 于积分是对前后排传感器的输出做出的比较后划分的位移区段进行的,因此即使车辆 在较高车速下行使,仍能保证有较高的测试精度。但这需要大量的数据才能保证其精 度,其实现起来比较麻烦,这也是目前动态称重系统在提高汽车通过速度时,精度无法保

19、证的关键所在。静 重 负 荷路 长 L L1t图 1-1 轴重的典型波形本文在参考了以上几种方法以后,提出了一种 FIR 数字滤波方法,这种方法具有 滤波效果好滤波参数修改方便而且容易实现等优点。由于 FIR 算法的运算量比较大, 如果单纯用单片机来实现很难做到实时处理,所以我们用 FPGA 来实现 FIR 算法,单 片机用来做一些辅助工作。第 2章 硬件系统介绍2.1整体设计介绍由于传感器输出为毫伏级差动信号所以放大器必须为差动。 在现场干扰比较严重, 其中有传感器本身的干扰,其中共模干扰部分通过差动放大电路可以有效的消除,而 串模干扰必须通过低通滤波消除,此时就得考虑滤波电容的大小。如果电

20、容选择的大 一些可以有效的消除串模干扰,但是同时滤波电路的输出信号会有一个比较大延迟, 对汽车重量的实时测量来说这是不允许的。如果选用的电容比较小,虽然可以保证实 时性但 却不能有效虑除干扰信号。 所以电容大小的选择必须折中考虑。 虽然有一部分 干扰信号不能虑除但是可以通过软件滤波实现,比如可以通过平均值方法或者用自适 应方法,这就需要 CPU 有足够的速度来保证计算的实时性,但是这种 CPU 往往价格 比较高昂,所以仍然选用通用微处理器 89C51。为了保证信号处理的实时性,我们用 硬件完成滤波算法。本设计选用 Altera 公司的 FLEX10K10器件,它具有速度快操作 简单等特点。我们

21、用 FPGA 器件实现数字滤波 FIR 算法。同时 FLEX10K10器件还担 任着一些简单逻辑电路设计的任务。其中处理完的数据通过单片机的串口传送到上位 机,并且这个串口还用于数码管的显示,而串口切换是由 FPGA 完成的。 图 2-1设计整体框图由于本文选用的 A/D1674芯片转换时间只有 10s,而所设计的电路是每隔 20s启动转换一次, 所以有足够的时间完成模数转换。 汽车轴重台的宽度为 40cm , 汽车通 过轴重台的最大速度为 15km/h,这样可以求出汽车通过的最短时间为 0.096s 。在这段 时间里可以采集 4800个数据。由于前 30ms 是传感器的反应时间,除去这部分数

22、据, 将剩下的数据进行 FIR 数字滤波后,噪声被有效的抑制。为了进一步的平滑波形,每 8个数据做一次平均,这样就消弱了由于汽车高速通 过轴重台时由于颠簸产生的尖峰信号。 FPGA 的每次滤波包含有 FIR 运算和 8个数据 的平均值运算。 FPGA 每完成一次滤波就会向单片机发一个中断请求,此时单片机读 取滤波后的数据。由于选用的 A/D是 12位,而单片机 89C51是 8位的,所以经过处 理后的数据必须分两次读入。第一次读入低八位,第二次读入高 4位,然后对数据处理。此时可以认为单片机接收的数据为滤波后不含有噪声的数据,只要求出此时的最 大值就是汽车的真实重量。2.2 FPGA概述FLE

23、X10K 主要由嵌入式阵列块、 逻辑阵列块、 FastTrack 和 I /O 单元四部分组成。 1.嵌入式阵列嵌入式阵列是由一系列的 EAB(嵌入式阵列块 构成的。当要实现有关存贮器功能 时, 每个 EAB 提供 2048位用来构造 RAM 、 ROM 、 FIFO 或双口 RAM 等功能。 当 EAB 用来实现乘法器、 微控制器、 状态机以及 DSP 等复杂逻辑时, 每个 EAB 可以贡献 100到 600个门。 EAB 可以单独使用,也可以组合起来使用。2.逻辑阵列逻辑阵列是由一系列的逻辑阵列块 (LAB构成的。每个 LAB 包含 8个 LE 和一些 连接线, 每个 LE 含有一个 4输

24、入查找表 (LUT、 一个可编程触发器、 进位链和级联链, LE 的结构能有效地实现各种逻辑。每个 LAB 是一个独立的结构,它具有共同的输入 互连与控制信号, LAB 的这种 “ 粗粒度 ” 结构有利于器件布线和高性能的实现,例如 8位计数器、 地址译码器或状态机。 多个 LAB 组合起来也可以构成更大的逻辑块, 每个 LAB 代表大约 96个可用逻辑门。3.快速通道(FastTrack FLEX10K 器 件内 部 信号的 互连 和器 件引 脚之间 的信 号互 连是 由快速 通道 (FastTrack连线提供的,它是贯通器件长、宽的快速连续通道。4. I /O 单元I/O单 元(IOE列

25、连线 带行 连线 带逻 辑阵 列嵌 入 式 阵 列 局 部 连 线 逻 辑 单 元 (LE逻 辑 阵 列 块 (LAB逻 辑 阵 列嵌 入 式 阵 列 块 (EAB图 2-2 FLEX10K 器件的结构方框图FLEX10K 器件的 I /O 引脚是由一些 I /O 单元 (IOE驱动的。 IOE 位于快速通道的行和列的末端,每个 IOE 有一个双向 I /O 缓冲器和一个既可做输入寄存器也可做 输出寄存器的触发器。当 IOE 作为专用时钟引脚时,这些寄存器提供了特殊的性能。 当它作为输入时,可提供 4.2ns 的建立时间和 0 ns 的保持时间;而作为输出时,这些 寄存器可提供少于 5.7ns

26、 的 “ 时钟到输出 ” 的延时时间。 IOE 具有许多特性,如 JTAG 编 程支持、 摆串控制、三态缓冲和漏极开路输出。 图 3-3是 FLEX10K 结构的方框图。由 图可以看出,一组 LE 组成了一个 LAB , LAB 是排列成行和列的,每一行也包含一个 EAB 。 LAB 和 EAB 是由快速通道连接的, IOE 处于快速通道连线的行和列的两端。 FLEX10K 器件还提供了 6个专用输入引脚,这些引脚用来驱动触发器的控制端, 以确保控制信号高速、低偏移 (1.2ns地有效分配。这些信号使用了专用的布线支路, 以便具有比快速通道更短的延迟和更小的偏移。专用输入中的 4个输入引脚可用

27、来驱 动全局信号,这 4个全局信号也能由内部逻辑驱动,它为时钟分配或产生用以清除器 件内部多个寄存器的异步清除信号提供了一个理想的方法。当电路设计者利用 MAX+PLUS 软件工具将电路输入,并且经过编译、优化、 仿真,从波形上看已经完全达到最初的要求以后,就应当考虑 CPLD 器件的系统配置 与下载方法了。 图 2-3 FPGA 下载电路CPLD 器件的工作状态分为三种:一种称之为用户状态 (Usermode,指电路中 CPLD 器件正常工作时的状态;一种则是配置状态 (Configuration,指将编程数据装入 CPLD 器件的过程, 也可称之为构造; 第三种就是初始化状态 (Initi

28、alization, CPLD 器件复位各类寄存 器。让 I /O 引脚为逻辑器件正常工作作准备。 【 8】 【 9】一、配置方式 图 2-4 FLEX10K器件的工作状态CPLD 器件配置分为两大类:主动配置方式和被动配置方式。主动配置由 CPLD 器件引导配置操作过程,它控制着外部存贮器和初始化过程;而被动配置由部计算机 或控制器控制配置过程。根据数据线的多少将 CPLD 器件配置分为并行配置和串行配 置两类。 在 FLEX10K10器件正常工作时, 它的配置数据贮存在 SRAM 之中。 由于 SRAM 的易失性, 所以每次加电期间, 配置数据都必须重新构造, 将 I /O 引脚和寄存器初

29、始 化之后便进入了用户状态,其各种工作状态如图 2-4所示。二、串口下载电缆 ByteBlaster 原理我们知道,使用 FLEX 器件的一个特别突出的优点就是:FLEX 器件可以通过在 线配置的手段来调整电路结构、延时信息等,这给电路设计人员调试电路带来极大的 方便。 而并口下载电缆 ByteBlaster 正是将 PC 机中的配置信息传送到 PCB 板 FLEX 器 件中必不可少的器件。 ByteBlaster 不但可以用来对 FLEX 系列器件进行配置重构,而 且可以用来对 MAX 9000以及 MAX 7000S/MAX 7000A等器件进行编程。 ByteBlaster 有两种配置模

30、式:被动串行模式 (PS一常用来配置重构 FLEX10K 、 FLEX 8000和 FLFX 6000系列器件、边界扫描模式 (JTAG一具有边界扫描电路的配置重构或在线编程。 三、 ByteBlaster 的连接及原理ByteBlaster 下载电缆具有以下几部分:与 PC 机并口相连的 25针插座头;与 PCB 板插座相连的 10针插头; 25针到 10针的变换电路。1. ByteBlaster 25针插头。ByteBlaster 与 PC 机并口相连的是一个 25针的插头,在 PS 和 JTAG 两种模式下 具有不同的名称,如表 3-2所示。2. ByteBlasterl0针插头Byte

31、Blaster 的 10针插头是与 PCB 板上的 10针插座连接的。 表 3-3中列出了 Byte Blaster 在两种不同模式下的各引脚名称。2.3 放大滤波电路设计4233*2123321R R R R V Vo R R R R V V +-=+*- 23(12312431 23(4R R Vo R V R R V R R V R R R +-=-+ 1 23(42 41(3 23(1V R R R V R R R R R Vo R +-+=+当 R1=R2 R3=R4时候,上式将变为1 13(32 31(3 31(1V R R R V R R R R R Vo R +-+=+21(*

32、13V V R R Vo -= 令 R1=3K, R3=100K,则此放大电路的放大倍数为:-33.3倍。 图 2-5 第一级差动放大电路 图 2-6 第二级放大电路 图 2-7 整体放大电路131VR R Vo R Vi +-= Vi R VR R Vo 113+-= 令 VR1=50K, R3=10K, R1=1K,根据此公式可以计算出第二级电路放大倍 数为 1060倍。 同样道理, 第三级电路的放大倍数为 120倍, 所以总的放大倍数为 33339960倍。利用运放作为有限增益可控源的二阶低通滤波器,其传递函数为:【 10】*43 (2C C R R S C R R R C R C R

33、S R R S H +-+=与二阶低通滤波器标准式20220 /( (+=SQ S H S H相比较,得:3430R R R H +=212110C C R R =1-+=C R C R R R C R C R C R C R Q11 图 2-8 有限增益低通滤波器对该电路来讲,有 R 1、 R 2、 C 1、 C 2、 H 0五个参数可选择,但只有上述三个关系式,因 而在元件选择上有一定的自由度;一种方法是令 R 1=R2=R, C 1=C2=C,则有RC 10= 3430R R R H += 03H Q -=故当 0, Q 已知时候,有:01=RC , QH 130-=,当 R 3= 、

34、R 4=0时候有:H 0=1, (100010*1. 0110HZ KU RC =图 2-9 二阶滤波电路2.4 A/D采集电路设计模拟信号经过放大隔离后要进行 A/D转换变成数字量,计算机才能处理。 ADC 的最主要性能指标就是分辨率和转换时间,这两条取决于测试设备的精度要求和信号 变化速率。由于称重台范围是 03000公斤,而要求误差为 1公斤以下,所以满足:1/212<1/3000<1/21112 图 2-10 AD1674的工作时序由图可见 2-12, AD1674的工作状态由 CE 、 CS 、 R /C 、 12/8、 0A 五个控制信号 决定, 当 CE=1, CS

35、=0同时满足时, 才能处于工作状态。 当 AD1674处于工作状态时, R /C =0时启动 A/D转换;当 R /C =1时进行数据读出。 12/8和 0A 端用来控制转换字长 和数据格式。 0A =0时启动转换,则按完整的 12位 A/D 转换方式工作,如果按 0A =1启动转换, 则按 8位 A/D转换方式工作。 当 AD1674处于数据读出工作状态 (R /C =1 时, 0A 和 12/8成为输出数据格式控制端。 12/8=1,对应 12位并行输出; 12/8=0,则 对应 8位双字节输出。其中 0A =0时输出高 8位, 0A =1时输出低 4位,并以 4个 0补 足尾随的低 4位

36、。必须指出 12/8端与 TTL 电平不兼容,故只能用硬布线接至 +5V或 0V 上。另外 0A 在数据输出期间不能变化。表 2-1为 AD1674逻辑控制真值表。表 2-1 AD1674逻辑控制真值表 根据以上分析得到 AD1674与 FPGA 的接口电路如图 3-13所示。 AD574A图 2-11 A/D转换电路图中 AD1674的数据总线与 FPGA 的 I/O口直接相连, 12/8端接 5V ,按 12位并行输出采集数据,A 、 CE 、 CS 、 R /C 端接到 FPGA 的 I/O口,来控制 AD 启动和读 数据。转换结束信号也接到 FPGA 的一个 I/O口,按中断方式确定其

37、是否转换结束。 2.5 显示电路设计在单片机系统中, 通常用 LED 数码显示器来显示各种数字或符号。 由于它具有显 示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。下面让我们来看电路图 2-14, 4片 74LS164首尾相串,而时钟端则接在一起,这 样,当输入 8个脉冲时,从单片机 RXD 端输出的数据就进入到了第一片 74LS164中 了,而当第二个 8个脉冲到来后,这个数据就进入了第二片 74LS164,而新的数据则 进入了第一片 74LS164,这样,当第四个 8个脉冲完成后,首次送出的数据被送到了 最左面的 74LS164中,其他数据依次出现在第一、二、三片 74LS1

38、64中。13 图 2-12 显示电路图74LS164的实际连线不同则 LED 的翻译码也不同, 实际电路中所使用的译码方式 如表 3-5所示。表 2-2 显示译码表 2.6 通讯电路设计在汽车重量测试系统中,要求能够把测试的数据送到上位机,同时接受上位机的 控制命令以便计算机联网组成全自动汽车检测线。这就需要上位微机系统与单片机系 统之间进行数据通讯。在 MCS-51单片机中有一个异步通信串行接口,能方便的构成 双机、多机及 PC 机串行通信接口。MCS-51的串行口主要有二个物理上独立的串行数据缓冲器 SBUF 、发送控制器、 接收控制器、输入移位寄存器和输出控制门组成。发送数据缓冲器 SB

39、UF 只能写入不 能读出,接收数据缓冲器只能读出,不能写入,二个缓冲器共用一个地址 99H 。有二 个特殊功能寄存器 SCON 和 PCON 可用来控制串行口的工作方式及波特率。 波特率发 生器可用定时器 T1或 T2构成。14本系统中要实现单片机与上位 PC 兼容机的数据通信。 在 PC 兼容机系统中, 利用 异步通信适配器可实现异步串行通信。该适配器以 INS8250通信芯片为核心,配以可 进行电平转换的发送器和接收器电路及一些控制逻辑电路,将其做成接口卡的形式, 其端口地址范围为 3F8H 3FFH 。 利用此异步通信适配器, 可以很方便地完成 PC 兼容 机与 MCS-51单片机的数据

40、通信。PC 兼容机与 MCS-51单片机最简单的连接是零调制三线经济型连接, 这是全双工 通信所必须的最少数目的线路。MCS-51单片机输入、 输出电平为 TTL 电平, 而 PC 兼容机配置的是 RS-232标准 串行接口,二者的电气规范不一致,因此要完成 PC 兼容机与单片机的数据通信,必 须进行电平转换。以前大多数单片机系统的 RS-232转换接口都采用 MC1488和 MC1489构成, 它需要 ±12V 和 ±5V 电源供电, 而且由两片芯片构成一个 RS-232接口, 电路相对比较复杂。本系统采用一种新型的单电源 RS-232发送 /接收器,使电路复杂 性大为降

41、低,这就是 INTERSIL 公司的 ICL232芯片。 INTERSIL 公司的 ICL232是单 片集成双 RS-232发送 /接收器,采用单一 +5V电源供电,外接至多四只电容,二只电 阻便可以构成标准的 RS -232通信接口,该器件完全符合 EIA RS-232标准,性能更 为可靠。 ICL232的功能框图见图 3-15所示。由图 3-15可见, ICL232的主要组成部分 为:一个电荷泵部分,一个双重发送部分和一个双重接收部分。电荷泵部分由二只电 荷泵组成,用以实现升压和电压极性转换功能。 C1、 C2电容值的大小影响输出阻抗, 增大电容值可降低输出阻抗。另外,增加接在 V +和

42、V -端的电容 C3、 C4的值有助 于降低 V +和 V -端电源方波影响。 其接收部分的驱动输出电压在 ±8V 左右, 接收时, 输入超过 2.4V 则输出为低,输入在+0.830V 之间则为高。 图 2-13 ICL232结构框图由 ICL232构成的 PC 兼容机与 MCS -51单片机之间的通信接口电路如图 2-14所 示。由图可见,由 ICL232构成的通信接口电路简单,工作可靠。15 图 2-14 ICL232功能框图第 3章 软件设计3.1 FPGA软件设计通常设计过程可划分为下述的六个步骤 11:设计要求的定义:在从事设计进行编写代码工作之前,必须先对你的设计目的和

43、 要求有一个明确的认识。 对所需的信号建立时间、 时钟输出时间、 最大系统工作频率、 关键的路径等这些要求,只要有一个明确的定义,这将有助于你的设计,然后再选择 适当的设计方式和相应的器件结构,进行设计的综合。用 VHDL 语言进行设计描述:有了设计要求的定义后,你可以尝试去编写设计代 码。但是,我们建议首先应决定设计方式。只有对如何描述你的设计有了一个最佳的 认识, 才能更为有效的使你编写设计代码, 然后再通过综合, 进行所需要的逻辑实现。 通常的设计方式有三种:自顶向下设计、自底向上设计、平坦式设计。前两种方式包 括设计阶层的生成,而后一种是将描述的电路当作单模块来进行的。决定了设计方式

44、以后, 根据具体的语法和语义结构, 你可以参照你已设定的功能块、 数据流状态图等, 来进行设计代码的编写。编写一个优化的代码的关键在于要依照硬件的内在要求去思 考,特别是,要能向综合软件运行时的思考方式那样去体验如何实现你的设计。 原代码模拟:对于大型设计,采用语言模拟器进行设计的原代码模拟可以节省时 间。并行工作程序导致电路模拟提前至设计的早期阶段。采用原代码模拟,可以在设 计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能的减少对设计日程计 划的影响。但对于小型设计,则往往不需要先做原代码模拟,即使做了,意义并不大。 因为对于大型设计,其综合、布局、布线往往要花费好几个小时,在综合之

45、前进行原 代码模拟,就可以大大减少设计重复和修正错误的次数和时间。当然,大型设计往往 是阶层结构的序列子设计和模块的组合。设计综合:设计优化和设计布局布线:综合是把设计描述转换到网表或方程生成 的过程。这个过程也可以被解释为设计描述作为输入,而设计网表和逻辑方程作为输 出。优化处理依赖于三个因素:布尔表达方式,有效资源类型,以及自动的或用户定 义的综合指引。装配是指把通过综合和优化过程所得到的逻辑,安放到一个逻辑器件 之中的过程。布局布线工具的好坏对于 FPGA 设计的性能有着很大的影响。传导延时 基本上取决于布线延时, 一个优化的布局布线可将电路的关键部分紧密的配置在一起, 以消除布线延时。

46、布局布线工具采用一定的算法,指引用户约束和性能估价来选择最 佳的布局方式,以逐步实现符合性能要求的优化的布局结果。布局、布线后的设计模块模拟:即使你在设计综合之前进行了设计模拟,在设计 被装配之后,还是需要对设计在进行模拟。布局后的模拟不仅可使您能够再一次检测设计的功能,而且还能检查的时序功能,诸如信号建立时间、时钟到输出、寄存器到 寄存器的时延。如果实验模拟结果不能满足设计的要求,就需要重新综合并将设计重 新装配于新的器件之中,其间不乏反复尝试各种综合过程和装配过程,或选择不同速 度的器件。同时,也可以重新观察和分析 VHDL 原代码,以确认描述使正确有效的。 只有这样,取得的综合和装配的结

47、果才会符合你的设计要求。器件编程:在成功地完成设计描述、综合、优化、装配和设计模拟之后,则可以 对器件进行编程和继续进行系统设计的其他工作。综合、优化和装配软件将生成一个 器件编程所用的数据文件。3.2 FIR算法实现FIR 滤波器的 h(n 0nN -1H(z=-=-1N 0n n z n (h (4-1据此找不到模拟系统函数 H(s。 (因为是 1-z 的多项式,而非有理分式形式 FIR 滤波器频率响应为:【 3】 【 4】H(j e=-=-1(N n n j e n h = (j e H (j e (4-2nN -1 (奇对称 称为第二类(n h (4-6 本文采用 FIR 数字滤波,它

48、是由卷积原理实现,如公式 4-13所示。Y(n=-=-1N 0k k n (x k (h (4-13其中 h(k为系统滤波参数而 x(n为采集的信号, Y(n为滤波后的输出信号。由公式 4-1和公式 4-5可知,可以把 FIR 滤波器设计成具有线性相位。利用这一 情况,可以得到乘法次数少的结构。图 4-12画出了这种结构,可直接证明它是式 4-1的结构, 这个结构需要 (N+1/2次乘法, 只是级联或并联结构所需次数的一半, 因此实 际应用中多数使用这种方法。FIR 算法是本文的核心算法,在用 VHDL 语言实现的过程中需要用到乘法运算和 移位卷积运算,本文把主要程序列出,并对程序做了注释和说

49、明。 h(m图 3-1 FIR 算法实现结构图ROM 程序:library ieee;package rom is 定义的包体subtype lw_int is integer range 0 to 255; 声明范围为 0-255整型数的子类型 function rom(l:lw_intreturn unsigned; 定义一个 rom 函数end rom;packag e body rom is 包体说明function rom(l:lw_intreturn unsigned isalias in1:lw_int is l; 声明函数的参数为 lw_int类型variable v_in1:

50、unsigned(7 downto 0; 定义一个无符号数组begincase in1 iswhen 0=>v_in1:="00000001" 以下为 FIR 运算中使用when 1=>v_in1:="00000001" 的 h (n 参数when 2=>v_in1:="00000001"when 3=>v_in1:="00000001"when 4=>v_in1:="00000001"when 5=>v_in1:="00000001"wh

51、en 6=>v_in1:="00000001"when 7=>v_in1:="00000001"when 8=>v_in1:="00000001"when 9=>v_in1:="00000001"when 10=>v_in1:="00000001"when 11=>v_in1:="00000001"when 12=>v_in1:="00000001"when 13=>v_in1:="00000001

52、"when 14=>v_in1:="00000001"when 15=>v_in1:="00000001"when 16=>v_in1:="00000001"when others=>null;end case;return(v_in1;end;end rom;程序功能说明:当进行卷积运算时候需要知道冲击响应 h(n的数值,在本设计中 可以直接调用函数 rom(,即:h(0=rom(0, h(5=rom(5等。当计算好 h(n的数值后, 就可以修改此程序的数组列表。在其他程序调用本程序之前必须对其进行

53、编译。 程序 mul_fun.vhd清单:library ieee;package mul_fun is 程序包说明function mul(l:unsigned(11 downto 0;r:unsigned(7 downto 0return unsigned;end mul_fun ;package body mul_fun is 包体说明,描述程序包function mul(l, r:unsignedreturn unsigned is 函数变量类型及返回值说明 alias in1:unsigned(11 downto 0 is l;alias in2:unsigned(7 downto

54、0 is r;variable v_left, v_add:unsigned(19 downto 0;v_left为移位寄存器, v_add为累加值variable v_in1:unsigned(11 downto 0;variable v_in2:unsigned(7 downto 0;beginv_left(7 downto 0:=in2(7 downto 0;v_left(19 downto 8:="000000000000"v_add:=(others=>'0'v_in1:=in1;v_in2:=in2;for i in 0 to 11 loo

55、p 如果当前位为 1,则将移位寄存器中内容加到累 加和寄存器中if v_in1(i='1' thenv_add:=v_add+v_left;end if;v_left:=(others=>'0'case i is 根据 i 的数值不同对移位寄存器中内容移位when 0=>v_left(8 downto 1:=v_in2(7 downto 0;when 1=>v_left(9 downto 2:=v_in2(7 downto 0;when 2=>v_left(10 downto 3:=v_in2(7 downto 0;when 3=>

56、v_left(11 downto 4:=v_in2(7 downto 0;when 4=>v_left(12 downto 5:=v_in2(7 downto 0;when 5=>v_left(13 downto 6:=v_in2(7 downto 0;when 6=>v_left(14 downto 7:=v_in2(7 downto 0;when 7=>v_left(15 downto 8:=v_in2(7 downto 0;when 8=>v_left(16 downto 9:=v_in2(7 downto 0;when 9=>v_left(17 do

57、wnto 10:=v_in2(7 downto 0;when 10=>v_left(18 downto 11:=v_in2(7 downto 0;when 11=>v_left(19 downto 12:=v_in2(7 downto 0;when others=>null;end case;end loop;return(v_add;end;end mul_fun ;程序说明:由于在 FIR 计算中需要用到乘法,而在 VHDL 语言中没有提供乘法函 数,所以我们用移位相加的办法来实现乘法。在本设计中使用的 A/D转换器为 12位, 而卷积运算中 h(n的参数我们用 8位二进

58、制表示, 所以需要用到 12位二进制与 8位二 进制的乘法,以上程序就是完成此项功能的子函数。它本身不能完成仿真功能,只能 由其他程序调用此函数来完成。程序 mul_ok.vhd清单:library ieee;entity mul_ok isport(cp :in std_logic; 定义时钟信号in1:in unsigned(11 downto 0; 定义输入信号in2:in unsigned(7 downto 0; 定义输入信号out1:out unsigned(19 downto 0 定义输出信号;end mul_ok;architecture lw of mul_ok isbeginprocess(cpbeginif cp'event and cp=&#

温馨提示

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

评论

0/150

提交评论