嵌入式 > 嵌入式开发 > 详情

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

发布时间:2024-06-19 发布时间:
|
1 引言

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

2 系统原理与组成

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

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


图1系统组成结构图

3 系统硬件设计与实现

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


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

3.1电源模块设计

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

3.2 外部扩展存储器设计

C8051Fl21MCU内部有位于外部数据存储器空间的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.4DAC设置

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


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
占先式内核(只带延时服务)