综合硬件设计报告.docx

上传人:b****6 文档编号:7385907 上传时间:2023-05-11 格式:DOCX 页数:16 大小:443.06KB
下载 相关 举报
综合硬件设计报告.docx_第1页
第1页 / 共16页
综合硬件设计报告.docx_第2页
第2页 / 共16页
综合硬件设计报告.docx_第3页
第3页 / 共16页
综合硬件设计报告.docx_第4页
第4页 / 共16页
综合硬件设计报告.docx_第5页
第5页 / 共16页
综合硬件设计报告.docx_第6页
第6页 / 共16页
综合硬件设计报告.docx_第7页
第7页 / 共16页
综合硬件设计报告.docx_第8页
第8页 / 共16页
综合硬件设计报告.docx_第9页
第9页 / 共16页
综合硬件设计报告.docx_第10页
第10页 / 共16页
综合硬件设计报告.docx_第11页
第11页 / 共16页
综合硬件设计报告.docx_第12页
第12页 / 共16页
综合硬件设计报告.docx_第13页
第13页 / 共16页
综合硬件设计报告.docx_第14页
第14页 / 共16页
综合硬件设计报告.docx_第15页
第15页 / 共16页
综合硬件设计报告.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

综合硬件设计报告.docx

《综合硬件设计报告.docx》由会员分享,可在线阅读,更多相关《综合硬件设计报告.docx(16页珍藏版)》请在冰点文库上搜索。

综合硬件设计报告.docx

综合硬件设计报告

成都信息工程学院电子工程学院

[硬件设计]

实验报告

 

题目:

硬件设计

专业:

电子与通信工程

班级:

2012级

姓名:

********

指导教师:

***

评分:

2013年01月09日

目录

1硬件设计概述2

2设计主要内容3

2.1模拟低通滤波4

2.2放大5

2.3AD转换6

2.4数字带通滤波7

3软硬件测试9

3.1软件仿真9

3.1.1模拟低通滤波仿真9

3.1.2放大电路仿真11

3.1.3软件框架12

3.2硬件调试13

4设计总结13

4.1存在的问题与解决的方法13

4.2设计感想14

5附录15

 

综合硬件设计

1硬件设计概述

此次设计主要包括模拟滤波电路、放大电路、AD转换电路、数字滤波电路等部分。

数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。

数据采集技术广泛引用在各个领域。

比如摄像头,麦克风,都是数据采集工具。

被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。

在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。

而在数据采集中存在着各种噪声。

滤除噪声的方法有很多种,既有数字滤波器,也有模拟滤波器。

这里我们采用了基于单片机和C语言来设计并开发数字滤波系统。

我们针对于单片机数据采集系统中经常出现的随机干扰,通过手动输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的C程序。

总的来说就是输入信号经过模拟滤波,进行预处理,保留感兴趣的信号,再通过放大器对其进行放大,以便进行AD转换,然后将放大后的模拟信号经过ADC转换成数字信号,最后通入单片机完成数字滤波。

2设计主要内容

设计内容主要包括模拟滤波、放大以及数字滤波部分。

这里我们使用了51系列单片机——AT89C51,利用这个单片机进行编程,实现对输入信号的滤波。

我使用了P0口作为接受AD转换的结果的端口。

另外还利用了P2作为控制端口,P2.0-P2.2用来控制AD转换器,而P2.3-P2.6外接四个开关,用来实现滤波方式的选择。

下图2-1是基本的流程图:

图2-1基本流程图

主要原理图如下:

2.1模拟低通滤波

根据要求设计一个模拟低通滤波器,滤波器要求通带范围为0~40KHz,在50KHz处衰减要达到40dB。

当椭圆滤波器通带和阻带波纹幅度固定时,阶数越高,则过渡带越窄,鉴于椭圆滤波器的这一特性,又考虑到过渡带10KHz内要达到40dB的衰减,选择设计一个5阶的椭圆滤波器。

设计主要通过filtersolutions10.0进行:

设计参数如图2.1-1所示:

图2.1-1椭圆低通滤波器设计参数

通过设置参数后,自动生成电路以及滤波器的基本信息如图2.1-2所示,0~40KHz通带最大衰减1dB,阻带50KHz处衰减达到41.95dB,满足滤波器的性能需求。

图2.1-2椭圆低通滤波器电路与基本信息

图2.1-3是椭圆滤波器的频率响应图,从图中可以看出在0~40KHz通带范围内,几乎没有衰减且呈现等波纹幅频特性,50KHz时幅度衰减了40dB,同时阻带也呈现出等波纹幅频特性。

相位特性的非线性是由于椭圆滤波器本身特性造成,在本次过程中不影响使用。

图2.1-3椭圆低通滤波器频率响应图

2.2放大

由于有的ADC无法采集负电压信号,所以在进行放大之前应先把交流信号的负电压部分上拉成正电压,这样ADC才能采集到。

上拉负电压方法如图2.2-1所示,运放采用芯片LM324。

