当前位置:首页 期刊杂志

MicroBlaze嵌入式微处理器教学实验设计

时间:2024-05-22

王 韬, 汤勇明

(东南大学 电子科学与工程学院, 江苏 南京 210096)

MicroBlaze嵌入式微处理器教学实验设计

王 韬, 汤勇明

(东南大学 电子科学与工程学院, 江苏 南京 210096)

嵌入式软核处理器技术越来越多地应用在综合课程设计或学生课外设计作品中。本文以AD7192模数转换芯片的控制为例,建设了在Xilinx公司的FPGA中进行MicroBlaze嵌入式微处理器设计的教学案例,包括MicroBlaze IP核配置、SDK软件编写和调试、综合编译及下载等流程,此教学案例可满足相关教学需求。

FPGA;MicroBlaze;AD7192

0 引言

在FPGA上搭建嵌入式微处理器软核系统是可编程片上系统SOPC(System On Programmable Chip)的一种解决办法。SOPC作为一种特殊的嵌入式微处理器系统, 使用逻辑资源构建CPU核,在逻辑器件上实现微处理器架构,结合了SOC和FPGA的各自优点, 具有灵活的设计方式, 可裁减、可扩充以及可升级, 并具备软硬件在系统可编程的功能[1,2]。Xilinx公司推出的32位MicroBlaze微处理器IP核是比较著名的主流嵌入式微处理器软核,具有高效、灵活的特点。MicroBlaze 采用32 位哈佛RISC 架构,32 位独立的地址总线和数据总线。对于简单的设计,可以将代码直接放入片上的BRAM 中;也可以将复杂设计的Bootloader 放在片上的BRAM中[3]。针对Xilinx FPAG器件而优化的MicroBlaze软核具有兼容性和重复利用性,因此是一种良好的SOPC解决方案。

本文围绕MicroBlaze处理器IP核的结构特性,以Digilent公司的NEXYS 4开发板为平台,结合带有Pmod接口的AD7192模/数转换模块进行教学实验设计,向学生们展示在Xilinx FPGA上使用MicroBlaze软核进行开发的基本流程。

1 实验设计和系统结构

本实验旨在介绍使用嵌入式微处理器软核开发FPGA的通用步骤,帮助学生掌握在最新Vivado开发环境下搭建嵌入式微处理器系统并在SDK开发环境下编写C语言程序进行调试的方法。同时,在搭建嵌入式微处理器系统的过程中,增强学生们对嵌入式微处理器系统的基本组成部分、结构体系的理解。

1.1 实验平台选择

由于MicroBlaze软核具有非常好的适应性和可配置性,在Xilinx公司的Spartan-6、Artix-7、Kintex-7等诸多系列的FPGA上都可实现。本实验选取Digilent公司的NEXY 4开发板为实验平台,该平台板载有Xilinx公司的型号为XC7A100T的Artix-7系列FPGA,逻辑资源非常丰富。开发板上带有5个Pmod接口(其中一个为XADC Pmod接口),用于同本实验中的AD7192模块连接。

1.2 AD7192和Pmod接口模块

AD7192是Analog Device公司的一款低噪声、低漂移的24位∑-△型模数转换器(ADC),是一款适合高精密测量应用的低噪声完整模拟前端。片内集成可编程增益放大器(PGA),可配置为两路差分输入或四路伪差分输入。片内通道序列器可以使能多个通道,AD7192按顺序在各使能通道上执行转换,以简化与器件的通信。片内4.92 MHz时钟可以用作ADC的时钟源;也可以使用外部时钟或晶振作为时钟源。AD7192的输出数据速率可在4.7 Hz至4.8 kHz的范围内变化。

在本实验中,AD7192模块有4根信号线与FPGA相连,这4根信号线功能定义如表1所示:

表1 4根信号线引脚功能

名称功能DIN串行数据输入。FPGA通过该引脚向ADC输入数据。DOUT串行数据输出。ADC通过该引脚向FPGA输出数据。SCLK串行时钟输入。向ADC写入或读出数据的时钟信号。CS片选信号。若系统中有多个ADC模块则可用于解码。

Pmod接口是Digilent公司设计的一种用于扩展FPGA、CPLD嵌入式开发板功能的简易接口标准。该接口由标准2.54 mm间距的6脚(单列)或12脚(双列)接口构成,用于开发板与带有Pmod接口的模块进行连接通信。12脚的Pmod接口定义如图1所示。

1.3 系统结构概述与框图

在FPGA上围绕MicroBlaze软核添加UART和GPIO模块。GPIO模块中4根信号线与AD7192连接,向AD7192发送命令并接收由AD7192转换得到的数据以供FPGA进行处理。AD7192转换得到的数据经过滤波处理,计算得到实际采集的电压值。UART模块用于同上位机进行串口通讯,以在上位机上显示AD7192采集得到的电压值。FPGA与AD7192连接的系统框图如图2所示。

图1 Pmod接口定义

图2 系统框图

2 实验内容

本实验主要包括两部分:在Vivado环境下以MicroBlaze软核为核心的嵌入式微处理器系统硬件部分的搭建以及在SDK环境下进行软件编写调试。

2.1 硬件平台开发

一个基本的嵌入式系统应包括五个基本单元:①微处理器内核;②标准总线;③时钟复位单元;④调试单元;⑤存储单元,包括RAM、ROM等。

