电子技术暑期实习报告.doc_第1页
电子技术暑期实习报告.doc_第2页
电子技术暑期实习报告.doc_第3页
电子技术暑期实习报告.doc_第4页
电子技术暑期实习报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

精选范本 西南交通大学 课程设计 报告 简易低频相位测量仪设计简易低频相位测量仪设计 年 级 2012 级 学 号 20122512 20122513 20122514 姓 名 鲁涛 王胤隆 刘军 专 业 交控 指导老师 白天蕊 二零一四年七月二十一日 精选范本 设计任务及要求设计任务及要求 设计并制作一个低频相位测量仪 示意图如下图所示 1 基本要求 A 相位测量仪频率范围 20Hz 20kHz B 相位测量仪的输入阻抗 100k C 两路输入正弦信号的峰峰值可分别在 1 5V 范围内变化 D 相位测量绝对误差 2 E 相位差数字显示 0 359 9 分别率为 0 1 2 扩展部分 设计制作一个移相网络 如下图所示 A 输入信号频率 100Hz 1kHz 10kHz B 连续相移范围 45 45 C A B 输出的正弦信号峰 峰值可分别在 0 3V 5V 范围内变化 相位 测量 数字 显示 A 输入 B 输入 精选范本 摘摘 要要 本设计给出了基于 FPGA 核心的数字式相位测量的基本原理与实现方案 实现的是 对两列信号的相位差的精确测量并数字显示测量结果 该系统利用可编程逻辑器件为 主系统芯片 用 VHDL 对其进行设计开发 系统由相位测量仪 数字式移相信号发生器 和移相网络三个模块构成 整个装置具有原理简单 测量精度高 测量结果显示直观的 特点 本次设计在 EDA 软件开发平台 quatus 上利用硬件描述语言 VHDL 进行设计编程 关键词 关键词 FPGA CPLD VHDL 测相 精选范本 目录目录 设计任务及要求 I 摘 要 II 第 1 章 方案准备与设计 1 1 1 系统设计 1 1 1 1 相位测量仪 1 1 2 硬件电路设计 1 1 2 1 移相网络 1 1 2 2 放大整形单元 2 1 3 软件设计 2 1 3 1 计数模块 3 1 3 2 数据溢出处理模块 4 1 3 3 运算模块 4 1 3 4 数据选择模块 4 第 2 章 PCB 电路板的设计与制作 7 2 1 PCB 板的制作 7 2 2 热转印与元件的安装 9 2 2 1 热转印 腐蚀法 9 2 2 2 PCB 板加工 9 2 2 3 元件的安装 9 第 3 章 电路板的调试 9 3 1 调试方法 9 3 2 调试遇到的问题 10 3 3 测试数据 10 第 4 章 结论与收获体会 11 附录 12 程序 12 图片 20 精选范本 第第 1 章章 方案准备与设计方案准备与设计 1 1 系统设计系统设计 1 1 1 相位测量仪相位测量仪 相位测量仪主要由放大整形和数字化测量两大部分构成 其框图 1 1 如下 图 1 1 相位测量仪框图 其中 放大整形电路的主要任务是将两路同频率信号进行放大整形为方波信号 送入测量仪去测量它们的之间的相位差 测量部分通过相位比较获得一个与 A B 两列信号相位差成正比的矩形脉冲并送入计数器计数 其计数值大小便反映了相位 差 将其处理后以数字量的形式准确地显示出来 1 2 硬件电路设计硬件电路设计 1 2 1 移相网络移相网络 由 R C 组成移相网络进行移相原理图如下图 1 3 图 1 3 移相网络 A B FPGA A B R R C C C D R1 R2 R3 R4 R5 R6 R7 R8 E 精选范本 1 2 2 放大整形单元放大整形单元 该单元作为相位测量仪的输入通道 其主要功能是提高仪器的输入电阻和降低 共模干扰 并提供边沿稳定的矩形脉冲 为测量仪器进行数字化测量做准备 为了简化设计 输入级 放大级 整形级全部采用模拟集成电路来实现 共采 用了三个高速模拟芯片 LF353P LM393 HD74LS14P 图 1 4 放大整形单元电路图 1 3 软件设计软件设计 将两列相隔一定相位差的同频率正弦波信号过零比较为方波 CP1 CP2 示意图 如下图 1 5 CP1 CP2 CP3 2 2 2 wt wt wt V V V 3 4 3 4 3 4 0 0 0 精选范本 图 1 5 相位测量示意图 对两方波信号 CP1 CP2 信号进行异或 得到矩形波 CP3 用高频方波脉冲对 CP1 的一个周期进行计数 设计数值为 Y 对 CP3 的高电平时间进行计数 计数数值 为 X 故相位差为 整个相位差测量模块可分为四个小模块 分别是计数模块 数据溢出处理模块 运 算模块 数据选择模块 1 3 1 计数模块计数模块 此模块的处理的信号为 CP1 和 CP2 异或后的信号 CP3 和 CP1 经过分一次频后的 信号 CP4 分别对 CP3 和 CP4 信号的高电平为闸门时间进行计数 并将计数值输出 根据课题要求 相位计数为 0 359 9 分辨率为 0 1 相位差计算公式的计算 公式为 使相位差的分辨力达到 0 1 则 a 至少要满足递增为一时对应的相位差递增为 0 1 而 a 的变化范围为 0 b 因此当 b 满足 b 3600 时 a 的变化范围大 于 0 3600 满足课题要求 为了更加精确的测量出相位差 本设计取 x 的位数为 14 位 在满足课题要求频率范围 20HZ 20KHZ 内 x 的变化范围为 4096 8191 y 的位数为 15 位 故满足课题要求频率范围 20 20KHz 内 y 的变化范围为 8192 16383 在整个周期相同的一闸门时间 T 内的计数值为 N 会产生 1 个脉 冲的误差 故误差为 要使测量绝对误差 2 即 0 f 为基准脉冲 应大于 3 6MHZ 本设计采用的基准脉冲频率为 40MHZ 计数设计顶层图如下图 4 2 VHDL 语言描述 JISHU2 见附录 1 1 图 1 6 计数模块顶层设计图 0 0 360 y x 100 360 220 100 N 1 0 f khz e 100 1 N 0 0 360 b a 精选范本 1 3 2 数据溢出处理模块数据溢出处理模块 由于乘除法占用的资源很多 可能在一片芯片内部都不能实现 通过移位模块 将要进行乘除法运算的数据 X Y 同时除以 2n n 为移位的位数 而对相位差计算 移位不影响相位差测量 移位设计顶层图如下图 1 7 VHDL 语言描述 YIWEI 见附录 1 2 图 1 7 移位模块顶层设计图 1 3 3 运算模块运算模块 这一模块实现相位差转化的计算表达式 0 0 360 b a 在处理过程中 因为 VHDL 语言在处理除法运算过程中不能对浮点进行处理 为 了避免误差 只能先用乘法 再用除法 具体参照 vhdl 语言描述 乘法设计顶层图如下图 1 8 VHDL 语言描述 TYCHENFA 附录 1 3 图 1 8 乘法顶层设计图 除法设计顶层图如下图 1 9 VHDL 语言描述 KCHUFA 附录 1 4 图 1 9 除法顶层设计图 1 3 4 数据选择模块数据选择模块 运算出来的结果为相位差范围为 0 180 判断 CP1 与 CP2 之间的超前和滞 后的关系 使相位差的范围为 0 359 9 范围内 具体处理过程如下 精选范本 先判断 CP1 CP2 的滞后超前 以 CP1 为准 CP2 为滞后 则输出为 3600 CP2 为滞后 则输出为 再显示 加上小数点 便可在显示管上显示相 位差大小 输出 12 位二进制经译码形成 BCD 码 数据选择模块设计顶层如图 1 10 VHDL 语言描述 XUSHU1 附录 1 5 图 1 10 数据选择模块顶层设计图 12 位二进制经译码形成 BCD 码电路图如下图 1 11 图 1 11 译码电路图 封装元件如下图 1 12 图 1 12 转换电路封装元件 精选范本 整个相位测量模块顶层设计如图 1 13 图 1 13 数字移相信号发生器顶层模块 各小模块功能如下所示 JISHUZ 实现计数模块功能 用基本脉冲同时对 CP1 的一个周期和 CP1 CP2 异或后 的脉冲信号高电平时间计数 YIWEI 实现移位模块功能 将计数值 X Y 同时除二移位 TYCHENFA 实现乘法运算 KCHUFA 实现除法运算 XUSHI 对 CP1 CP2 进行超前还是 滞后判断 并数据选择输出 SCAN 8 DOT 实现动态扫描译码显示 VHDL 语言描述附录 1 6 12 2 bcd 将 12 位二进制数转换为 BCD 码 实现译码功能 各输入信号的流程图如图 1 14 图 1 14 输入信号的流程图 X Y X Y CP1 XOR CP2 CLK CP2 X x3600 3600 X Y CP2 CP1 3600 360 X Y flag 精选范本 仿真波形如下 1 15 图 1 15 顶层模块仿真波形 第第 2 章章 PCB 电路板的设计与制作电路板的设计与制作 2 1 PCB 板的制作板的制作 在暑期实习的第一天老师就讲授了 Altium Designer10 基本使用方法 之后笔 者利用几天时间通过一个小作业熟悉了该软件的简单应用 学会了设计 PCB 的布线 元件的封装等 这次做相位测量仪就是要在之前的练习的基础上进一步强化应用 笔者先利用 Altium Designer10 设计相位测量仪的原理图 先建立各个元件的原理 图库 然后在建立 sch 文档 把元件的原理图导入文档之中 用导线连接好 注意 各个元件的原理图和封装必须一一对应 对于没有封装的元件要自行组建封装并且 导入库中 再根据原理图导出到 PCB 文件中 然后合理摆放各个元件的位置 可以 参照典型电路的布局 最后合理布线后就可以形成 PCB 的基本轮廓了 电路布局时 应安排好中心元器件 并应按模块布局 可调元件应放置在合适的位置以方便调节 电路与外接仪器的连接端 测试端要布置合理 便于操作 要充分利用内部的连线 尽量减少不必要的接线 要合理利用导线的粗细不同区分连线的功能 由于本次布 线中地线的布局直接影响到功放的输出效果 而且地线又相当地多 假如按常规布 线会导致布线复杂不堪 于是这次采用覆铜接地的小技巧 并且手工布线 对于电 源线与信号线则尽量加粗 出于 PCB 版的布局合理性以及从 PCB 板资源方面考虑 还有与老师的多次讨论修改之后笔者最后选用了下面的布局 如下图所示 经过多 次修改 主要是从线的宽度以及焊盘的大小 和元件是否对称还有板布局的是否紧 促这几个方面来改 原理图如图 2 1 精选范本 图 2 1 原理图 设计 PCB 图时 我们根据实验室热印制的标准 调整了布线规则 PCB 图如图 2 2 图 2 2 PCB 图 上图是没有移相网络的设计 另外我们还做了有移相网络的设计 但是由于 PCB 板大小的限制 我们最终放弃了这一方案 原理图见附录 2 1 精选范本 2 2 热转印与元件的安装热转印与元件的安装 2 2 1 热转印 腐蚀法 热转印 腐蚀法 这种方法就是先 PCB 图打印到特殊的黄色纸张上 然后通过热压机 转印机 在 130 度的温度左右把该图传印到敷铜板上面 由于笔者的图中有大块的覆铜 所以 在热转印之后有不少墨粉脱落 所以笔者在转印之后的铜板上用油性笔进行了勾画 把不该被浮士德地方重新覆盖住 之后再放在环保腐蚀剂中进行腐蚀 这样没有印有 墨迹的地方都被腐蚀掉 剩下的就是敷铜线路图了 2 2 2 PCB 板加工板加工 对腐蚀好了的电路板进行钻孔 要注意钻孔的注意事项 笔者钻孔的过程中还遇 到了不小的麻烦 原因是笔者需要的香蕉插座是 6mm 的直径 然后钻孔机中没有合 适的型号 最后实在没有办法笔者是用最大号的机子钻周围的缝隙才抠出 4 个孔 钻孔之后就是清洗电路板 用砂纸或者是钢丝刷擦去表面上的墨迹 最后上防氧化 膜 酒精松香溶液 这样再检查一下笔者就完成就了电路板的制作过程 2 2 3 元件的安装元件的安装 元件清单 电阻若干 电容若干 运放 LF353D 过零比较器LM393 二极管 若干 稳压管 1N4733A 施密特触发器 DIP 14 封装 74LS14 四位共阴数码管 A5461AH con2 连接器 con2 线 排针四排 连接线 10 根 开关两个 焊接技巧 手拿焊丝 右手握烙铁 进入备焊形态 请求烙铁头坚持洁净 无 焊渣等氧化物 并在表面镀有一层焊锡 烙铁头靠在两焊件的衔接处 加热整个焊件部分 工夫大约为 1 2 秒钟 关 于在印制板上焊接元器件来说 要留意使烙铁头同时接触两个被焊接物 焊件的焊 接面被加热到必定温度时 焊锡丝从烙铁对面接触焊件 留意 不要把焊锡丝送到 烙铁头上 第第 3 章章 电路板的调试电路板的调试 3 1 调试方法调试方法 首先要检查焊接的地方是否使印刷电路板损坏 检查个电阻是否同图纸相同 各个二极管 三极管是否有极性焊错 位置装错以及是否有电路板线条断线或短路 焊接时有无焊接造成的短路现象 电源的引出线的正负极是否正确 然后要记下每 次调节的过程 如果调节失败 再重新调回带 要十分注意的是在调试的过程中电 精选范本 路板上会有很多根我们人为连接出来的导线 在电源接通的时候千万要注意不要短 路 若一切正常的话就可以开始进行调试 在调试之前应先将变压器接于输入端 波形发生器接在双莲花插座的一端和接 地端 负载接于相应于波形发生器输入的输出端 电位器调到最大 示波器 CH1 接 在波形发生器两端 CH2 接在输出两端 然后打开电源 通电之后在正常情况下示波器 CH1 显示的是正弦波 CH2 显示的是经过整形的方 波 若波形出现错误 应当返回上一级的测试端口 直到找到问题的根源并对其进 行改正 最终获得正确的波形后再通过芯片进行正确的相位测量 3 2 调试遇到的问题调试遇到的问题 在调试中 我们遇到了以下问题 在调试中 我们发现我们的原理图在设计中有一个严重的错误 因为理解出现 问题 我们在制作 PCB 时将部分芯片进行了镜像 导致在实际焊接时 芯片无法正 确连接 我们想到了两个解决方案 第一个即不对 PCB 进行较大改动而将芯片的引 脚接出 然后按照正确的方式将引脚分别接入正确的线路 但是实际操作时我们发 现这种方法实际操作时太过费时费力且多接出的线可能导致其他的问题 因此我们 选择了另一个办法 我们将原本处于底层的线和顶层的线进行了互换 这样预览后 的的图样就显示正确了 我们重新印制了 PCB 板 这个办法虽然看起来浪费时间 但是和第一种方法相比 杜绝了很多不必要的隐患 事实也证明这样选择是正确的 另外 因为是第一次做 PCB 板 由于经验的缺乏 在焊接完电路板之后没有及 时将过长的电路元件的引脚剪短 也因此当用万用表测试时由于失误以及以上方面 的原因导致人为的短路致使芯片被烧掉不仅导致芯片的无法使用 而且还导致我们 要对每一个器件进行检查以确保他们都完好无损 导致了许多不必要的麻烦 我们 从中也吸取了许多的教训 在实际测试过程中 我们也遭遇了很多挫折 其一是设计 PCB 电路时一味的节 约空间增加了之后焊接的难度 导致焊接电路之间靠的太近 而接通电路电路后便 非常容易互相影响 甚至有发生两个焊头无意连接导致短路的情况发生 这里我们 又损失了几个器件 对此深表痛心 另外则是由于操作的不小心误把芯片接反 导 致波形的错误 这个问题也花费了我们较多时间最终才发觉 3 3 测试数据测试数据 理论理论实测实测Rx 6 7 7 4 100k 47 49 6 9k 14 1 14 8 2k 33 45 33 3 5 1k 26 7 28 1 4k 66 9 22 7 33k 精选范本 第第 4 章章 结论与收获体会结论与收获体会 经过为期十二天的时间 我们完成了这次课程设计 此次设计课题是基于 FPGA 的数字式相位测量仪的设计与制作 使用的软件是 quatus 使用的硬件描述 语言为 VHDL 在这次设计中我们真正主要完成了基于 FPGA 数字式相位测量仪设 计与制作模块中的相位测量系统 数字移相信号发生器 频率测量程序的编译 部分 模块的仿真 在这次课程设计制作中 使我们对 VHDL 语言有了更深刻了解 我感 到自己学习到很多 也明白了很多 1 首先是学到先做人后做事的道理 在设计中 遇到很多弄不了的东西 自己不 会 就查资料 向老师 同学请教 得到他们热情耐心的帮助 使自己受益非浅 真正有效率的学习方法并非自己一味的闭门造车 因为每个人的想法都多种多样 多了解别人的想法也有助于开拓自己的思维 这样才能更加容易的完善自己的方案 作出更好的作品 2 理论要自己用于实践之后才能证实是不是适合自己的理论 设计开始时我们分 别找到了许多不同的方案 有单独基于 FPGA 也有 FPGA 与单片机相结合的 之 所以最终确定用这种方案 首先是考虑到元器件的限制 另外一点则是担心不同程 序之间的冲突我们把握不好 可能会导致最终的失败 3 这次实习最重要的一部分是磨练了我们的意志和实际操作的技巧 纸上得来终 觉浅 当真正开始硬件操作时 我们才体会到这其中的难度丝毫不亚于编程 而对 于硬件语言的不够熟悉导致了我们实际操作时事倍功半 这让我们体会到 无论做 任何事情都不能等到事到临头再开始准备 而应当在平时就掌握必须的技能 这样 在真正遇到情况的时候 才能得心应手的控制和解决 而非手忙脚乱 这次暑期实习让我们收获颇深 也认识到许多自身的不足 在未来的学习生活 中我们一定会努力改正这些不足 让自己变得更好 以迎接未来更加艰巨的挑战 精选范本 附录 附录 程序 程序 1 1 JISHU2 计数模块 library ieee use ieee std logic 1164 all use ieee std logic unsigned all use ieee std logic arith all entity jishu2 is port cp1 cp2 in std logic clk in std logic cp fen1 out std logic 1hz cp 4 buffer std logic 200k flag out std logic count11 out std logic vector 21 downto 0 count21 out std logic vector 20 downto 0 end jishu2 architecture pengshu of jishu2 is signal cp std logic signal cpp std logic signal mm integer range 0 to 200 signal count integer range 0 to 200000 signal count 1 std logic vector 21 downto 0 signal count 2 std logic vector 20 downto 0 signal count1 std logic vector 21 downto 0 signal count2 std logic vector 20 downto 0 begin process cp1 cp1 分频 begin if cp1 event and cp1 1 then cpp not cpp end if end process cp cp1 xor cp2 异或 process cp1 滞后 超前判断 begin if cp1 event and cp1 1 then if cp2 1 then flag 0 else flag 1 精选范本 end if end if end process process clk 动态扫描脉冲信号 begin if clk event and clk 1 then if mm 200 then cp 4 1 mm 0 else cp 4 0 mm mm 1 end if end if end process process clk 以 CP1 为闸门时间计数 begin if clk event and clk 1 then if cpp 1 then count 1 count 1 1 else count 1 00 end if end if end process process cpp 以 CP1 为闸门时间计数值锁存 begin if cpp event and cpp 0 then count1 count 1 end if end process process cp clk 以 CP1 和 CP2 异或信号信号高电平时间为闸门时间计数 begin if clk event and clk 1 then if cp 1 then count 2 count 2 1 else count 2 0 end if end if end process process cp 以 CP1 和 CP2 异或信号信号高电平时间为闸门时间计数值锁存 begin if cp event and cp 0 then count2 count 2 end if end process 精选范本 process cp 4 设定一秒为显示频率 begin if cp 4 event and cp 4 1 then if count 200000 then cp fen1 1 count 0 else cp fen1 0 count count 1 end if end if end process process cpp 两计数值同时锁存 begin if cpp 1 and cpp event then count11 count1 count21 COUNT2 END IF END PROCESS end pengshu 1 2 YIWEI 移位模块 library ieee use ieee std logic 1164 all use ieee std logic unsigned all use ieee std logic arith all entity yiwei is port count 1 in std logic vector 21 downto 0 count in std logic vector 20 downto 0 constance out integer range 0 to 3601 cnt 1 out std logic vector 14 downto 0 cnt out std logic vector 13 downto 0 end yiwei architecture pengshu of yiwei is begin constance 3600 process 判断移位 位数 begin if count 1 21 1 then 移七位 cnt 1 14 downto 0 count 1 21 downto 7 cnt 13 downto 0 count 20 downto 7 elsif count 1 20 1 then 移六位 cnt 1 14 downto 0 count 1 20 downto 6 精选范本 cnt 13 downto 0 count 19 downto 6 elsif count 1 19 1 then 移五位 cnt 1 14 downto 0 count 1 19 downto 5 cnt 13 downto 0 count 18 downto 5 elsif count 1 18 1 then 移四位 cnt 1 14 downto 0 count 1 18 downto 4 cnt 13 downto 0 count 17 downto 4 elsif count 1 17 1 then 移三位 cnt 1 14 downto 0 count 1 17 downto 3 cnt 13 downto 0 count 16 downto 3 elsif count 1 16 1 then 移两位 cnt 1 14 downto 0 count 1 16 downto 2 cnt 13 downto 0 count 15 downto 2 elsif count 1 15 1 then 移一位 cnt 1 14 downto 0 count 1 15 downto 1 cnt 13 downto 0 count 14 downto 1 else cnt 1 14 downto 0 count 1 14 downto 0 不移位 cnt 13 downto 0 0 中间变量付 0 aa cc 商的中间变量 if chenshu 0 1 then 判断乘数 0 位是否为 1 result aa 若为 1 则把 aa 付给它 else result others 0 end if for i in 1 to b cs 1 loop b cs 1 aa xx 1 downto 1 aa xx 2 downto 0 aa 0 0 if chenshu i 1 then result aa result 累加 end if end loop end if shuchu result 将乘积输出 end process end a 1 4 kchufa 除法模块 library ieee use ieee std logic 1164 all use ieee std logic unsigned all use ieee std logic arith all entity kchufa is generic bit bc integer 26 bit c integer 15 port clk in std logic bchus in std logic vector bit bc 1 downto 0 chushu in std logic vector bit c 1 downto 0 shuchu OUT std logic vector bit bc 1 downto 0 end kchufa architecture a of kchufa is signal div shang std logic vector bit bc 1 downto 0 signal div cshu std logic vector bit c downto 0 signal count std logic vector 7 downto 0 begin div cshu 0 div cc then shang i 1 sub sub cc else shang i 0 end process process clk begin if clk event and clk 1 then if count x 01 then shuchu shang count x 00 else count count 1 end if end if end process end a 1 5 XUSHU1 数据选择显示模块 library ieee use ieee std logic 1164 all use ieee std logic uns

温馨提示

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

评论

0/150

提交评论