基于SOPC和FPGA的LCD电子钟设计
扫描二维码
随时随地手机看文章
引言
SOPC(System On Programmable Chip)是用可编程逻辑技术把整个系统放到一片硅片上的一种特殊嵌入式系统。一方面,它片上系统(SOC)完成整个系统的逻辑功能;另一方面,它是可编程系统,具有灵 活的设计方式,可裁剪、扩充、升级,并具备软硬件在 系统可编程功能。SOPC是PLD和ASIC技术融合的结果,可以认为SOPC代表了半导体产业未来的发展方向。本文采用EDA软件Quartus II中的SOPC Builder构建了一个SOPC系统。并以构建的系统为平台进行电子钟的软件设计。最后在Altera 公司FPGA多媒体开发平台DE2上进行实现。该方案不同于基于处理器或控制器及SOC的嵌入式系统,基于SOPC的嵌入式系统具有可配置的特点,不会包括任何专用外设,而是可根据需要灵活地在一片FPGA中构造外设接口。
ALTERA公司在其开发工具Quartus II中集成T SOPC Builder工具。在该工具的辅助下,设计者可以非常方便地完成系统集成,软硬件协同设计和验 证,以最大限度地提高电子系统的性能,加快设计速度和节约设计成本。
1 整体设计
数字电子钟是包括物联网在内的常用电子设备, 其主要功能是显示日期、时、分、秒等实时信息,并能 够方便地对这些实时信息进行设置。
本系统以NiosII软核处理器为处理器,同时添加了一些必要的外设,如并行输入输出口(PIO)、LCD1602模块、一定容量的片上RAM等,从而构成一个最小系统,以用于实现电子钟功能。其中定义的三位输入口(KEY1, KEY2, KEY3 )用作电子钟的控制键。KEY1用于工作模式的切换,在正常工作中可以对各位进行调整;KEY2用于调整的递减;KEY3用于调整的递加。两位的输出口用来连接蜂鸣器,做整点报时;LCD模块用作日期和时间的显示;片上RAM用作各种数据的存储。
2 硬件设计
2. 1 在SOPC Builder构建SOPC 系统
在Quartus II软件中打开SOPC Builder,可以按要求依次添加NiosII处理器、30 MB的片上RAM,LCD模块、三位输入口和两位输出口,再给处理器分配复位向量地址和异常向量地址。然后给各外设分配一个基地址和中断优先级。所构成的系统窗口如图1所示。这时就可以点击生成按钮生成所构建的NiosII系统,如果构建成功,就会有System generation was successful的提示。
2. 2 在Quartus K中搭建硬件电路
设计时,可在Quartus H中建立一个原理图编辑文件,再将构建的NiosII系统添加进去,并为其添加管脚,同时进行管脚锁定,图2所示是其系统硬件电路。这样,就可以进行编译并生成用于配置的.sof文件和用于编程的.pof文件。然后再将所构建的系统下载到目标板上的FPGA中,并且连接好各外设。
3 软件设计
NiosII是一个用户可配置的通用RISC嵌入式处理器。Nios II集成开发环境(IDE)是NiosII系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在NiosII IDE下完成,包括编辑,编译,调试程序。
电子钟的软件设计流程主要包括初始化,电子钟的运行和LCD的显示,其中后两个模块是系统的主要模块。电子钟运行模块主要用来实现电子钟的计时间和计日期功能,1秒的时间信号可通过软件延时来实现。LCD模块用来实现日期和时间的显示。下面分别介绍这两个模块。
3.1 电子钟模块设计
电子钟模块的软件流程如图3所示。初始化的目的是显示初始日期和时间并使其处于正常工作状态。通过KEY1键可以进行工作模式的切换,实现日期和时间的校正。最后对要显示的日期和时间数据进行格式转换,调整成适合LCD显示的数据,送给LCD进行实时的日期和时间显示。
3.2 LCD显示模块设计
LCD显示模块用来实现电子钟日期和时间的实时显示,其软件流程如图4所示。
图4中的LCD初始化包括对LCD的功能设置、显示开关设置和模式设置。LCD定位到首行首列是通过对LCD写定位指令来完成的,可用于将显示位置确定到第一行第一列。写日期数据到第一行是通过写数据指令来将要显示的日期数据显示在液晶屏的第一行。LCD显示换行也是通过定位指令来实现的。
在对LCD模块进行显示控制时,用到了写控制命令和写数据命令。这些命令是针对具体配置的硬件电路而编写的.h头文件。LCD模块的头文件如下:
这样编写是为了和具体的硬件电路相对应,在LCD模块的硬件描述语言中,液晶模块RW和RS的地址分配模块如下:
其中RS信号是命令与数据线,高电平表示目前数据线上交换的是数据,低电平表示目前数据线上交 换的是命令。液晶模块可以根据这个信号作出正确的 响应。RW是电平信号,高电平表示对液晶模块执行 读取操作,低电平表示对液晶模块写入数据或命令。 这样便于确定各读写操作对应于基地址的偏移量。
最后,再将软硬件的配置文件下载到DE2开发板上进行电子钟的功能验证。其实验显示结果如图5所示。
4 结论
本文主要介绍了一种基于SOPC的电子钟的设计方法。并对SOPC硬件系统的设计过程以及基于此硬件系统的软件功能的设计进行了详细的介绍。由于在SOPC系统中,软硬件都可以编程,从而为硬件系统的灵活配置和软件系统的灵活设计提供了方便,也有利于系统的优化和升级。尤其这种量体裁衣的硬件配置方式,可以最大限度的提高系统的性价比。同时,也可以利用HardCopy技术,将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。