为FPGA软处理器选择操作系统

发布者:机械梦想家最新更新时间:2009-11-23 来源: 互联网关键字:lattice  FPGA 手机看文章 扫描二维码
随时随地手机看文章

      在本文中,我们研究了选择嵌入式操作系统的各种方案,并且针对嵌入式和实时操作系统,讨论一些选择标准,并强调由可编程逻辑解决方案引入的设计折衷。阐述了一个典型实例,这里我们以在莱迪思半导体公司的FPGA 上运行的LatticeMico32软处理器设计为例提供一个典型方案的讨论。  引言

  操作系统能够提高可移植性,并提供多种经过测试的抽象层,服务层和应用模块层以供选择,从而加快产品上市时间并减少应用程序出错的可能性。然而,选择一个嵌入式操作系统( OS )从来就不是一个简单的过程,因为集成嵌入式软件的方式选择余地很大,你可以完全都由自己来编写,或通过商业定制专门实时操作系统,也可以直接购买通用操作系统不作任何修改,现成的通用操作系统。FPGA性能的提高和软处理器核的出现,直接导致了可编程逻辑SoC解决方案的产生,随着这一变化,关于选择标准,设计方案以及折中考虑等传统经验也需要与时俱进以适应这些新的开发方式。

  在本文中,我们研究了选择嵌入式操作系统的各种方案,并且针对嵌入式和实时操作系统,讨论一些选择标准,并强调由可编程逻辑解决方案引入的设计折衷。阐述了一个典型实例,这里我们以在莱迪思半导体公司的FPGA 上运行的LatticeMico32软处理器设计为例提供一个典型方案的讨论。

  传统经验

  根据传统经验,一个操作系统的选择有四个主要方式。

  无操作系统

  许多简单的嵌入式系统不需要操作系统。该代码通常始于设立堆栈指针和初始化几个时钟和外设寄存器。然后,该代码进入主循环(也称为超级循环) ,以执行产品的功能。编写中断服务程序( ISR)用以处理异步事件,以提供一些响应而不是轮询设备方式来进行服务。 ISR的响应通常是在0到10微秒的范围。如果 处理器速度 足够 快,以及超级循环是小而紧凑的,这是一个完全可行的选择。然而,如果进行更复杂的操作,如执行控制循环,提供图形显示服务,使用文件系统或网络堆栈( TCP / IP协议或其他),超级循环将无法正常工作。如果考虑一个 快速和 功能强大的 处理器, 如开放源 代码LatticeMico32软处理器, 应该选择一个操作系统。

  自己编写操作系统

  对于一些特定需求,现有的解决方案无法满足需要,或者现有的解决方案成本太高,通常就需要考虑自己编写操作系统。自己编写RTOS (实时操作系统)通常不是一个好的选择,因为总是严重低估所需付出的努力。一个简单的“tasker”要写几天或几周,但更艰巨的挑战是需要对实现鲁棒性商业产品的努力。例如,一个商业的RTOS ,如μC/OS-II可能包含超过10000行的代码,已经在各种各样的产品中得到了现场验证,并可能已被认证应用于,如电子和医疗产品等。如果选择你自己编写,谁将确保长期维护,并且完成详细的文档?

  从商业的观点来看,自己编写的RTOS不是一个好的选择。

  商业RTOS

  实时操作系统是一个管理微控制器,微处理器或DSP时间的软件。最重要的一个特点是它对实时事件的响应,通常不到25微秒。这种响应通常是确定性,在某些情况下,甚至相当稳定。一个实时操作系统以应用编程接口( API )的形式为应用程序员提供了许多“服务”。当选择一个实时操作系统时,从技术和业务问题方面考虑会有数十种选择。

  技术问题可以大致分类为:

  * RTOS对应用作出的响应够吗?

  * 实时操作系统提供了所需的功能吗?大多数实时操作系统提供相同的基本功能:任务管理,时间管理,信号量,消息队列,事件标志等。

  * RTOS可以实时用于不同的CPU (即代码可以移植吗)吗 ?一个 实时操作系统,如μC/OS-II已移植到超过45种不同CPU 架构, 所以在这种 情况下,可移植性不会成为问题,产品和其一部分的长寿性是得到保证的。如果使用一个新的架构,移植 到一个 CPU通常需要一两个星期。

  * 使用RTOS是否有足够的ROM和RAM?根据所需的特性RTOS的空间可以减少吗?例如,μC/OS-II是可以升级的,代码 空间的要求在6千字节到24 千字节的之间,最低只需要500字节的RAM 。

  从商业角度,事情并非那么容易解决。具体来说,嵌入式开发者需要从操作系统供应商那里得到满意答复,了解价格结构,支持结构和供应商的声誉和稳定性。寻找一个ROTS操作系统或RTOS的供应商时,调查通常是一个好的开端。

  当系统响应速度是最重要时,如控制和监测应用程序,就会选择商业的RTOS,因为它们很依赖于软件的执行功能。如果你可以选择用硬件实现时间至关重要的功能,通常就不需要由RTOS提供严格的时间保证。

  UNIX操作系统

  在过去几年中,嵌入式应用中采用的32位处理器平台的性能和功能得到了极大增强。今天,即使软处理器,如LatticeMico32提供达到50至100 DMIPS的计算能力。随着可用资源的性能和功能的增强,提供丰富的功能集和抽象层的操作系统已成为一种可行的可选嵌入式解决方案。UNIX提供了非常丰富的编程环境,对多处理器的应用有相当的规模,以及在网络的应用方面拥有丰富的历史。通过文件操作,它提供了一个统一的设备抽象层,使平台之间的应用可以快速移植。一些UNIX版本也可获取开放源代码授权:Linux是最著名的变种,有非常庞大的用户群体和许多嵌入式应用(如WLAN路由器,打印机,VoIP电话)。Linux系统甚至对不包括MMU (内存管理单元)的处理器提供了有限的支持。各种BSD (伯克利软件分发)版本可能不太为人所知,但它们在许可证上限制较少。

  一些实时扩展为Linux提供了在Linux执行层的顶部(或者说,下面)的最佳的软实时层。RT/ Linux、 RTAI和Xenomai是实时扩展的例子。通过多种已知的API从其他的RTOS (在Xenomai,此功能被称为“skins”),一些实时层输出其功能 。

  Linux系统提供了丰富的应用,可以很容易地集成到一个嵌入式应用程序,如Web服务器,协议栈,数据库引擎,图形库和网络管理。这些功能可以添加到任何嵌入式应用,而不需要“从草图”开发。随着Linux的先进I/O子系统的出现,和全面支持的非易失存储技术(从闪存到SATA硬盘) ,甚至可以集成“大”的应用(如在NAS应用中,跟踪照片的数据库应用)。

  广泛使用的操作系统技术,例如Linux,其中一个最大的好处是在互联网上可获取大量的可用信息,有许多专业设计公司可以提供专业服务。虽然源代码的许可证是免费的,Linux的复杂性和大小会压垮许多用户。在这种情况下,专门设计公司,如Theobroma Systems可提供专业支持,培训和总承包设计服务。重要的是要记住,“开放源代码组织”并不能给你提供工业质量的支持,只有有经验的工程人员才行。

  使用FPGA解决方案时,有与大型操作系统如Linux相关的性能和响应时间方面的问题,可以用硬件实现。在这种情况下,操作系统功能作为一种资源监管,大部分关键时间工作用硬件来完成。这个方法的一个例子是在UART内利用一个大的FIFO,以减少至操作系统 的中断次数。当然,此方法有一定的局限性和复杂性,但与一个专用的CPU芯片相比,有更多的灵活性。[page]

  另一方案:使用可编程逻辑

  FPGA为系统设计者提供了一系列的权衡选择,这是现有的ASIC/ASSP解决方案无法提供的。正如图1所示 ,当一个处理器集成至FPGA时,设计者可以各种方式实现功能例如:

  * 软件控制硬件

  * 仅软件

  * 软件功能,控制或数据流,通过硬件加速(SW/HW)

  * 仅硬件,与CPU没有直接的互动,但是硬件可与任何功能进行交互。

  

  图1 FPGA中的多种选择

  使用提供这些权衡的可编程逻辑解决方案,SoC设计者有控制结构的多种选择。相反,控制结构的选择涉及到如何实现所需的功能。

  一个简单的便携式媒体播放器示范了操作系统如何控制硬件,以及如何使用一个FPGA提供一系列改善硬件/软件的权衡选择。图2从硬件的角度展示了播放器的功能。所需硬件的数量在很大程度上取决于所期望的系统响应。有了RTOS,许多硬件模块可以比在Linux应用中简单得多。总而言之,FPGA的可编程逻辑为任何操作系统提供硬件权衡选择。

  

  图2 从硬件角度观察便携式媒体播放器[page]

  设计者在系统中用什么附加硬件,和如何用附加硬件有更多的灵活性,这可以从软件的角度来观察,如图3所示。

  一个键盘扫描器或许可以作为RTOS任务来执行,也作为硬件通过Linux任务来访问。事实上,用硬件实现的键盘扫描器在系统中是隐藏的,因为它被包装在一个任务中。其优点是大大减少了对操作系统的中断。轻松地权衡添加硬件或者使用软件为系统设计师带来了一种新的灵活性。

  

  图3 从软件角度观察相同的便携式媒体播放器

  与FPGA相关的操作系统选择

  基于FPGA的应用引入了一个将时间紧迫任务用硬件实现的重要方法,使选择操作系统在时间约束方面得到缓解,参见图4。这张图显示了本文中讨论过的各种选择的响应范围。因为它是可编程逻辑,FPGA为设计者提供了精细的增量控制执行。因为它是硬件,它对实时事件的响应极快。如图所示,该响应可用于扩大服务范围,甚至更大的操作系统。

  

  图4 响应范围

  结论

  用可编程逻辑的SoC平台的设计,如FPGA芯片里的LatticeMico32,给系统设计师提供了难得的机会,因为他们可以选择自己喜欢的硬件支持和轻载功能。这使得系统设计师通过转移软件到FPGA中执行数据路径,来满足时间上的限制。这一做法改变了对操作系统的标准选择判据,使得在实时操作系统和通用操作系统解决方案之间有更灵活的选择。虽然商业实时操作系统在确定中断响应方面仍然有其优势,但通过使用FPGA中实现的减负引擎后,通用操作系统的解决方案(如Linux )可能成为适合于较大的应用领域。“软实时”的解决方案,如RT Linux或Xenomai,这时就显得不那么理想了,因为使用减负引擎可以提供更好的响应而没有额外的工程费用。

  无论选择了RTOS操作系统,还是基于Linux的解决方案用于基于FPGA的设计,开发者需要强有力的合作伙伴支持他们。莱迪思半导体公司的合作伙伴有Micrium ,该公司拥有μC/OS-II许可证和其他的嵌入式软件组件,还有Theobroma Systems,该公司在LatticeMico32平台上为μClinux(微控制器的Linux )提供咨询,培训和专业服务。

