便携式信号发生器及示波器设计软件设计.docx

上传人:b****8 文档编号:30206916 上传时间:2023-08-07 格式:DOCX 页数:15 大小:61.16KB
下载 相关 举报
便携式信号发生器及示波器设计软件设计.docx_第1页
第1页 / 共15页
便携式信号发生器及示波器设计软件设计.docx_第2页
第2页 / 共15页
便携式信号发生器及示波器设计软件设计.docx_第3页
第3页 / 共15页
便携式信号发生器及示波器设计软件设计.docx_第4页
第4页 / 共15页
便携式信号发生器及示波器设计软件设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

便携式信号发生器及示波器设计软件设计.docx

《便携式信号发生器及示波器设计软件设计.docx》由会员分享,可在线阅读,更多相关《便携式信号发生器及示波器设计软件设计.docx(15页珍藏版)》请在冰豆网上搜索。

便携式信号发生器及示波器设计软件设计.docx

便携式信号发生器及示波器设计软件设计

文档编制序号:

[KKIDT-LLE0828-LLETD298-POI08]

 

便携式信号发生器及示波器设计软件设计

毕业论文(设计)

题目便携式信号发生器及示波器设计—软件设计

院系电子信息学院

专业电子信息工程年级2010级

学生姓名苟浩

学号

指导教师沈毅斌

便携式信号发生及示波器设计——软件设计

电子信息工程专业

学生苟浩指导教师沈毅斌

【摘要】本设计以单片机控制技术为核心,寸触摸液晶屏作为控制及显示设备,凭借基于直接式数字频率合成器的芯片AD9851作为信号源和高速AD采样芯片AD9280制作。

通过编写单片机STC15F2K61S2相关控制代码,在触摸液晶屏实现功能选择,数字输入及结果显示,包括信号发生器和简易示波器。

信号发生器需达到输出指定频率的正弦信号并在屏幕上显示,简易示波器则需完成对数据的采集和计算并将波形及相关参数显示在屏幕上。

该设计简洁便携,价格便宜,能满足大部分场合的需求。

【关键词】触摸屏单片机信号发生器示波器

TheDesignofPortablesignalgeneratorandoscilloscope

——SoftwareDesign

【Abstract】Thedesignofsingle-chipcontroltechnologyasthecore,LCDtouchscreenasthecontrolanddisplayequipment,withdirectdigitalfrequencysynthesizerbasedchipAD9851ADasasignalsourceandhigh-speedsamplingchipAD9280production.BywritingtherelevantcodetothemicrocontrollerSTC15F2K61S2inLCDtouchscreenfunctionselectionandresultsachieved,includingsignalgeneratorsandsimpleoscilloscope.Requiredtoachievethespecifiedsignalgeneratoroutputfrequencysinusoidalsignalanddisplayedonthescreen,youneedtocompleteasimpleoscilloscopedatacollectionandcalculationparametersandwaveformsanddisplayedonthescreen.Thedesignissimple,portable,inexpensive,canmeettheneedsofthemajorityofoccasions.

【Keywords】Touchscreen;Microcontroller;SignalGenerator;Oscilloscope;

 

1绪论

随着我国高速发展,信息时代已悄然来临,电子电气与数字信息深入了百姓生活中的方方面面。

越来越多的基建设施开始修建并投入使用。

为了降低维护人员的工作强度提高工作人员的效率,国内已经涌现出大批便携式的测量仪涉及到各个工业民用领域。

数字示波器、信号发生器都是常用的检测测量仪器,也是用处最广泛的仪器。

但传统的示波器及信号发生器的体积都比较大,不像万用表那样携带方便,一般只能在固定场合使用。

而工程测量中往往不可能时时刻刻携带笨重的“台式”仪器,因此市场对手持测量仪器的操作简单、快捷,用途多样化的需求越来越明显。

其操作简单、快捷,实时性强,在电子测量领域得到了广泛的应用。

很好的弥补了固定测量设备灵活性差,功能单一的缺点,可以有效的完成检测及测试任务,能有效提高户外测量人员的工作效率。

因此设计一种具有这两种测量功能的测量仪,体积小、如普通万用表大,质量轻、操作简单,通过触屏进行功能选择,即可实现这两种基本测量的仪器具有重要意义。

背景

目前仪器仪表呈现出高速发展趋势,20世纪中期以后,随着自动控制理论的产生和自动控制技术的逐渐成熟,以A/D(数字/模拟转换)环节为基础的数字式仪器仪表得到快速发展。

伴随着通讯、计算机、软件和新材料、新技术等的高速发展与成熟,人工智能化在线测控成为可能,使仪器走向智能化、虚拟化、网络化。

