当前位置:首页 > EDA > 电子设计自动化
[导读]FPGA嵌入式设计中,常通过软件编程的方式来访问或者控制某些外围设备.电路设计软件Altium Designer的软件平台构建器(SPB)是一个包含了用于创建复杂软件系统所需的所有驱动和服务程序的软件构架.SPB中的软件IP模块可

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

0 引言

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

1 软件平台构建器

设计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.

 


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

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

 


2.2 软件平台文件设计

在SPB 基础上搭建访问NB 3000 开发板的音频接口,并对音频流数据进行处理的软件平台文件(SwPlat-form),如图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嵌入式设计的开发时间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板
关闭
关闭