Vivado为MicroBlaze提供了一个集成开发环境。在Vivado 2014.2中新建原理图,添加MicroBlaze IP核,通过Run Block Automation功能可以设置Local Memory大小、Debug模块功能等,如图3所示。

设置完成后Vivado将自动生成与MicroBlaze软核相连接的时钟模块、系统复位控制模块、调试模块以及片上存储模块Block RAM。MicroBlaze内核通过LMB总线访问Block RAM,可作为系统的程序数据存储空间。完成MicroBlaze IP核的配置之后,再添加AXI Uartlite模块和AXI GPIO模块,这些模块挂接在AXI总线上与MicroBlaze内核进行通信。

图3 配置MicroBlaze软核

平台搭建之后,Vivado会自动为Block RAM、UART和GPIO模块分配地址,用户也可以自行在Address Editor选项卡中改变这些模块的地址。这部分工作相当于将原本不可分割的ASIC专用集成芯片进行拆卸,让用户深入到芯片内部,根据自身的需求去选取芯片的功能模块,并完成这些模块与控制核的连接和地址分配,形成用户最终定制的底层逻辑[4]。这使得系统的设计非常灵活且可扩展,更加符合用户的需求的同时也提高了芯片的资源利用率。

原理图完成之后还需创建HDL wrapper文件,将原理图转换为HDL文件,如图4所示。

图4 创建HDL文件

本设计中由于没有其他部分,故将MicroBlaze系统HDL文件设置为顶层文件。如果系统中还有别的逻辑设计电路则可用硬件描述语言实例引用wrapper得到的模块。完成上述工作后对ucf文件按照目标实际设计为每个模块配置管脚,并编译生成硬件比特流文件。将比特流文件下载入FPGA,完成FPGA硬件的配置。

2.2 软件平台开发

完成硬件平台设计后,在File选项卡中选择Export Hardware选项,将Vivado中生成的硬件信息导入到SDK(Software Development Kit)中,并选择Launch SDK打开SDK开发环境进行软件的编写和调试。当本设计的硬件信息导入到SDK中并新建工程之后,SDK将根据系统中所包含的各种外设模块自动生成板级支持包BSP(Board Support Package),提供操作外设的库函数,通过用户接口函数API(Application Programming Interface),系统具体硬件便对用户透明,方便用户快速开发系统。

在本实验中,通过GPIO读写AD7192内部寄存器,向AD7192发送指令,并将AD7192采集电压值转换得到的数据读入处理器,经软件滤波算法处理后通过UART模块发送至串口,在串口调试助手中显示计算得到的电压值。程序流程图如图5所示。

图5 软件流程图

接收到的数据采用冒泡排序和中位值滤波算法进行处理后,根据公式

计算得实际电压值。其中,Data是经处理后得到的转换数据,VRef是AD7192的参考电压,VSample是计算得到的采集电压。

<1),且各件产品是否为不合格品相互独立.

代码编写完成后进行编译。由于本实验代码量较小,可以直接将elf文件下载入Block RAM中执行。在Run Configurations对话框中配置运行参数后点击Run即可在FPGA上运行程序,如图6所示。

采集计算得到的电压值通过串口发送至上位机进行显示。

(王 韬等文)

图6 运行参数配置

3 结语

本文介绍了以AD转换芯片的控制实验为基

础,在Xilinx FPGA上及最新Vivado开发环境下,用MicroBlaze软核开发的一款教学案例,为学生快速深入地进行FPGA开发提供了学习资源,可帮助学生加强对SOPC的概念、嵌入式微处理器系统的结构等方面的理解,为日后从事嵌入式系统研究与应用方面的工作打下坚实的基础。

[1] 汤勇明,郑姚生,吴忠,李晓华.“可编程逻辑器件的基础与应用”课程建设与教学实践[J].南京:电气电子教学学报,2007,02:7-9+12.

[2] 龙霞飞,李仁发.MicroBlaze微处理器IPCore的结构及应用[J].沈阳:微处理机,2004,06:6-9.

[3] 孙丰祥,程玉伟,胡恩俊,郑昌露.基于MicroBlaze软核的嵌入式最小系统[J].兰州:化工自动化及仪表,2014,08:946-948.

[4] 单超,王萍,朱爱民,万娟.基于MicroBlaze软核的嵌入式系统设计[J].北京:单片机与嵌入式系统应用,2011,03:18-21.

Practical Experiment Design Based on MicroBlaze Embedded Microprocessor

WANG Tao, TANG Yong-ming

(SchoolofElectronicScienceandEngineering,SoutheastUniversity,Nanjing210096,China)

Techniques using embedded microprocessor IP cores have become more common in design works. An example of controlling AD7192 analog to digital converter via FPGA is given in this paper to conduct a teaching experiment about how to build a MicroBlaze system on FPGA, including MicroBlaze IP core configuration under Vivado IDE and software development under SDK IDE.

FPGA;MicroBlaze;AD7192

2015-05-01;

2015-07- 10

王 韬( 1992-),男,硕士研究生,研究方向为电路与系统,E-mail: 220141198@seu.edu.cn

汤勇明( 1973-),男,博士、研究员,主要从事显示电子学和高等工程教育研究,E-mail: tym@seu.edu.cn

G643

A

1008-0686(2016)02-0122-04

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!