基于Microblaze软核的嵌入式系统设计
2021-03-10
来源:榕意旅游网
基于Microblaze软核的嵌入式系统设计 单超’ ,王萍 ,朱爱民 ,万娟。 (1.深圳电器公司博士后工作站,深圳518001;2.陆军航空兵学院;3.中国人民解放军69036部队) 摘要:结合实际项目的开发经验,详细讲解了基于Xilinx Microblaze软核开发的整个流程,包括硬件平台搭建、软件平台 开发、嵌入式操作系统的加栽以及用非易失性存储设备对FPGA进行上电配置等内容。利用FPGA软核进行嵌入式系 统开发,将得到越来越多的关注和应用。 。 关键词:嵌入式系统;软核;片上可编程系统;可编程逻辑门阵列 中图分类号:TP36 文献标识码:A Embedded System Design Using Microblaze Soft Core Shan Chao ,Wang Ping2,Zhu Aimin ,Wan Juan3 (1.Postdoctoral Centre,Shenzhen Electronical Appliance,Shenzhen 5 1 800 1,China; 2.Institute of Army Aviation;3.69036 PLA Troops) Abstract:The paper details the whole developing flow on Xilinx microblaze,including hardware platform developing,software platform developing,embedded operation system loading and FPGA configuration.Embedded system design using FPGA soft core will become popular in the near future. Key words:embedded system;soft core;system on programmable chip;FPGA velopment Kit)集成开发解决方案。本文结合实际项目的 引 言 近十年来,FPGA行业获得了突飞猛进的发展,其在 系统开发工作中的地位已从简单的胶合逻辑上升到了数 字系统的核心处理器件。可编程片上系统SOPC(System 开发经验,详细讲解了基于Microblaze软核开发的整个流 程,包括硬件平台开发、软件平台开发、嵌入式操作系统的 加载以及用非易失性存储设备对FPGA进行上电配置等 内容。 On Programmable Chip)将CPU核与外设核以及系统软 件集成到单一芯片中,帮助用户快速“量身定制”所需要的 产品,创造性地为用户提供了基于FPGA的嵌入式设计 方案。 Xilinx公司作为FPGA嵌入式软核解决方案商,在其 所有系列的FPGA中提供了Mieroblaze 32位软核处理 1 Microblaze的体系结构 Microblaze处理器采用RISC架构和哈佛结构,在时 钟频率为150 MHz的情况下可以达到125 DMIPS的性 能,该处理器(版本7.30)具有以下一些特征: ①32个32位通用寄存器和最多18个专用寄存器; ②32位指令系统,支持3个操作数和2种寻址方式; 器,并推出了用于嵌入式系统编程的EDK(Embedded De— [4]周贤伟,韦炜,覃伯平.无线传感器网络的时间同步算法研 究[J].传感技术学报,2006,19(1):20—25. [5]孙利民,等.无线传感器网络[M].北京:清华大学出版社, 2005. 102—114. [83 Li Li,Yongpan Liu,Huazhong Yang,et a1.A precision a— daptive average time synchronization protocol in wireless sen— sor networks[C'].Zhangjiajie:IEEE,2008. [9]Elson J,Estrin D.Time synchronization for wireless sensor networks[C].San Francisco,CA:IEEE,2001. (收稿日期:2O10—1卜05) [6]Akyildiz L F,SU W,et a1.Wireless sensor networks:a sur— vey[J].Computer Networks,2002,38(4):393—422. [7]J Akyildiz,W Su,et a1.A survey on wireless sensor net— works[J].IEEE Communications Magazine,2002,40(8): 1 8 Microcontrollers&Embedded Systems 20 1 7#-g 3期 www.mesnet.com.cn 2.2软件平台的开发 EDK的另一个组件SDK是对于XPS集成开发环境 的补充,提供了一个软件工程项目的开发环境,具有以下 功能和特点: ◆基于Eclipse开源代码标准; ◆项目管理; ◆功能完善的C/C十+代码编辑和编译环境; ◆程序创建配置和自动化的Makefile生成; ◆完美集成的对嵌入式对象的无缝调试环境。 除了提供软件的开发环境外,Xilinx公司还提供了各 种IP核的API控制函数,这些API被安放在..\EDK\SW \XilinxProcessorlPLib\drivers目录下,其中..\表示Xil— inx软件的安装目录。通过阅读IP核的PDF说明文档和 图3 XPS主显示窗口 API函数的C代码,用户可以很容易地实现对IP核的控 制。以通用输入/输出端口GPIO为例,在文件夹..\EDK 特殊性,有时可能很难找到一款ASIC控制器,具备系统 要求的所有外设接口。在这种情况下,要么用软件实现所 缺的外设功能,从而牺牲了系统性能;要么单独购置一片 该接口芯片,从而增大了电路板面积和成本。而基于 FPGA软核的设计则不存在这种问题。在XPS中定制用 户IP核与一般用VHDL编写逻辑电路不同的是,这种定 制IP可以挂接在PLB总线上,从而实现与Microblaze的 \sw\XilinxProcessorlPLib\drivers\gpio—v2—13一a下存放 着与GPIO软件编程有关的所有内容,其src子目录下包 含各种API函数的C源码,doc目录下包含对各种API函 数的使用说明,而examples目录下还有针对GPIO进行 编程的实例源码。一般对GPIO的操作过程为: XGpioInitialize(); XGpioSetDataDirection(); 通信。XPS提供自定义1P核的生成向导,图4给出了用 户自定义IP核的逻辑结构。从图可以看出,生成向导创 建了两个模块,一个是与PLB总线进行交互的接口模块 IPIF,另一个是用户逻辑模块User—Logic。IPIF完成PLB 总线信号的捕捉和协议转换,这部分内容不需要用户参 XGpioDiscreteRead(); XGpioDiscreteWrite(); XGpioInterruptG1oba1Enab1e(); XGpio_1nterruptEnable(); XIntcRegisterHandler(); 与,用户只需根据自定义逻辑的输入/输出信号在IPIF中 给出相应的声明即可;UserLogic模块则是需要用户进行 即首先对GPIO口进行初始化,然后设置其方向为输 入或是输出,接下来就可以对GPIO进行读写。如果该 手动添加自定义逻辑代码的地方,在这里用户只需关注自 己需要实现的功能,不用担心它们与Microblaze之间的通 信链接。 GPIO可以产生中断,则必须置位其中断使能位,然后将 中断处理函数挂接到中断控制器或直接挂到Microblaze 的中断位上。 2.3 Chipscope调试 Chipscope是Xilinx公司的片内调试工具,通过将逻 辑分析器、总线分析器和虚拟I/O小型软核插入到用户的 设计当中,可以查看和分析任何内部FPGA信号,包括嵌 入式处理器总线。信号被实时采集,并从编程接口JTAG 传输到主机,然后通过Chipscope Pro逻辑分析器进行分 析。Chipscope的典型工作模式支持4种Chipscope Core, 它们具有不同的功能和适应环境: ①Chipscope—icon,用于管理其他的Chipscope core, 所有的Chipscope core都是通过这个核连接到FPGA的 JTAG口; 图4用户自定义IP核的逻辑结构 ②Chipscope—ila,用于监控FPGA内部的自定义信 20 1 7年第3期 www.mesnet.corn.crt 2 O Microcontrollers&Embedded Systems 号,是使用范围最广的监控核; ~CPU—A.ASM和钩函数定义文件OS—CPUC.C。最简 ③Chipscope~plb46一iba,用于监控PLB总线; ④Chipscope vio,用于监控FPGA内部的实时自定 义信号变化。 Chipscope使用的几个主要步骤包括: ①调用Chipscope Pro Core Generator,生成需要使用 的Chipscope core,并加入到工程中; ②调用Chipscope Pro Core Inserter,选择需要监控 便的做法是在 c/os—II官方网站www.micrium.com 上下载anl013.zip压缩包,里面包含针对Microblaze修改 好的3个移植文件、uc/os—II软件代码和 ̄c/os—II应 用指导文档,根据文档的描述将压缩包中的相关文件放到 Xilinx的指定安装目录下,就可以在SDK中直接选用uc/ OS—II操作系统。此外,压缩包中还提供了一个示例程 序,用于演示uc/os—II操作系统是否在Microblaze系统 的信号,设置采样和匹配参数,并将配置后的Chipscope core插入到设计中; ③调用Chipscope Pro Configuration,包括Chipscope Pro On-Chip Debugging和Chipseope Pro On—Chip Verifi— 上运行正常,极大减轻了用户在移植uc/os~II过程中所 面l临的工作量。 4 FPGA的配置 基于SRAM结构的FPGA每次上电都需要外部的配 置芯片对其进行加载,Xilinx的FPGA提供了多种配置方 cation,即通过Chipscope的分析器工具Analyzer观察FP— GA内部信号,并和设计者的需求进行比较,分析不一致 的时序。 式,如简便的Platform Flash PROM主串配置、价格低廉 的SPI配置、大容量的并行配置和JTAG配置等,用户可 以根据自己的实际情况进行灵活选择。结合iMPACT图 3为系统添加嵌入式操作系统 如果系统所涉及的功能比较复杂,或者系统对实时性 形化配置软件,向片外配置芯片烧写比特流的工作变得非 常简单,极大缩短了系统的开发时间。除了常规的配置方 式外,Xilinx FPGA还支持将多个配置文件放在一个配置 要求比较严格的话,在自己的设计中加载一个嵌入式操作 系统是一个很好的选择。Xilinx FPGA目前支持绝大多 数主流嵌入式操作系统,如Vxworks、Embedded Linux、 Clinux、 c/os—II和PetaLogix等,而uc/os—II因其 芯片中实现系统的多配置启动,或者将用户数据存放在配 置芯片中,在系统配置完成后根据需要随时从配置芯片中 读出用户数据。在Xilinx的官方网站www.xinlinx.com 上可以下载关于芯片配置的各种应用文档,使用户在嵌入 式系统开发过程中最大限度地发挥FPGA的灵活性。 具有移植方便、执行效率高、占用空间小、实时性强和可靠 性高等优点,成为Microblaze软核的首选嵌入式操作系 统。肚c/os—II的大部分源代码是用ANSI C语言编写 的,它的移植只需改写与处理器有关的3个文件即可。 如图5所示,修改与处理器相关的常数和宏定义头文 件Os_CPU.H、任务切换过程中的堆栈处理汇编文件OS 结 语 基于FPGA软核的嵌入式系统开发分为硬件平台开 发和软件平台开发两个部分,在硬件平台开发过程中可以 根据需求选择外设,也可以定制自己的IP,实现更为灵活 的接口和控制功能;在软件平台开发阶段则可以充分利用 uC/OS—II (与处理器无关代码) OS CORE.C OS_SEM.C oS FLAGC OS M[BOXC 0S MEN.C OS 11ASK.C 0S TIⅣ匝.C OS TMRC XPS提供的API制函数,方便快捷地编写控制程序。FP~ GA进行嵌入式系统开发所具备的定制性正受到越来越 多的青睐和关注,可以预见,未来使用FPGA进行嵌入式 产品的开发必将成为潮流。l墨 参考文献 [1]Xilinx Inc.Embedded System Tools Reference Manual,2010. OS MUTEX.C gCOS_lI.H 0S O C [2]Xilinx Inc.Microblaze Processor Reference Guide Embedded Development Kit EDK 12.1,2010. E3]Micrium Inc..c/os—II and the Xilinx Microblaze Processor 软件 硬件 Application Note,2009. [二二 ]回 图5 uo/os—II软件代码的体系结构 一 paper@mesnet.com.cn(投稿专用) 201 7#-g 3期 羊I;}机 嵌入式豪瓴‘应固 21