图2.2-1上拉交流信号负电压电路图

如图2.2-1所示,将输入的交流信号加上一个直流信号,以达到拉高负电压的目的。

通过调节电位器R4的阻值,可以控制它分压的大小,调节直流信号的幅度,由于输入的是300mV的交流信号,所以加的直流信号至少为150mV。

进行完成之后紧接着对交流信号进行放大,放大电路如图2.2-2所示,同相放大电路,通过调节电位器R3,控制放大倍数。

图2.2-2同相放大电路

2.3AD转换

ADC芯片选用ADC0804,ADC0804是8位COMS依次逼近型的A/D转换器。

它的模拟电压输入范围为0~+5V,那么其能转换的最小电压由式(2.3)可求得为19.5mV,满足本次实验需求。

5V/(2^8)=19.5mV(式2.3)

ADC模块电路如图2.3-1所示,

图2.3-1ADC0804模块电路

2.4数字带通滤波

单片机设计一个带通滤波器,要求中心频率为10KHz,带宽±2KHz,通带最大衰减1dB,阻带最小衰减35dB。

数字带通滤波器首先通过Matlab设计,得到传输函数,再通过单片机实现。

Matlab主要设计程序如图2.4-1,同样采用椭圆滤波器,先设计模拟滤波器,再转成数字滤波器,最后通过函数变换得到二阶节型传输函数。

图2.4-1数字带通滤波器Matlab主要设计程序

数字带通滤波器的幅频相频特性如图2.4-2所示,达到设计的要求。

图2.4-2数字带通滤波器幅频与相频特性

鉴于以上的结果,然后用函数tf2sos将数字带通滤波器的传输函数转换成二阶节的形式,最后通过单片机实现。

3软硬件测试

测试主要分为两个部分,第一部分为制板之前对设计方案的软件仿真,主要使用Multisim软件,第二部分是对成品的硬件调试。

3.1软件仿真

3.1.1模拟低通滤波仿真

在Multisim中搭建如图2.1-2所示电路,用Agilent的函数发生器模拟输入不同频率的信号,用Tektronix的示波器观察输出信号的衰减情况,具体设置如图3.1-1所示。

图3.1-1模拟低通滤波器仿真电路

通过调节输入信号的频率,观察不同频率下电路的滤波情况,这里在通带频率与阻带频率中各进行几次仿真,结果如图3.1-2,3.1-3,3.1-4所示。

图3.1-210KHz输入输出情况

图3.1-340KHz输入输出情况

图3.1-2与图3.1-3上方的波形为输入信号波形,幅度为300mV,频率分别为10KHz和40KHz,下方的波形为输出波形,可见信号经过设计的模拟滤波器后幅度上有固定的衰减,大概160mV左右,这是由于设计的滤波器主要由无源器件搭建,在能量上必然有所损耗,这也是在滤波后级联放大电路的主要原因之一。

由图3.1-2和图3.1-3可以看出设计的滤波器在通带范围内有较好的一致性,除去固定衰减,滤波衰减较小,下面通过图3.1-4观察滤波器阻带范围衰减的情况。

图3.1-450KHz输入输出情况

图3.1-4所示,上方为输入信号波形,下方为输出波形,50KHz信号在通过低通滤波器后有了较大的衰减,除开电路的固定衰减,阻带的幅度衰减也达到了100倍左右。

综上可知,模拟低通滤波器的设计方案可行。

3.1.2放大电路仿真

放大电路分成上拉电压与放大两部分,在Multisim中搭建图2.2-1与图2.2-2中的电路,效果如图3.1-5所示。

图3.1-5放大电路仿真图

输入30KHz,300mV交流信号,示波器中得到的图型如图3.1-6所示,

图3.1-6放大电路示波器图形

图3.1-6所示,由上到下依次为输入信号波形,上拉后的信号波形以及放大后的信号波形。

从图中可以看出,输入信号的负电压加上一个直流信号后,已经被拉到了正电压上,再通过同相放大,幅值放大了6.8倍,根据式(3.1)计算可得放大倍数为7,基本符合。

(式3.1)

实际电路中,R8与R6使用电位器,这样只要控制R8与R6的阻值大小,就可以调节输入信号的上拉幅度和放大倍数。

以上仿真验证了放大电路的可行性。

3.1.3软件框架

3.2硬件调试

硬件调试部分由老师现场亲自检查。

4设计总结

4.1存在的问题与解决的方法

在上拉交流信号负电压的电路中,会出现“直流不直”的现象。

设计中为了采集到负电压信号,理论上使用的方法是加入直流信号,以达到上拉负电压的目的。

但在实际操作过程中,加入的并不是标准的直流,图4.1-1是上拉电压仿真图,图4.1-2是电路各点信号图。

图4.1-1上拉电压仿真图

图4.1-2上拉电压各点信号图

通道1是5V直流电源,通道4是函数发生器输出的30KHz交流信号,通道2是分压后的直流电源,但可以看到此时直流信号已经受到了交流干扰,这个交流干扰应该来自于函数发生器输出的交流信号。

