【基于W78E58B的任意信号发生器的设计】 设AB为任意集合

摘要:随着电子技术的不断发展,在电子、通信等相关领域,经常要用到各种各样的信号发生器,因其功能单一、精度有限,已不能满足现在多样化、高精度的要求。本系统以单片机W78E58B为核心,辅以必要的模拟电路及上位机波形设计软件,来设计一款任意低频信号发生器。

  关键词:单片机;W78E58B;信号发生器

  电子科学技术的迅速发展,使得各种仪器对数据的采集功能要求更加严格,测量精度的要求越来越高,以往的单一功能、低精度的信号发生器已不能适应现实的需要,本文以W78E58B单片机为核心,设计一款任意低频信号发生器。

  1 设计思想和技术指标

  1.1 设计思想

  以W78E58B单片机为核心,辅以必要的模拟电路及上位机波形设计软件,构成一个任意信号发生器。下位机模块能通过按键控制输出产生预设正弦波,方波,三角波,矩齿波四种波形,并能显示相应的参数。在Visual C++语言编写的上位机界面用户拖动鼠标左键在图片框绘制波形时,同时将各点值存储下来,按波形产生键生成波形。并通过自制的示波器显示出波形。

  1.2 主要技术指标

  1) 具有多个频道的存储、掉电存储断电记忆功能;可产生预设正弦波,方波,三角波,矩齿波;还可产生用户自己通过电脑编辑的任意波形,能存储10余个手绘波形。

  2) 软件上采用查表式,全部键盘控制方式;操作环境为屏幕英文菜单,直接点选。

  3) 参数显示:数字化液晶屏显示波形名,频率,幅度,周期以及倍频值。

  ① 设计产生频率范围:1-4000Hz。

  ② 设计频率输出幅度:0.0-10.2V。

  ③ 带100欧电阻负载输出误差:﹤2%。

  4) 能通过NH12864J-1液晶显示器显示实时波形。

  2 方案设计与论证

  方案1:采用模拟分立元件或单片机控制函数发生器MAX8038,可产生正弦波、方波、三角波,通过外部元件可改变输出频率,但产生的信号频率稳定度较差、精度低、抗干扰能力低、成本高而且灵活性较差,不能实现任意波形及波形运算输出等智能化的功能。

  方案2:采用传统的直接频率合成器。这种方法能快速实现频率变换,具有低相位噪声以及所有方法中最高的工作频率。但由于采用大量的倍频、分频、混频和滤波环节,导致直接频率合成器的结构复杂、体积庞大、成本高,难以达到较高的频谱纯度。更重要的是,这种方法只能实现正弦波,或者进行积分,微分等方法实现方波、三角波等标准波形,而对于我们所要求的任意波形却无法实现。

  方案3:用W78E58B单片机控制系统的波形表、频率、幅度,通过更换波形数据可以轻松地实现任意波形功能,采用Flash ROM将用户输入波形进行硬盘式的存储防止掉电,后级采用二阶切比雪夫滤波电路对后阶输出波形进行高频滤除,输出稳定光滑的波形。

  综合考虑各种因素,选择方案3来进行任意信号发生器的设计。

  3 整机工作原理

  电路总体方框图(如图1所示)。

  下位机模块主要完成的功能:处理键盘数据,生成波形表存储与RAM中;控制LCD显示;控制DAC0832进行幅值转换。能产生预设正弦波、方波、三角波、矩齿波四种波形,并能显示相应的参数。在Visual C++编写的上位机界面用户拖动鼠标左键在图片框绘制波形时,同时将各点值存储下来,按波形产生键生成波形,然后按确定通过串口传送给单片机系统,通过单片机将生成的数据写入波形存储器(RAM)中,再由D/A模块将波形合成出来,这样就可以产生出所需的任意波形,接到示波器上可以得到平滑稳定的波形,同时在液晶屏OCM19264-2上显示相应的波形名、频率、幅度、周期以及倍频值。从信号发生器输出端送入到STC12C5412AD单片机,根据奈氏抽样原理,将连续模拟信号用冲击信号抽样,10位量化得到离散的数字量,存储在RAM中分析,通过NH12864J-1液晶显示器显示出来。

  4 系统硬件电路设计

  4.1 波形产生模块

  要产生任意波形,就不可能像普通直接数字频率合成器那样将要产生的波形预先固化在ROM中,所以波形存储双口RAM实现的,需存储在RAM中的波形数据是由单片机采集外部数据,对E2PROM中存储的标准波形数据进行各种相应的运算而得到的。

  1) 根据设计的技术指标,我们设计如下方案:将归一化的正弦波、方波、三角波的5次谐波以下的波形存储在8kbyE2PROM中,每种波形存储128个字节的点。然后由单片机根据键盘输入的不同要求,对各点数据乘相应系数并叠加,再将所得到的新的128个字节的数据存储在E2PROM中,此时我们便得到了所需要的波形数据表。

  2) 我们使用键盘输入所需波形的一个周期内16个采样点的数值,单片机采集数据后,进行线性插值,得到128个点的数值,送双口RAM,产生所需波形数据表,其余同上述实现部分。

  4.2 数模转换及幅度控制模块

  1) 数模转换:采用转换速度为1us,带宽为1MHz的八位高速乘法器DAC0832,DAC0832具有快速的稳定时间,可满足波形发生器的要求。输出级接一级运放作为电流电压转换器,可得到-5V到+4.9V双极性电压输出。

  2) 幅度控制:利用DAC0832内部的电阻分压网络,将经前一级DAC0832产生的波形作为后一级DAC0832的基准电压,由单片机控制输入数字量,从而实现步进0.1V到峰值的调整。

  4.3 键盘控制模块

  信号发生器模块键盘由六个微触开关构成,控制液晶屏的输出信息,六个微触开关分别控制对液晶屏进行初始化,选定确定,波形选择,幅度步进,频率步进和周期值。

