简单MicroBlaze微控制器的理念

发布者:第二眼帅哥最新更新时间:2015-04-16 来源: eechina关键字:MicroBlaze  微控制器 手机看文章 扫描二维码
随时随地手机看文章
MicroBlaze是一款基于构造的的嵌入式微处理器,它的显著优势在于能满足复杂应用的需求,在除了运行简单的通用应用以外,还能运行操作系统。

设计人员能够在当前所有的赛灵思架构中实施MicroBlaze软处理器,在不同产品系列间实现方便的转换,具有很高的灵活性。但是,MicroBlaze系统设计不仅要在70多种参数中选择,而且还要借助一系列功能强大的嵌入式工具,如果应用只需要简单的微控制器,这种设计方法反倒不实用。

0.jpg 

但是,利用适当的技术,用户可以开发构造简单的预配置MicroBlaze微控制器,并方便快捷地将其添加到任何FPGA设计中。可将控制器的实例直接加入HDL。用户能在标准的FPGA设计流程中直接使用,无须特殊的脚本或复杂的步骤。仅需三个文件即可启动设计工作,包括两个硬件实施文件和一个软件定义文件。这种方法使工程师不用学习或者只需很少量的学习就能快速启动FPGA嵌入式设计工作。

在ISE 11.1中启动MicroBlaze软件开发工作,可使用独立的软件开发套件(SDK)进行C和C++应用的创建和调试,而无须全面的嵌入式开发套件 (EDK)。

微控制器预配置了两种选项,UART和调试。表1显示了根据微控制器配置不同而给出的各种FPGA系列的尺寸估算值。此外,Virtex器件使用了两个Block RAM,而Spartan器件使用四个Block RAM。对应用代码进行调试后,用户即可移除调试选项,以减小控制器的尺寸。例如,Spartan-6微控制器仅需要220个切片。

微控制器概览

简单MicroBlaze微控制器包含的组件有32位MicroBlaze处理器、8KB RAM/ROM、带64KB寻址空间的32位用户接口、中断支持、可选UART,以及可选的JTAG调试接口。图1显示了系统方框图。

1.jpg 
图1 SMM由MicroBlaze处理器、存储器及接口组成

根据需要以及实施工具允许的范围,时钟输入可高可低。有效高电平复位输入与输入时钟内部同步。中断输入信号可提供中断支持,微控制器提供服务时用中断确认输出进行确认。此外,简单的地址映射用户接口也同步于时钟,支持用户定制。图2显示了用户接口的时序。可将字节启用用于字节和半字事务处理。

2.jpg 
图2 简单的地址映射用户接口同步于时钟

用于可对16位宽的软件映射地址总线进行解码,以将不同的定制接口或外设连接至微控制器。在插入片选(Chip Select)两个时钟周期后对读取数据进行采样。

一些预配置的版本可提供串行16450 UART选项。波特率在软件中进行编程,以保持UART独立于时钟输入。调试选择可使用内部FPGA资源,并直接连接至FPGA JTAG接口,从而通过常规FPGA下载线缆实现应用调试。

FPGA设计流程

FPGA设计流程遵循如图3所示的标准ISE FPGA实施流程。可在FPGA设计中的任何层级级别上通过Verilog或VHDL创建微控制器实例。使用两个与硬件相关的文件微控制器网表 (smm.ngc)和Block RAM存储器映射文件(smm.bmm)即能完成FPGA的实施,用户既不必费心学习新的工具,也不用使用复杂的脚本流程。FPGA嵌入式设计从未如此的简单易行。微控制器配置之间的切换非常简单,只需替换所需的网表文件,然后重新实施FPGA即可。[page]

3.jpg 
图3 FPGA设计流程遵循标准的ISE FPGA实施流程,无须新工具或脚本

运行实施工具后,将额外生成一个文件,指示微控制器所使用(smm_bd.bmm)的Block RAM的物理位置。

软件应用设计流程

单个软件描述文件(smm.xml)包含了启动微控制器应用开发工作所需的全部信息。开发可独立于FPGA设计流程进行,甚至在任何FPGA设计实施之前就能启动。

从ISE 11.1开始,SDK作为独立选项提供,其包含完成软件应用设计所需的全部工具、驱动器、程序库以及实用程序等。

图4 显示了以软件定义文件开始的标准的SDK开发流程。微控制器的地址空间包括8KB的RAM与用户接口,在选择UART选项的情况下,还包括UART寄存器空间。