本身设想的是通道1的直流信号与通道3信号相加,实际上却是形如通道2的信号与通道3信号相加,但这不会对我们的设计产生影响。

通过观察可以看到通道2的信号与通道3的信号周期一致,相位也相同或者相差整数个周期,且波峰对波峰,波谷对波谷,这样不仅起到了上拉的作用,而且还对信号进行了放大。

4.2设计感想

这次整个综合设计通过了软件和硬件上的调试。

我想这对于我们以后的学习和工作都会有很大的帮助。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。

一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。

对于数字滤波系统,其程序不是很难的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。

这次课程设计让我充分认识到要学会借鉴别人的思想的重要性,很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。

因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。

小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。

所以我认为这次的课程设计意义很深,和**,**2位同学的共同学习﹑配合﹑努力的过程也很愉快。

5附录

相关模块如下;

AD程序模块:

#include<52reg.h>

#include              //包含单片机内部资源预定义

__CONFIG(0x1832);        

//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

constcharTABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0X82,0XF8,0X80,0X90};

//定义常数0-9的数据表格

void  DELAY();              //delay函数申明

void  init();               //I/O口初始化函数申明

void  display(intx);       //显示函数申明

  //主程序开始

void  main()               

{

   intresult=0x00;          //定义转换结果寄存器

   while

(1)                  //死循环

   {

   inti;                    //定义循环次数控制寄存器

   result=0x00;              //转换结果清0

   for(i=5;i>0;i--)          //求5次转换结果的平均值

     {

      init();                //调用初始化函数

      ADGO=0X1;              //开启转换过程

      while(ADGO);           //等待转换完成

      result=result+ADRESL;  //累计转换结果

      }

      result=result/5;       //求5次结果的平均值

     display(result);        //调用显示函数

   }

  }

//初始化函数

void  init()               

  {

   PORTA=0XFF;               

   PORTD=0XFF;               //熄灭所有显示

   TRISA=0X1;                //设置RA0为输入,其他为输出            

   TRISD=0X00;               //设置D口全为输出

   ADCON1=0X8E;              //转换结果左对齐,RA0做模拟输入口,其它做普通I/O

   ADCON0=0X41;              //系统时钟Fosc/8,选择RA0通道,允许ADC工作

   DELAY();                  //保证采样延时

   }

//显示函数

voiddisplay(intx)          

   {

     int  bai,shi,ge,temp;   //定义4个临时变量

     temp=x;                 //暂存AD转换的结果

     bai=temp/0x64;          //求显示的百位

     shi=(temp%0x64)/0xa;    //求显示的十位

     ge=(temp%0x64)%0xa;     //求显示的个位

     PORTD=TABLE[bai];       //查表得百位显示的代码

     PORTA=0x37;             //RA3输出低电平,点亮百位显示

     DELAY();                //延时一定时间,保证显示亮度

     PORTD=TABLE[shi];       //查表得十位显示的代码

     PORTA=0x2F;             //RA4输出低电平,点亮十位显示

     DELAY();                //延时一定时间,保证亮度

     PORTD=TABLE[ge];        //求个位显示的代码

     PORTA=0x1F;             //RA5输出低电平,点亮个位显示

     DELAY();                //延时一定时间,保证亮度

   }

void  DELAY()              //延时程序

    {

     inti;                 //定义整形变量

     for(i=0x100;i--;);     //延时

    }

数字滤波器模块:

#include<52reg.h>

#defineunsignedintuint

#defineunsignedcharuchar

#definea01

#definea1-6.7556

#definea220.9092

#definea3-38.5192

#definea446.0971

#definea5-36.67

#definea618.9498

#definea7-5.8288

#definea80.8215

#defineb00.0105

#defineb1-0.0676

#defineb20.2033

#defineb3-0.3714

#defineb40.4505

#defineb5-0.3714

#defineb60.2033

#defineb7-0.0676

#defineb80.0105

voidmain()

{

floatv1=0,v2=0,v3=0,v4=0,v5=0,v6=0,v7=0,v8=0;

floatx1=0,x2=0,x3=0,x4=0,x5=0,x6=0,x7=0,x8=0;

floaty1=0,y2=0,y3=0,y4=0,y5=0,y6=0,y7=0,y8=0;

uinti;

uintN=16;//每接受N数据做一次

for(i=0;i

{

x0=InPut[i];

x1=a1*v1+a2*v2+a3*v3+a4*v4+a5*v5+a6*v6+a7*v7+a8*v8;

y1=b1*v1+b2*v2+b3*v3+b4*v4+b5*v5+b6*v6+b7*v7+b8*v8;

v0=x0+x1;y0=b0*v0+y1;

v8=v7;v7=v6;v6=v5;v5=v4;v4=v3;v3=v2;v2=v1;v1=v0;

OutPut[i]=y0;

}

}

PCB图与3D效果图:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2