基于FPGA的手持式示波器设计

出处:电子技术网 发布于:2013-07-04 11:57:46

  摘要:在此设计的低成本手持式示波器是以ADC128S022模/数转换芯片为数据采集前端;使用FPGA片内双口内建RAM进行数据存储、有限状态机实现示波器的触发控制和显示驱动;再用LCD12864液晶模块完成终端的低成本图形显示。在DE0-Nano FPGA(Altera Cyclone IV)开发板上的测试结果表明,所设计的手持式示波器可以实现模拟信号任意电平上升沿或下降沿的触发测量;垂直灵敏度和扫描速度调节、波形参数的直接读出等功能。

  0 引言

  目前,数字存储示波器以其体积小、携带方便、准确率高的独特优势逐步取代了传统的模拟示波器,并向着更为小巧的低成本、便携式应用方向发展。近几年来,许多研究者充分利用FPGA 片上的资源丰富、使用灵活、开发成本低的优点提出了一些数字示波器的虚拟仪器解决方案[1 - 2]和嵌入式解决方案[3 - 8],这些设计采用FPGA片内资源来实现数字示波器的数据存储(RAM)、触发控制、数字信号运算与处理、显示终端驱动等功能,这在很大程度上能够降低示波器成本和复杂度,但是这些设计方案往往会使用到微处理器[3-7](8051/ARM/NoisⅡ)作为系统调度和数据处理的或采用VGA 显示器作为图形输出终端[1,2,8],还不能达到低成本的手持便携使用要求。

  LCD12864 液晶显示模块具有低压、微功耗、寿命长、超薄等显着优点,比较适合低成本、便携式电子信息产品来实现字符和图形的显示。因此,文中就以LCD12864液晶模块作为数字示波器的低成本图形显示终端;基于FPGA 应用技术,设计出了具有模拟信号任意电平、上升沿或下降沿触发;垂直灵敏度和扫描速度调节、波形参数的直接读出特点的低成本手持式数字示波器。

  1 手持式示波器的系统设计

  基于FPGA的手持式示波器系统结构框图如图1所示,系统主要包括片外AD芯片、配置芯片EPCS16、以及片内PLL模块、采样时钟配置模块、按键扫描模块、触发控制模块、双口RAM存储模块[9-10]、采样数据图形化与转置模块、LCD12864显示驱动模块等。示波器的工作过程大致如下:经过片外ADC128S022采集的12 b数字信号,再经过片内图形化模块后转换成1列LCD屏显示的点阵数据;为了适应液晶屏按行读出的工作方式,需要通道数据转置模块把按列采样的点阵数据转置成按行排列的数据;触发模块主要是要根据用户设置(键盘输入)的触发电平及模式来控制RAM 的写数据开始或停止指令,同时生成对应的写数据地址;数控采样时钟模块可以产生多种不同的采样时钟以满足不同频率信号的测量显示;LCD驱动模块主要是依据LCD的工作时序产生RAM的读数据地址和LCD模式控制指令。

  图1 所示手持式示波器的设计关键在于根据LCD12864显示模块的工作时序来组织双口RAM 的读/写、片外A/D 的数据采集;这样才能保证测量的模拟信号波形显示正确。下文就对片外A/D 模块、双口RAM的读写控制和LCD 显示驱动3个关键模块做出比较具体的设计描述。

  2 A/D转换模块

  系统选用德州仪器公司(TI)的12位CMOS模/数转换芯片(ADC128S022)实现模拟信号的数据采样,该AD可以通过通道选择信号实现8通道的模数转换,并且是单电源供电;功耗极低,在2.7~5.25 V的供电范围内,功耗只有1.2~7.5 mW;转换速率可以达到50~200 KSPS,通过串行外设接口(SPI)与外部器件交换数据,芯片采用16 引脚的超小型TSSOP 封装,这些特征都很适合小型的便携式电子产品上使用,ADC128S022的内部结构如图2所示。

  3 双口RAM的读写控制

  图1所示手持式示波器设计结构中的双口RAM 的每位数据分别对应于LCD12864屏上的一个像素点,要求存储容量8 192 b(1 024×8 b)。存储器的管理需要满足采集数据(64 b)按列实时写入、又要满足LCD模块按行读出数据(8 b)的要求。

  为此,首先需要把64 b的图形数据按位分成8段分别存储在8个128×8 b的RAM单元中,这样才能保证每个RAM存储单元的读/写数据位宽一致。其次,采集的波形数据需要经过行列数据转置模块,才能做到RAM数据的按行写入。行列数据转置模块采用了流水线结构,在触发启动信号和时钟的共同作用下把采集到的列点阵数据转置成适合LCD屏显示的行数据格式。

  图3 所示为双口RAM 存储单元的读写顺序示意;经过转置后行数据,按照图中所示的横向“S”形顺序写入,而在数据读出时,需要按照逐行的竖向的“S”形顺序进行读数据,这是LCD12864 模块控制时序要求的,按列逐字的写入存储器组织方式能够提高RAM的缓存数据刷新频率,同时也对存储器的读写地址生成电路形成了较高设计难度。

  4 LCD显示驱动模块

  要驱动LCD 模块显示正确图形,就需要根据液晶屏的控制时序和用户指令集,设计出正确的有限状态机(FSM)来完成LCD模块的初始化、控制命令和写入数据操作过程;并产生RAM 读数据的地址,图4 所示就是LCD显示驱动模块的状态迁移。

  在LCD模块的状态转换图中,系统上电后,首先进行持续大约0.05 s 的自动复位(需要根据时钟频率调整),然后进入LCD 模块的初始化过程,因此在状态机中设置有3条条件转换路径来实现LCD 屏的工作模式切换:初始化、显示数据和起始行地址写入。同时也在关键路径上设置有可以配置参数的延时-- 在方便LCD模块的工作调试的同时,使LCD模块一直工作在写屏模式,驱动LCD模块动态实时显示、产生双口RAM的读数据地址。

  5 设计验证

  使用DE0_Nano 开发板(Altera FPGA Cyclone IVEP4CE22F17C6N)、液晶模块(KB12864KZK)和4×4 键盘组成手持式示波器的硬件测试验证平台;示波器设计项目经过Quartus Ⅱ 10.1 FPGA开发平台的编译和芯片配置后得到的运行效果图如图5 所示,图中(a)是手持式示波器开机的画面;(b)是三角波的测量效果;(c)是正弦波的测量效果;(d)是下拉菜单隐藏效果。示波器参数设置采用5键输入的下拉菜单模式;设置时,屏的下端显示参数调整菜单,设置完成确认后菜单自动收起隐藏。

  实验结果表明,采用LCD12864液晶模块作为手持式示波器的显示终端,虽然显示分辨率较低,可以清楚看到图形的像素点;同时,这也是采用LCD12864 屏的独特优点所在--能够根据一个周期波形的像素点数和采样信号频率直接读出被测信号周期,假如采用100 kHz(周期10 μs)的采样率;测得显示屏上的一个完整周期的波形点数是50,那么该被测信号的周期就是500 μs.

  6 结论

  文中所设计的以LCD12864 模块为图形显示的低成本手持式示波器,终在DE0_Nano FPGA 开发板上的验证结果表明,完全实现了模拟信号的测量;垂直灵敏度和扫描速度调节、波形参数直接读出功能;这不但实现了示波器的廉价和便携,而且还具有被测信号周期直接读出的优点。

关键词:FPGA示波器

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!