首页 > 嵌入式硬件 > 嵌入式开发

本文引用地址: http://embed.21ic.com/hardware/development/201806/60752.html

FPGA嵌入式设计中,常通过软件编程的方式来访问或者控制某些外围设备。电路设计软件Altium Designer的软件平台构建器(SPB)是一个包含了用于创建复杂软件系统所需的所有驱动和服务程序的软件构架。SPB中的软件IP模块可以屏蔽底层细节,为FPGA嵌入式设计的快速开发提供便利,提高研发效率。介绍了基于SPB的FPGA嵌入式设计关键技术,并在智能开发平台NanoBoard 3000上实现了基于SPB的嵌入式音频处理系统设计。

1引言

FPGA(Field Programmable Gate Array)现场可编程门阵列,是在PAL,GAL,PLD基础上进一步发展的,作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制的电路的不足,又克服了原有可编程器件门电路数有限的缺点。使用FPGA来开发数字电路,可以大大缩短设计时间。从简单的与非门电路到高性能的CPU,FPGA能完成所有的数字器件。

2软件平台构建器

设计FPGA嵌入式系统时,常需要通过软件编程的方式访问外围设备,如LED.音频接口。触摸屏等。但在编程时需要熟悉相关外围设备的工作状况,包括设备工作时所需的设备寄存器。设备特定的命令。使用的通信协议及需要处理的中断等。AD软件的软件平台构建器(SPB)为这些特定的外围设备提供了配置数据和驱动等相关的底层模块(软件IP模块),提供了访问外围设备的应用编程接口(API)。

在AD软件下进行嵌入式系统设计时,SPB的使用是通过软件平台文件(SwPlatform)实现的。SPB是一个图形化的用户界面,可以自行读取FPGA设计,为设计中的外围设备导入合适的底层模块,并以此为基础添加更多的高层IP模块到软件平台文件中。具体添加何种IP模块,取决于FPGA嵌入式设计中需要访问哪些外围设备。访问外围设备时,可以使用SPB提供的多个IP模块。较底层的IP模块可以访问特定的存储设备,如硬盘。SD卡。RAM驱动器,较高层的IP模块则更抽象也更独立于硬件。

软件平台文件(SwPlatform)是在SPB中,从一系列提供的元器件中选择组合起来的软件层。软件平台文件使得应用程序通过一组标准化的服务来利用硬件,如存储服务和网络服务。软件平台文件的目的其实就是使硬件设备通过抽象和通用的软件接口,来为应用程序提供外围设备的应用编程接口(API)。软件平台中的设备堆栈(Device Stacks)由三种类型的模块构成,分别是硬件包装(Wrapper)。驱动(Driver)和服务程序(Con-text)。通常从底而上,从最底层的与原理图设计上特定硬件设备相关的模块开始构建设备堆栈。在此之上,可以堆积较高层次的模块,提供更通用的访问外围设备的功能函数。设备堆栈的底部是硬件包装(Wrapper),然后是驱动(Driver),最后是服务程序(Context)。堆栈每往上一层,模块对硬件的抽象层面越高。设备堆栈层的功能描述如表1所示。



SPB中的软件服务列表(Software Service)是一组应用程序可以使用的类型。定义。结构和功能函数。软件服务包含用于访问SD卡。IDE存储设备。CF卡和闪存上的文件的存储服务;用于提供以太网访问的网络服务;提供符合POSIX规范的多线程功能的核心服务;允许快速构造现代图形界面的GUI服务;用于实现音频和视频功能的多媒体服务。用于中断管理和软件定时管理的系统服务总是出现在软件平台中,并且与特定设备无关。每个不同的软件模块都包含完整的API参考信息。通过API Reference可以访问API参考信息,堆栈中的每一层都会有详细的该层上可用函数的描述。通过Header Files可以查看任意驱动或者服务程序的头2嵌入式音频处理系统设计2.1 OpenBus系统设计

