基于C8051F单片机信号发生器设计与应用

发布时间:2010-4-6 14:32    发布者:我芯依旧
关键词: 单片机 , 发生器 , 设计 , 信号 , 应用
1 引言

在实际的弹道加速度测试中,需要产生许多波形曲线用来验证,而能够产生任意波形的信号发生器价格昂贵,不适合工程实际的需求.通过设计产生的信号发牛装置,不仅成本低,而且功能强大,可以产生满足各种需要的信号。C8051Fxxx系列单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件;内置FLASH程序存储器、内部RAM,大部分器件内部还有位于外部数据存储器窄间的RAM,即XRAM。数模混合的高度集成使得该单片机系统IJ以方便实现数控及简单信号处理等功能。C8051F121单片机具有片内VDD监视器、看门狗定时器和时钟振荡器,是真正能独立工作的片上系统。使用C8051F121单片机设计任意波形信号发牛器,不仅减少了器件,简化了电路,节约了成本,更使得系统稳定节能。方便快捷地输出多种低频信号。

2 系统原理与组成

系统以C8051F121单片机为核心,通过串口通信将PC机中的数据传送到单片机中,然后单片机将所接受的数据存放到128k的外部存储器中。系统的控制电路启动D/A转换将外部存储器中的数据转化成模拟信号,生成所需要的波形。波形的幅值、脉宽、频率、持续时问等参数均可以在VB程序下进行调节,可以实现任意波形的信号发生功能。

系统基本组成如图1所示,应用模块可以根据工程实际中的具体要求,实现不同的目的。本文中应用模块为加速度测试系统,用来实现测试装置的模拟信号输入。

1.gif
图1系统组成结构图

3 系统硬件设计与实现

系统实现信号发生功能设计目标主要包括以下几个方面:串口通信模块,电源供电模块,外部扩展存储器模块,外部晶振以及复位模块。下面详细介绍一下各单元的硬件电路和实现的功能。

2.gif
图2信号发生器硬件结构图

3.1 电源模块设计

整个系统采用3.3V供电,考虑到硬件系统对电源要求有稳压功能,另外也考虑到硬件系统的低功耗等特点,电源部分采用AR33将电源的5V电压转换成系统需要的3.3V;为了减少输出电源的高频噪声,在单片机、锁存器,外部扩展存储器以及电源输出部分分别应用了0.01uF和luF,0.1uF和4.7uF的配对电容,对电源进行滤波。

3.2 外部扩展存储器设计

C8051Fl21 MCU内部有位于外部数据存储器空间的8K字节片上RAM,但是对于实际的弹道速度信号发生器而言存储空间偏小,因而需要扩展容量更大的外部存储器。C8051F121提供用于访问片外存储器和存储器映射I/0器件的外部数据存储器接口(EMIF)。设计中采用的是IDT公司的IDT71V124SA芯片,3.3V供电,是高速的CMOS静态RAM,采用了高性能,高可靠性的CMOS技术和JEDEC中心电源/接地管脚分布,极大地减少了噪声,优化了系统性能。IDT7IVl24SA芯片提供了128x8存储容量,很好地满足了设计系统对数据和程序存储空间的要求。在单片机和外部存储器之间应用了一个地址锁存器74VHC573,用来锁存存储到IDT71V124SA的数据。接口部分采用地址和数据总线复用的方式以减少所需要的端口引脚数,这样配置使得外部存储器和C805IFl21之间传输数据时低位地址保持在锁存器中,不需要再为数据传输增加8位端口。

3.3 外部晶振设计

对于实际的系统而言,C8051F121单片机的内部时钟频率不能满足要求,因而需要配置较大频率的外部振荡器。C8051Fl2x器件包含一个内部振荡器和一个外部振荡器驱动电路,可以驱动外部晶体、陶瓷谐振器、电容或RC网络。设计中采用外部晶体作为外部振荡器。晶体振荡器被使能后,幅值检测电路需要一段稳定时间才能达到正确的偏嚣。在使能振荡器下作和检XTLVLD位之间至少等待1 ms,以防止过早将外部振荡器切换为系统时钟。等查询到XTLVLD=>’1’时,将系统时钟切换到外部振荡器。由于晶体振荡器电路对PCB布局非常敏感。在布局中将晶体尽可能地靠近了器件的XTAL引脚。引线地短并用地平面屏蔽,防止从其它引线引入噪声或干扰。