数字仪器、智能仪器、个人计算机仪器、虚拟仪器和网络仪器代表了20世纪现代科学仪器发展的主流与方向。

《仪器仪表行业“十二五”规划》要求把传感器及智能化仪器仪表摆到推动制造业转型升级的重要位置,在工信部相关资源中对传感器及智能化仪器仪表的研发及产业化予以支持【1】。

我国仪器仪表行业广泛通过电子商务领域进行应用,为该行业发展做出了强有力的贡献。

而随着十二五的到来,我国仪器仪表行业也必将进入一个超高速发展阶段。

未来五年,仪器仪表行业总产值将达到或接近万亿元,年平均增长率高达15%。

未来五年,我国仪器仪表行业将应用电子商务开拓市场,其必将成为行业持续发展的主流趋势【1】。

所以便携式仪器弥补了传统仪器的不足,价格便宜,将具有更大的市场。

现状与发展

尽管在国家宏观调控政策的引导与控制下,我国仪器仪表行业在近些年来取得了前所未有的高速发展,然而核心技术的缺失,大量高尖端产品仍然依赖国外进口,这是我国仪器仪表行业面临的严峻考验之一。

中国仪器仪表行业协会顾问董景辰曾经指出:

其实很早就有人看到,现今仪器仪表行业企业小、散、乱的状况也是阻碍本行业发展的重要原因之一。

但是在经济高速发展时期,市场需求很大,小、散、乱企业生产的产品也都能完成销售任务,因此企业没有动力,也没有需求来改变这一现状。

事实上,市场经济的无序竞争确实要为当今仪器仪表行业的一部分现状买单。

然而,由于企业实力不强,造成在技术研发和制造生产过程方面的人才与资金投入严重不足,致使国内产品和国外相比还有很大差距却更是主要的原因【2】。

1、加大技术研发和制造投入

我国仪器仪表虽然占有市场的大量份额,但主要聚集在低端市场。

大部分高端精密仪器仍然需要进口,大部分技术和产品研发还处在跟踪国外的状态。

为了面对国际市场竞争的残酷性,仪器仪表企业必须加大技术研发和制造投入,掌握核心技术这样才能在残酷的市场中获得一席之地。

2、规范仪器仪表行业

当今我国大部分仪器仪表企业主要面向低端民用市场,企业多,技术难度低,导致在低端市场竞争激烈,甚至出现恶性竞争,产品质量无法保证。

因此需要规范仪器仪表行业使仪器仪表行业走向良性发展。

3、政策的大力支持

随着国家大力振兴发展高新产业、推进两化融合,国民经济中各行业自动化程度逐步提高,对仪器仪表的需求持续增长,故仪器仪表行业虽然也受到国内外经济疲软的影响,但受到的冲击程度较小,行业在整体上仍保持了平稳增长【3】。

论文主要工作

本设计以2块单片机(分别用A和B表示)STC15F2K61S2最小系统为核心,以高速AD采集模块,DDS信号发生器以及寸触摸液晶屏作为外围器件。

A的最小系统连接寸触摸屏并通过串口与B相连,B连接高速AD采集模块(AD9280)和DDS信号发生器(AD9851)。

系统上电后,通过触摸显示屏选择功能,A接受到命令后传给B,由B驱动相关电路完成采集或信号输出工作。

本文主要介绍便携式发生器及示波器的软件设计、实现过程。

第一章绪论。

主要介绍了便携式信号发生器及示波器的开发背景、国内外发展现状、论文主要工作。

第二章方案与论证。

对单片机通信方式及部分代码的编写方式进行功能分析,设计几种方案,并进行其可行性、技术路线、关键技术以及技术难点与解决方案的分析,最终选出最可行的方案。

第三章相关计算公式理论。

主要介绍示波器的有效电压,频率,幅值等的计算。

第四章软件设计。

先进行单片机程序设计,程序编好后就进行对其进行测试。

第五章硬件设计。

先进行原理图的设计,用AD画出原理图,再进行PCB的设计,但一定要注意元器件参数与测试方法的选择,最近进行电路板的焊接。

第六章系统的调试与结论。

调试软件,并对系统进行整合,观测项目结果。

2方案论证

本设计基于STC15F2K61S2单片机,高速AD9280及DDS信号发生器AD9851实现信号发生器和简易示波器设计。

在触摸液晶屏实现功能选择,数字输入及结果显示;信号发生器功能实现输出指定频率的正弦信号并在屏幕上显示;简易示波器功能完成对数据的采集和计算并将波形及相关参数显示在屏幕上。

软件流程图如下图所示。

图1软件流程图

系统上电后,单片机A接受到的来至触摸屏的控制信号和控制参数通过串口传给单片机B,单片机B在根据相关命令驱动相关电路并将结果回执给单片机A,单片机A对回执数据处理后显示在屏幕上。