关键字:lattice  FPGA 引用地址:为FPGA软处理器选择操作系统

上一篇:基于FPGA的中高频感应电炉控制电路设计方案
下一篇:基于FPGA的软件无线电平台设计 

推荐阅读最新更新时间:2024-05-02 20:55

基于FPGA和单片机的串行通信接口设计
  现场可编程逻辑门阵列(FPGA, Field Programmable Gate Array),是一个含有可编辑元件的半导体设备,可供使用者现场程式化的逻辑门阵列元件。FPGA是在PAL、GAL、CPLD等可编辑器件的基础上进一步发展的产物。 构成的高速数据采集系统数据处理能力弱的问题,提出FPGA与单片机 单片机   单片机是单片微型计算机(Single-Chip Microcomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成
[单片机]
基于<font color='red'>FPGA</font>和单片机的串行通信接口设计
FPGA的制程竞赛看英特尔与Fabless的后续变化
    在Altera宣布进入采用英特尔的14奈米三闸极电晶体制程后,赛灵思(Xilinx)也不甘示弱,宣布进入全新的产品线进入台积电(TSMC)20奈米的投片时程,并于今年第四季取得少量样本,明年第一季正式进入量产时程。 附图 : 投入最新制程的FPGA的开发,所花费的成本相当惊人,FPGA业者,自然也有输不得的压力 然而,同样也是采取台积电的20奈米制程,Altera旗下的Arria 10 FPGA,则是在2014年初提供样本贩售,单以台积电的20奈米制程的进度上来说,Altera落后赛灵思约有一季的时间。但相对的,Altera在14奈米三闸极电晶体制程,向英特尔靠拢,将于今年提供测试晶片。就这方面的进度上,赛灵思恐怕也仅能
[手机便携]
基于FPGA/CPLD和USB技术的无损图像采集卡
  现场图像采集技术发展迅速,各种基于ISA、PCI等总线的图像采集卡已经相当成熟,结合课题设计了一款USB外置式图像采集卡。该图像采集卡已成功应用于一个图像处理和识别的项目中,由于图像 信号 不经过压缩处理,对后续处理没有任何影响,因此图像处理和识别的效果比一般的图像采集卡要好,满足了特殊场合的特殊需要。   1 外置式无损图像采集卡的系统构成   整个无损图像采集卡由图像采集、图像信号的处理和控制、USB 传输 和控制、PC机端的图像还原和存储等几部分组成。   本文介绍的图像采集卡采集的一帧图像是720×576象素,如果取彩色图像,每象素用2个字节表示,每帧图像是720×576×16=6480kbps,分
[手机便携]
Altera和ARM发布业界第一款FPGA自适应嵌入式软件工具包
2012年12月13号,北京——Altera公司(NASDAQ: ALTR)和ARM (LON: ARM; NASDAQ: ARMH)今天宣布,通过双方特有协议,两家公司联合开发了DS-5嵌入式软件开发工具包,实现了Altera SoC器件的FPGA自适应调试功能。Altera版ARM®开发Studio 5 (DS-5™)工具包经过设计,消除了集成双核CPU子系统与Altera SoC器件中FPGA架构的调试壁垒。ARM体系结构最先进的多核调试器与FPGA逻辑自适应能力相结合,这一新工具包通过标准DS-5用户接口,为嵌入式软件开发人员提供了前所未有的全芯片可视化和控制功能。这一新工具包含在Altera SoC嵌入式设计套装中,将于
[嵌入式]
基于FPGA+MCU的大型LED显示屏系统设计
  随着平板显示技术的不断更新,大型LED显示系统利用发光二极管构成的点阵模块或像素单元组成大面积显示屏,主要显示字符、图像等信息,具有低功耗、低成本、高亮度、长寿命、宽视角等优点。近年来广泛应用在证券交易所、车站机场、体育场馆、道路交通、广告媒体等场所。   通常用单一单片机作为主控器件控制和协调大屏幕显示。由多片单片机构成的多处理器系统,其中一片作为主CPU,其他作为子CPU共同控制大屏幕的显示,该系统可以减轻主CPU 的负担,提高了LED点阵的刷新频率。但单片机的驱动频率有限,无法驱动等分辨率LED屏幕,尤其是对于多灰度级彩色大屏幕,数据送到显示屏之前要进行灰度调制重现图像的色彩,对数据的处理速度要求更高,单片机控制在速度上
[单片机]
基于<font color='red'>FPGA</font>+MCU的大型LED显示屏系统设计
基于FPGA+DSP架构视频处理系统设计
本系统采用基于FPGA与DSP协同工作进行 视频处理 的方案,实现视频采集、处理到传输的整个过程。 实时视频图像处理中,低层的预处理算法处理的数据量大,对处理速度要求高,但算法相对比较简单,适合于用FPGA进行硬件实现,这样能兼顾速度及灵活性。高层的处理算法结构复杂,适用于运算速度高、寻址方式灵活、通信机制强的DSP芯片宋实现。 DSP +FPGA架构的最大特点是结构灵活、有较强的通用性、适合于模块化设计,从而能够提高算法效率,同时其开发周期短、系统易于维护和升级,适合于实时视频图像处理。 系统采用模块化的设计方法,将整个系统划分为三部分:视频采集单元、视频处理单元和视频传输单元。 整个系统以FPGA作为核心控制单元并完
[嵌入式]
基于<font color='red'>FPGA</font>+DSP架构视频处理系统设计
赛灵思宣布Spartan-7 FPGA进入量产阶段
赛灵思(Xilinx)宣布Spartan-7系列FPGA现已开放订购,并可依据标准作业时程安排出货。 作为赛灵思旗下成本优化型产品系列的关键成员,该组件系列旨在通过提供低成本与低功耗的产品,以满足成本敏感型市场的需求,同时以业界领先的效能功耗比,针对I/O互联进行了优化。 采用了小尺寸封装的Spartan-7 FPGA商用组件,能支持更大的运作温度范围(从摄氏零下40度至125度)。 Spartan-7系列以更低的入门价位,提供更高的处理器扩充性,比起前一代采用Xilinx 32位MicroBlaze软件处理器IP的方案, 高出50%的嵌入式处理效能。 此外,Spartan-7组件亦提供支持AES-256比特流解密、SHA-256
[半导体设计/制造]
基于FPGA的绝对式编码器通信接口设计
  0 引言   光电码盘是一种基本的位置、速度检测反馈单元,非常广泛地应用于变频器、直流伺服、交流伺服等系统的闭环控制中。为了减小体积,绝对式编码器一般采用串行通信方式输出绝对编码,针对伺服电机控制等高端场合,为了满足快速的电流环、速度环、位置环的控制需要,编码输出的速度又应该非常快,这些不利因素都对绝对式编码的接收增加了难度。   绝对式编码器厂家大多为其编码器配套了接收芯片,实现串行编码到并行编码的转换,便于控制器的读取操作。但是此类芯片通常价格比较昂贵,大约占绝对式编码器价格的四分之一。目前国内外高端交流伺服系统中普遍采用FPGA+DSP结构。DSP用来实现矢量变换和其它算法流程;FPGA用以实现译码、A、B、 Z信号
[嵌入式]
基于<font color='red'>FPGA</font>的绝对式编码器通信接口设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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