3.4 DAC设置

C8051F121器件有两个片内12位电压方式数/模转换器(DAC)。设计中使用了DAC1。并基于定时器溢出更新输出,这样在用DAC产生一个固定采样频率的波形时,可以消除中断延迟不同和指令执行时间不同对DAC输出时序的影响。当DACIMD位(DAClCN[4:3])被设置为‘01’、‘10’或‘ll’时,对DAC两个数据寄存器(DAClL和DAClH)的写操作被保持,直到相应的定时器溢出事件(分别为定时器3、定时器4或定时器2)发生时DACOH:DACOL的内容才被复制到DAC输入锁存器,允许DAC数据改变为新值。设计中在DAC输出口加入了电压跟随器,平稳地输出波形。

4 软件设计

系统软件设计部分包括单片机端和人机交互端两个部分。单片机端主要是通过串口接受来自采集系统的信号,保存到存储器中,输出电压信号;人机交互端主要通过Visual Basic软件编写图形界面,接受和传送数据,并且通过改变信号的幅值、脉宽、频率、持续时间等来实现对整个系统的控制。

4.1单片机端实现程序

单片机端软件采用C51编写,使用Keil uVision集成开发环境。主要完成单片机的初始化、串口通信和DAC输出设置,单片机的初始化主要是单片机的串口中断打开和系统配置初始化。单片机的串口通信模块主要完成单片机和上位机的通信,把系统需要的信息交由上位机进行处理。由于C8051F121单片机具有片内的UART,凶而只要设置适当的奇仔器使单片机工作起来,设计中串口通讯方式使用了效率高的中断方式接受和发送数据。

程序由一个主程序和三个中断服务程序组成,如图4所示。三个中断程序包括T0中断服务程序、外部中断服务程序和串口中断服务程序。

3.gif
图3单片机端软件操作流程图

4.2人机交互界面

应用Visual Basic软件的通信控件MSComm,实现了与单片机系统的串行通信。VB提供了具有强大功能的通信控件MSComm,该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。该串口是一个标准的十位串口通信,包括8位标准数据和数据的起始位和停止位。这些串口在Pc和单片机之间充当解释器的角色。当数据从PC传送给单片机时,字符数据会被转换成串行比特流;而当接收数据时,比特流数据会转换成字符数据传递到PC机。

采用VB6.0编程可以实现便于操作的可视化界面,并且对整个系统进行实时的控制.交互界面如图4(a)所示。

4.jpg
图4 VB交互界面

工具栏中文件下拉菜单中设置了读取数据,保存数据,新建及页面设置等一些基本的交互功能选项;工具下拉菜单中有测量获取数据和绘图设置的选项,通过这个选项可以准备的获得曲线上某一点的准确值,绘图设置中可以选择绘图方式、绘图色彩及捕捉网格的大小设置,如图4佑1所示。

5.gif
图5信号发生器采集的弹道侵彻过载曲线

DSP中可以选择对弹道曲线的滤波方式,软件给出了低通滤波等三种滤波方式,通过滤波可以得到更加光滑无毛刺的曲线。以低通滤波为例,软件设计了三种滤波器的选择,包括切比雪夫I型、切比雪夫II型和巴特沃兹型。可以通过调整滤波器的参数如阶数、归一化频率和阻带衰减值,得到需要的过载曲线。

图5给出了实际侵彻过程中测到的两条过载曲线,其中下图是某条曲线中的一段,并且经过滤波处理过。

5 结束语

本文利用C8051F121单片机具有的片内12位电压方式数/模转换器和内部集成化的数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件,设计了可以获取任意波形的信号发生器。采用了串口通信和D/A转换,在Visual Basic可视化操作界面下方便地读取和保存数据、编辑曲线,并且可以进行一些必要的信号处理和优化。而且电路简单清晰,功能明确。

本文作者创新点:针对整体项目的实际要求,以较低的成本实现了弹道存储测试需要的各种信号,经过仿真和电路测试,完全达到了设计的要求。设计的人机交互平台功能强大,使用方便,具有很好的推广和使用价值。

项目经济效益:预计可产生经济效益110万。


作者:王世虎,刘明杰,李晓峰      来源:《微计算机信息》(嵌入式与SOC)2009年第3-2期
本文地址:https://www.eechina.com/thread-10199-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
yuhuikeji 发表于 2015-12-23 20:19:14
谢谢分享!!!!!!!
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表