APP下载

采用Qsys 实现的时间管理系统

2021-05-20周燕云黄晓辉

现代电子技术 2021年10期
关键词:数码管锁相环硬核

张 莉,周燕云,黄晓辉

(新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046)

目前,国产FPGA力量也在快速崛起,在5G通信时代,航锦科技的FPGA 芯片也可应用于5G 通信产业链[1⁃2]。Qsys 是一个用于软核平台开发的嵌入在Quartus Ⅱ软件中的系统集成工具。Qsys 可以创建IP(Intellectual Property)核之间的互联逻辑,还可以自定义IP 核[3]。最重要的是,Qsys 能做好标准内核和胶合逻辑,去除不必要的工作量,让设计者可以把工作重点放在产品的差异化设计和逻辑定制上,实现产品的价值。

通过定制的硬件设计系统可以使用户更加快速地完成软件设计的任务,然而日新月异的计算机行业又必然要求这些已经被定制的计算机硬件系统可被重新进行编程来设计和执行新类型的计算任务,FPGA 的体系结构就有可重构的特性[4]。利用Qsys 设计系统,不仅能够发挥FPGA 同时拥有流水线并行和数据并行的特点,且其运行速度快,可定制硬件的独特优势,又可以体现Qsys 系统结构性强且移植灵活的特点,为执行各类任务带来便捷[5⁃6]。

系统通过Qsys 完成硬核搭建,同时使用Eclipse 的Nios Ⅱ工具实现软核编程控制。LCD 的使用通常利用硬件描述语言控制[7⁃8]。在Qsys 系统中,重新集成了液晶的IP 核,这就意味着使用Qsys 来控制液晶可以非常便捷,无需进行硬件描述语言构建液晶时序的繁琐操作,而直接添加IP 核即可使用。但系统提供的液晶IP核仍有不足,一些控制管脚未直接集成入IP 核内,需额外添加才可正常使用[9]。将所需的显示元件LCD 设定成元件KEY,和需要外接声光电提示电路的I/O 口,一同集成在系统硬核,生成Nios CPU。之后使用软件编程工具,实现各模块的读/写,从而完成时间管理的设计要求。

1 硬件电路设计

基于Qsys 的时间管理系统所有硬件主要分为两个部分[10]:一个是Nios CPU 的设计;另一部分是FPGA 芯片与外围设备的接口和外围电路。通过设计Nios CPU,可以将所有外设挂载在Avalon 总线上,从而通过总线与Nios CPU 相接。这里的FPGA 芯片选择Altera Cyclone Ⅱ系列的EP2C35F672C6N,SDRAM 选用8 MB单数据传输率同步动态随机存储芯片,选择LCD1602液晶核独立的8 个数码管作为系统的显示设备。外围电路使用光敏电阻,构建简单光控电路。系统整体结构图如图1 所示。左侧虚线框中是使用FPGA 芯片搭建的Nios CPU 与锁相环,右侧虚线框中是所有外设。

图1 系统整体结构

1.1 硬核设计

硬核的设计包含锁相环PLL 和Nios CPU。其中,Nios CPU 的定制又需要使用到各外设的接口IP 核和用户自定义的IP 核。

1.1.1 锁相环设计

锁相环可以依据需求对系统时钟倍频以提高系统的工作时钟,加快运行速度,还可以实现分频以及设定相位偏移和输出时钟占空比[11]。Cyclone 系列的FPGA芯片包括两个锁相环,锁相环的使用需要依据系统需求进行各项参数设定。由于锁相环除了给Nios CPU 提供时钟外,还需要作为SDRAM 的工作时钟,因此针对锁相环的设置,需要考虑SDRAM 的工作时序。将系统时钟的50 MHz 倍频,并相位偏移-63°,占空比设置为50%,生成的时钟作为SDRAM 的工作时钟。

1.1.2 Nios CPU 设计

对Nios 处理器编写程序主要是用来控制Qsys 内的部件,如片上存储器、PIO 内核、定时器、SDRAM 内核、UART 内核、DMA 内核以及用户自定义内核等。其本质是对Nios Ⅱ外围设备的相关寄存器进行读/写操作[12⁃13]。根据系统需求添加SDRAM 控制器用于存取整个工程文件和程序文件,加入jtag uart,使系统和上位机可以通过串行通信接口通信,添加自定义的数码管IP核,用于显示信息,添加液晶IP 核LCD16207用于控制液晶显示,添加定时器用于计时计数,添加开关用于用户输入设定。除此之外,由于LCD16207内核未集成两个功能管脚LCD_ON和LCD_BLON,因此在Quartus Ⅱ下,要单独添加这两个管脚并拉高电平。图2是Qsys系统的部分部件。

