首页 » 技术文章 » Chirp函数的Nios Ⅱ嵌入式实现

Chirp函数的Nios Ⅱ嵌入式实现

作者:  时间:2010-05-27 11:14  来源:EDN

  3 嵌入式微处理器的实现

  嵌入式微处理器的设计包括3个部分:利用SoPCBuilder定制的软核CPU,在QuartusⅡ环境下设计的电路和NiosⅡ编程。

  本设计的软核CPU采用NiosⅡS标准型内核,带有16 KBCache;集成了外部的FLASHSDRAM控制器用于保存程序数据;Jtag_Hart电脑开发板传输接口用于建立良好的用户交互接口使用户能在console界面上观察程序运行情况;两个位宽分别为8位和3位的输出口作为输出DDs模块的控制字;定时器用于产生CPU系统时钟;LCD控制接口用于在LCD显示一些需要的信息。

  NiosⅡ的编程主要是基于嵌入式操作系统μCOS-ⅡμCOS-Ⅱ是一个完整的、可移植、固化和剪裁的占先式实时多任务核(Kernel)。从1992年发布至今,μCOS-Ⅱ已经有了上百个的商业应用案例,在40多种处理器上成功移植。其中Altera提供了对μCO/OS-Ⅱ的完整支持,非常容易使用。

  μCOS-Ⅱ提供以下系统服务:任务管理(TaskManagement);事件标志(Event Flag);消息传递(Message Passing);内存管理(Memory Management);信号量(Semaphores);时间管理(Time Management)。在应用程序中,用户可以方便地使用这些系统调用实现目标功能。

  在该设计中建立一个主函数和两个任务函数,主函数的功能:调用系统任务初始化函数OSTaskCreateExt()初始化两个任务函数:调用系统开始函数OSStart()启动系统开始工作。

  任务1:实时的改变DDS控制字的输出,并且保持一段时间,在遍历完所有的需要频率以后,延迟调用系统延迟函数OSTimeDlyHMSM(),延迟63 s将该使用权交付给任务2

  任务2:为了保证该系统以后能有功能扩展,建立一个任务,其仅仅是通过函Jtag_uart接口使用函数printf(),向电脑发送一个任务2已经开始工作的提示信息,如果以后需要扩展功能则只需修改任务2即可。程序的具体流程图如图6所示。

  在任务1中实时改变变量i的值步进为1,通过定义的Chirp函数关于时间和输出频率控制字之间的关系函数function(),计算得到此时的频率控制字f,并且将f的值通过API函数IOWR_ALTERA_AVALON_PIO_DATA()IO端口输出以控制DDS,然后延迟2 s使DDS保持该输出频率一段时间,并且通过Jtag_uart端口在Console调试界面向用户提示当前的信号源的输出频率,程序如下:

  图7QuartusⅡ中生成的嵌入式软核示意图。

  4

  该设计在21controll公司提供的V4O FPGASoPC开发学习套件上面通过仿真验证,该套件的核心芯片为CycloneⅡ系列:EP2C20F484C8,其具有18 752个逻辑单元(LE)52M4K RAM块,能够很好地设计存储需要的数据,完全符合设计要求。通过调试程序在NiosⅡIDE编程环境中的Console窗口观察如图8所示。证明该程序能够很好的完成Chirp函数的功能。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点