基于FPGA和51单片机的信号发生器设计
信号发生器又称为波形发生器是一种常用的信号源并且广泛应用于电子电路、通信、控制和教学实验等领域的重要仪器之一。为了降低传统函数信号发生器成本,改善信号发生器低频稳定性。结合FPGA和51单片机产生0.596 Hz频率精度函数信号。设计通过51单片机控制函数信号类型以及相关参数,用户可通过按键设置需要的波形、波形幅度、波形频率以及方波的占空比、相位。本文设计方案不仅具有良好的经济前景,也可以为当代高等教育深化改革做一个参考方向。
1 系统设计方案
1.1 系统硬件设计
本文中设计中硬件包括EP2C8Q20818N芯片和C8051F0201单片机、DAC0800芯片,T6963的LCD。本文中主要利用FPGA(EP2C8Q20818N)桥接控制LCD、4×4键盘和DAC0800(C8051单片机和DAC0800有一条基准电压信号),系统硬件设计框图如图2所示。本文中函数信号主要由FPGA(EP2C8Q20818N)产生;C8051单片机用作分析处理用户信息、给DAC0800提供基准电压以及控制FPGA(EP2C8Q20818N)产生需要用户的函数信号。
1.1.1 EP2C8Q20818N简介
EP2C8Q20818N是ALTERA公司推出一款嵌入式FPGA(现场可编程门阵列)芯片。具有182管脚。下面列出它的特性表,如图1所示。
1.1.2 C8051F0201简介
C8051F0201(以下简称51单片机)器件是完全集成的混合信号系统级MCU芯片,具有32个数字I/O引脚。此款51单片机具有高速、流水线结构的8051兼容的CIP-51内核(可达25 MIPS)。全速、非侵入式的在系统调试接口(片内)。12位、100 ksps的8通道ADC,带PGA和模拟多路开关。8位500 ksps的ADC,带PGA和8通道模拟多路开关两个12位DAC,具有可编程数据更新方式。64 K字节可在系统编程的FLASH存储器。4 352(4 096+256)字节的片内RAM,可寻址64 k字节地址空间的外部数据存储器接口。硬件实现的SPI、Sm Bus/I2C和两个UART串行接口,5个通用的16位定时器。具有5个捕捉/比较模块的可编程计数器/定时器阵。列片内看门狗定时器、VDD监视器和温度传感器,每个MCU都可在工业温度范围(-45~+85℃)内用2.7~3.6 V的电压工作。端口I/O、/RST和JTAG引脚都容许5 V的输入信号电压。
1.2 C8051单片机软件设计
C8051单片机软件主要包括按键处理函数、信号发生器控制函数、初始化函数、LCD显示函数、D/A函数以及主函数。软件设计的主程序流程框图如图3所示,子函数详细功能如表1所示。
1.3 FPGA(EP2C8Q20818N)软件设计
本文中主要采用Verilog HDL语言设计。主要包括片选模块、时钟驱动模块、键盘扫描模块、传出信号模块、LCD模块、DAC0800模块以及指示灯模块。详细功能如表2所示。
1.4 FPGA核心程序代码,DAC0800模块程序
2 测试结果
3 结束语
本文中运用FPGA和51单片机结合起来制作一个信号发生器。这样不仅能够锻炼学生单片机和FPGA的使用更能让学生学习到如何将FPGA和单片机联合通信使用。本文设计中可以对函数信精度进行升级,从而满足不同场合的函数信号需求。 |
|