嵌入式设计时,在处理外围设备与处理器的连接关系时,可以采用AD软件中的开放总线(OpenBus系统)来完成,这样连接过程将被大大简化。“OpenBus系统”是一个描述一种使用普通总线实现整个系统内逻辑功能性“模块”连接的术语[3].在OpenBus系统文档中,打开OpenBus Palette面板,选择并放置组成系统所需的器件。OpenBus Palette面板中用于FPGA设计的器件,按照功能分类有Connectors(连接器)。Processors(处理器)。Memories(存储器)。Peripherals(外围设备)等。每个OpenBus器件必须正确配置后才能使用。这种Open-Bus系统的设计方法与传统的将处理器和外围电路作为元件放置在电路板上不同,它移除了所有低级别的走线和互连细节,能够快速地构建系统。

在本文的嵌入式音频处理系统中,通过访问NB3000开发板上的高保真音频接口获取音频流信号。在设计OpenBus主处理器系统中,分别选择并放置微处理器(32– bit RISC Processor TSK3000A)。连接件(Interconnect)。I2S音频流控制器(Audio Streaming Control-ler)。SPI控制器(SPI Controller)和SRAM控制器(SRAMController)等OpenBus器件,并连线如图1所示。同时,对OpenBus器件进行参数配置。将SPI控制器的数据发送大小(Data Transfer Size)参数配置为32.将I2S音频流控制器的数据缓存(I2S Hardware Buffer)参数配置为4k samples,将I2S设置为中断号INT_I1.


图1 OpenBus系统设计

通常情况下,任何使用OpenBus系统的FPGA设计都要设计放置接口电路的顶层原理图。图1的Open-Bus系统文件为32位处理器TSK3000A和I/O接口逻辑获得了音频流数据,包含了FPGA设计中的主处理器系统。约束文件将原理图顶层的端口连接到目标FPGA器件的实际物理管脚。约束文件中不但包含端口到管脚的映射,还包含如时钟分配。目标器件等其他相关的设计规范。

顶层原理图通过约束文件,将下载到FPGA中的嵌入式系统设计与FPGA器件的物理管脚连接起来。顶层原理图设计中,音频流控制器I2S与音频编解码器(AUDIO_CODEC)相连,SPI控制器与音频编解码器控制器CS4270(AUDIO_CODEC_CTRL)相连,如图2所示。


图2 顶层原理图设计

2.2软件平台文件设计

在SPB基础上搭建访问NB 3000开发板的音频接口,并对音频流数据进行处理的软件平台文件(SwPlat-form),如图3所示。


图3 软件平台构建器搭建的软件框图

NB 3000开发板上的音频编解码器为CS4270,因此图3中选择CS4270 Audio Codec Driver模块,不需要再自行编写音频编解码器的驱动代码。设计采用SPI作为配置和控制,I2S用来传输数字音频数据流。因此软件平台文件的底层设计选择了I2S Master Controller和SPI Master Controller模块。中间层设计选择了I2SDriver.SPI Driver和CS4270 Audio Codec模块。软件平台文件使硬件外围设备的访问变得容易,底层模块为特定的外围设备提供了配置数据和驱动代码。设计软件平台文件时,选择什么样的模块,取决于设计中需要访问哪些外围设备。

2.3嵌入式代码设计

FPGA嵌入式系统设计中,嵌入式工程是“嵌在”微处理器中的。嵌入式代码就是在软件平台构建器上搭建的软件平台的基础上完成的软件编程。嵌入式工程中的软件代码,主要完成音频数据流的获取。音频数据流的处理和将处理好的音频数据流送到NB 3000开发板的喇叭上。主要程序代码如下:

3设计总结

嵌入式设计文件下载到智能开发平台NanoBoard 3000上的FPGA器件后,利用音频线将电脑或者音箱的音频源送到NanoBoard 3000的音频输入接口,就能从喇叭上听到处理后的音频效果。设计过程表明,AD的软件平台构建器(SPB)为FPGA嵌入式设计访问硬件电路相关外围设备提供了底层软件驱动提供了便利。通过搭建软件平台,调用IP模块,避开了对于底层硬件的驱动程序的编写,只要掌握高级C语言就可以方便地对外围设备进行编程,简化了嵌入式代码的编写,缩短了FPGA嵌入式设计的开发时间。