单片机的通信方案论证

单片机的通信主要完成单片机与单片机或单片机与其他外设的数据交换。

要求传输稳定占有很少的系统或硬件资源。

当前单片机主机从机之间的通信主要有SPI、UART、I2C三种方式。

2.1.1SPI(SerialPeripheralInterface--)

SPI总线接口系统是一种同步串行外设接口,它可以使MCU与多种外围设备以串行方式进行通信以完成信息流的交换。

主要优缺点如下1、传输速度快,为全双工通信其传输速度较I2C快很多能达到几Mbps。

2、虽然SPI传输速度较快,但他占用了较多的I/O口,且没有应答机制无法确认是否完成接收。

接收框图如下图所示。

图2SPI接收结构图

2.1.2I2C内部整合电路

用于及其外围设备的连接。

是当今微电子通信和电子控制领域中使用最广泛的一种总线标准。

它是同步通信的特殊形式中的其中一种,I2C具有接口线少,控制方式简单有效,器件封装形式较小,通信速率较高等优点。

但本设计中STC15F2K61S2单片机不具备I2C硬件接口,只能通过代码软件模拟通信方式,代码工作量较大。

因此不采用此方式进行通信。

2.1.3UART(UniversalAsynchronousReceiver/Transmitter--通用异步收发传输器)

UART是一种通用串行,用于。

该通用串行总线为双向通信,可以实现和接收。

且大部分单片机都带有1个或多个UART。

UART通信方式代码简单,传输效率高,且只占用2个I/O口,其性能指标,与简单的代码设计完全能满足本次作品设计所以在本设计中我选择UART方式进行通信。

串口收发方式的方案论证

串口收发方式主要有中断方式和查询方式,中断方式比较适合处理具有随即特性的事件,事件发生后向cpu提出申请,然后cpu会保存当前的任务转去处理事件。

编程时采用查询方式则需要程序不断查询标志位来确定事件是否已经发生,而中断方式要编写中断服务子程序来处理中断事件。

中断方式和查询方式其区别简单总结如下图所示

图3查询与中断方式总结图

中断方式与查询方式相比能节约系统开销不浪费CPU资源,但在本设计中主从机串口不仅都用来发送命令数据也都有接收命令数据且数据的收发时间段是已知的。

为方便代码编写,明确程序流程。

在本系统中查询方式与中断方式相比系统开销相差无几。

综上所述,本次设计采用查询方式设计以方便代码的编写。

3理论分析与计算

本设计主要通过高速A\D采样实现便携式示存储波器功能,便携式示波器需要完成对波形常见参数的计算包括Vpp、Vmax、Vmin、Vrms。

其中不同波形的Vrms计算不同且较为复杂。

Vpp、Vmax、Vmin的计算

AD9820为8位高速A\D芯片,量程为0~2V,本设计加入了前置梳理电路使量程变为-5V~+5V,模数转换后值为0~255。

因此可计算出分辨率为10/256=。

在值为127时输入电压为零。

大于127时输入电压为正,小于127输入电压为负。

Vmax的值为AD采集数据中对应的最大数值当Vmax大于127时其值为(最大采集数值-127)*。

小于127时其值为最大采集数值*。

同理Vmin为值为AD采集数据中对应的最小数值当Vmin大于127时其值为(最小采集数值-127)*。

小于127时其值为最小采集数值*。

Vpp为峰峰值其计算方法为

Vpp=Vmax-Vmin

(1)

Vrms的计算

Vrms指交流电的有效值是根据电流的热效应规定的让交变电流和直流电通过同样的电阻,如果它们在同一时间内产生的热量相等,就把这一直流电的数值叫做这一交流电的有效值简而言之就是周期电源中用来运算平均功率或平均能量之大小值,称为有效值。

若有一周期T的交流电压,在一周期时间内对一负载R所做的功为【5】

(2)

而在同一时间直流电压V对负载R所做的功为

(3)

若两者做功相同则有

(4)

变换得

(5)

这个电压即为有效电压也称均方根值。

本设计中考虑到单片机的性能只对正弦波、三角波、方波进行Vrms计算,从软件设计上让系统自动判断波的类型较为复杂,所以当用户观察到波形后手动选择计算类型计算相关参数。

正弦波的有效值为

(6)

三角波的有效值为

(7)

方波的有效值为

(8)

扫频参数与晶振时间的计算

本设计中选用的晶振为24MHz,且STC15F2K61S2是1T单片机此时1时钟周期等于1机器周期,但在本设计中为方便计算并减小误差定时器任然选用12T模式因此可根据时钟晶振的振荡频率计算出机器周期,因此一个计数周期

T=1/(24Mhz/12)=(9)