示波器模块键盘由三个独立按键组成,独立按键便于控制。分别为向下键、向上键、回车键。

  4.4 液晶显示模块

  现在市面上流行的点阵式液晶显示器,它具有功耗低、接口方便、能显示图形和文字、读数清晰、价格便宜等特点。考虑到实用性和通用型的结合,本系统设计选用字符型液晶模块,信号发生器选用的是4行48个字的OCM19264-2液晶模块,该液晶屏自带双控制芯片,自动完成液晶控制,该液晶含192×64dot,8bit并口传输,蓝光背景显示白字,采用全英文显示。

  4.5 示波器模块

  根据奈奎斯特抽样定理,将连续模拟信号用脉冲信号抽样,10位量化得到离散的数字量,存储在RAM中以便分析。这种方法的基础是高速ADC,而STC12C5412AD系列单片机内部就集成有8通道10bit的高速ADC,本设计采用120KHz采样率,根据奈奎斯特抽样定理,大于两倍于信号频率的抽样速度就能从数字量中还原出模拟信号,但为保证还原后的高保真度,本设计采用8倍抽样速率,因此进行波形分析的输入信号的频率不能大于15KHz。

  4.6 上位机和单片机通信的硬件电路

  由于上位计算机串口通信所使用的电平与单片机信号电平并不兼容,解决两者通信的关键问题就在于将通信接口电平相互兼容,从而达到良好通信。本设计使用了目前广泛使用的MAX232实现该功能。

  5 软件的设计与实现

  该系统程序中,74LS595及液晶等采用汇编语言编写,整体构成以C语言编写,上位机软件采用Visual C++开发。

  5.1 下位机的软件流程图

  信号发生器的工作流程图如图2所示。

  5.2 上位机程序功能和界面

  上位机部分采用Visual C++编写程序完成界面设计,界面内有以下几个功能区域可供操作者点击:坐标区、坐标指针实时区、station区(LINE、SINE、FREE功能键)、频率振幅显示区、编辑提示区。上位机Visual C++编写界面中使用了文本控件、命令按纽控件、标题控件、SSTAB控件、MSCom控件等,对其属性进行了相关设置。 使用了Visual C++中的对话*.Show、*.Hide和MSComm1_OnComm等系统函数,开发的上位机界面如图3所示。

  6 系统测试与结果分析

  6.1 波形存储测试

  该部分测试包括波形在线存储和掉电测试。

  在线存储测试:先输出波形A,再输出波形B,按键恢复波形A,经检测可实现此功能。

  掉电存储测试:输出任一波形C,关闭电源后上电,按键恢复输出波形C,经检测该功能也能实现。

  6.2 波形频率测试

  该部分测试先设定任一波形的频率值,然后测试其频率值 ,以三种基本波形为例,测试数据如表1。

  6.3 周期性波形测试

  周期性波形包括频率和幅值可调的正弦波,方波和三角波及其线性组合波形,用数字示波器来测试波形频率和幅值,测试数据如表2、表3。

  由以上数据分析可知,本文设计的任意信号发生器满足设计的技术指标要求,符合规范。

  7 结束语

  本设计最大的特点是可以实现任意波形,并能在液晶屏上显示出相应参数,而且本系统软件部分采用菜单式操作,按键简单快捷。单片机采用了较好的型号,给日后的系统扩展和升级留下了足够的空间。

  参考文献:

  [1] 李广弟.单片机基础 修订版[M].北京:北京航空航天大学出版社,2000.

  [2] 全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品汇编[M].北京:北京理工大学出版社,2002.

  [3] 谭浩强.C程序设计第二版[M].北京:清华大学出版社,2003.

  [4] 康华光.电子技术基础—-模拟部分[M].北京:高等教育出版社,2000.