当前位置:首页 > 工业控制 > 电子设计自动化

1 引言
由于数字信号只有高电平和低电平两种情况,因此,用单片机 (MCU)就可直接实现多路数字信号进行采集和逻辑分析。但由于单片机的时钟频率较低,完成一次采样的时间受程序执行指令速度的限制,采样速率通常不超过 1MHz。因此,用单片机只能实现对低速率数字信号进行逻辑分析。FPGA的工作时钟速率通常可达 200MHz以上,可对高速数字信号进行采样,但普通的 FPGA在与外部设备进行数据交换时显得不灵活。为了解决上述问题,通常是将 MCU与 FPGA结合起来,用 FPGA对高速数字信号进行采样,用 MCU负责与外部设备进行数据交换,从而实现对高速数字信号进行逻辑分析,如图 1所示。


随着可编程逻辑器件的发展,Altera公司研发了可以嵌入软 CPU核的 Cyclone系列和 Stratix系列的 FPGA芯片。嵌入式软核与普通硬核的昀大差别在于它的可裁减性,设计者可根据设计需求定制出不同结构的软核处理器。软 CPU核的嵌入实现了 CPU与 FPGA的无缝连接,使芯片既能处理高速数字信号,又能方便灵活地与芯片外部设备进行数据交换,还增加了系统的集成度和可靠性。
2 定制软 CPU核
软核的定制要利用 Altera公司提供的 SOPC Builder软件。
2.1定制 NiosⅡ处理器早期的软核处理器是 Nios,但其稳定性不够好,现已被 NiosⅡ所替代。 NiosⅡ处理器有三种类型: e(经济型 )、s(标准型)和 f(增强型)。选择不同类型的处理器所占用的逻辑资源和存储器资源大小不同,处理器的运算速度处理能力也有所差别。
2.2定制片内 RAM
片内 RAM作为软核程序的运行空间,对于没有扩展外部存储器的设计,片内 RAM是必须的部分。通过软件设计向导,可以设置片内存储器的类型,大小,以及初始化文件。 Cyclone系列芯片有 13~64个片内 RAM块,每个 RAM块的大小是 4K(128字×36位),用户可根据需要设置存储器的字数和字长。当定义的字数超过 128时,多个 RAM块可组成在一起,构成更大容量的存储器,满足设计要求。
2.3定制 UART接口
UART接口是软核与计算机通信的主要接口,通过设计向导可定制 UART接口。在定制 UART接口时,可以设置其波特率,校验位,是否允许 DMA控制。通过此基本设置,软核可以与 PC机之间实现串口通信的功能。
2.4定制 LCD控制端口和键盘控制端口此类端口是普通 I/O端口,设置比较简单。需要注意的是 LCD的数据端口是 8位的双向端口。当定制了以上 4部分后,即可生成软 CPU核。
3 最小系统形成
完成定制软核后,需要对软核编程,形成基于软核的昀小系统。
对软核的编程在 Nios ⅡIDE环境下进行。首先利用软件生成针对某软核的模版程序,用户程序都可以从模版开始。在生成模版程序的同时,也形成了 system.h文件,此文件中包含了对用户编程有用的许多信息,包括所有端口的地址空间分配,中断号等。在文件 altera_avalon_pio_regs.h中包含了对普通 I/O端口进行读写操作的函数,通过对函数的调用可实现对端口的操作。在文件 altera_avalon_uart_regs.h中包含了对 UART操作的基础函数,对串口的所有操作,都可通过对此中函数的调用来完成。

在昀小系统中,实现软核对 LCD的数据交换,读取键盘值,以及与计算机之间的通信。本设计键盘使用 4*4键盘,显示器采用 240*128点阵 LCD显示模块。主要子程序流程图如图 2所示。
4 基于软核的逻辑分析仪设计
4.1总体结构
基于 NiosⅡ的逻辑分析仪,采用 FPGA硬件对数据采集和存储,NiosⅡ软核进行交互、控制和通信,并且可以通过 LCD显示所采集数据的逻辑状态或通过 RS-232接口与 PC机通信,在 PC上显示数据的波形并对数据长期存储。另外,通过键盘可对逻辑分析仪的采样频率、触发方式等参数进行设置,这些设置也都可以通过 PC机进行。逻辑分析仪的整体结构如图 3所示。

4.2嵌入模块
4.2.1触发核模块
触发核主要决定什么时候采集数据,什么时候完成对数据的采集。在本设计中,触发条件分上升沿触发、下降沿触发、高电平触发和低电平触发四种。区分这 4种触发信息至少要用到连续两个时钟的数据,因此每级触发条件有两个条件判断字,触发核通过两次比较判断是否触发。触发核是硬件核,由组合电路和触发器组成。
4.2.2 PLL模块
在对数字信号进行采样时,需要的时钟频率至少应是数字信号波特率的 5倍。Cyclone器件的嵌入式数字 PLL要求外部输入 CLK信号昀低频率不能低于 20MHz,可通过分频的方式得到低频 CLK,通过倍频的方式得到高频 CLK,也可通过倍频和分频组合得到特殊的输出频率,本设计采用 25倍频和 2分频,使昀高时钟频率达 250MHz。
4.2.3数据存储模块

由于软核在工作时也是在执行指令,运行速度不快,不能完成对高速数字信号的采集。为此,本设计在 FPGA芯片中嵌入了 FIFO,作为数据的缓存。所采集的数据,首先存入 FIFO存储器中,这个过程全部通过硬件完成,每个采样时钟周期可完成一次数据的写入操作。当 FIFO中数据写满时,存储器将通知软核读取数据,软核完成数据的处理、显示和传输等操作。
由于 Cyclone器件中 FIFO的容量不大,若采用固定的采用时钟,当输入数字信号的波特率较低时,FIFO存储的数据可能还不到一个码元宽度的数据,从而无法在 LCD上显示其波形。因此,本设计采用了程控调整采样速率,从而保证了无论是低波特率信号还是高波特率信号,系统都能正确采样和显示波形。
4.3软核设计软核作为设计的控制核心具有重要作用,为了完成对 8路数据触发模式的设置,以及与
PC机通信,在用 SOPC Builder软件定制软核时,为其加入了 UART接口和若干位输入输出端口,这些端口也实现了通过键盘对各路数据触发方式和其它各参数的设置。
4.4软件设计

本设计编程语言采用的是 C++,软件流程包括参数设置、触发判断、数据采集、分析与通信、图形显示五个方面,主程序流程如图 5所示。


5 结束语
本设计通过在 Cyclone芯片中嵌入软 CPU、数字 PLL、FIFO和 UART,实现了单片式 8路高速数字信号分析仪。可用键盘改变采样速率,满足对不同速率的数字信号进行采样;用点阵式 LCD显示所采集的 8路数字信号;也可通过串口将采集的数据传输到 PC机进行存储、处理和显示。本设计的时钟频率昀高可 250MHz(CycloneⅡ芯片所支持的昀高工作频率),从而可以对 8路波特率为 50Mbs的数字信号进行采集与显示。
图 5是通过嵌入式逻辑分析仪采集后,通过串行通信口送到 PC机,在 PC机屏幕上显示的 8路数字信号实拍照片。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