公务员期刊网 精选范文 嵌入式设计系统范文

嵌入式设计系统精选(九篇)

嵌入式设计系统

第1篇:嵌入式设计系统范文

为解决公交车的高效便捷清洗问题,基于青岛理工大学韩旭东教授的团队设计的一款“垂直滚筒式公交清洗小车”,利用AT89C51单片机配合其他元器件,设计了相关的嵌入式系统,包括超声波测距系统和手动/自动双模平台升降控制系统,完善了原产品的设计。采用KeilC51软件编写了相应的控制程序,使用Proteus软件绘制了电路原理图,并进行了仿真模拟。

关键词:

公交清洗小车;嵌入式系统;超声波测距;平台升降控制

0引言

为解决公交车的高效便捷清洗问题,青岛理工大学韩旭东教授的团队设计了一款“垂直滚筒式公交清洗小车”[1]。但在该设计中,仅对机械结构与工作原理做了介绍,缺少相关的控制电路与控制程序的设计,给清洗小车的使用带来了极大的不便。本文在原产品的基础上,针对小车与公交车之间距离的控制不准确的问题,设计了超声波测距系统;针对平台升降控制不方便的问题,设计了手动/自动双模平台升降控制系统。有效地提高了该产品的实用性,完善了该产品的设计。

1超声波测距系统

1.1设计目的

清洗小车由人力推动并控制方向,但由于路面不平,人力控制精度有限,会使小车与公交车车体间的距离发生改变,距离过近会使滚筒挤压车体表面,阻碍滚筒旋转;距离过远,则会使滚筒毛刷与车体表面间间隙过大,影响清洗效果。需要一套测距系统使小车与公交车车体间的距离始终保持在一个合理范围之内。

1.2测距方式的选择

超声波测距是利用机械波反射来测量距离,适用于短距离测距,原理简单,成本低,远距离测量精度较低。公交清洗小车的使用环境比较复杂,对测距系统的精度要求不高,测量的距离在1~2m,且要求结构简单、成本低廉、性能稳定。根据需要和集中测距方式的特点,本文选择超声波测距方式。

1.3超声波测距原理

超声波在均匀介质中的传输速度为一恒定值,由发生器发射超声波,在遇到测量目标后反射回来,由接收器接收并记录由发射到接收经历的时间,便可以计算出发生器与测量目标之间的距离[2]。公式如下:L=12C•Δt。式中:L为测量距离;C为超声波在当前介质中的传输速度(空气中常温下速度为340m/s);Δt为从发射到接收经历的时间。

1.4设计内容

本文利用AT89C51单片机、HC-SR04超声波测距模块、LED灯组成了一个超声波测距警报系统。当距离过近时,指示距离过近的红灯点亮;距离适中时,指示距离适中的绿灯点亮;当距离过远时,指示距离过远的红灯点亮。工作人员可以根据灯光指示调整小车位置,使之与车体表面间的距离保持在一个合理范围。1.4.1HC-SR04超声波测距模块工作原理本文所采用的HC-SR04超声波测距模块,具有成本低、体积小、精度高、使用简单方便等优点,其基本工作原理为:1)采用I/O口TRIG触发测距,提供至少10μs的高电平信号;2)模块自动发送8个40kHz的方波,自动检测是否有信号返回;3)有信号返回,通过I/O口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间[3]。1.4.2程序控制过程利用AT89C51单片机自带的定时计数器资源,通过I/O口给超声波模块一个发射信号并开始计时,当收到超声波模块的反馈信号时,结束计时并计算距离。

2手动/自动双模平台升降控制系统

2.1设计目的

现行大多数公交车的高度在3m左右,为能够确保清洗整个车体表面,原产品采用双丝杠旋转驱动平台升降的设计,并利用直流电动机产生动力。为方便用户使用,能够快捷高效操作平台升降,提高清洗效率,本文设计了一套手动/自动双模平台升降控制系统。

2.2设计内容

根据计算,清洗平台需调整2次高度才可将车体表面清洗完毕,为了方便工作人员操作,本文设计了手动/自动双模控制系统。该系统采用AT89C51单片机,配合L289直流电动机驱动模块,通过控制电动机的正反转实现平台的升降,设计原理图见图4[5]。操作过程为:启动系统后,在自动模式下,按UP键,平台会上升一个固定高度;按DOWN键,平台会下降一个固定高度。该高度值是为实现最高清洗效率,以3m高的车身为标准,经优化计算得出的最适高度。因为公交车的型号差异,车身高度也各不相同,所以为满足实际使用要求,我们又设计了手动控制模式。在手动模式下,按住UP键,平台会上升,松开立即停止;按住DOWN键,平台会下降,松开立即停止。为防止工作人员误操作,本文增加了按键防抖动延迟,防止工作人员误触按键;如果UP和DOWN键同时按下,则电动机停转,直至其中一个按键松开。

3结语

第2篇:嵌入式设计系统范文

关键词:DSP嵌入式系统;硬件设计

中图分类号:TP391.41文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

DSP-based Hardware Design of Embedded Computer System

Chen Cheng

(Affiliate Hospital of North Sichuan Medical College Hospital,Nanchong637000,China)

Abstract:The embedded system has penetrated into every corner of our lives,this paper introduces A design of embedded system based on DSP hardware design.This paper mainly discusses the choice of memory chips and A/D conversion module circuit design.

Keywords:DSP embedded system;Hardware design

DSP嵌入式系统是把DSP系统嵌入到应用电子系统中的一种通用系统。这种系统具有DSP系统的所有技术特征,同时还具有应用目标所需要的技术特征。DSP嵌入式系统不再是一个专用的DSP系统,而是一个完整的、具有多任务和实时操作系统的计算机系统,以这个计算机系统为基础,可以十分方便地开发出用户所需要的应用系统。

一、嵌入式系统的微处理器介绍

在嵌入式系统中,微处理有着至关重要的作用,它负责系统的启动,协调各个模块电路的工作,并将信息反馈给上位机等。我们主要介绍处理器DSP芯片TI公司针对于控制领域应用推出的TMS320F2812。

TMS320F2812是基于TMS320C2000内核的定点数字信号处理器。器件上集成了多种先进的外设,为电机及其他运动控制领域应用的实现提供了良好的平台。同时代码和指令与F24x系列数字信号处理器完全兼容,从而保证了项目或产品设计的可延续性。与F24x系列数字信号处理器相比,F28l2系列数字信号处理器提高了运算的精度(32位)和系统的处理能力(达到150MIPS)。该系列数字信号处理器还集成了128KB的Flash存储器,4KB的引导ROM,数学运算表以及2KB的OTPROM,从而大大改善了应用的灵活性。128位的密码保护机制有效地保护了产品的知识产权。两个事件管理模块为电机及功率变换控制提供了良好的控制功能。

二、嵌入式计算机系统硬件设计

本设计采用的所采用的TMS320F2812内部含有最多达128K*16位的Flash存储器;最多达128K*16位的ROM;1K*l6位的OTPROM。128K的Flash对于绝大多数的用户来说已经完全够用,所以本设计无需对程序存储器进行扩展。

(一)外部存储器的设计

选取RAM芯片时需要考虑的最重要的问题是存储器的存取速度是否与DSP的读写速度相匹配。本系统中,F2812工作时CPUCLK是20MHz,单指令周期是50ns。考虑到实际电路中芯片相互连接及片选需要用CPLD构成一些门电路的功能,而一级门电路的最大延时在6ns左右,所以在选取RAM时,选用读写周期为40ns的存储器是比较合适的。在本设计选取ISSI公司的61LV25616AL芯片作为外扩存储器。61LV25616系列芯片的读写周期在5ns-45ns之间,根据上述分析同时考虑价格因素和系统的扩展升级后,系统确定使用61LV25616AL(读写周期是10-12ns),该芯片是256K*16位的SRAM,工作电压是3.3V,而且数据宽度是16位,可以和DSP芯片直接相连。

(二)内部寄存器的设计

RTL8019AS网络控制器的寄存器,分为兼容NE2000寄存器组和PnP寄存器组。本系统设计中主要使用NE2000寄存器组,该组寄存器共包括4页:PAGE0、PAGE1、PAGE2、PAGE3,每页包含16个寄存器,页的选择可通过设置CR(Command Register命令寄存器)中的PS0和PS1位实现。RTL8019AS具有32个输入输出地址,地址偏移量为00H-1FH。其中00H-0FH共16个地址,为寄存器地址;远程DMA地址包括10H-17H,都可以用来作为远程DMA端口,只要用其中的一个即可;复位端口包括18H-1FH共8个地址,功能一样,用于RTL8019AS复位。

(三)A/D转换模块电路设计

对于一个基于DSP的计算机系统,A/D转换电路主要完成对模拟信号的数据采集,数据采集系统各器件的定时关系是严格的,以确保系统精度,DSP中的定时电路和逻辑控制电路按照各个器件的工作次序产生时序信号和依据时序信号产生逻辑控制信号,最后完成数据的预处理和存储。对于本系统,采用片内自带的AD转换器,上述过程都在F2812处理器内部完成。

TMS320F2812ADC模块是一个12位带流水线的模数转换器(ADC),模数转换单元的模拟电路包括前向模拟多路复用开关、采样/保持电路、变换内核、电压参考以及其他模拟辅助电路。模数转换单元的数字电路包括可编程转换序列器、结果寄存器、与模拟电路的接口、与芯片外设总线的接口以及同其他片上模块的接口。

模数转换模块ADC有16个通道,可配置为2个独立的8通道模块,分别服务于事件管理器A和B,两个独立的8通道模块也可以级联构成一个16通道模块。尽管在模数转换模块中有多个输入通道和两个排序器,但仅有一个转换器。两个8通道模块能够自动排序,每个模块可以通过多路选择器(MUX)选择8通道中的任何一个通道。在级联模式下,自动排序器将变成16通道。对于每个通道而言,一旦ADC转换完成,将会把转换结果存储到结果寄存器中。

参考文献:

[1]刘乐善.微型计算机接口技术及应用[M].湖北:华中科技大学出版社,2000

第3篇:嵌入式设计系统范文

【关键词】嵌入式;系统;低功耗;研究

一、嵌入式系统设计

嵌入式系统由软件模块以及硬件模块组成,其中软件模块需要在硬件模块中运行才可以实现其功能。嵌入式系统中的硬件部分是嵌入式系统的基础部分,主要提供嵌入式系统的I/O端口、外设接口等,而软件是嵌入式系统的控制核心,通过运行,给硬件提供指令,指示硬件进行相应的动作,也就是说软件必须在硬件部分上运行,才可以起到很好的作用。

二、嵌入式系统趋向低功耗的必要性

1.节能的需求

嵌入式系统是一个相对复杂的系统,各个模块工作时工作量是很大的,这就需要电源供应正常,保证系统的正确运行。而随着系统的不断扩大,各个模块会造成更大的功耗,因此,为了更有效的利用嵌入式系统,延长嵌入式系统的工作时间,需要采取节能措施。

2.增强抵抗能力

在嵌入式系统工作的过程中,难免会受到外界的干扰,特别是嵌入式系统中敏感电子元器件,更应该做好防磁的措施,如果处理不当,不能很好的增强抵抗力,将严重影响系统的正常工作。嵌入式系统的功耗越高的话,电磁辐射能量就会越大,这样嵌入式系统自身以及外设都会受到影响,造成精度的降低。

三、利用嵌入式系统硬件设计方法降低功耗

对于嵌入式系统而言,硬件功耗问题是主要原因,对于嵌入式系统低功耗设计的影响因素最大,处理好硬件低功耗设计,会对嵌入式系统低功耗做出重大贡献。

1.优先选择低功耗芯片、元器件

在嵌入式系统工作的过程中,芯片元器件对电源的消耗非常的大,因此,在嵌入式系统设计前,对于元器件的选择,除了满足设计性能指标的需求,还需要满足功耗问题,尽量选择低功耗芯片。现在比较成熟的工艺主要有两种,一个是TTL工艺,另一种是CMOS工艺,其中CMOS工艺耗能很少,可以优先选择。对于芯片的设计或者焊接时,需要注意的是芯片引脚不要出现悬空端,悬空端容易引进外界噪声信号,对嵌入式系统的电源会产生很大的影响,造成高低电平的转换。在默认的情况下,如果高低电平转换,功耗会很大,这个时候,最好选择高电平输出,确保耗能降到最低。

2.采用不同步供电技术

一个完整的嵌入式系统包含很多部分,比如说包含AD采样、DA转换、UART异步串行通信等等,这些模块在系统工作时不会同时工作,有可能在进行完一个模块后才进行下个模块,为了降低功耗,可以选择不同步,即采取分时方法,当某一模块工作完后如果需要隔很长时间才会再执行操作,那就可以选择执行完后将此模块设置为休眠状态,从而降低功耗。

3.合理利用I/O端口资源

嵌入式系统工作时,需要频繁的使用I/O口,I/O口在输出的情况下可以输出约为20mA的电流,对于次,可以采取有效的措施,很好的利用这一电流,对其他外设采取供电的办法,当然,外设对电流的需求需要小于20mA。采取这种办法,可以很好的利用这一资源,得到充分的利用,更好的降低功耗。

4.加强智能电源设计工作

解决好嵌入式系统低功耗的问题,需要注意的就是减少耗能问题,而解决好耗能问题,还可以从另一个角度解决,优化电源设计,趋向于智能化方向发展。在智能电源中安装自动检测芯片,这样可以确保系统处于不同的情况下时,采取不同的策略,及时的做出处理,这样就可以对CPU以及外设模块采取不同的处理措施。比如说,当系统在外部正常供电时,这个时候电源供应可以采取正常供电的方法,提供正常的工作频率,保证电压的正常使用;而如果电源模块检测到系统工作在外部电池状态下,那这个时候,根据检测的结果,可以降低系统主频率,将电压降低到最小运行值,确保嵌入式系统工作在低功耗的状态下。

四、利用嵌入式系统软件设计方法降低功耗

1.减少编译运行时间

嵌入式系统的工作离不开软件的执行,一个小模块的正常运行往往需要很多条代码执行编译。嵌入式系统在运行中需要几个模块先后都运行,也就是说,需要大量的代码执行编译过程,这样的话,就会直接造成功率极大消耗。针对于此,可以对程序进行优化,因为代码有单周期、双周期、四个周期之分,对代码优化,尽量选择与底层密切、周期短的指令,这样,程序代码在编译的过程中,会提高处理速度,降低功耗。一般来讲,低级语言,比如说汇编语言,相对高级语言,比如说C语言、C++语言功耗要低很多。

2.鼓励使用软件代替硬件,硬件代替软件的方法

嵌入式系统在执行某个指令或者为了实现某个功能某块时,可以既选择硬件模块实现,也可以用软件方法实现,比如说软件程序FIR滤波与硬件设计模拟低通滤波,这两种方法都可以实现滤掉高频信号,确保低频信号全部通过。这个时候,可以比较这两种方法,哪一种最优,最节省功耗。软件中处理器需要时间,编译消耗功率,而硬件中电路工作也会消耗功率,因此,通过比较,可以做出最佳选择。

3.采用快速运算处理的计算方法

嵌入式系统在处理接收到的数据时,往往需要大量的运算,才会得到期望的结果。为了有效的降低功耗,提高处理速度,对一些算法可以进行优化。比如说在进行DFT傅立叶变换时,传统的思想是利用DFT设计,求出结果,但是这种设计相对FFT快速傅立叶变换而言,运算量大,时间也很长,这个时候就可以采用FFT的方法。在进行设计时,对各种算法都进行充分比较,在需求的精度都满足的情况下,优先选择算法处理快的。

4.软件设计建议多采用中断程序

嵌入式系统在工作时,当系统上电初始化时,主程序只会实现系统的初始化,这其中包括各个模块寄存器的初始化,外部设备的初始化。对于系统软件降低功耗,还可以采取的办法就是当程序没有动作需要执行的时候,可以将系统设置在低功耗状态,而当系统有动作要发生时,这个时候,可以利用中断程序,让系统跳到要执行动作的程序中,也就是说此时仅仅中断程序会消耗功率,其他模块不会。待中断程序执行完之后,系统继续回到低功耗的状态,节省电量的消耗。

五、结束语

随着社会的发展,科技不断进步,嵌入式系统日益趋向于智能化、自动化方向发展。在各行各业中,嵌入式系统都得到了很好的应用。不过随着功能的增强,应用增多,电源供应成了问题,很多嵌入式系统的耗能都很严重。考虑到嵌入式系统由软件以及硬件两大部分组成,因此,为了降低嵌入式系统的功耗,可以通过硬件措施以及软件措施,实现目的。对硬件方法主要考虑到硬件的电源、芯片选择以及I/O的有效利用;而对于软件而言,主要就是对程序进行很好的优化,充分将软件与硬件结合,只有这样,才能更好的解决嵌入式系统的功耗问题,促进嵌入式系统更好的发展。

参考文献

[1]郑杰.嵌入式系统中的低功耗设计[J].设计技术,2005(2).

[2]王怀瑞.嵌入式系统中的低功耗设计研究[J].河北省科学院学报,2008(4).

[3]王志超.基于硬件构件的嵌入式系统低功耗研究[J].信息化研究,2010(5).

[4]杨天池.嵌入式系统的低功耗设计[J].仪器仪表学报,2006(6).

[5]张健.嵌入式系统低功耗电路设计[J].光电技术应用,2005(6).

[6]姚伟.嵌入式系统低功耗软件技术研究[J].计算机技术与发展,2011(1).

第4篇:嵌入式设计系统范文

【关键词】嵌入式系统;软件设计;应用分析

引言

嵌入式系统是一种以计算机技术为基础,以特定的应用功能为设计目的的一种能够完全嵌入控制件内部的计算机系统。嵌入式应用中虽然有很多像Qt/Embedded、MiniGUI之类的图形界面处理软件或工具包来辅助系统设计,但在很多情况下中却无法使用这些软件或工具包。尤其是近几年来,互联网和移动网络的高速发展, 更是将嵌入式系统的发展带到了一个全新的高度,对嵌入式系统应用的功能性要求也越来越高,给嵌入式系统设计和开发带来了更大的难度。这些应用的软件架构需要一种实用、简捷的设计模式来解决上述设计问题,从而保证系统的可靠性。

1.嵌入式系统的发展历程

1.1 早期的嵌入式系统设计方法,一般是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。

到现在,嵌入式系统的发展已经有了将近四十年的历程,在这四十年当中,嵌入式系统已经陆陆续续的渗透到工程设计、科学研究、军事技术以及网络技术中,成为人们生活所必不可少的一部分。采用这种设计方法,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程必须重新进行,对成本和设计周期的影响很大。而且,随着科学技术以及计算机网络技术的不断发展,对嵌入式系统的功能和运行的可靠性要求也变得越来越高,使得嵌入式系统的设计和开发也变得越来越困难。

1.2 自从在上世纪七十年代最早的嵌入式系统的前身单片机问世之后,经过无数科学研究人员的不懈努力,各种各样的嵌入式微处理器和嵌入式微控制器相继出现,正式标志着嵌入式系统进入了发展阶段,成为了时展的一部分。因而出现了软硬件协同(codesign)设计方法,即使用统一的方法和工具协同设计软硬件体系结构,最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,来获得高性能低代价的优化设计方案。

2.嵌入式应用系统软件设计的思路

简单版本的嵌入式应用系统在使用的过程中可以不涉及操作系统,但是当应用系统需要设计的功能比较复杂的时候,对系统软件所进行的设计是相当复杂的,当前,嵌入式系统设计人员已将擅长的设计方法发展到用软件来体现系统的部分功能。嵌入式操作系统的引入,在应用系统目标软件和硬件之间架起了一座桥梁,它可以大大减少系统设计的复杂性。

系统体系结构一旦确定,硬件和软件就可以相对独立地进行设计。协同设计的目标是做出恰当的体系结构决策,允许在以后的实现阶段中独立完成。这样,嵌入式操作系统作为应用程序和系统硬件之间的虚拟“视图”,将目标应用软件和硬件系统隔离开来,减少了目标应用软件对底层硬件系统的依赖,这样既增强了应用软件的可移植性,也减少了应用软件设计的复杂性。在设计或者对嵌入式操作系统进行移植的时候,应该将系统对硬件所产生的依赖部分转化到位于底层的设备驱动程序上面,这些设备驱动程序在这个时候只是提供给系统一个虚拟的视图,在此之后再由微内核提供将以上系统合并在一起的有效机制,这样既可以简化内核所可能拥有的复杂程度,又能够进一步缩减内核可能拥有的体积。为了便于使用,提高系统的可维护性与可扩展性,将目标硬件相关代码封装成软件包的形式,以便开发者定制替换,定制和替换过程只是微内核中虚拟视图的增加与删减,相应只需改变硬件抽象层。嵌入式系统软件的设计,关键是有可用的工具包,在不同的开发阶段需要不同的工具包。在早期嵌入式应用系统软件设计时,首先使用的是内部电路模拟器(ICE)。内部电路模拟器插在微处理器和总线之间的电路中,开发者可以通过它控制所有的输入输出以及微处理器的行为。但是内部电路模拟器是异体,容易引起不稳定。近年来,出现的各种集成开发环境集成了代码编辑器、编译器、连接器、调试器、模拟器等工具,它使开发者可以首先脱离目标硬件环境,快速开发出应用软件原型。

这种平台式开发对基于标准的市场尤其有用,在这种市场中,产品必须支持一些基本功能,其他功能须进行定制。现在,各种各样的硬件开发板,为开发者提供了在与目标硬件兼容的硬件环境中调试应用程序的功能,更加加快了这个进程。

3.嵌入式系统软件设计方法应用

3.1 对软件的实时性进行设计:跟通用软件设计相比,嵌入式系统软件设计对系统的实时性具有很高的要求,只有保证嵌入式系统的实时性,让系统能够在规定时间内对激励做出反应,才能够保证嵌入式系统的正常运行。因此,在软件设计过程中,一定要按照实时性的不同,将软件功能分为实时和分时两个部分对软件的性能进行严格、合理设计,保证嵌入式系统软件的实时性能。

3.2 对软件的可靠性进行设计:为了能够有效保证嵌入式系统运行的可靠性,在对软件进行设计过程中,还需要对软件的可靠性进行合理设计。在对软件进行设计的过程中,一定要在充分考虑嵌入式系统运行特点的基础上,仔细编写功能模块的代码,尽可能避免错误的出现。同时,在编写完功能模块的执行代码之后,一定要立即对其进行试运行,如果发现问题,及时进行解决,以避免集成功能后对系统的运行的可靠性造成影响。

3.3 由于嵌入式设备中的资源有限,只能选择轻量级的Web Server(如:thttpd、boa等),考虑到应用的广泛性,建议选择boa服务器。作为与用户交互的主要方式,Web page力求简洁,并尽可能提供很多的功能接口。这些功能接口基本可以分为两种类型,一种是触发动作功能,主要利用button触发实现现场图片的采集等动作的操作。另一种是文件交互功能,这种功能的实现相对比较复杂,它不仅需要button触发, 还需要一些文本域作为用户配置的传递机制。动态Web交互功能主要通过form窗体来实现,当用户点击功能接口,浏览器将窗体内容通过http协议传输给服务器,服务器再根据form中的action字段来调用相应的CGI文件。

3.4 混合编程,提高软件的执行力:混合编程指的是在软件编程过程中,同时利用汇编语言和高级语言进行编程,这也是当前编程发展的一种主要趋势。在编程过程中,针对不同的编程要求选择不同的编程语言,比如,对一些执行能力要求比较高或者是实时性要求比较高的程序进行编程,应该选择严谨性比较好的汇编语言进行编写,而对于一些对逻辑性要求比较高的程序进行编程,可以选择具有一定智能性的高级语言进行编写。如此以来,就可以同时提高软件的执行力和分析能力,提高嵌入式系统的智能性。

4.结语

嵌入式系统已经成为人们生活的重要组成部分之一,因此,在日常工作当中,一定要对嵌入式系统的设计和开发引起足够重视。而在嵌入式系统中,软件占据着极为重要的组成部分,也是系统设计、开发的重点、难点,所以,在软件设计过程中,一定要从软件的实时性、可靠性以及可拓展性等方面进行综合考虑,对软件进行合理设计。

参考文献

第5篇:嵌入式设计系统范文

    嵌入式系统是计算机技术、通信技术、微电子技术等先进技术和具体应用对象相结合的更新换代产品。嵌入式系统面向具体的应用领域,随着产品智能化、小型化的普遍需求,嵌入式系统已经渗透至各个行业,具有广阔的市场前景[1]。近年来,各高校信息自动化计算机类专业逐渐将嵌入式系统纳入重要专业课程范围,尤其在嵌入式实践教学体系方面进行了深入的探讨[2-4]。

    考虑到通信类学生的培养与实际就业情况的需求,在嵌入式教学中,除了使学生掌握基本的通信技术原理和嵌入式软件设计的一般方法和流程外,还应注重培养学生的实际应用开发能力。因此,嵌入式教学应该倾向于实践而不是仅仅局限于只是传授理论知识。本文针对本专业嵌入式实验教学中普遍存在的专业针对性弱、设备缺乏、课程系统性和层次性的不足等问题,利用研究所自主研发的嵌入式实验教学平台,设计了具体的实验教学方案。

    1 嵌入式实验教学中存在的问题

    嵌入式系统课程的实践性非常强,为了加强学生对嵌入式系统理论知识的认知,提高学生解决实际问题的能力和创新能力,实验教学在嵌入式课程教学中有着至关重要的作用。到目前为止,在嵌入式实验实际教学中发现了以下问题。

    缺乏针对性强的实验平台。嵌入式课程教学和人才培养具有高度的实践性,通常情况下,教学所用的实验平台(实验箱)是委托科教仪器公司开发的。由于教学投入不足,经常出现设备板子烧毁,讲义资料不全,实验箱不完善导致能开设的实验不多,由于部分源代码不开源等现象,所以相关实验基本上都是演示性的实验,或者与其他学科共同使用一套实验设备,没有本学科专业特色,很难实现视频采集、音视频压缩、网络传输等功能。这些因素皆不利于通信专业学生实践能力的培养。其次,缺乏灵活的实验设计及讲义。在嵌入式系统应用领域,嵌入式系统中的软件开发困难,既要考虑不同平台的差异,又要具备一定的稳定及易行性条件。以往这些类型的软件开发都是由硬件厂商包办,且提供的嵌入式系统软件解决方案五花八门。而实验设计应侧重于主流操作系统下软件的实践和创新。此外,大多数学生照着详细的实验指导书按部就班,缺乏自主创新的意识,甚至不深入思考实验现象背后的理论知识。这显然与培养学生创新性思维和能力的目的背道而驰。而实验课时少也是实践教学中亟待解决的一个问题。嵌入式系统课程对学生的专业知识要求较高,学生先要学习单片机原理及应用、C/C++程序设计、DSP原理及应用等嵌入式

    相关课程,等到具备了一定的实验操作和编程能力之后,在大三下半学期或大四上半学期开设嵌入式系统课程。理论性教学和实验教学交叉进行,再加上总课时的限制,使得学生自主实验时间大大减少。虽然已从原有实验课时占较少课时的状态,调整到实验课时占总课时一半的状态,课内实验还是远不能满足对学生的培养需求。

    2 实验教学配套设施

    本研究所自主开发的嵌入式系统实验平台是一套功能完善的实验箱,选用ARM处理器+Linux操作系统的主流配置。实验箱上提供有教学系统采用的各种测试点(包括图像视频采集输入、I/O输出等),方便教学中使用示波器等测试仪器;多路数字信号源(包括四路视频输入功能);ARM开发系统功能等众多功能。此套基于双核处理器架构(双核处理器架构,是指采用一个ARM核及一个SoC图像处理核的架构芯片)的四路DVR教学实验箱,可以实现视频采集,H.264压缩,音频压缩,网络传输以及嵌入式Linux操作系统等功能,主要为高等院校通信工程类专业、电子信息类专业等高年级学生的通信专业课程设计、通信专业大型实验、毕业设计、电子设计竞赛以及研究生的数字通信实验而设计,也可供相关专业的本专科毕业班学生使用以及自学使用。此外,还配有教学资料光盘,以及分层次、系统的实验指导书。实验系统构架。

    由于嵌入式系统涉及的知识广、综合性强和应用性强,且软硬件技术不断革新,这就需要授课老师具有一定的项目开发经验。而本套实验箱正是由授课老师参与研发,对于一些新进的通信类教师也开放学习与研究。在对嵌入式实验平台有个系统的认识之后,遇到突发问题也可以及时解决,这大大降低了教师的授课难度,提高了实验课效率。

    3 实验教学设计

    结合理论教学,嵌入式系统实验的重点放在软件的开发上。充分考虑到嵌入式软件系统的结构、开发内容和方式的特殊性,从而设置多种配置方案、多层次实验项目的实验教学内容。学生边学习理论知识,边进行实验操作,设置一些基础型和模块化的实验使其对原理有更透彻的认知。当学生理论知识积累到一定的程度,可通过设置综合型的实验使学生进行系统学习与提高。此外,为了达到学生自主创新能力提高的目的,创新型实验的设置也必不可少。减少基础型实验,同时增大综合型和创新型实验的比例,并加入可选项,学生可根据自己的能力兴趣,自主制定实验内容。另外,为了适应本专业学生的培养,除了需要掌握嵌入式系统基本的方式方法之外,还在综合型实验中设置了较多通信类实验课程。

    这样,学生在实验过程中,由浅到深、由基础到综合地进行实践操作,符合渐进性的教学规律。为了解决课时少的问题,设置了一部分课外可操作的实验,使一部分有兴趣而不满足于课内学习设计的学生有更广阔的学习时间与空间。

    3.1 基础型实验

    基础型实验多为验证型实验,其目的是为了让学生掌握基本的理论知识以及嵌入式软件的一般开发流程,熟悉开发工具与开发环境,为之后的综合型实验和自主创新型实验做好准备。这部分实验指导书较详细,学生能够扎实地掌握嵌入式系统的基本软件开发知识。基于本实验系统设计的基础实验主要如下。

第6篇:嵌入式设计系统范文

关键词:嵌入式系统;引导程序;在线加载

引言

随着嵌入式技术的不断发展,嵌入式系统已经应用到人们生活的方方面面[1]。嵌入式系统引导加载程序(Bootloader)是其重要的组成部分,它一般驻留在固定的Flash空间里,上电时首先运行,负责引导用户系统(程序)的运行或者对用户系统(程序)进行在线加载升级[2-4]。

1概述

常见的嵌入式系统引导程序可以分为两类。一种是资源有限的嵌入式系统,这类系统的引导中将用户程序编译、链接后,使用工具软件将生成的目标代码中的Code和Data段数据抽出,生成HEX或者BIN文件,通过上位机程序和Bootloader程序配合将其下载到芯片Flash中。上电之后Bootloader将用户程序加载运行。另外一种是资源充裕的嵌入式系统,像Windows、Linux等对硬件资源要求较高的操作系统一般在这样的系统里运行。本文将针对资源有限的嵌入式系统引导加载程序设计进行介绍。

2设计

嵌入式系统中,引导加载程序和硬件配置的关系十分密切,不同的硬件所实现的引导程序不尽相同。本文描述一种有限资源嵌入式系统引导程序的设计方法,具体设计基于DSP2812。引导程序的设计流程图如图1所示。系统上电后即进入Bootloader运行,首先对系统进行初始化设置,初始化完成后,设置系统空间,然后在一定时间内判断是否对系统进行升级。若判断到升级指令,则进入到用户程序升级分支,对用户程序进行升级,待升级完成后结束;若在规定时间内未收到升级指令,则引导进入用户程序运行分支,执行用户程序,将当前系统控制控制权传递给它,当前Bootloader程序结束执行[5-6]。在初始化系统中,Bootloader程序需要对其执行所必须的资源进行初始化设置,比如对锁相环、定时器、中断等的初始化。判断程序是否升级的过程需要设置外部接口同用户进行交互,接受用户的升级指令,例如本文采用的RS232串口接收用户指令,同时也作为接收用户升级程序的接口。当接收到升级指令后,程序进入升级分支,具体流程如图2所示。首先需要对原系统空间进行擦出,待擦出完毕后开始接收新的执行代码,最后将新的执行代码写入到存储空间中。若未接收到用户升级指令,则引导进入用户程序空间,执行用户程序[7-8]。

3实现

Bootloader程序实现框图见图3所示。3.1空间分配DSP2812具有128K×16位的程序空间(0x3D8000~0x3F37FFF)和18K的RAM空间。本设计的Bootloader程序空间占用0x3F6000~0x3F37F80,Bootloader程序入口设置0x3F7F80~0x3F7F82,用户程序空间占用0x3D8000~0x3F5F80,用户程序入口设置为0x3F5F80~0x3F5F82。3.2系统设置Bootloader程序初始化需要设置锁相环,确定系统的工作频率(100MHz);设置定时器用来判定接收用户指令的最长时间(500毫秒);设置RS232串口(奇校验,1停止位,115200波特率)用以接收和相应用户指令,接收需要更新的可执行代码。3.3接收逻辑3.3.1指令接收接收用户指令的逻辑如图3所示。首先设定最长等待接收指令时间(500ms),同时启动定时器中断计时,启动RS232接收中断接收指令。主程序循环判断是否接收到指令,当接收到指令时进入升级分支,否则时间到引导进入用户程序。3.3.2可执行代码接收可执行代码的接收需要上位机配合,上位机将生成的HEX或者BIN文件解析发送给Bootloader程序,Bootloader程序将收到的代码按照规定地址写入到存储空间中去。3.4用户程序加载Bootloader程序在500ms内未接收到用户升级指令时,进入用户程序引导分支,首先,程序跳转到用户系统入口0x3F5F80,进入用户程序,然后将用户执行代码加载到RAM中运行。

4测试

在实际使用中,对多个用户程序进行在线安装测试,该Bootloader可以将用户程序完整无误的写入Flash空间中。上电后引导程序可以加载用户程序运行,运行结果正常无差错。

5结束语

本文针对资源有限的嵌入式系统引导程序提出了一种设计方案,并介绍了实现方法。同时,在实际测试中可以对用户程序进行升级或者加载运行,证明了设计的可行性。但是,本文提出的设计也具有一定局限性和进一步提升的空间。在后续研究设计中,可以将程序安装校验方法设计、多种接口的安装方式设计加入进去,以完善此引导加载程序。

参考文献

[1]舒展.嵌入式系统综述[M].现代计算机(专业版),2011-03-05.

[2]陈海军,申卫昌,史颖.嵌入式系统引导程序详探[J].计算机技术与发展,2006-01-10.

[3]万勇利,韩纪晓,赵为志,陈兴林.DSP用户程序二次引导加载设计[J].自动化技术与应用,2016-08-25.

[4]邢璟夏,王长红.DSP动态加载程序的改进与实现[J].微计算机应用,2008-06-15.

[5]姜秋艳,吕伟艳,谭谈.基于ARM的嵌入式Bootloader的设计与实现[J].科技信息.2008-05-01.

[6]张小平,谷勇,丰新龙.嵌入式系统Bootloader分析及DSP56F800串口加载功能实现[J].海军航空工程学院学报,2010-09-20.

[7]李声飞,代华山.基于串口通信的DSP程序动态加载技术[J].电讯技术,2011-06-20.

第7篇:嵌入式设计系统范文

摘 要:针对通信专业嵌入式实验教学中存在的专业针对性差、设备缺乏和课程层次性不足等问题,文章利用本研究所自主研发的嵌入式实验教学平台,探讨了以基础型实验、综合型实验,创新型实验和课外实践为基础的分层次实验课程教学方式。这种方式在教学实践中取得较好的成效。

关键词:嵌入式系统;实验教学;教学设计

基金项目:浙江省自然基金项目(Y1101077);浙江工业大学教改项目“通信专业嵌入式系统课程实验的研究”。

作者简介:徐志江,男,副教授,研究方向为无线通信与宽带网接入技术;王丽婷,女,硕士研究生,研究方向为无线通信与网络;孟利民,女,教授,研究方向为多媒体数字通信、无线通信与网络。

嵌入式系统是计算机技术、通信技术、微电子技术等先进技术和具体应用对象相结合的更新换代产品。嵌入式系统面向具体的应用领域,随着产品智能化、小型化的普遍需求,嵌入式系统已经渗透至各个行业,具有广阔的市场前景[1]。近年来,各高校信息自动化计算机类专业逐渐将嵌入式系统纳入重要专业课程范围,尤其在嵌入式实践教学体系方面进行了深入的探讨[2-4]。

考虑到通信类学生的培养与实际就业情况的需求,在嵌入式教学中,除了使学生掌握基本的通信技术原理和嵌入式软件设计的一般方法和流程外,还应注重培养学生的实际应用开发能力。因此,嵌入式教学应该倾向于实践而不是仅仅局限于只是传授理论知识。本文针对本专业嵌入式实验教学中普遍存在的专业针对性弱、设备缺乏、课程系统性和层次性的不足等问题,利用研究所自主研发的嵌入式实验教学平台,设计了具体的实验教学方案。

1 嵌入式实验教学中存在的问题

嵌入式系统课程的实践性非常强,为了加强学生对嵌入式系统理论知识的认知,提高学生解决实际问题的能力和创新能力,实验教学在嵌入式课程教学中有着至关重要的作用。到目前为止,在嵌入式实验实际教学中发现了以下问题。

缺乏针对性强的实验平台。嵌入式课程教学和人才培养具有高度的实践性,通常情况下,教学所用的实验平台(实验箱)是委托科教仪器公司开发的。由于教学投入不足,经常出现设备板子烧毁,讲义资料不全,实验箱不完善导致能开设的实验不多,由于部分源代码不开源等现象,所以相关实验基本上都是演示性的实验,或者与其他学科共同使用一套实验设备,没有本学科专业特色,很难实现视频采集、音视频压缩、网络传输等功能。这些因素皆不利于通信专业学生实践能力的培养。其次,缺乏灵活的实验设计及讲义。在嵌入式系统应用领域,嵌入式系统中的软件开发困难,既要考虑不同平台的差异,又要具备一定的稳定及易行性条件。以往这些类型的软件开发都是由硬件厂商包办,且提供的嵌入式系统软件解决方案五花八门。而实验设计应侧重于主流操作系统下软件的实践和创新。此外,大多数学生照着详细的实验指导书按部就班,缺乏自主创新的意识,甚至不深入思考实验现象背后的理论知识。这显然与培养学生创新性思维和能力的目的背道而驰。而实验课时少也是实践教学中亟待解决的一个问题。嵌入式系统课程对学生的专业知识要求较高,学生先要学习单片机原理及应用、C/C++程序设计、DSP原理及应用等嵌入式

相关课程,等到具备了一定的实验操作和编程能力之后,在大三下半学期或大四上半学期开设嵌入式系统课程。理论性教学和实验教学交叉进行,再加上总课时的限制,使得学生自主实验时间大大减少。虽然已从原有实验课时占较少课时的状态,调整到实验课时占总课时一半的状态,课内实验还是远不能满足对学生的培养需求。

2 实验教学配套设施

本研究所自主开发的嵌入式系统实验平台是一套功能完善的实验箱,选用ARM处理器+Linux操作系统的主流配置。实验箱上提供有教学系统采用的各种测试点(包括图像视频采集输入、I/O输出等),方便教学中使用示波器等测试仪器;多路数字信号源(包括四路视频输入功能);ARM开发系统功能等众多功能。此套基于双核处理器架构(双核处理器架构,是指采用一个ARM核及一个SoC图像处理核的架构芯片)的四路DVR教学实验箱,可以实现视频采集,H.264压缩,音频压缩,网络传输以及嵌入式Linux操作系统等功能,主要为高等院校通信工程类专业、电子信息类专业等高年级学生的通信专业课程设计、通信专业大型实验、毕业设计、电子设计竞赛以及研究生的数字通信实验而设计,也可供相关专业的本专科毕业班学生使用以及自学使用。此外,还配有教学资料光盘,以及分层次、系统的实验指导书。实验系统构架如图1所示。

图1 实验平台系统构架

由于嵌入式系统涉及的知识广、综合性强和应用性强,且软硬件技术不断革新,这就需要授课老师具有一定的项目开发经验。而本套实验箱正是由授课老师参与研发,对于一些新进的通信类教师也开放学习与研究。在对嵌入式实验平台有个系统的认识之后,遇到突发问题也可以及时解决,这大大降低了教师的授课难度,提高了实验课效率。

3 实验教学设计

结合理论教学,嵌入式系统实验的重点放在软件的开发上。充分考虑到嵌入式软件系统的结构、开发内容和方式的特殊性,从而设置多种配置方案、多层次实验项目的实验教学内容。学生边学习理论知识,边进行实验操作,设置一些基础型和模块化的实验使其对原理有更透彻的认知。当学生理论知识积累到一定的程度,可通过设置综合型的实验使学生进行系统学习与提高。此外,为了达到学生自主创新能力提高的目的,创新型实验的设置也必不可少。减少基础型实验,同时增大综合型和创新型实验的比例,并加入可选项,学生可根据自己的能力兴趣,自主制定实验内容。另外,为了适应本专业学生的培养,除了需要掌握嵌入式系统基本的方式方法之外,还在综合型实验中设置了较多通信类实验课程。

这样,学生在实验过程中,由浅到深、由基础到综合地进行实践操作,符合渐进性的教学规律。为了解决课时少的问题,设置了一部分课外可操作的实验,使一部分有兴趣而不满足于课内学习设计的学生有更广阔的学习时间与空间。

3.1 基础型实验

基础型实验多为验证型实验,其目的是为了让学生掌握基本的理论知识以及嵌入式软件的一般开发流程,熟悉开发工具与开发环境,为之后的综合型实验和自主创新型实验做好准备。这部分实验指导书较详细,学生能够扎实地掌握嵌入式系统的基本软件开发知识。基于本实验系统设计的基础实验主要如下。

ADS环境下的汇编指令实验。本实验介绍了ADS环境下用汇编语言进行编程和调试的一般流程,以及使用汇编语言实现对GM8180开发板进行初始化的方法。目的是为了让学生熟悉和掌握ADS开发环境。

建立Linux虚拟机及熟悉常用命令实验。通过本实验,学生需要掌握如何在Windows系统下面搭建Linux服务器,并学会基本的Linux命令和操作。

Linux交叉编译平台实验。通过在Linux下建立交叉编译平台和使用交叉编译平台编译源代码的方法,使学生熟悉和理解交叉编译的原理和概念,学会建立Linux交叉编译平台。

程序下载烧写实验。本实验介绍了配置和编译BootLoader(ARMBOOT)和Linux内核的方法,从而学生可以掌握下载编译好的BootLoader(ARMBOOT)和Linux内核的方法以及建立NFS文件系统的方法。

Mount挂载(nfs/usb/sd)实验。通过本实验,学生能掌握配置linux下nfs服务的方法和mount挂载usb/sd的方法。

3.2 综合型实验

综合性实验旨在培养学生的综合设计能力。根据之前的理论教学与基础性实验的练习,综合所学知识,具备基本的软件开发能力。这部分教学实践实行“教师逐步放手,学生动手去做”的原则,故实验指导书编写得简明扼要。为了达到综合培养的目的,既要包括多方面的知识与设计要求,又要有空间让学生自己发挥。

ADS下混合编程。本实验让学生熟悉和掌握在ADS环境下C语言和汇编语言的混合编程和调试,巩固使用AXD和Mulit-ICE调试的方法。

C语言程序设计与串口通信实验。通过本实验,学生可以掌握在ADS环境下的操作和JTAG的下载和调试,掌握使用C语言对GPIO端口控制。

GPIO驱动实验、I2C驱动实验。在理解Linux驱动程序的结构、原理和I2C协议的原理,掌握Linux驱动程序的编程的基础上,学生能够掌握Linux动态加载驱动程序模块的方法。

图像合成实验。本实验要求学生具有图像合成的知识,熟练进行实验设备的连接和调试、寄存器的设置,能够修改配置文件,深入理解图像合成的原理。

MMC/SD驱动实验。在学生掌握了MMC/SD卡接口的基本原理、MMC/SD驱动的结构以及SD卡的挂载的方法和测试方法后,能够配置、编译Linux内核,在实验箱上烧写Linux内核,建立NFS文件系统,并运行测试程序进行SD卡的读写。

视频网络传输实验。学生在了解了视频网络传输协议工作过程及原理之后,学会在IP网络中实现视频传输的方法。

Web服务器实验、单Server多Client实验。在本实验之前,学生已经熟悉了Web服务器原理及工作过程,通过路由器将实验箱和PC机连接,编写简单的服务器代码,在PC机上运行IE浏览器,能够查看网页服务器是否运行;以及熟练开启Linux,能向多个客户端发送视频数据。

远程控制视频实验。本实验要求学生理解远程控制的原理,通过本实验掌握在Windows下TCP客户端建立及通信的过程,及Linux下TCP服务器建立及通信的过程。

3.3 创新型实验

在嵌入式系统的应用领域里,嵌入式软件已经逐渐成为嵌入式产品设计创新和增值的关键因素,所以实验教学应侧重于软件实践和创新。理论和实践要相结合,而学生的创新能力要着重培养。针对本实验系统的可开放性,设计了一些具有创新型的实验,比如修改内核的内部代码,从而能使学生深入理解实时操作系统的一些机制,加深对理论知识的理解与巩固。再加上指导教师对实验系统原理的熟知,即使学生在操作的过程中导致实验系统瘫痪也能及时得以解决,让学生放心大胆进行实践设计。

在实验课堂上,学生难免会依赖于实验设备以及教师的指导而缺乏自主思考的动力,再加上实验室开放场地和时间的限制,要在有限的时间和空间里完成自主创新设计有些困难。课程选用ARM处理器+Linux操作系统的主流配置,学生可以在课外利用PC机上的Linux进行代码编写,可行之后再利用实验箱进行验证。这样,一方面可以减少场地和时间的限制,加强学生对所学知识渗透性的认知,另一方面提高了学生自主学习能力,培养其创新能力。基于此,在课程设置上,加进了学生自主安排时间。

3.4 课外实践

鼓励学生参加院校级“建龙基金”、“运河杯”等

课外科技立项活动。活动基金提供实验平台,而通信类学生可以根据自己的兴趣与长处设立通信网络与设备等的项目计划,申请资金设备并在导师的同意后获得实验室开放资源。此外,通过组织学生参加省级、部级电子设计大赛及其他各种嵌入式应用型竞赛,让感兴趣、学有余力的学生得到更好的实践与创新能力锻炼的机会。

4 结语

嵌入式系统产品发展迅猛,不断渗透各个行业,人才要求也日益迫切。近几年来,为顺应社会和企业人才的需求,越来越多的高校将嵌入式系统的课程加入通信类专业教学体系,使之成为专业选修课甚至专业必修课。然而,嵌入式教学体系还未成熟,存在诸多问题。针对前文分析的课程设置缺陷,及我们在教学中发现的问题,本文以研究所自主开发的嵌入式实验教学平台为例,提出了针对通信学生的层次性的实验教学方案。根据软件实验环境,设置合理的实验课程,突出自主性与创新性,提高学生自主学习的能力,对培养学生的创兴能力具有重要意义。

参考文献:

[1] 杨水清,张剑,施云飞,等. ARM嵌入式Linux系统开发技术详解[M]. 北京:电子工业出版社,2008:1-6.

[2] 耿鹏. 信息工程专业嵌入式系统课程教学探索[J]. 中国现代教育装备,2010(19):82-110.

[3] 何剑锋,姜林,刘琳. 软件专业嵌入式系统教学探究与实践[J]. 计算机教育,2009(18):111-113.

[4] 张莉君. 自动化专业本科嵌入式系统课程教学问题新思考[J]. 计算机教育,2011(2):82-85.

Design on Experimental Teaching of Embedded System for Communication Specialty

XU Zhijiang1, 2, WANG Liting1, 2, MENG Limin1, 2

(1. Department of information, Zhejiang University of Technology, Hangzhou 310023, China; 2. Zhejiang

Provincial Key Laboratory of Communication & Application, Hangzhou 310023, China)

第8篇:嵌入式设计系统范文

现在有效的电子产品开发要求板卡设计、可编程逻辑设计和软件开发进行融合,需要把监控上述领域的设计管理流程集成进来。为了保持竞争力,公司需要的产品应当能超越松散的集成管理,提供真正统一的设计流以改进设计创新,充分利用当前的器件技术,加速设计流程,更快地把更加智能的产品推向市场。

软件的革命

近年行业中最大的变化是低成本微处理器的运用。微处理器最初用于实现计算器,然后用于个人电脑。由于具有动态重新配置特点,它们取代了许多硬连接数字系统电路,将真实的“嵌入人工智能”带入先前“笨拙”的器件中。

微处理器成功的关键不在于器件本身,而在于它让工程师们将重要的设计难题从硬连接环境转换为“软”领域的能力。板级硬件平台设计继续使用熟悉的“硬连接、现用器件”模式,但是平台中的产品特性或智能的开发可以为“软件”。使用这种基于平台的方法,制造相同物理硬件的风险大大降低了,因为构建硬件后还可以修改其特性。

微处理器最初作为一种高效的可升级工具,现在最终改写了电子器件的规则。它不再满足于价格便宜、性能可靠、工作效率高,现在的电子器件需要“智能”。

将软设计提升一个水平

FPGA本身是一个胶合逻辑应用,要超出这一应用需要更广阔的视野,包括充分利用可编程器件,把尽可能多的硬件引入到软领域之中。这包括引入处理器功能本身,目前FPGA内的软处理器越来越普通。

根本上说,引入基于FPGA实现的软处理器结构灵活、板卡尺寸更小、更简单。但深层次的应用会带来更引人注目的优点。嵌入式开发人员利用了FPGA的可编程特性获得处理器顶层的抽象级别。不仅能在软件中实现抽象级设计,而且也在硬件中实现抽象级设计。

考虑这样一个系统:处理器通过可配置的硬件(本质上是一个硬件包)与其内存和外设连接。这就抽象了处理器的接口。简单地对FPGA重新编程就改变了硬件包,系统设计师可以轻易改变处理器内核,甚至在硬的或软的处理器间转换,无需修改其他系统硬件。从系统角度来看所有处理器都是相似的,简化了硬件设计流程。当然,把这延伸到应用软件领域也需要可以在处理器之间提供C级别兼容性的编译器。

这种系统的优点是不需要“事先”对处理器做出选择。系统可能使用某种处理器开发,如果在开发阶段发现需要更高的性能,则可再采用更快的器件。处理器可以是软的、硬的甚至是FPGA内部的硬件处理器内核,而不会影像周围的硬件。

在这个方案中,FPGA成为有效的系统互连结构,可为嵌入式系统的所有部件提供通用的连接性。

最后,在处理器之上引入透明的包裹层会创建出基于FPGA的开发环境,提供真正的处理器独立性。软件和硬件开发速度都提高了,处理器选择可放到设计后期进行,有效的软件/硬件协同设计成为可能。

传统设计方案的失败

关键一点是它导致了设计流程复杂性和相互依赖程度的增加。随着更多设计转入“软”平台,传统设计领域如硬件、软件和FPGA间的界限越来越模糊。采用不同工具独立处理这些设计元素变得越来越困难且效率低下。

在单个流程中转入到更高抽象级别可处理特定的复杂度问题。当然,最终这些单个的设计元素必须集成在一起创建一个最终产品,但每个组件的专业化程度的增加导致最终产品更难装配。这将消耗大量设计时间并最终妨碍产品创新。

在本质上,与此相承的单点式工具电子产品设计方法已是昨日黄花。产品开发团队面临保持市场竞争力的压力,因此不断寻求新途径来更快速地将更高级智能的设计推向市场,同时处理整个设计流程中不断增加的设计复杂性。

硬件设计软件化

随着最近FPGA技术的发展,分析专家认为我们正处于电子设计的转型中。FPGA刚一面世,就达到了这些器件的价格/容量曲线分水岭。它们能提供ASIC的许多好处,而无需高昂的成本和长期的开发周期。

这些器件内在的可重新编程特性大量削减了设计时间,带来了现场硬件升级的可能性。然而,要充分利用可编程硬件的潜力,工程师需要能在更广的设计流程中发挥技术优势的工具。

在对大型FPGA进行板级布线时,智能的管脚输出流程自动化要求PCB设计编辑器十分了解目标FPGA器件的物理特性和功能,及FPGA设计师施加的优先约束条件,同时也需要FPGA和PCB设计环境间的紧密联系,以便迅速重复FPGA和PCB级设计间的约束,达到优化方案,平衡FPGA内的时间需求和板卡可布线问题。

一体化的设计环境

诸如FPGA这样的可编程技术的真正潜力在于其不再区分硬件和软件。随着我们不断利用该潜力,硬件、软件和可编程硬件的设计就不断融合。从设计工具角度来看,这一融合将驱动传统设计工具边界间的自动流程需求。要成功做到这点需要的不仅是不同设计工具集表面的集成,而是要涉及到所有不同设计环境的完整统。