扫频模式中需要用户输入起始频率、终止频率、步进及扫频时间这些相关参数。

步进次数=(终止频率-起始频率)/步进,步进时间=扫频时间/步进次数。

通过定时器0的多次定时计数即可确定时间进行相应的幅值最终完成扫频功能。

4软件设计

在硬件的基础上对软件进行设计,系统设计要求包括两大功能简易信号发生器和简易示波器用户可以根据需要自行选择相应的功能。

其中简易信号发生器要求用户能随意选择模式或更改参数,简易示波器要求能进行波形显示、部分参数显示、存储、时间轴可调等。

以上功能也是相关模块的基本功能,实现这些功能使得系统更加人性化更具有实用性。

因此根据系统软件设计要求将软件划分为:

信号发生器、简易示波器两大模块。

主程序

主程序完成系统初始化并等待用户进行功能选择,其中初始化包括初始化触摸显示屏、串口等。

图4程序流程图

系统上电随即开始运行进入主程序,进入主程序后先开始初始化,初始化包括整个系统所需要的一系列外设,最先开始初始化触摸显示屏随后是串口。

初始化完成后系统将功能显示输出在屏幕上等待用户进行功能选择。

选择相应功能后即进入相应的子模块。

主要(关键)代码:

main()

{

spistar();3c3c

-9208A

1062C

都在文指导沈毅斌谢简磊2013-3-15620a3a0116c2013-1-100L2012-6-6HowardPhillips,ElectronicsReliabilityandMeasurementTechnology,1998。

[8]王学凤,陈培,韩潮,王盛.基于DDS芯片AD9851的信号源设计与实现[J].微计算机信息,2008,22:

111-112+218.

 [9]田良,王尧,黄正瑾,陈建元,束海东,综合电子设计与实践(第二版),2010年7月第2版。

 [10]杨素行,模拟电子技术基础简明教程(第三版),清华大学电子学教研室,2006年5月。

附录

1、程序代码

读EEPROM代码

BYTEByte_Read(WORDadd)

{

IAP_DATA=0x00;

IAP_CONTR=ENABLE_ISP;//打开IAP功能,设置Flash操作等待时间

IAP_CMD=0x01;//IAP/ISP/EEPROM字节读命令

=add;

IAP_ADDRH=[0];//设置目标单元地址的高8位地址

IAP_ADDRL=[1];//设置目标单元地址的低8位地址

IAP_TRIG=0x5A;//先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此

IAP_TRIG=0xA5;//送完A5h后,ISP/IAP命令立即被触发起动

_nop_();

IAP_Disable();//关闭IAP功能,清相关的特殊功能寄存器,使CPU处于安全状态,

return(IAP_DATA);

}

写EEPROM代码

voidByte_Program(WORDadd,BYTEch)

{

IAP_CONTR=ENABLE_ISP;//打开IAP功能,设置Flash操作等待时间

IAP_CMD=0x02;//IAP/ISP/EEPROM字节编程命令

=add;

IAP_ADDRH=[0];//设置目标单元地址的高8位地址

IAP_ADDRL=[1];//设置目标单元地址的低8位地址

IAP_DATA=ch;//要编程的数据先送进IAP_DATA寄存器

IAP_TRIG=0x5A;//先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此

IAP_TRIG=0xA5;//送完A5h后,ISP/IAP命令立即被触发起动

_nop_();

IAP_Disable();//关闭IAP功能,清相关的特殊功能寄存器,使CPU处于安全状态,

}

AD9851复位代码

voidad9851_reset_serial()

{

ad9851_w_clk=0;

ad9851_fq_up=0;

//rest信号

ad9851_rest=0;

ad9851_rest=1;

ad9851_rest=0;

//w_clk信号

ad9851_w_clk=0;

ad9851_w_clk=1;

ad9851_w_clk=0;

//fq_up信号

ad9851_fq_up=0;

ad9851_fq_up=1;

ad9851_fq_up=0;

}

AD9851数据写入代码

voidad9851_wr_serial(unsignedcharw0,doublefrequence)

{

unsignedchari,w;

longinty;

doublex;

//计算频率的HEX值

180M晶振/180为最终时钟频率(或30M六倍频)

//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz!

frequence=frequence/1000000;

frequence=frequence*x;

y=frequence;

//写w4数据

w=(y>>=0);

for(i=0;i<8;i++)

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//写w3数据

w=(y>>8);

for(i=0;i<8;i++)

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//写w2数据

w=(y>>16);

for(i=0;i<8;i++)

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//写w1数据

w=(y>>24);

for(i=0;i<8;i++)

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//写w0数据

w=w0;

for(i=0;i<8;i++)

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//移入始能

ad9851_fq_up=1;

ad9851_fq_up=0;

}

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

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1