换一批

延伸阅读

[行业资讯] FPGA未来发展道路如何走?

FPGA未来发展道路如何走?

多种趋势正在将FPGA推向两条截然不同的发展道路。 ......

关键字:FPGA SONOS 收发器

[行业资讯] 加速云发布异构计算加速平台,有效满足AI及高性能计算业务需求

加速云发布异构计算加速平台,有效满足AI及高性能计算业务需求

17日下午,加速云在北京召开“加速新科技,驱动智未来”发布会,正式推出旗下四大创新产品及三大解决方案。该系列方案,能满足数据和模型规模不断扩大的需求,助力深度学习模型高效运转。 ......

关键字:加速云 AI FPGA

[行业资讯] 阿里云选择Xilinx部署FPGA云加速服务F2

阿里云选择Xilinx部署FPGA云加速服务F2

All Programmable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX))昨天在2017杭州·云栖大会上宣布,阿里巴巴旗下云计算公司阿里云在其最新款的FPGA加速服务中选择了赛灵思。作为全球第......

关键字:阿里云 Xilinx FPGA云加速

[行业资讯] QuickLogic为中芯国际40纳米低漏电工艺提供eFPGA技术

QuickLogic为中芯国际40纳米低漏电工艺提供eFPGA技术

中芯国际集成电路制造有限公司(“SMIC”,纽交所代号:SMI,港交所股份代号:981),世界领先的集成电路晶圆代工企业之一,也是中国内地规模最大、技术最先进的集成电路晶圆代工企业,与QuickLogic Corporation(纳斯达克股......

关键字:美通社 eFPGA 中芯国际

[行业资讯] 英特尔加入DARPA计划,是否发布AIB还未决定

英特尔加入DARPA计划,是否发布AIB还未决定

美国国防高等研究计划署(DARPA)旗下简称为“CHIPS”的计划,在未来8个月目标将定义及测试开放芯片介面,目标培育从即插即用小芯片(Chiplet)设计半导体元件的生态体系,希望在3年内将可见有多家公司以此连结广泛的晶粒,用以打造复杂的......

关键字:英特尔 芯片 赛灵思 FPGA

[新鲜事] Linux之父怒喷谷歌安全工程师为哪般?

Linux之父怒喷谷歌安全工程师为哪般?

上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。......

关键字:Linux 谷歌 安全工程师

[猎聘集] 面试过900+工程师的HR自述,手把手教你看破面试中的套路

面试过900+工程师的HR自述,手把手教你看破面试中的套路

技术面试常常有很多坑,不管是对面试官还是面试者来说,都是如此。这篇文章可以让技术面试官规避很多面试过程中可能出现的问题,也可以给即将参与技术面试的面试者一定的启发。......

关键字:技术面试

[真心话] 三大运营商取消流量漫游费,本地流量将被国内流量替代

三大运营商取消流量漫游费,本地流量将被国内流量替代

7月1日,中国移动、中国联通和中国电信正式全面取消流量漫游费,原有套餐中的省内通用流量直接升级为国内流量,但并不包含港澳台地区。目前原来的本地流量已经转化为国内流量。对于本地流量转化为国内流量后价格是否......

关键字:电信 网络流量

[真心话] 工程师中大热的的“技术型复合人才”究竟是什么?

工程师中大热的的“技术型复合人才”究竟是什么?

经过半年的工作和学习,突然想到以前在哪里听说,技术型复合人才比较抢手。单从技术角度看,我认为在任何科技领域,除了能够出色完成自己手中的工作外,还能帮助两个、多个研发人员甚至整个团队解决从理论、方案到工程实现中所面临各种难题,这样的人才应该能......

关键字:工程师
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14