4.jpg 
图4 SDK开发流程始于软件定义文件

设计实例

下面介绍一个LCD控制器参考设计实例,这种设计综合采用了简单MicroBlaze微控制器的各种特性。LCD控制器非常适用于小型微控制器实施,因为其硬件接口较慢,也比较简单,初始化序列较长,而且需要大量字符代码。

通过综合采用HDL和C代码,设计可将消息输出至电路板上的字符LCD屏。

HDL可处理硬件接口,而软件则负责初始化和控制LCD屏。

LCD模块的时序较慢,但同时需要指令或数据之间的较大延迟。例如,清空显示的指令需要1.52ms的延迟,然后才能发出下一个指令或数据。部分指令需要40μs的延迟,其他的延迟则需要1μs。

我们可在C语言代码中用while回路来处理延迟问题,不过这样做不够准确,而且还会影响编译器的优化。更好的选择是在FPGA中创建软件可载入的32位计数器,以便在到达编程的延迟时触发控制器中断。

MicroBlaze写入地址0x10,以根据用户接口数据总线上的数据启动定时器。MicroBlaze随后将等待中断,以继续执行。

MicroBlaze写入用户接口地址0x0会触发LCD控制器硬件接口,硬件接口的时序由HDL处理。用户接口数据总线可捕获指令或数据值。按钮输入能够连接至用户接口地址0x20。

FPGA设计包括顶级模块、LCD硬件时序模块以及软件可寻址可编程定时器。此外,文件还包括简单MicroBlaze微控制器的示例,运行频率为66MHz。

C语言应用包含在单个文件中。该代码不仅可实现MicroBlaze中断、初始化LCD屏幕、管理不同的延迟情况、打印双线LCD、等待按钮输入,同时还可清空屏幕并输出新的消息。

微控制器的定制

由于微控制器采用MicroBlaze构建而成,因此设计人员将能获得许多标准的外设和选项,以定制嵌入式系统。用户可能希望部署不同的FPGA架构或添加更多主存储器、浮点单元或标准的SPI或I2C外设。

定制既定的系统需要EDK。它包括众多作为嵌入式项目的不同配置,可根据用户要求进行修改。例如,如果需要16KB的存储器而不是标准的 8KB存储器,那么用户可以打开EDK项目,修改MicroBlaze RAM空间并生成新的网表、Block RAM存储器和软件描述文件。用户随后即可将新的文件添加至ISE和SDK项目中。

诚然,虽然简单的MicroBlaze微控制器不能满足所有嵌入式设计的需要,但对于需要简单微控制器来高效提供控制功能的用户来说确实是非常好的选择。此外,其还为希望共享和发布EDK设计的团队提供了一种定则,那就是无论嵌入式设计的尺寸大小,仅需三个文件就能完成整个实施工作。
关键字:MicroBlaze  微控制器 引用地址:简单MicroBlaze微控制器的理念

上一篇:基于MSM7512B的远程数据采集接口设计
下一篇:单收/单发RS-232接口芯片ADM101E及其应用

推荐阅读最新更新时间:2024-03-16 13:58

89C51单片机I/O口模拟串行通信的实现方法
目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展一片8251 或 8250 通用同步/异步接收发送芯片(USART),需额外占用单片机I/O 资源。本文介绍一种用单片机普通I/O 口实现串行通信的方法,可在单片机的最小应用系统中实现与两个以上串行接口设备的多机通信。 1.串行接口的基本通信方式 串行接口的有异步和同步两种基本通信方式。异步通信采用用异步传送格式,如图1 所示。数据发送和接收均将起始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位(低电平),用来表
[单片机]
89C51<font color='red'>单片机</font>I/O口模拟串行通信的实现方法
基于视觉的高速寻线机器人设计与实现
  在最近一些 机器人 竞赛中,对于机器人的寻线行走,除了要求精确之外,对机器人寻线速度也提出了很高的要求,速度往往成为某些比赛制胜的关键。在最近教育部推出的全国大学生智能汽车大赛中,更是将寻线速度定为比赛的主题。本文在总结参加此类赛事的基础上,提出了一种将单片机作为核心 控制器 ,利用低分辨率摄像头代替通用 光电传感器 的机器人高速寻线行走机构设计方法。   1 车体机械设计   为了体现速度要求,采用仿真赛车模型作为车体机械平台。采用后轮 驱动 ,前轮转向的工作方式,实现高速转向运动;而如果采用两轮式结构,通过双电机差速方式实现的转向运动,在高速转向情况下,对电机同步控制要求很高,难以实现。前轮转向采用舵机驱动,后轮驱
