时间:2023-05-29 18:22:46
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇嵌入式设计系统,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:ARM 嵌入式系统
中图分类号:TP368.1 文献标识码:A 文章编号:1007-9416(2012)12-0104-01
1、序言
本系统是设计一款基于ARM的嵌入式开发平台,该嵌入式开发平台是基于AT91SAM9263(基于ARM926EJ-S芯核)的嵌入式系统,可以在此系统上运行嵌入式操作系统,并在上运行嵌入式数据库、人机窗口等应用程序,此系统包括硬件和软件两部分,本文主要介绍硬件部分。
2、系统硬件设计
本系统硬件由核心板和母板组成,核心板将系统扩展可能用到的总线都引出来,与母板之间通过针形接插件连接,为以后产品开发提供了稳定、经济而又方便的平台,此种设计的好处,其一把高速和低速分开,降低了硬件之间的干扰,提高了稳定性。其二是当系统需要扩展某些特殊接口时,则只需要对母板进行修改,缩短了开发周期。
其中核心板设计这部分是任何一个ARM系统要正常运行所必备的电路,因此称为核心板,这些基础电路,包括存贮程序用的Flash存贮器,运行程序和缓冲数据所必须的SDRAM、复位模块、时钟模块、JTAG接口等。这部分电路集中在较小空间里,因此相对比较密集,而且这部分的信号是超高速信号,且电路的设计要求比较高,所以核心板采用购买成熟的核心板。
系统母板设计了大部分的电路,因为模板上的信号都是低速信号,所以从成本角度考虑,母板采用二层电路板设计,其主要电路包括了电源部分、USB接口部分、串口及10/100M以太网接口、LCD接口、CAN总线以及底板与核心板之间通过针形接插件相连的接口等,其结构如图1所示。
下面将分模块介绍电路原理。
2.1 串行接口电路设计
系统设计了一个RS-232、RS-485接口,方便与其他设备通信。具体的电路采用MAX3232作为电平转换芯片,它本身提供两组驱动器和接收器,并接有数字隔离器ADuM1201,此芯片提供了两个信道的通道,具体电路如图2。
系统的RS-485串行接口,是由ADM2483来实现,ADM2483本身是带有隔离的高速RS-485转换器,不需要其它额外的电路。
2.2 以太网接口设计
系统选用DM9161作为以太网的接口芯片,因为系统工作在100BASE-TX模式下,所以选择RMII作为DM9161与AT91SAM9263的接口模式,具体电路如图3所示。
2.3 CAN接口电路设计
本系统的CAN总线接口的实现,是通过外接CAN收发器来实现的,系统选用的是MCP2551作为系统的收发器,其特点是有差分发射和接收能力,自动检测TXD输入端接地错误及较强的抗噪声特性。
3、结语
本系统设计了基于ARM系统的嵌入式硬件平台,在此之上可以提供各种实时操作系统,从而构成一个完整的平台,其硬件部分电路已经进行了信号完整性分析具有一定的可靠性。
参考文献
[1]田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社,2005.
【关键词】 抽象级 嵌入式系统 设计模型
在嵌入式系统的设计工作中,设计者更多的将精力放在嵌入式系统体系结构上,使系统变得更灵活。本文主要通过利用抽象的ADL体系结构描述语言对嵌入式系统进行实验和系统的设计,并经过反复过程达到设计要求。总的来说,对抽象级嵌入式系统设计方法的探讨是为了提高嵌入式系统的设计效率,并从一定程度上加快嵌入式系统的发展和嵌入式系统在不同硬件中的应用。
1 嵌入式系统设计介绍
嵌入式系统问世已经有一段时间了,其协议也逐渐变得更加稳定和通用。就目前来看,市场上基于嵌入式系统的产品在逐渐增多,再加上随着几个大型企业的推进和改革让很多芯片和模块的发展逐渐走向稳定的道路。所以嵌入式系统的开发环境主要是依托于执行特定任务的系统芯片之中。由于嵌入式系统在开发中具有相当的难度,所以ADL体系结构和设计语言多应用于抽象级嵌入式系统的开发,所以笔者就嵌入式系统的开发做出具体介绍。
(1)基于ADL体系结构设计的语言和设计方法。ADL体系结构应用在很多软件系统的开发之中,从目前的情况来看,我国对硬件体系结构的研究主要停留在非形式化的基础之上。很大程度上依赖于硬件设计的传统经验。在目前的硬件开发中,很难描述不同组成部件之间的组合关系,导致开发人员对硬件的实际结构难以理解或难以形式化分析。而从经济角度出发,基于结构的硬件研发手段又是目前主要的应用手段,所以在实现实际结构之前应该进行虚拟化的模拟。这也就是抽象级嵌入式系统开发的核心理念。JET技术就是为了支持这一抽象级开发而被使用的技术,拥有更强大和灵活的工具,能快速的转变JAVA和VHDL和其他语言的代码。JET技术实现的主要思路表示如下:
Sample.xml + xxx.jet = 生成文件(.java .vhd)
其中,sample.xml为参数文件,主要提供输入数据。xxx.jet为具体的模板文件。主要利用不同的代码生成功能不同的jet文件。
(2)基于上述实验的具体证明。笔者为了说明此方法的具体特点,就设计了模型CPU,控制器采用微程序的方法,只能完成基本的算术和逻辑。模型CPU的指令系统分类比较详细,在实际应用中可以根据不同的需要对指令系统进行扩充。再加上控制器采用微程序的方式,指令系统的更改将变得更加容易。具体的指令系统如表1所示。
根据表1所述指令系统,可以通过开关输入检验指令的执行和具体结构系统的正确性。最终确定,模型CPU的运转共分为取指令周期、指令执行周期等。
2 抽象级嵌入式系统设计模型描述
抽象级嵌入式系统由于其技术特点决定,是最适合工业以及工程远程操控。这是因为工业生产设备的远程操控比较简单,传输数据较少,而且对系统的通信技术性价比的要求较高。所以嵌入式系统正是工业设备远程操控的最佳选择。比如水利工程远程操控,可以基于嵌入式系统技术结合PLC技术实现水利工程的远程操控。而对于嵌入式系统的市场化应用则是应该对嵌入式系统的产品加大开发力度。从硬件和软件两部分出发,双管齐下,提升嵌入式系统的市场占有率以及市场产品的使用率。对于硬件来说,应该加强对芯片以及电路板的研究,将其低功耗与高性能的特点发挥出更大的作用。而软件部分则主要是对传输协议的进一步改善,让嵌入式系统更加普及。
在抽象级嵌入式系统具体设计时,由于其CPU的结构与传统设计有相同和相似的地方,而且CPU还具有不少固定的结构。所以利用抽象级嵌入式系统设计方法设计的CPU可以明显的提升设计效率。在设计时,首先要基于XML的ADL语言本身对模型CPU进行属性和参数的设计。然后利用不同的技术实现代码的映射,从而调整上层系统的具体设计方案。
在设计完成后,如果需要对地层设计进行修改,则只需要修改顶层的有关参数即可。利用XML代码的灵活,保证了模板文件对应的设计比较正确,也能保证整个设计的正确性和可靠性。总的来说,对抽象级嵌入式系统的设计方法主要是为了避免传统嵌入式系统的设计方法中存在大规模系统设计适应度不足的问题。可以说抽象级嵌入式系统的设计改变了原有的底层代码编写方式,将嵌入式设计提升到一个高级抽象级别。这种方法主要应用基于XML的ADL语言进行操作,并利用严格设计的目标文件和JET技术自动生成所需要的底层代码,不仅提高了设计的效率,还提高了设计的整体可靠性。所以,对抽象级嵌入式系统的研究是具有很高的理论价值与经济价值的。
3 结语
在嵌入式系统的设计工作中,设计者更多的将精力放在嵌入式系统体系结构上,使系统变得更灵活。本文主要通过利用抽象的ADL体系结构描述语言对嵌入式系统进行实验和系统的设计,笔者认为,抽象级嵌入式系统的设计改变了原有的底层代码编写方式,将嵌入式设计提升到一个高级抽象级别,总的来说,抽象级嵌入式系统的研究价值是很高的,而且通过不同的模式表现出来。
参考文献:
关键词:嵌入式;系统软件;设计;实现
中图分类号:TP273.5 文献标识码:A 文章编号:1674-7712 (2014) 12-0000-01
当前时代,科学技术快速发展,信息技术被应用于我们日常生活的各个方面。高科技为我们的生活带来了无限的便利,目前采用高科技手段为人们提供一个安全的生活和工作环境。本文针对嵌入式系统在门禁卡的应用上进行研究,解决了传统门禁卡很多的不便功能。为实现门禁卡自动、智能化管理提供建议,以此来对门禁卡功能与嵌入式系统软件设计与实现相关问题进行研究[1]。
一、嵌入式门禁系统设计
(一)嵌入式系统设计介绍。随着科学技术的快速发展,嵌入式门禁卡系统已经逐渐进入人们的生活,逐渐由传统的门禁卡系统转变为现代的生物特征识别技术门禁卡系统。嵌入式系统的门禁卡主要分为了图像采集、自动照明、语音提示、申请功能、无人监测等具体功能实现[2]。其具体的架构如图1所示。
图1 门禁系统功能图示
(二)系统硬件设计概述。如果要设计出完善的门禁系统,不仅需要软件系统的支持,还需要硬件支撑,否则整个软件系统难以实现。嵌入式多功能门禁系统其本质由嵌入式技术与图像处理技术融合应用。其中嵌入式的硬件支撑硬件结构主要有照明控制、网络接口、摄像头、按键、CF卡、音频接口、LVDS以及DDR2等。
二、嵌入式系统在门禁卡中的实现
(一)图像采集实现。量化后的数字图像信号和连续信号取样的数字图像信号是数字图像处理的对象,当这些最原始的信号经过图像处理后即可获得可观测的连续信号。对连续信号进行取样其本质是将信号的空间离散化,而量化则是将离散后的图像信号幅度上进行离散化,所以量化和取样后的图像信号应该是原始连续图像信号。
对于视频图像的获取方法通常有两种,一是利用视频捕捉卡中的SDK工具获取,二是使用Video for Windows,这给视频捕获编程带来了很大的福利,对视频捕获的灵活性有很大的提高。视频数据的实时采集主要是调用AVICap32.dll来穿件一个AVICap窗口类,它给应用程序提供了一个简单而方便的数据接口,使用户能够访问音频和视频,并且还能在硬盘上对视频捕获进行控制,它在捕获视频的能力很强,可以直接访问视频缓冲区,也不生成中间文件,视频捕获的速度快,及时性高,也可以将视频保存在设置好的文件夹中,整个视频捕捉过程都可以实现控制[3]。
(二)自动照明实现。整个照明系统主要分为了两个部分,照明系统通过发送指令给单片机实现对整个电路进行调整。整个照明系统分为控制部分和图像亮度检测部分,照明系统中的图像检测与电路照明具有很强的联系。嵌入式软件系统进行照明摄像控制时,通过采集信息的亮度,而其亮度与图像的象素有关,将图像做为一个二维图像,横坐标表示图像各个像素点的灰度级r;纵坐标则表示弧度制出现的概率Pr(r);那么对于某一个灰度值ri的象素个数为ni。则概率密度为:Pr(r)= ; =1。
(三)语音提示实现。该系统运用的是ALC655音频解码器,Mic用于连接麦克风,Line用于录制声源的声音,Audio_Out用于扬声器或者耳机。本系统主要根据不用的命令来实现功能,通过调用不同文件得到不同的效果,根据不同情况播放不同的提示音。系统中的MFC附带的音频播放组可以有效的提高开发是速度,通过媒体控制接口API实现停止功能MCI提供了控制媒体接口的能力,对波形音频设备、CD/视频播放设备等媒体进行控制。系统对音频的播放采用的是DirectX,作为低级应用程序的编程接口,在开发上降低难度。对于声音,主要的API是DirectSound,具备播放、处理混音、录音等功能,Microsoft DirectSound API为声音的捕获、播放、混音的处理、录音提供了链接,DirectSound可以给多媒体提供直接访问声音设备、低延迟混合、硬件加速。
(四)申请功能实现。所谓的申请来访功能主要门禁卡在进行检测的时候如果遇到不相匹配者,则需要进行申请之后才能够进入。系统通过语音告知模块的主人,采取系统中断方式来进行受访申请。受访者来进行访问申请时,需要按下按钮然后系统给予语音提示,并且显示出来访者的面貌,以此来进行判断,决定通过或者拒绝。嵌入式软件系统在门禁卡的显示上将来访者的信息显示在LVDS屏幕桑,然后通过系统对来访人员进行判断[4]。
(五)无人监测功能实现。无人监测功能则是当受访者进行访问时,遇到公司无人的时候,由门禁卡系统提示访问者内部无人,并且拍下来访者的照片,发送到系统设定的邮箱之中。在此自动发送邮件的功能中,该系统主要采取以太网作为接口进行数据通讯,并且根据TCP/IP协议来发送报文,实现信息交换。
三、结束语
随着科学技术的不断发展,新型的软件技术被应用到我们日常的生活之中,本文主要针对嵌入式系统在门禁卡中的应用情况,以及在系统设计过程中所占据的地位进行研究。实现嵌入式软件系统在门禁卡中的应用探索,主要针对门禁卡的各项功能的设计与实现进行了详尽的介绍,希望为采用嵌入式方法进行门禁卡开发的企业提供借鉴。
参考文献:
[1]周海龙.嵌入式门禁系统的设计与实现[D].西安电子科技大学,2012.
[2]吴若无.基于光学逆向器门禁的驱动和检测系统设计与实现[D].电子科技大学,2013.
对于嵌入式数据库系统是利用计算机的技术,并且是可以根据软硬件的不同要求进行指定应用,这样可以满足系统在应用时对功能和可靠性的要求。在嵌入式系统运行时,其都是隐藏于内部的设备中,不是通过计算机的形式显示出来。如果在系统中加入了嵌入式的数据库系统,一般会认为是智能的系统。在嵌入式数据库系统中必须融入计算机技术、电子技术和新兴的半导体技术,这些技术完美的结合才能成就嵌入式数据库系统正常可靠的运行。因此,嵌入式数据库系统是一个要求有技术支持,并且资金足够,在知识系统的创造上也必须合理的系统。在对嵌入式数据库系统进行结构分类时,其主要是分为嵌入式的处理器和的一些构件。在数据发展的历史上分析,一般计算机技术的发展会促进数据库的发展,同样反过来也一样。这两项技术在历史的发展中都是相互促进并且相互影响的。在嵌入式数据库系统中一个主要的用途就是移动数据的处理。移动数据技术可以实现不受时间以及地点的限制,进行数据的交流。现在技术在不断地提升,在无线通信的网络服务和各种形式的移动的设备,这些都是要建立在嵌入式数据库系统之上的。虽然,嵌入式数据库比较复杂,但是其用途很广泛。
2对嵌入式数据库系统设计的研究
2.1嵌入式数据库系统设计的含义
为了满足嵌入式数据库系统设计的各种功能及标准上的要求,一般分为嵌入式的数据库、PC主数据源和同步模块这几个部分,在这些构成部分之中,微型化的嵌入式的数据库系统的设计具有最高技术性和应用性以及容易携带的特点,这就是嵌入式数据库系统设计的一般含义。这三个构成部分,其中微型化嵌入式数据库有数据的容量比较小,其可靠程度比较低的缺点,但是这点在PC主数据源中会有弥补,因为PC主数据源只能用于PC机中,这样就不能按照意愿进行移动。在这些构件的中间部分是同步模块,这个部分可以进行数据的双方向的交换,将数据在嵌入式数据库和主数据源之间进行传递,保证信息传递的及时性和一致性。因此,我们可以把同步模块作为信息交流的桥梁。只有嵌入式数据库设计中三个部分合理的结合应用,才可以互相补差补漏,既可以有嵌入式数据库的便于携带的优势,又可以获得大量的数据,这样对于想要随时获得大量信息的用户来说,就得到了满足。通过三种部件互相结合的方式,就是嵌入式数据库系统设计的主要方式。
2.2嵌入式数据库系统设计的特点
在传统的计算机系统的结构体系的设计中,一般采用固定的网络连接对不同的计算结点之间连接,这样可以保证网络能够连续的连接。但是随着移动数据技术的发展,它要求固定的节点和移动的结点相结合,那么以前传统的网络连接就不能够满足条件。对于移动数据库,其要求的性能比较高,所以要求有嵌入式数据库系统的设计,这种设计是建立在传统分布式的数据库的建设上进行拓展而来的。现在的移动数据库是把固定的服务器节点和客户端进行连接以获取动态的数据,因此可以将移动计算机环境中的数据库管理系统看作是动态式的数据库管理系统。从根本上来说,传统的数据库的设计和嵌入式数据库系统设计有着很多不同点,如果在移动的计算机环境下进行移动数据的应用就是嵌入式的数据库系统,这种可移动的特点优于传统数据库设计。嵌入式数据库系统设计主要特点是包括有对标准的SQL进行技术支持,对事务的管理功能和完备的数据库管理功能,可以供多种嵌入型操作系统的应用。
3嵌入式数据库系统设计的技术和应用前景
3.1嵌入式数据库系统设计的主要技术
嵌入式数据库系统设计其中一项主要技术就是数据的复制和缓存的功能。通过这项技术可以将需要维护和备份的数据在不同的多个移动的网络节点之间进行复制备存。在嵌入式数据库系统设计中的这项功能主要是进行服务器之间的复制数据和移动的计算机数据信息之间的复制和保存。从严格意义上来说,只有服务器之间进行的复制才能被称为数据的复制,而计算机上所保存的数据进行复制就是属于数据的缓存。复制可以提升分布式的数据库的可靠程度和访问的性能,但是必须保证多个复制节点在数据上的一致性。根据维护复制的功能上所采取的技术方法的不同,就可以将复制功能分为严格一致性和弱一致性。在嵌入式数据库系统设计的复制和缓存技术中,如果要求严格的一致性就要保证在无论何时复制的数据信息其内容都是一致的,但是对一致性的要求比较弱,那么可以允许在较短的时间内有不相同的现象的出现。但是我们要求其不同的数据不能太多,必须控制在一定的范围之内,并且最终随着时间的演变是能够趋向相同的。对于嵌入式数据库系统设计的另一个技术就是数据广播。这项技术是应用于移动的计算环境之下,关于客户的机器和总的服务器双方是不对称的,正好应用了这一点,就可以用类似于周期式的形式来传递数据和信息。通过数据广播技术可以帮助处理数据库系统的断接问题,并且不会因为用户的数量的变化而发生变化。对于数据广播技术的构造中一个方面是服务器,这个层面是用来进行组织广播和调节数据,可以对广播数据进行本地缓存。因此,复制缓存技术和数据广播都是嵌入式数据库系统设计的主要技术。
3.2嵌入式数据库系统设计的应用前景
随着物流业的逐渐发展壮大,嵌入式移动数据库系统设计也可以应用在物流方面。采用嵌入式数据库系统设计,可以对物流的信息进行准确的跟踪,对生产、销售和运输过程中的资金进行合理的安排。在物流的运输工作中,可以利用嵌入式数据库系统技术将车辆信息中移动的数据信息进行传递,从而保证物流车辆在运输过程中的一切行踪都在总系统的控制范围内。通过嵌入式数据库设计可以将手写的信息用无线的网络传入中央的数据库来存储,这样有利于物流信息的更新和保存。同时,嵌入式移动数据的技术也可以应用于移动的银行。目前,我国的移动用户的群体在逐渐的扩大,所以银行移动化也是大势所趋。嵌入式数据库系统设计在移动银行上进行应用,可以帮助用户进行实时的账务查询和交易,增加了灵活性。移动银行的用户可以不受时间和地点的限制,来办理银行业务,从而也节省了大量的时间。在水电业中,对于数据传统上的采集方法是进行家家户户的抄录数据,现在则可以利用嵌入式数据库技术进行移动的传输数据,从而提高了工作效率。
4结束语
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结论
关键词: 地理信息系统;嵌入式;全球定位系统;空间数据
Abstract: based on embedded system design of the structure of the geographic information system, and puts forward the comprehensive GIS architecture using a variety of modern technology, they include GIS technology and embedded technology, and RS technology, GPS technology, mobile computing technology and communication technology, etc.
Keywords: geographic information systems; Embedded; Global positioning system; Spatial data
中图分类号:S611文献标识码:A 文章编号:
1.引言
随着GIS技术的不断成熟和它给人们带来的巨大便利,以及嵌入式设备性能的提高和普及,两者的结合成为一种必然的发展趋势。近年来,嵌入式GIS技术正成为GIS发展的热点之一,它的应用包括了汽车导航、野外测绘、物流运输、军事指挥等众多的领域。我国也已经开发出了自己的嵌入式GIS产品,比如武汉中地软件的MAPGIS-Embedded和北京超图公司的eSuperMap等。本章提出了一种基于嵌入式设备的地理信息系统的完整的体系架构,对于架构中涉及到的技术以及每一个模块都做了比较详细的说明。同时需要指出的是:这个架构不仅具有一定的理论价值,还具有很强的现实意义。我们已经按照此架构中提出的思想进行了代码实现,当然由于时间和精力的关系,只是实现了其中的一些基本的功能,但这却是自主开发嵌入式地理信息系统的一次有意的尝试,并具体介绍实现的过程和步骤,以及实现过程中一些难点、关键问题的解决。
2.嵌入式GIS体系架构
嵌入式地理信息系统的体系架构如图1所示。从图中可以看出,整个系统是基于C/S模式的,它由嵌入式设备、高性能计算机、全球定位系统(GPS)和空间数据库四个部分组成。
嵌入式设备由嵌入式硬件系统和嵌入式软件系统构成,其中嵌入式硬件系统要集成GPS定位信息的接收功能;在嵌入式硬件之上的一层是嵌入式操作系统(如ARM-Linux等),它是嵌入式软、硬件之间的桥梁,主要负责文件管理、进程调度等功能;运行在嵌入式设备上的GIS软件(也就是客户端程序)包括地图的显示、缩放、漫游、缓冲分析、通讯等几个模块,通讯模块可以通过无线网络与高性能计算机(服务器)进行通信和数据传输。
高性能计算机(服务器)要实现最短路径、最优路径的查询等地理信息系统中比较复杂的功能,同时还要实现与客户端进行通讯、文件格式的转换,以及访问数据库服务器等功能。
对于系统中数据的存储,我们采取的是客户端-服务器两级数据存储模式,大部分的数据存放在服务器端(高性能计算机),客户端(嵌入式设备)只保留少量常用的数据;如果系统中的数据量过于庞大,甚至可以由一个具有海量存储器的计算机专门来存储服务器端的数据,并向服务器提供访问接口,这样可以减轻服务器的负担,提高整个系统的效率和处理数据的速度。在必要时,客户端可以向服务器提出更新数据的请求,服务器在接到请求后把相应的数据文件回传给客户端。
图1 基于嵌入式设备的GIS架构示意图
对系统的功能模块进行了划分,把地图显示、图层管理、缓冲分析、缩放和漫游等比较简单,对硬件资源消耗小的应用放在客户端,而把最优路径、最短路径的分析等复杂的应用放在服务器端。这样做的原因在于嵌入式硬件本身的资源非常有限,如存储空间偏小、处理器的速度也不是十分理想等,所以它不可能发展较为复杂的GIS空间分析功能。当客户端需要调用最短(优)路径查询等复杂的GIS分析功能时,就向服务器发出请求(其中包括客户端当前的位置、目的地等参数),服务器根据客户端传递的参数,对数据库进行一系列的查询、检索等操作后,将分析的结果回传给客户端,从而为客户提供决策支持,同时也减轻了嵌入式设备的负担,提高了它的工作效率。
3.全球定位系统及3S集成技术
3S技术为科学研究、政府管理、社会生产提供了新一代的观测手段、描述语言和思维工具。3S的结合应用,取长补短,是一个自然的发展趋势,三者之间的相互作用形成了“一个大脑,两只眼睛”的框架,即RS和GPS向GIS提供或更新区域信息以及空间定位,GIS进行相应的空间分析(图2),以从RS和GPS提供的浩如烟海的数据中提取有用信息,并进行综合集成,使之成为决策的科学依据。RS、GIS、GPS集成的方式可以在不同的技术水平上实现,最简单的办法是三种系统分开而由用户综合使用,进一步是三者有共同的界面,做到表面上无缝的集成,数据传输则在内部通过特征码相结合,最好的办法是整体的集成,成为统一的系统。
图2 3S的相互作用与集成
4.空间数据的无线传输
空间数据无线传输技术是完善嵌入式GIS 功能的重要技术之一。但是目前该技术的发展受到诸多因素的制约,下面就这些制约因素加以阐述和分析,并针对无线传输网络提出相应的解决方案。虽然GPRS是作为现有GSM网络向第三代移动通信演变的过渡技术,但是它相对于原来GSM的拨号方式的电路交换数据传送方式,在许多方面都具有显著的优势。正是由于GPRS具有以上的这些特点和优势,在我们设计的基于嵌入式设备的GIS系统架构中,采用了GPRS作为空间数据的无线传输网络。
5.试验结果
ECI GIS的开发严格遵循了软件工程的思想,并且针对嵌入式软件开发的特点,对软、硬件平台以及专业需求等因素也进行了综合的分析和考虑。但由于时间、技术等方面的原因,我们的软件只是实现了GIS中的一些基本功能。本节将重点向您介绍这些功能的实现,即程序运行的结果。说明:地图中的当前图层为上海市区县和主要河流。
图3全图显示
图4属性数据库的显示
结束语
ECI GIS1.0是一个基于嵌入式设备的地理信息系统软件,它经过了架构的搭建、模块设计、代码实现、软件移植和应用检验几个阶段,具备了地图缩放、信息查询等基本的功能。ECI GIS与其他的嵌入式地理信息系统相比,最大的特点就是它没有借助任何商业的操作系统(如WinCE)和GIS系统软件,实现过程中用到的Linux和GDAL函数库的源代码都是免费开放的。ECI GIS1.0是我们为开发出中国拥有自己完全版权的GIS软件而进行的有意的尝试和探索,这一点或许远远大于其在商业上的价值。
参考文献:
[1] 龚健雅. 地理信息系统基础[M]. 北京:科学出版社,2001.
[2] 张超,陈丙咸,邬伦.地理信息系统[M]. 北京:高等教育出版社,1995.
[3] 邬伦.地理信息系统――原理、方法和应用[M].北京:科学出版社, 2001.
关键词: 物联网 嵌入式 ARM驱动 教学研究
随着计算机技术的不断进步发展,人们的生活方式发生极大改变,计算机及其相关技术已经成为一门热门学科,特别是近年来物联网技术[1]的提出,使用嵌入式及驱动程序开发成为目前计算机专业在校学生学习的一个重要目标。无论是嵌入式系统[2]应用还是物联网技术应用,最终均需要使用设备达到用户的要求,实现特定的功能。由此可见,计算机嵌入式方向的学生学习好《嵌入式系统驱动设计》课程是非常有意义的,但在实际教学中,学生对于该门课程的掌握情况并不理想,学习方向体系、教材选用、教师授课方式及课程实践安排成为制约学生掌握就业核心能力的主要问题。针对这些问题,特提出解决方案,希望对于本课程的教育教学和学生就业有所帮助。
1.存在问题分析
因为计算机专业嵌入式系统目前尚属于一门较新的学科,嵌入式方向课程教学正处于探索阶段,所以作为该方向对应的核心课程《嵌入式系统驱动设计》在教学实施中还存在一些明显的问题。
1.1学习方向体系
目前很多高校在高考招生阶段就明确了学生学习的方向,这种做法本身无可厚非,是各个高校明确招生计划的一种手段。但实际上很多学生对专业本身并不了解,在懵懂地进入高校开始学习时,并没有足够的激情和兴趣,从而导致目前高校普遍存在诸如学生经常翘课、学生在其他方向花费时间多却又不得不应付本方向课程考试的问题,教师教与学生学的效果均不理想。
1.2教材选用
因为嵌入式系统方向目前毕业生就业情况比较乐观,所以针对该方向的各门课程的教材也越来越多,如何挑选一本适合学生理论学习和提高实践能力的教材并非易事。因为从目前市场所有的本科教材分析,有些偏重理论,基本上是各种知识点的汇总,学生学习时动手少,缺乏兴趣,并不能真正掌握独自解决实际问题的能力;有些教材比较偏重实践,实例比较多,但是理论知识讲解相对浅薄,学生学习后解决小问题还可以,但遇到综合性案例的时候往往由于没有理论支持导致分析解决问题的能力不够,学生信心缺失。
1.3教师授课方式
学生对一门课程的接受程度往往很大程度上依赖教师的授课方式,在传授课本知识的同时如果紧密联系行业背景及实际案例,就可以最大限度地激发学生的学习兴趣和学习热情,达到更好的效果。而在目前的状况下,大多数嵌入式方向的教师缺乏相关知识,且在授课过程中往往采用简单罗列知识点和针对性实验验证的方式,虽有对目标板程序的代码分析,但内容枯燥,并不能给学生日后的开发工作带来实践性指导,效果不好。
1.4课程实践安排
在实际教学中,通常对计算机课程的设计为多媒体教室理论演示加实验室实验验证[3],虽然设置了专门的实验时间,但理论学习和实验验证相对隔离时间较长,学生容易忘记重要步骤,导致虽有兴趣但实现困难,效果不好。
2.对问题的思考
以上提到的各种问题确实反映了目前很多高校存在的尴尬状况,一些走在前列的高校虽然在某些方面对这些问题做了改进,但效果并不理想。对此,特将我校对嵌入式方向的改革及我个人针对《嵌入式系统驱动设计》课程的教学心得做一汇报,以供兄弟院校及授课教师参考。
2.1针对性方向划分
学生入校后第一年按照招生录取专业进行公共基础知识平台课程的学习,第二年学习学科教育平台课程的内容,主要是计算机专业学习的一些前导课程,包括C语言、java程序设计、计算机网络等。此时,学生对计算机已经有了相当的了解,可以联系一些不同方向的计算机相关企业的讲师进行宣讲,提高学生对不同方向的认识和学习兴趣。从第五学期开始,根据学生的志愿进行专业方向的划分,然后针对性地展开相应的课程体系[4],这样才能真正激发学生的学习热情,为后期诸如《嵌入式系统驱动设计》等课程的进一步学习打好基础。
2.2选用从业人员编写的半工具书
目前市场上有相当一部分教材是由从事驱动开发的专业人员编撰的,非常适合用做高校本科对应专业课程的教材,因为这些书籍具有如下特点:(1)知识点涵盖全面并且更新速度快,这就弥补了以往教材知识点陈旧、更新慢的弱点;(2)实践环节突出,知识点蕴含在实践步骤中,生动易学习;(3)行业规则和公共规范明确。由于很多高校教师在编写教材时并没有在相关行业解决实际案例的经验,编写时偏重于知识点的强调,并不注重行业普遍遵循的一些规则和规范,这导致学生毕业工作后还要花费大量时间加以适应,效果不好。而这些从业人员编写的半工具书能很好地解决这几个问题。
2.3案例式教学方法
学院定期组织教师参加相关课程对应企业的项目开发交流,并聘请一些业内从业人员到校进行行业背景和规范的宣讲,这在一定程度上提高了教师的素质,最终对课堂教学产生深远影响。针对《嵌入式系统驱动设计》这门课程,可以在教学时尽量避免简单罗列知识点,而是将要教授的内容蕴含在案例中,这样学生学习时兴趣浓厚,掌握知识点牢固。
2.4打段授课配合兴趣小组学习
目前理论和实践分离的教学方式在高校普遍存在,这样做的弊端往往是学生在实践时忘记某些内容而导致实验效果不理想。我采用打段授课的方式,将一学期的授课时间压缩到半个学期,每个星期的课程时间加倍,这样做的优势是学习时间集中,便于加深学生记忆,同时理论和实践结合紧密,学生印象深刻。实践证明,学生上课时注意力集中,兴趣浓厚且接受效果好。为了使学生更好地掌握《嵌入式系统驱动设计》课程内容,设立多个兴趣小组,在课余时间利用现有的实验设备和条件进行课题研究,培养学生初步的科研能力、创新能力、同学间的协作能力和工程实践能力,并更有效地将所学知识应用于实际中。定期进行专题讨论,拓展学生在驱动开发领域的知识面,进而增强课程教学效果[5]。
3.结语
对于计算机专业嵌入式方向的学生,《嵌入式系统驱动设计》这门课程的重要性是不言而喻的,要更好地掌握该门课程需要结合多个方面认真考量,是一个系统的过程,其他课程的学习也应遵循同样的规律。改革教学方法,在方向划分、教材选择、授课方式、实践安排等各个环节创新求变,才能更好地让学生掌握课程的精髓,提高学生就业的核心能力,增加学生择业的竞争优势[5]。希望我对该门课程的一些实践经验能对高校同仁起到一定的交流提高作用,我也会在今后的教学实践中进一步进行总结和完善。
参考文献:
[1]赵庶旭.物联网技术[M].成都:西南交通大学出版社,2012.
[2]戴胜华.嵌入式系统[M].北京:中国铁道出版社,2008.
[3]尚久庆.计算机教育改革的认识[J].科技信息,2010(9):51-53.
关键词:嵌入式系统;机器视觉;测控系统;图像跟踪
中图分类号:TP391.41文献标识码:A文章编号:1009-3044(2010)08-1987-02
1 概述
随着科学技术的发展,更高速,更可靠,更低成本成为各种技术开发的要求。因此,设计能实现实时视觉图像采集、视觉图像处理控制,使其结构更紧凑,甚至完全不需要计算机的介入,提高处理速度,并能有效降低成本的专用机器视觉控制系统,使得该系统具有安装方便、配置灵活、便于携带等突出优点。为此,本课题提出了基于嵌入式机器视觉测控系统的研究,在嵌入式系统上实现实时视觉图像采集、视觉图像处理及控制,构成处理速度快,成本低,结构紧凑,不需要计算机介入的专用嵌入式机器视觉测控系统。
2 系统总体设计
2.1 设计方案
目前,用于图像采集处理系统的嵌入式核心器件一般有FPGA、DSP和ARM芯片,出于成本控制与测控系统性能要求的考虑,这里选用FPGA方案。
FPGA内嵌的NiosII软核处理器是32位的,主要包括CPU微处理器、I/O中断、计时器、UART串口及大量通用寄存器。选用FPGA方案的优点在于,在单个芯片上既可以完成图像采集等复杂逻辑的控制,又可以用内嵌的NiosII处理器完成对图像的处理和识别,电路设计简单,成本低。
对于机器视觉测控系统,在选用了嵌入式处理器实现图像采集的功能之后,需要将视频图像进行数字化处理,这里采用标准工业摄像机+视频图像数字化模块的方法实现。标准工业摄像机的输出信号一般是PAL制式或NTSC制式的模拟信号,信号在进行数字图像处理前必须经过刀D转换,即视频采集。视频采集是整个系统中的一个重要组成部分,它是对模拟视频信号实现数字图像处理的第一个步骤。该方案具有通用性好、成本低的优点。
2.2 总体结构设计
1) 硬件设计
硬件设计包括系统硬件电路的连接和FPGA内部逻辑电路的设计。
FPGA内部逻辑电路的设计是以QuartusII为开发环境,用VHDL语言编程实现图像采集、SRAM总线切换等模块的功能,用SOPC Builder配置、产生NiosII软核处理器及必要的外设(用户自定义外设用VHDL编程实现),然后一起编译并下载到FPGA的配置芯片中,再由配置芯片完成对FPGA的上电配置,由此形成硬件逻辑电路的连接,实现图像采集、处理、存储、显示、实时控制等功能模块。
2) 软件设计
用SOPC Builder生成NiosII处理器系统的同时,也会生成相应的SDK软件开发包。在这个软件包的基础上,开发者可以利用NiosII IDE,移植嵌入式实时操作系统μc/OS-II,编写C或者C++程序来完成对图像的二值化、区域分割、特征提取、模式识别等处理过程,最终实现对目标轨迹的跟踪,实时控制机器人沿规定轨迹运行。
3 关键技术问题探讨
3.1 图像采集CCD模块设计
图像信息的获取就是捕捉待处理目标的图像信息并将其转换成适合一体机处理的数字信号,这一过程主要包括图像捕获、光电转换及数字化等几个步骤。目前图像信息获取可以使用CCD、CMOS、CIS等传感器,其中以CCD的应用最为广泛。
本设计模块采用1/3寸逐行扫描型黑白面阵CCD图像传感器ICX424AL。ICX424AL有效光敏单元为659×494,灵敏度高、暗电流小,带有电子快门。由三相垂直脉冲(V1、V2、V3)和两相水平脉冲(H1、H2)驱动工作,水平驱动时钟频率为24.154MHz,驱动电压5V。曝光之后,每一列成像势阱中的电荷在脉冲的驱动作用下被移至势阱旁的垂直寄存器当中,然后垂直驱动脉冲发挥作用,每次脉冲驱动垂直寄存器组中的像素电荷向下移一行,而此时最下面一行的像素电荷则被移动到水平寄存器当中。之后水平驱动脉冲发挥作用,脉冲驱动水平寄存器中的像素的电荷向输出口移动。被移出像素电荷,经过放大器后形成电压信号输出。水平寄存器被移空后,剩余电荷再次向下移一行,在水平驱动脉冲作用下,水平寄存器的电荷再次被依次移出。上述过程一直重复直至所有像素电荷被移出。
ICX424AL的驱动时序由CCD信号处理器AD9929产生。AD9929有一个三线式串行接的串行通信接口,通过该接口可以对AD9929时序发生器的相位寄存器组进行操作,发送配置信息或读取AD9929的工作状态。AD9929可直接与CCD传感器相连接,CCD像素模拟电压信号在AD9929驱动脉冲的作用下,由CCD_IN引脚输入到AD9929中,经模拟前端采样、放大和A/D转换后,产生8位的数字信号由DOUT[0-11]引脚输出,这些数字信号即为CCD图像传感器捕捉到的待测目标的原始图像信息。
3.2 图像实时跟踪算法设计
由CCD模块负责采集图像,那么嵌入式系统必须要有完善的图像跟踪算法,才能够实现智能机器人对目标的跟踪,传统的图像跟踪算法由于运算量较大而存在实时性较差的问题,因此,有必要对图像跟踪算法进行实时性优化设计。
目标图像跟踪是一个序列图像处理、识别和测量过程。在跟踪过程中,目标可能出现大小、形状、姿态等变化,加上实际环境中的各种干扰,以及图像处理最小计量单位的精度问题,相关跟踪得不到绝对最佳的匹配位置,存在测量误差。因此,为了保证跟踪的稳定性,需要对图像跟踪模板进行自适应更新。图像跟踪模板的更新是目标跟踪中要解决的重要问题之一,图像跟踪模板更新过快或过慢,都有可能丢失所跟踪的目标。判断图像跟踪模板是否需要更新要根据相关的置信度信号,如果相关匹配的置信度高,就可以根据本帧图像的匹配点处的坐标来更新图像跟踪模板;如果置信度低,则说明匹配不稳定,要沿用以前的匹配图像跟踪模板对下一帧进行相关匹配。
相关置信度信号是在分析相关匹配算法的基础上设计出来的,它是一个非常重要的参数。经过分析可知:若匹配点处的峰值很大,且峰值与其它非匹配点的均值之差越大,则表明跟踪越可靠。定义帧内相关置信度为:
式中:C0是帧内相关置信度;maxR是当前帧匹配点处的误差累加次数;R是同一帧内M个依次比maxR小的误差累加次数的均值,如果maxR和R相差越大,则说明该匹配点越可靠。本算法可根据计算速度的需要对M取值,一般可以取M等于20~100的任何值。若C0大于阈值T0,则认为相关匹配值maxR符合帧内置信度,更新图像跟踪模板;否则,相关匹配不可靠,不更新图像跟踪模板。阈值T0根据图像的质量和经验来确定,这里我们取T0=0.6。
实践证明,在序列图像跟踪过程中,若单纯地利用当前图像的最佳匹配位置处的图像跟踪模板作为依据进行下一帧图像的匹配,则跟踪结果很容易受某一帧发生突变的图像的影响而偏离正确位置。因此,本系统采用基于置信度的加权自适应模板修正算法:如果当前帧匹配质量很差,则该帧图像数据不进行修正;而若当前帧匹配质量很好,则该帧图像数据进行修正,加权修正算法表示如下式:
上式中,T(i,j,t)为当前帧使用的图像跟踪模板,O(i,j,t)为当前帧最佳匹配位置的子图像,T(i,j,t+1)为预测得到的下一帧图像坐标,α为加权系数(0≤α≤1),该系数的大小根据帧内相关置信度C0,按照下式计算:
4 结束语
本文在嵌入式系统与机器视觉控制系统的交叉点展开研究,目的是将具有重要意义的机器视觉控制系统应用到具有广泛基础的嵌入式系统平台上,拓展机器视觉的应用范围。通过对机器视觉控制系统及嵌入式系统设计方案的选择,并对基于嵌入式机器视觉控制系统的关键技术问题展开研究,以此为依据,设计了相应的硬件系统和软件系统,并将其应用到智能机器人视觉的控制上。
参考文献:
[1] 王耀南,李树涛,毛建旭.计算机图像处理与识别技术[M].北京:高等教育出版社,2001.
[2] 段峰,王耀南,雷晓峰.机器视觉技术及其应用综述[J].自动化博览,2002,19(3):59-61.
(Ed.)
UML-B Specification for
Proven Embedded Systems
Design
2004, 300pp.
Hardcover $ 129.00
ISBN 1-4020-2866-0
Kluwer Academic Publishers
本书介绍了贯穿整个模块系统设计方法论的系统性质形式证法。该方法论将子系统的共同验证与虚拟系统部件的系统精化和复用性相结合,通过规约的形式与非形式方法相结合,由UML和B语言来完成。这样就允许通过经证明的子系统的合成来验证系统规约(对于接口则给予某些特别的注意,符合VSIA/SLIF方法)。将B语言与C、VHDL和SystemC语言相连,将通过构造校正设计的过程扩展到较低的单片系统开发阶段。因此证明嵌入式软件产品是与证明硬件产品相配套的。书中开发了用于从UML和B语言产生代码的原型工具,现有的B语言验证工具被拓展成支持IP的再使用,这都是根据VSIA的推荐。书中所涉及的方法论及工具是通过开发三个工业应用来验证的,即无线移动终端、建立在HIPERLAN/2协议基础上的电信单片系统、以及汽车的防碰撞组件。
全书共有17章。第1章形式方法介绍:它们是怎样应用于嵌入式系统设计的?第2章使用UML、B和SystemC的形式统一系统规约环境;第3章使用PUSSEE方法设计嵌入式系统;第4章借助事件B的系统层次建模与精化;第5章用于UML中形式系统建模的UML-B简况;第6章U2B―用于从UML-B模型转换到B语言的工具;第7章BHDL硬件描述语言;第8章用于UML对硬件描述语言映射的概念性框架;第9章B语言中基于接口的合成精化;第10章借助互补模型检验的有限状态机的精化;第11章适应漫游控制实例研究设计实验;第12章适就漫游控制器实例的研究;第13章使用事件B的电子线路形式建模;第14章回送注销单元实例研究;第15章可移动设计系统实验结果;第16章UML-B规约与汉明编码器/解码器的硬件实现;第17章实践中的PUSSEE方法。书后的附录A1:嵌入式系统设计方法的评估标准。
本书描述的问题有一定的难度,所获得的成果证明了该项目研究的成功,且视野广阔,因此受到欧洲专家的肯定。本书公布的形式方法现在已经能够应对工业中有难度的问题,便于设计工程师、大学教师和研究人员使用。
胡光华,高级软件工程师
(原中国科学院物理学研究所)
关键词:嵌入式;软PLC系统;语言程序
中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2013) 10-0076-01
一、嵌入式软PLC系统的架构
嵌入式软PLC主要分为两个部分,即开发系统以及运行系统。其中开发系统主要负责对于程序进行一定的编辑,并将其生成目标代码。而运行系统则是对于目标代码进行一定的执行,从而完成系统的相关配置,最后对于所输入的信息进行一定的处理与控制等。嵌入式软PLC系统的总体架构示意图具体如下图所示:
一般性的开发系统中还存在着一定的仿真模块,而由于本文只是对于开发系统所生成的Linux C语言在PC上的编译乾地一定的仿真,并且PC的相关资源以及C编译的功能非常的充足与强大,另外仿真也更加的方便与快捷,因此,该系统目前还不需要对于仿真模块进行一定的开发。该系统的组成模块具体如下所示:
1.编辑模块。编辑模块主要是对于语言程序进行一定的编辑与储存。
2.编译模块。编译模块则是对于所编写的语言程序进行了一定的编译,最后生成了Linux C程序。另外,编译模块还分为了五个功能性模块,即词法分析、语法分析、语义分析、错误管理以及代码生成等。
IEC61131-3的标准主要可以运用于五种标准语言编程。其中图形式语言具有梯图(LD)、顺序功能图(SFC)以及功能块图(FBD)等。而文本化语言则只具有指令表(IL)以及结构化文本(ST)两种。而由于指令表语言是这五种请言中最常使用的一种语言,并且其它的语言编程也都可转化为指令表语言,因此,本文主要选择了将指令表语言作为此次开发的运用语言。指令表相当于一个指令集,它主要由三方面构成,即序号、指令字符以及数据等,很容易通过计算机的方式进行相关处理。用户只需在指令表中的编辑窗口出输入一定的指令表程序,之后在对其进行一定的编译与调试,那么最后就会得出C语言的相关代码了。
而IL为文本性语言,为了能够使得IL程序在进行编辑时,能够正常的进行,因此,采取了MFC类库中由CE dit View所衍生出的CT ext View类。CE dit View具有较强的文字编辑功能,并且支持多个窗口同时操作与预览。
三、编译模块
(一)编译模块的总体设计
本文所研究的编译器与一般性的编译器相比,其最大的区别就是该编译器的前端没有将字符式的源程序转化为等价的中间代码,而是建立了与指令表中各指令相符的线性储存机构,如此就有效的节省了将代码进行一定的优化的阶段。在编译器的后端则有效的将IL程序转化为C语言编译器的形式。而编译器主要是是由对于词法所进行相关分析、语法分析、语义分析、中间代码的组成以及目标代码的构成等方面所共同组成的。
(二)词法分析
按照一定的顺序读取指令表中的相关字符流,之后将字符与其定义按照一定的方式进行表达与搭配,如果搭配成功的话,那么则可以执行与之相对应的操作,否则将会出现错误提出。标识的属性主要包含了两种类型,即变量与数据等。而标识符的作用也分为全部与局部等两个方面。在对于标识符进行界定与使用时,其要求与规定都是非常严格的,因此,本文主要采取了哈希表构造中的两种结构中相同的符号进行,并且在储存方面采取了全部标识符的方式,而且POU则采取了局部标识符的方式。
(三)语法分析
先接收一定的词法分析之后对其进行返回标记,之后将其与逻辑性进行充分的融合,再按照之前所制定的语法规则,从而对于语法中的有效句进行一定的识别,还可以对于符号表的相关内容起到一定的更新作用。
(四)语义分析
语义分析主要原则有:操作数类型检查原则、变量类型检查原则、操作数范围检查原则、唯一性检查原则以及控制流检查原则。如查没有出现任何的错误,那么指令序列中的线性储存表就是自动添加该语句,从而方便于代码进行转换操作的需要。
(五)错误处理
为了能够对于多个错误进行同时处理,因此,错误处理机制不仅仅只是从词法分析、语法分析以及语议分析中接收错误的信息并记录,而且还要将错误的信息进行一定的改正并使其功能恢复正常。
四、系统分析
通过一定的分析与研究表明,系统在遵循了IEC61131-3的相关标准之后,其界面较好,并且操作非常的简单方便。而用户可以对于IL程序进行一定的编辑,之后在检查程序中所存在的问题与错误,从而及时的对于错误程序进行一定的修改与完善。
五、总结
该系统界面良好且操作非常的简单,可以对于IEC61131-3中的IL集中性指令进行很好的识别,之后再通过对于队列指令进行一定的扫描的方式准确的将实现指令程序转化为C语言,从而有效的减少了相关代码。本文只是对于该系统在IL语言上的有效的应用了深入的分析与研究,而IEC61131-3所适作的其它五种语言编程的相关研究将在后续的论文中进行呈现。
参考文献:
关键词:PowerPC;Tsi107芯片组;SDRAM;BSP
中图分类号:TP368.4 文献标识码:B 文章编号:1004-373X(2008)02-007-03
SDRAM Interface Design in Embedded System Based on PowerPC
LIU Lijun,HE Zhanzhuang,LI Hao
(Xi′an Microelectronics Technology Institute,Xi′an,710054,China)オ
Abstract:The high processing speed of microprocessor and the real-time,multitask characteristics of embedded operating system decide the embedded system will have a good future.The system uses MPC7410 of PowerPC G4 processor which has been used widely as the core processor,Tsi107 as north bridge chip design an embedded system′s hardware platform.Introduc[CD*4]ing the setting of register related to SDRAM in the Tsi107 chip in detail.Discussing the design of SDRAM interface in the VxWorks BSP.
Keywords:PowerPC;Tsi107 chip;SDRAM;BSPオ
MPC7410是新一代G4处理器,具有高性能和低功耗的特点。通过加入A1tiVec技术,处理能力达到了4 G FLOPS。而1.8 V的低电压操作大大降低了芯片的功耗,提高了系统的稳定性[1]。系统采用Tundra公司为PowerPC专门设计的桥芯片/存储器控制器Tsi107的memory控制器管理SDRAM。SDRAM在嵌入式系统中占据着非常重要的地位,必须使SDRAM 能够正常访问。文中介绍了SDRAM接口的VxWorks BSP的开发。
1 基于PowerPC的硬件电路设计
整个电路的硬件设计如图1所示。系统中使用了MPC7410作为核心处理器,外接一个2 MB L2 CACHE作为二级缓存,以提高运算速度。Tsi107作为北桥芯片,利用60X总线和MPC7410相接,用以把60X总线信号转化为PCI总线信号,并管理FLASH和SDRAM[2]。SDRAM用于存放用户的数据和代码,为程序的运行和保存临时文件提供空间。SDRAM 的管理由Tsi107的Memory控制器来实现,数据宽度配置为64 b。Tsi107的SDRAM接口有以下特点:SDRAM器件必须与SDRAM的JEDEC规范兼容,32位和64位数据可选宽度,支持页面式访问,支持8个物理bank,最大支持1 GB的存储容量[3]。设计中采用5片MT48L32M16A2作为SDRAM,其中的一片用于校验数据,SDRAM的总容量为256 MB,总线时钟是100 MHz。
在布线时应注意SDRAM各个时钟信号线必须等长。如果SDRAM的地址线和控制线采用星型布线难度会很大,因而设计中把5片SDRAM中的必2片放在顶层,剩下的3片放在底层,使5片SDRAM基本平行的放在Tsi107芯片组的Memory控制引脚周围。芯片组的Memory地址线和控制线与中间的1个SDRAM器件相连,然后其他的SDRAM器件与中间的SDRAM器件采用链的方式相接。SDRAM器件数据线的连接要尽量等长。由于SDRAM的频率较高,需要注意布线的长度和路径,以保证信号的完整性。
2 SDRAM的VxWorks BSP的开发
BSP即Board Support Package,板级支持包,是对目标系统的底层支持软件。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义的接口进行交互。BSP是所有与硬件相关的代码体的集合,是介于底层硬件和上层操作系统之间一层,主要目的是为了支持操作系统,使之能够更好地运行于硬件系统。
对SDRAM的BSP的开发主要是对Tsi107芯片组中与SDRAM相关的一些寄存器的设置。这些寄存器包括:Memory边界寄存器、Memory bank使能寄存器、Memory页面方式寄存器、Memory控制配置寄存器。
2.1 Memory边界寄存器
扩展开始地址寄存器(EMSAR1和EMSAR2)和开始地址寄存器(MSAR1和MSAR2)为每个memory bank定义低地址边界,计算公式如下:
bankn低边界=0b00||||||0x0_0000。
扩展结束地址寄存器(EMEAR1和EMEAR2)和结束地址寄存器(MEAR1和MEAR2)为每个memory bank定义高地址边界,计算公式如下:
bankn高边界=0b00||||||0xF_FFFF。
Tsi107提供了8个片选信号CS[0:7],每个片选信号控制1个物理bank,每个物理bank的大小和类型可不相同,每个bank的大小可配置为1~512 MB。因设计中SDRAM的总容量为256 MB,故只使用1个bank0,该物理bank由CS[0]控制。SDRAM的开始地址为0x0000_0000,结束地址为0x0FFF_FFFF。bank1~bank7都映射到0x3FF0_0000~0x3FFF_FFFF。在设置memory bank使能寄存器时将会关闭bank1~bank7。memory边界寄存器将分别设置为:
MSAR1:0xFFFF_FF00;MSAR2:0xFFFF_FFFF;EMSAR1:0x0303_0300; EMSAR2:0x0303_0303; MEAR1:0xFFFF_FFFF; MEAR2:0xFFFF_FFFF;
EMEAR1:0x0303_0300; EMEAR2:0x0303_0303。
2.2 memory bank使能寄存器
该寄存器的大小为1个字节,用于使能各个Memory bank,寄存器的每一位用于使能一个Memory bank,如果只使能bank0,则寄存器被设置为00000001。
2.3 memory页面模式寄存器
该寄存器的大小也是1个字节,包含的PGMAX参数控制Tsi107访问当前页面的时间。PGMAX定义了从激活到预先加电的时间间隔,也称作tRAS。PGMAX参数值乘以64产生实际时间间隔的周期数。当PGMAX被设置为0x00,页模式不被使能。
PGMAX的值与使用的SDRAM,ROM系统和Tsi107的频率有关。当PGMAX定义的时间间隔到达,Tsi107需使用一个预先加电命令关闭当前页面;在进行memory访问时,如果PGMAX时间到达,Tsi107须等到访问完成再对SDRAM进行预先加电;如果ROM连接在memory总线上,则潜在的延迟一个预先加电命令的最长操作是对ROM的突发读操作;如果ROM连接在PCI总线上,则最长的Memory访问是对SDRAM的突发读操作;Tsi107发送一个预先加电命令到SDRAM器件需要两个时钟周期[3]。于是,PGMAX的计算公式为:
PGMAX
2.4 Memory控制配置寄存器
Memory控制配置寄存器包含4个32位寄存器(MCCRs),用于设置所有的RAM和ROM参数。在所有的Memory配置参数设置完后,初始化软件使用MCCR1中的MEMGO位启动Memory接口。首次向MCCR1,2,3和4中写时,先不设置MEMGO位,然后执行一个read-modify-write操作设置MEMGO[3]。
[BT4]2.4.1 Memory控制配置寄存器1
下面只介绍和SDRAM有关的一些重要寄存器位的设置:
SREN位设置为0,表示在睡眠模式时禁止SDRAM的self 刷新。RAM_TYRE位设置为0,表明RAM类型是SDRAM。MCCR1[15:0]用于bank0~bank7的行参数的设置,其表明每一个bank的行地址位多少。因为只使用bank0,所以只设置MCCR[1:0],MCCR[15:2]使用默认值即可。对于器件MT48L32M16A2使用了13个行地址位,4个逻辑bank[4],故MCCR[1:0]设置为10。
[BT4]2.4.2 Memory控制配置寄存器2
INLINE_PAR_NOT_ECC: In-line奇偶校验――不是ECC。执行Memory读时在in-line数据通路的ECC和奇偶校验/纠正装置中选择其一,该位置0。INLINE_WR_EN:使能In-line奇偶校验错误报告。控制在向Memory写时是否Tsi107使用in-line奇偶校验电路报告60X总线上的奇偶校验错误,该位置1。INLINE_RD_EN: In-line读操作奇偶或ECC校验/纠正使能。控制是否Tsi107在in-line数据通路使用ECC/奇偶校验和/或纠正电路报告Memory系统读操作时的ECC或奇偶校验错误,该位置1。
REFINT:Tsi107的Memory接口为SDRAM提供CBR刷新,该位表明了CBR刷新周期之间的时钟周期数。REFINT的值与使用的RAM器件和Tsi107的操作频率有关。当REFINT时间到达且Memory总线空闲,Tsi107向SDRAM发送一个预先加电命令和一个刷新命令。当Memory总线正忙,刷新请求将不被执行,一个内部的、4位、未执行刷新计数器将加1,刷新间隔计时器恢复到REFINT中的值,被中断的操作将继续进行。当REFINT时间到达并且总线空闲,Tsi107将执行所有的未执行的刷新操作,未执行刷新计数器将清零。如果未执行的刷新次数超过16,计数器溢出并产生一个刷新溢出错误[3]。REFINT值通过下面的公式计算可得:[HJ1]
[JZ]REFINT
上式中,器件的刷新周期数RP=每一个bank的刷新周期×bank的数量×Memory的频率,n=(每个bank的行数×每个器件的bank数)/16,ROH=2×同时打开的bank数+PRETOACT+4+1,TWACC是Memory总线上最慢的设备被访问时所占用的时间。对于器件MT48L32M16A2,计算可得REFINT
2.4.3 Memory控制配置寄存器3
BSTOPRE[2~5]:该参数与BSTOPRE[0~1](MCCR4中的19~18位)和BSTOPRE[6~9]( MCCR4中的3~0位)控制页面打开的时间间隔。在每次访问页面时,BSTOPRE[0~9] 的值加载到计数器,当计数器的值到达,则发送一个SDRAM预先加电命令关闭此打开的页面。该参数置为0111。REFREC:从SDRAM刷新命令到可以发送SDRAM激活命令的时间间隔。SDRAM器件的参数tRC表明了最小的刷新――激活的时间间隔。MT48L32M16A2的tRC=66 ns,Memory总线的频率为100 MHz时,REFREC=66 ns×100 MHz=6.6,向上取整得7,因而该参数置为0111。RDLAT:从SDRAM读命令到可从数据总线上获得第一个数据的时间间隔。RDLAT的值不能大于6个时钟周期,该参数置为0100。
2.4.4 Memory控制配置寄存器4
PRETOACT:从SDRAM预先加电命令到允许发送一个SDRAM激活命令的时间间隔。该值由SDRAM器件的tRP参数决定,MT48L32M16A2的tRP=20 ns,Memory总线的频率为100 MHz时,PRETOACT =20 ns×100 MHz=2,因而该参数置为0010。ACTOPRE:从SDRAM激活命令到允许发送一个SDRAM预先加电命令的时间间隔。该值由SDRAM器件的tRAS参数决定,计算方法类似于PRETOACT,该参数置为0101。ACTORW:从SDRAM激活命令到允许一个SDRAM读或写命令的时钟周期。该值由SDRAM器件的tRCD参数决定,该参数置为0010。
最后,MCCR1~MCCR4的设置如下:MCCR1:0x16600002(MEMGO为0);MCCR2:0x661C0B95;MCCR3:0x77400000;MCCR4:0x25402225;MCCR1:0x16680002(MEMGO为1)。
3 配置寄存器的访问
Tsi107中的32位配置寄存器地址是0x8000_00nn,nn是寄存器的相对偏移地址。对配置寄存器的访问采用间接方式,将配置寄存器的地址写到CONFIG_ADDR端口,则配置寄存器的内容将在CONFIG_DATA端口获得。CONFIG_ADDR端口的地址为:0xFEC0_0000~0xFEDF_FFFC,CONFIG_DATA端口的地址为0xFEE0_0000~0xFEEF_FFFF[3]。
4 结 语
以MPC7410为核心处理器搭建嵌入式系统硬件平台,重点介绍Tsi107中和SDRAM相关的一些寄存器,阐述SDRAM接口的VxWorks BSP的设计,使SDRAM在系统中能被正常访问。
参 考 文 献
[1]Freescale Semiconductor.MPC7410 RISC Microprocessor User′s Manual [EB/OL],2002.
[2]单惠平,杨树元,唐志峰.PowerPC主机处理器的SDRAM接口设计开发[J].计算机工程,2006,32(6):263-265.[3]Tundra Semiconductor Corporation.Tsi107 PowerPC Host Bridge User Manual[EB/OL],2006.
关键字: 抗辐照; 三模冗余; EDCA; 动态重构; ICAP
中图分类号: TN91?34 文献标识码: A 文章编号: 1004?373X(2014)18?0117?04
Design of anti?radiation embedded hardened system based on FPGA
WANG Lu, YANG Rui?qiang
(Lanzhou Institution of Physics, Lanzhou 730000, China)
Abstract: For the space radiation environment, an anti?radiation embedded hardened system based on FPGA is designed in this paper. The anti?radiation system is hardened by triple modular redundancy (TMR) design of memory units and Hamming Code(12,8)EDAC coding design. The partial dynamic reconfiguration design of MC8051 IP core, I2C IP core, decision device and EDAC codec modules was conducted. ICAP interface was used for readback contrast and dynamic reconfiguration operation. When SEU occurrence of FPGA is detected, partial reconfiguration is used to eliminate the single?particle impact, so as to make the system return to normal.
Keywards: radiation resistence; triple modular redundancy; EDAC; dynamic reconfiguration; ICAP
0 引 言
航天器在外太空飞行,一直处于带电粒子构成的空间辐射环境中。空间辐射环境中的高能质子、中子、粒子、重离子等都能导致航天器电子系统中的半导体器件发生失效,错误等故障,严重影响航天器的可靠性和寿命。据美国国家地球物理数据中心统计,自1971―1986年间,美国发射的39颗同步卫星,发生的故障共1 589次,其中由于各种辐射效应引起的故障达1 129次,占故障总数的71%,单粒子效应又占了辐照故障的55%。中国空间科学技术研究院的统计了我国6颗同步卫星中的故障原因,空间辐射环境引起的故障在总故障中的比例[1]也达到了40%。这些数据表明辐射效应是航天器发生故障的重要原因,是航天应用集成电路中需要解决的主要问题。
星载平台为了提高处理速度和综合性能,越来越多采用高密度SRAM型FPGA。SRAM型FPGA的配置存储器单元及LUT存储单元比较敏感,容易受单粒子效应影响。当配置存储单元发生失效将导致FPGA功能持久失效(直到重新配置成功)。LUT存储单元发生单粒子翻转会使得FPGA逻辑功能出现变化,使得配置逻辑与用户描述逻辑不一致。
1 系统设计
本文针对单粒子效应对FPGA的影响,设计一款抗辐照加固的嵌入式系统,系统框图如图1所示。
图1 系统框图
系统核心模块是MC8051 IP CORE,是由Oregano Systems公司开发的一款开源8051 IP核,其具有全可综合同步时钟设计,指令集完全兼容标准8051微控制器,优化架构使得操作码达到每操作码1~4个时钟,定时器、计数器及串口单元可根据需要定制等特点。在其配置4 KB的ROM,4 KB的RAM,以及16 KB的RAMX。系统中选用的I2C IP Core 由Open Cores维护,遵守Wishbone总线协议,编写一个8051到Wishbone转换接口将MC8051核与I2C核连接起来。因为只需要连接一个I2C模块,所有遵从Wishbone点到点连接模式,不需要另外设计仲裁器。构成统一的嵌入式系统。系统配置后,定时对其进行回读对比。当检测到FPGA发生单粒子翻转时,采用部分重配置消除单粒子影响,使系统恢复正常。因为对BRAM或SRL16回读有可能导致FPGA锁死,设计中不对存储模块进行回读对比,对RAMX做(12,8)汉明码的EDAC设计,对RAM做三模冗余设计,为保证时序正确,未对ROM部分做加固设计。
2 加固设计实现
2.1 TMR设计
三模冗余是指将目标部件复制相成同的三个目标部件来实现一个目标部件的功能,三个目标部件最终将通过一个判决器来判断目标部件的正确状态。它利用的是相同一组部件同时出现错误概率较小的原理来实现可靠性的提高。
对片内RAM做三倍冗余加固有助于提高抗辐照性能。具体实现如图2,图3所示,图2为RAM三模冗余的顶层视图,图3为判决器门级视图。
图2 RAM三模冗余
2.2 EDAC汉明码编码设计
错误检测纠正编码是提高存储系统的可靠性的一种常用技术,将用于存储器的纠错编码技术引入芯片内部,自动检测并纠正错误。这种方案不需要芯片外部提供额外的测试和纠正错误等环节,对可靠性有明显改进。
EDAC有多种编码技术,不同的编码技术有不同的检错和纠错能力。本文选择使用[12,8]扩展汉明码编码来对RAMX模块加固。即增加4位校验位,能够实现8位数据的2位查错,1位纠错。
图3 TMR判决器
设8位数据为D7~D0,4位校验位为C3~C0,伴随向量为S3~S0。则C3~C0为:
[C3=D7D6D5D4C2=D7D3D2D1C1=D6D5D3D2D0C0=D6D4D3D1D0]
伴随向量S3~S0为:
[S3=D7D6D5D4C3S2=D7D3D2D1C2S1=D6D5D3D2D0C1S0=D6D4D3D1D0C0]
其伴随向量与出错位置的对应关系如表1所列[2]。
表1 对应出错关系表
设计状态机完成EDAC编码解码功能。当系统对RAMX进行写操作时,EDAC模块首先将地址锁存,对数据进行编码处理,然后下一个时钟沿到来将编码后数据输出给RAMX。当系统读取RAMX中数据时,数据首先被读取到EDAC模块中并分别锁存,进而对数据进行译码操作,如果无误则将译码后数据输出给系统,如果有错过,EDAC模块将对错误进行纠正,并分别将纠正后数据发送系统和RAMX。状态机流程如图4所示。
为了满足时序RAMX和EDAC模块时钟应是主时钟的5倍,对外部时钟做5分频,再分别对应送入各个模块。
图4 状态机设计图
3 部分动态可重构设计
动态重构时选择性的对可编程逻辑器件上的部分资源进行重配置,而不影响其器件上的其他资源。在重配置过程中芯片仍然工作,系统建立新的逻辑过程中,未被重配置部分的逻辑功能仍然正常,即系统的逻辑功能在时间上是动态连续的。
Xilinx Virtex系列 FPGA中内部带有内部配置访问接口ICAP, 能对FPGA进行读/写操作,该类配置方式与Slave SelectMAP相似[3]。通过 ICAP 内部访问配置端口对 FPGA 进行高速的局部重配置,大大提高了可重构系统的性能。通过一个简单的状态机逻辑电路将部分比特流从FLASH中提取出来,然后数据通过端口送到ICAP进行比对,重配置等功能。
HWICAP 核是 Xilinx EDK 开发工具提供的一种将ICAP原语封装的 IP核,HWICAP 核包括内部访问配置端口 (Internal Configuration Access Port,ICAP)、块RAM(BlockRAM),以及相应的配置控制器[4]。BRAM 相当于配置存储器的缓存,用于存储从 FLASH中提取的局部重构模块的比特流文件或者从配置存储器读取的FPGA配置信息。
4 局部重构设计和实现流程
4.1 模块设计和综合
首先对整个设计进行划分,包含一个静态任务子集和一个动态任务子集,如图5所示将MC8051 CORE,I2C core及判决器,编码器部分做为动态模块,将HWICAP,存储模块,控制逻辑模块等作为静态模块[5]。完成顶层模块设计输入和综合,完成各个子模块的设计输入,综合时子模块禁止插入I/O。
图5 重配置框图
4.2 初始预算
对设计进行全局区域布局,划分动态可重构区域及静态区域。完成顶层模块和各个子模块的时序约束,完成各个模块区域约束及输入/输出约束。
4.3 模块激活
对每一个子模块进行激活实现,将初始预算中作为“黑盒”处理的的子模块用具体功能的网表文件替代完成设计[6]。对每个子模块内部逻辑进行单独约束。动态可重构模块需要单独被综合实现。
4.4 合并阶段
结合顶层模块将各个子模块合并,生成一个包含静态模块和动态可重构模块的完整的设计。在这个阶段,软件会优化掉模块间没有启用的信号,优化整体系统性能。
4.5 下载实现
完成整体布局布线之后,分别生成整个设计的全局配置文件和局部动态可重构模块的配置文件。使用XILINX 的iMPACT工具将配置文件下载到FPGA中实现设计。将局部动态可重构模块配置文件拷贝到片外FLASH中,以完成后续动态可重构操作。
5 容错处理流程
系统上电后,开始正常工作,控制逻辑通过ICAP接口回读比较FPGA中的配置位信息与FLASH中是否一致,如果一致,系统继续工作,如果不一致,判断为FPGA配置位发生单粒子翻转,通过ICAP读取FLASH中部分动态可重构配置文件完成动态重构操作,消除单粒子效应对系统的影响。容错处理流程见图6。
6 仿真验证
对整个系统做仿真验证,验证加固后设计是否满足时序要求,与初始设计时序是否一致。
部分代码如下:
这是一条简单的汇编程序,首先清零RAM,然后对累加器A和R0分别赋值0,然后相加再写入A,最后用A减去20,如果为零则跳转到下一条程序,如果非0,则对P1赋值2,并跳出程序。以此类似,遍历所有标准51指令集。
MOV P1,#127 ; //All instructions passed
图6 容错处理流程
当所有程序都正常完成,对P1赋值127,结束程序。仿真结果如图7示,验证无误,与预期结果一致。
7 结 语
本文通过FPGA平台设计一款抗辐照加固嵌入式系统,通过对存储单元进行三模冗余设计和8位汉明码EDAC编码设计进行加固。对MC8051 IP核,I2C IP核、判决器,EDAC编码解码器等模块进行部分动态可重构设计。通过加固设计后的系统在空间环境中的应用范围将大大扩大。通过仿真的手段对系统功能和时序进行了验证。但是对于加固的性能还没有进行论证,需要在进一步的工作中完成抗辐照能力验证。
图7 仿真波形
参考文献
[1] 刘必慰.集成电路单粒子效应建模与加固方法研究[D].长沙:国防科技大学,2009.
[2] 周盛雨,陈晓敏.一种纠错编码器的实现[J].电子技术,2003(3):10?12.
[3] Xilinx Inc. Xilinx defense and aerospace presentation [EB/OL].[2011?10?06]. http:///publication/prod_mktg/MilAero.pdf.
[4] Xilin x Inc. Virte x?II platform FPGA user guide [EB/OL]. [2007?11?05]. http///support/documentation/user_guides/ug002.pdf.