图2 Qsys 系统部分部件

1.2 外围电路设计

除存储设备SDRAM 和显示液晶设备及数码管这些外围设备之外,对于系统功能还需要再加入部分外围电路,用于用户交互。其中,输入电路主要是开关电路,用于用户对时间系统的设定修改等。本文设计开关电路主要有两种:按键开关和拨动开关。开关通过输入PIO,与Nios CPU 相连。使用一个最高阻值22 kΩ、最低阻值50 Ω 的光敏电阻,串联一个1 kΩ 的普通电阻再并联一个5 V 的直流电源就构成了一个简单的光控电路[14]。通过一个双向PIO,与Nios CPU 相连。图3 给出了FPGA 芯片与液晶和数码管的连接电路,以及时间管理系统整体设计工程图。

2 软核控制设计

2.1 定时器的设置

定时器既可以测定事件发生的时间还能够作为系统的周期性时钟源。Nios Ⅱ处理器通过控制寄存器执行不同的写操作来控制定时器启动和停止。在硬核中添加定时器后,Nios Ⅱ可直接通过程序实现对系统定时器的初始化以及开启和关闭。

图3 显示功能电路连接与完整工程图

关键代码如下:

2.2 显示器的控制

显示设备包括数码管和液晶,其中,液晶显示器由Qsys系统为固化好的IP核LCD16207提供接口,在Nios Ⅱ中,通过printf()函数向液晶发出指令,显示相应信息。而数码管没有固化的IP 核,需要用户自定义添加,通过硬件描述语言将数码管的控制过程,封装成一个元件,在Qsys 中,为元件设置接入总线的接口后,即可在Nios Ⅱ中实现对数码管的直接使用。

以下是数码管自定义添加IP 核后,在Nios Ⅱ中对数码管调用控制输出的部分关键代码:

2.3 光控系统的软件实现

光控部分通过IOWR()函数读取光敏电阻接入FPGA 芯片的I/O 口电平来实现检测光线状态。当I/O口检测为低电平时,说明外部没有光照,此时将LED 灯点亮,示意开启光照;当I/O 口检测为高电平时,说明外部有足够光照,此时控制LED 熄灭,同时可在液晶上显示实时状态。电路接入蜂鸣器,与光敏电阻一样,通过I/O 口完成蜂鸣器电路与芯片的连接,实现告警提示模块的声光同步。

3 实验效果

为了验证本设计的有效性,将软硬件程序编译无误后下载到FPGA 芯片中实际验证。系统的初始界面显示定时器和时钟两种模式,在时钟模式下,显示当前的时间,时间可以通过按键与拨动开关修改和设定。还可进入定时闹钟模式和倒计时模式。闹钟模式通过LCD显示,倒计时通过数码管显示。右边4 组为设定的倒计时时长,左边为倒计时。计时结束或时间到达设定值时,系统通过LED 和蜂鸣器同步告警提示。当光敏电阻检测传回I/O 口的数据为低电平时,LED 点亮,表明此时开启照明。图4 是系统的实验验证结果。结果表明各模块均能够正常工作。

图4 系统测试结果

4 结语

本文论述了在Qsys 平台上对现有IP 核、自定义IP核的使用方法,和锁相环控制处理器与SDRAM 的方法,通过液晶、数码管、LED、光控电路实现一个具有万年历、闹钟、计时器、声光告警、光控电路的时间管理系统。实验效果表明,利用Qsys 设计任务,不仅系统结构性强,模块化的形式易修改扩展,还能将FPGA 芯片的优势充分发挥,缩短开发时间,具有实际应用价值。

猜你喜欢

数码管锁相环硬核
硬核爷爷炼成记
“硬核”举措下的暖心举动
用“三个最严”彰显“硬核”担当
Arduino编程
陕西制造需要“硬核”
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
锁相环HMC832的设计与实现
新型无锁相环DSTATCOM直接电流控制方法