[电源管理]
基于视觉的高速寻线机器人设计与实现
单片机的常见输入输出电路介绍(一)
针时电气控制产品的特点,讨论了几种单片机常用输入/ 输出电路 的设计方法,对合理地设计电气控制系统,提高电路的接口能力,增强系统稳定性和抗干扰能力有实际指导意义。   引 言   传统电气设备采用的各种控制信号,必须转换到与单片机输入/输出口相匹配的数字信号。用户设备须输入到单片机的各种控制信号,如限位开关,操作按钮、选择开关、行程开关以及其他一些传感器输出的开关量等,通过输入电路转换成单片机能够接收和处理的信号。输出电路则应将单片机送出的弱电控制信号转换、放大到现场需要的强输出信号,以驱动功率管、电磁阀和继电器、接触器、电动机等被控制设备的执行元件,能方便实际控制系统使用。   1 输入电路设计   一般输入信号最终会以
[模拟电子]
<font color='red'>单片机</font>的常见输入输出电路介绍(一)
单片机的特殊功能寄存器结构原理分析
    我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!       下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 单片机内部结构图       对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于
[单片机]
<font color='red'>单片机</font>的特殊功能寄存器结构原理分析
单片机的程序结束后都干嘛去了?
对于嵌入式系统,如果没有运行RTOS,那么程序开发中的主函数main()需要通过某种机制使其永远愉快的运行下去,它没有终点。如果想从main函数中退出,具体干什么是由所使用的C语言编译器决定的。 一、问题提出 今天在单片机led模块定义函数中看到一个有趣的问题。提问者在进行基本的C51编程实验,编写了一个简单的C51程序如下: 程序执行完之后,可以看到实验板上的有两个LED被点亮,另外六个居然微微发亮。 如果在主程序中,增加一个无限循环:while(1); ,则电路板上的就不再会出现“微微点亮”的现象了。 上面两种情况的区别,在于第二个程序中主循环 main()函数始终没有退出,而第一个程序,main()函数退出了
[单片机]
ATMEGA16A单片机1602字符显示程序
* 【编译环境】: ICCAVR * 【函数功能】: 1602字符显示 * 【晶 振】: 8M * 【芯 片】: ATMEGA16A #include iom16v.h #define uchar unsigned char #define uint unsigned int uchar wz ={ mcustudio1com-cn }; uchar gd ={ Tel:15980xx5601 }; #define uchar unsigned char #define uint unsigned int #define RS 0 #define RW 1 #define E
[单片机]
Mcs51单片机计数功能的应用研究
一 概述   单片机又称微控制器(microcontroller)是将中央处理器(CPU)存储器、定时器/计数器、IO接口电路等部件集成在一块芯片上的微型计算机。目前,单片机技术飞速发展,在各种场合被广泛应用。单片机做为控制核心,与传感器、执行机构等结合可以组成自动化的检测控制系统,本文结合单片机的定时/计数器的端口功能,开发一种实用的检测装置。 二 单片机组成原理   MCS51是由美国INTEL公司生产的系列单片机,其中以8051最为典型,由内部总线将逻辑运算器ALU、累加器A、程序计数器PC、指令寄存器IR、指令译码器ID、控制逻辑PLA、存储器、输入输出口联结成统一的整体,以实现其功能。8051单片机是8位机32根I/O线
[单片机]
PIC单片机实现通讯功能设计
1. 单片机 PIC1编程(发送部分) LIST P=16F877 #INCLUDE P16F876.INC CBLOCK 0X24 ;保留三个字节作为显示用 COUNT ;作计数器或暂存器用 ENDC ORG 0X0000 ;程序复位入口 NOP START GOTO MAIN ORG 0X20 MAIN MOVLW 0X30 ;以下将RAM内容初始化 MOVWF FSR ;从30H单元开始 MOVLW 0X30 ;将值30H赋给单元30H MOVWF COUNT INTRAM MOVF COUNT,0 ;将30H~7FH赋给单元30H~7FH MOVWF INDF INCF COUNT,1 INCF FSR,1 BT
[单片机]
PIC<font color='red'>单片机</font>实现通讯功能设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved