目前,电子产品的生命周期越来越短,许多消费类电子产品的生命周期只有一年左右,所以必须缩短产品的开发周期,而可编程逻辑器件与固定逻辑器件相比,可大大缩短开发周期。可编程逻辑器件将逐渐替代大部分的固定逻辑器件。软核处理器的出现以及可编程逻辑器件片上存储容量的增大,使得可编程逻辑器件可以覆盖数字电子领域中的所有应用。
SOPC是在一个可编程芯片上实现一个电子系统的技术。SOPC是基于可编程逻辑器件PLD(FPGA或CPLD)可重构的SOC。SOPC集成了硬核或软核CPU、DSP、锁相环(PLL)、存储器、I/O接口及可编程逻辑功能,可以灵活高效地解决SOC方案,而且设计周期短,设计成本低。基于SOPC的设计在很大程度上依赖于利用集成电路IP(Intellectual Property,知识产权的简称)。Nios II是一种软核(Soft-Core)处理器,是指未被固化在硅片上,使用时需要借助EDA软件对其进行配置并下载到可编程芯片(比如FPGA)中的IP核。软核最大的特点就是可由用户按需要进行配置。
本设计构建了一个功能全面的多媒体娱乐平台,集SD卡音乐播放、卡拉OK、图片浏览和电子钟等功能于一身。
音乐播放和卡拉OK功能都是由DE2开发板的音频输入/输出实现。DE2的音频输入/输出由Wolfson公司的低功耗立体声24位音频编/解码芯片WM8731完成。WM8731包含了线路输入、麦克风输入及耳机(音响)输出。两路线路左、右声道能以1.5dB的步距在+12~-34.5dB范围内进行对数音量调节,完成A/D转换后,还可以进行高通数字滤波,有效滤除输入信号中的直流成分。一路麦克风输入可以在-6~34dB范围内进行音量调节。这三路输入都有单独的静音功能。D/A转换器输入、线路输入旁路及麦克风输入经过侧音电路后可相加作为输出以驱动耳机(RHPOUT和LHPOUT)。DE2平台上的LINE OUT可以直接驱动耳机。LINE IN经过隔直电容输入,而MIC IN则直接输入。充分利用了24位立体声音频编/解码芯片WM8731高性能、低功耗的优点,可听到音质较好的音乐。
SD卡作为大容量的存储器,已经成为数码产品首选的存储设备,用于存储图像、音频等数据。本设计是将wav格式的音乐保存在SD卡中,Nios II处理器从SD卡中读取音乐数据,并通过CD音质的音频编/解码器WM8731播放音乐。音频编/解码器被配置为从模式,需要外部电路为其提供A/D转换器(D/A转换器)串行时钟(BCK)及左/右通道时钟(LRCK),如图1所示。图中用一个音频DAC控制器产生时钟及数据控制信号,然后将该音频DAC控制器集成在Avalon总线上,Nois II处理器通过Avalon总线来控制音频DAC控制器。
在本设计中,用DE2平台的LINE IN、LINE OUT和麦克风实现卡拉OK机的功能。由FPGA将WM8731配置为主模式工作,即由音频解码器WM8731自动产生A/D转换器(D/A转换器)、串行数据位时钟BCK及左/右声道时钟LRCK。FPGA通过I2C接口配置音频编/解码器WM8731,通过配置从LINE IN输入的音频数据与从MIC IN输入的音频数据混合后通过LINE OUT输出,音频采样速率为48kHz。
图片浏览功能由彩色液晶显示模块实现。本设计的TFT_LCD采用Terasic公司设计的一款名为TRDB_LTM的彩色液晶显示子开发板。该子开发板是针对DE2开发板设计的一款液晶显示模块。主要参数为:4.3英寸屏,点阵为480×800,长宽比15∶9,有效显示面积93.6×56.16mm。可以接收RGB格式的数据,支持RGB24位并行数据接口,通过3线串行接口与LTM内部的寄存器交换数据来实现显示控制和功能选择。
电子钟由系统板所带50MHz时钟信号经分频作为时钟源,输入至电子钟模块进行计数,分别输出年月日时分秒的BCD码信号,再经过定义DE2_Card_Audio的NiosII处理器处理之后,由16x2字符型带背光液晶显示模块LCD1602作为显示输出。三个按键分别控制当前时钟的模式和时钟的加减调节。所以,电子钟是由软硬件协同设计的。
16×2液晶显示模块LCD1602中16×2内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。电子钟时、分、秒、年、月、日由VHDL所描述的硬件电路实现。
图1 SD卡音乐播放器原理框图
本设计是完全基于FPGA/NiosⅡ的全新开发概念。充分采用了软核处理器的开发思想以及Altera DE2开发平台,使系统具有开发周期短、易于维护、功能模块化等特点。通过设计控制模块,减少了硬件电路的复杂性,即兼顾功能,又降低了设计成本。载入更新的软核系统就能够实现硬件升级。
本设计可以依据不同的需求,选取不同的功能,并利用NiosII占用FPGA资源少和可裁剪性等特点,完全做到了系统体系的精简化和作品的低成本。使其在目前的多媒体娱乐市场上具有很高的竞争力,并且应用前景广泛。用基于FPGA的SOPC技术提高系统稳定性,使用NiosII提供的多种硬件加速方式,如自定义用户指令,自定义用户外设等大大提高运算速度,使算法和控制的实时性得到了有效的保证。
[1]王诚,吴继华,范丽珍等.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.
[2]Altera Corporation.Cyclone II Device Handbook,Volume 1.2008.
[3]张志刚.FPGA与SOPC设计教程——DE2实践[M].西安:西安电子科技大学出版社,2007.
[4]DE2 Development and Education Board User Manual.Altera Corporation,2009.
[5]Altera Corporation.Nios II Software Developer's Handbook.2009.
[6]Altera Corporation.Nios II Flash Programmer User Guide.2009.
[7]蔡伟纲.NIOS II软件架构解析[M].西安:西安电子科技大学出版社,2007.