Altium在Altium Designer系统中体现了这一必然要求。AltiumDesigner提供单一、统一的环境,把PCB级的硬件设计、可编程逻辑设计和嵌入式软件开发集成在一起。这样工程师、设计师和开发人员就能充分利用可编程硬件的特点创造更加智能的电子产品,而不用考虑其FPGA水平如何。

统一的硬件设计框架

Altium Designer中实现了这一目标。它将硬件和软件开发统一在平台内,从而加快了软件/硬件共同设计的进程。Altium De-signer的根本需求是开发人员能方便一致地操作分立和基于FPGA的“软”硬件。这通过把传统HDL方法转为FPGA设计,并将现成易用的、基于组件的设计用于可编程器件来实现。在这种环境下,使用描述板级电路相同的方法和语言来描述FPGA内部实现的系统组件。

在开发时使用预先合成的逻辑块(元件)而不是基于HDL的源库,具有几个优点:首先,在硬件综合时把块视为“黑盒”,从而加快进程的处理;第二,与板级的分立组件的使用一样,在无需了解底层的代码结构的情况下,基于FPGA的组件块即可被使用。尽管,组件背后的原理很复杂,但设计者只需要知道基本的功能即可。

开发电子产品,提供当今市场上真正的差异化产品,其根本在于利用可编程器件,以软件和“软”硬件的形式为嵌入智能提供一个可重构的平台。这需要有一个统一硬件、软件和可编程硬件设计的系统和可重构的平台,支持软设计模式带来的开发自由。

FPGA正继续着电子产品设计的“软化”过程。可编程资源更加便宜、丰富,工程师们不需在HDL中对寄存器级电路进行编码和优化,板级设计模式可以延伸至可编程器件中实现的系统设计中。这将为当前正在从事主流电子产品开发的工程师和设计人员打开软系统设计的大门,他们可以从PCB硬连接环境中将功能移植到可轻易更新的FPGA软连接领域。

第9篇:嵌入式设计系统范文

MicroBlaze嵌入式软核的运行速度较快,可配置性强,属于32位RISC处理器,该处理器支持CoreConnect总线的标准外设集合,和CPU同频,并支持FCB、XSL、XCL等高速连接,此外,通过MAILBOX和MUTEX,该软核处理器还能实现多核处理系统。从理论上来讲,FPGA容量是唯一影响CPU数量的因素,但是实际上CPU数量最多只能到8个。对MicroBlaze处理器进行设计之前,需要先明确其功能任务,这样才能快速选取或者设计处理器组件,进行参数化控制,缩短设计时间。设计MicroBlaze处理器时选用任务目标为导向的设计方法,设计的主要内容如下所述:(1)根据FPGA型号确定主频,并根据处理能力需求确定单核或者是多核。(2)根据具体的软件运行空间和处理器要求,确定容量、FLASH芯片及RAM类型。(3)根据需要的外部接口、外部芯片及片内模块等,选取相应的IP-Core或设计相应的模块,实现各类接口。初步确定设计的参数和元件后,进行优化设计。

2嵌入式系统结构

本文采用SOPC技术设计了基于MicroBlaze软核处理器的嵌入式系统,设计过程体现了SOPC技术的优点。系统的网络接口选择SMSC91C111芯片实现,支持CoreConnect总线的标准外设集合,DDRSDRAM和BRAM用来存储相关的数据,并且存储的数据不同,其中BRAM存储系统数据及系统运行代码,DDRSDRAM存储系统中的软件代码和系统参数。LCD显示屏的主要作用是显示系统的运行状态。该系统要实现和以太网的数据传输,其实质是以太网控制器,具有MAC层及物理层的功能。

3基于MicroBlaze的嵌入式系统开发流程

完成MicroBlaze处理器的设计之后,开始对嵌入式系统的硬件进行设计,硬件的设计如下所述。先创建硬件平台,平台的创建通过XPS的BSB向导实现;然后删减或者添加开发板平台的IP核,并对IP核的属性进行设置;最后在SystemAssem⁃blyview界面中分配地址、对端口和相应的总线连接进行设置。在开发板中下载系统生成的正确的Bitstreams,SDK中运行相应的应用程序时会看到对应的现象。系统的开发包括硬件开发和软件开发,通过EDK平成。

3.1硬件开发设计

用基本系统向导BSB搭建Microblaze平台,平台的搭建主要包括三方面的内容:确定FPGA器件的型号,并对器件的属性进行设置;根据系统需求添加需要的外设,添加之后设置其属性;平台功能测试等。XPS能够自定义IP核,生成向导创建User_Logic用户逻辑模块及IPIF接口模块,两个模块的功能和属性各不相同,其中用户可以采用User_Logic模块,根据系统需求任意添加自定义逻辑,不必考虑它们和Microblaze之间的通信链接,而IPIF接口模块的功能是进行协议转换并捕捉到PLB总线信号,和PLB总线进行交互,如果用户想要自定义输入/输出信号,只要在IPIF模块中声明即可。设计系统平台时,需要添加多种外设,如添加SMSC91C111芯片的控制逻辑;添加外部存储器SRAM的控制逻辑;FPGA的I/O接口控制逻辑及添加用户自定义的逻辑接口控制逻辑等,这些外设和Microblaze软核处理器的连接是通过特定的片内总线实现。

3.2软件开发设计

通过EDK平台的SDK组件可以完成完整的嵌入式系统软件平台的设计。利用SDK组件用户可以生成需要的MHS文件及MSS文件。MHS文件包含了整个MicroBlaze系统的总线、外设、处理器等描述。MSS文件包含了全部的外设驱动信息描述,通过驱动文件完成软件调度程序,由MB2GCC工具编译调度程序生成可执行程序。最终生成软件程序及.bit文件下载到开发板。程序设计好之后,需要进行测试,如果程序运行中存在问题,则可以应用XMD调试软件,使程序更加完善,解决问题完成设计。MHS文件可以根据系统需求进行更改,使系统变得更加完善。PlatGen(硬件平台生成器)产生整个系统的网表,结合约束文件能够生成可配置文件(.bit),用来下载。此外,EDK还提供了大量的函数库,完整的操作系统及板级支持包(BSP)都能够帮助用户开发软件平台。用户可以根据功能需求需要对外设进行设置,应用VerilogHDL或者VHDL代码在ProjectNavigatorISE环境中对用户的IPcore进行设计,然后利用creat—importperipheral工具(XPS中)完成创建和导入IPcore。EDK系统存在的IPcore和用户自己定义的IPcore可以构建一个完整的嵌入式系统。

3.3操作系统的移植

该嵌入式系统应用了μC/OS操作系统,该操作系统是一种实时操作系统,比较适用于微控制器。设计μC/OS操作系统时,要以平台的移植需求为基础,对于不同的平台μC/OS系统的要求也不相同,因此,需要改写宏和函数。*OS_ENTER_CRITICAL及OS_ENTER_CRITICAL:这是两个不同的宏,它们的主要功能是进行临界段保护。在该嵌入式系统中临界段保护的实现需要利用汇编代码关。*OS_TASK_SW:这个宏的主要作用是用于任务切换,嵌入式系统中任务切换主要利用CPU的软件中断方式实现。如果需要中断则调用此宏,宏产生软件中断,相应的中断处理程序会对中断进行处理,实现任务的切换及上下文保护。*OSIntCtxSw::采用纯汇编实现中断级任务切换。*OSTickISR:采用纯汇编实现系统定时器中断的处理函数。*OSCtxSw::采用纯汇编实现,用户级上下文切换。*OSTaskStkInit:创建任务时,初始化任务堆栈。

4结论

相关热门标签