可重构设计

2024-08-23

可重构设计(通用7篇)

可重构设计 篇1

0 引言

机器人诞生于二十世纪六十年代, 其后发展历程长期而漫长, 到了八十年代, 伴随着以计算机、微电子、互联网为代表的各类技术的迅猛发展, 机器人技术也得到了长足的进步[1,2]。由于市场竞争的白热化, 行业压力与日俱增, 制造系统必须要能适应飞速发展的变化即需要具备柔性制造能力, 受限于传统工业机器人的特征性太强, 通用性太弱, 导致不能实现快速适应各种工况和环境, 无法快速响应。与此同时, 需求的快速增长, 使得在非制造领城, 工况越来越复杂, 事先很难确定工作环境和工作任务, 这就更需要机器人有很强的适应能力, 在不同的环境下可以实现可重构, 这种可以随时改变构形的机器人被统称为可重构机器人[3~5]。

1 研究背景

可重构机器人的定义为:具备若干个模块, 不同的模块之间可以相互连接和分开以实现不同的组合, 最终使机器人可以呈现不同的形态和实现不同的功能。可重构机器人的模块的种类虽然不多, 一般为1~4类, 但是数量却达成百上千甚至上万。每个模块的功能简单, 结构单一, 但是经过组合之后形成的组合体可以实现之前每个单体无法实现的复杂功能, 整体性能有了飞跃性的提升。可重构机器人根据任务的不同来进行形态、姿态和功能重组, 比如, 在崎岖不平的山路上它化身为多足机器人, 在起伏的沙漠里它化身为履带机器人, 在城市下水道中, 它化身为长条蛇状曲折前进。比起传统的机器人, 可重构机器人的优点主要有:高智能化, 高适应性, 高可靠性, 长寿命高稳定性[6]。

2 国内外研究概况

从二十世纪80年代开始, 国内外针对可重构机器人开展了大量的研究, 目前国内研究领域一般把可重构机器人分为两种:静态机器人和动态机器人, 两者的区别主要体现在两个方面:1) 前者需要借助外力实现重构, 广泛应用于工业领域, 又称为工业机器人;2) 后者具有很高的人工智能, 可以不借助外力实现重构, 又称为自重构机器人[7]。

Benhabib开发了一种可重构机器人系统, 通过建立模块系统库, 实现机器人几何构形的变化和重组, 模块系统库主要由三部分组成:connec module, staff system, articulation module。在这个基础上, 1979年美国麻省理工学院机器人研究所开发了一种全新的系统RMMS, 即可重构机器人系统。作为世界上第一台原理样机, 当时被认为是跨时代的一次飞跃, 它不仅在机械结构上实现了可重构, 同时还在控制器、软件、算法等方面同样实现了可重构。通过进进一步的研究工作, 1996年Khosla, Paredis等人进行了系统方面的改进, 推出了新型的RMMS, 采用了分布控制的方法实现了多样性控制。其中最主要模块为连杆模块以及关节模块, 如图1、图2所示。

1989年日本SONY公司研发出了新一代ATRRBUS系统, ATRRBUS系统的主要组成部除了与上述系统类似的连杆模块和关节模块以外, 还有全新的控制模块。所有的指令都是通过控制模块实现通讯和传输以实现机器人的每一个动作以及整体控制。

国内对于可重构机器人的探索起步较晚, 还处于初级阶段。中科院沈阳自动化所的于苏洋对国内可重构机器人的发展进行了战略前瞻;上海复旦大学的聂爱英依托泛函分析理论, 构建了静力学和动力学运动方程, 并利用遗传算法进行了模拟推演。天津大学的王琦开发出基于模糊控制的可重构机器人拓扑结构模型。清华大学, 北京航空航天大学, 北京理工大学, 哈尔滨工业大学和中国科技人学也在进行相关内容的研究, 成果颇丰。

3 可重构机器人模块化设计

制造技术日新月异, 要求制造系统具备柔性化特质, 更要求机器人可以适应环境的变化和任务的不同, 全世界的研究人员致力于使用各种方法解决此难题, 在这中间, 模块化设计方法是行之有效的一种, 它不仅可以实现快速可重构, 而且时间短, 成本低, 性价比高。

3.1 模块化设计原则

由于机器人的自由度很高, 结构复杂, 各个自由度支架高度耦合, 并非线性变化, 因此需要根据功能进行模块的划分, 基本原则为:

1) 功能独立性:每个模块具备特定的独立功能, 实现模块专业化, 是可重构设计的基本要求;

2) 响应迅速性:可重构机器人的最大特点就是要适应工作任务的不同和工作环境的改变而变形, 这就要求各个模块应该方便拆卸, 连接简捷, 响应迅速, 反应及时;

3) 良好驱动性:为了增加传输运动效率, 减少能量损失, 每个模块都要将惯量减至最小, 并且可以自己驱动自己实现本体动作而不依赖于外力, 可以有效的降低整体能耗;

4) 运动独立性:为了减少耦合性, 不同的运动模块之间应该相对独立, 降低耦合性对系统的影响;

5) 数据自治性:每个模块应该具备独立自治能力, 可以实现不同模块之间的实时数据处理和及时上下通讯。

3.2 模块化平台设计

如果要设计可重构机器人的模块化平台, 那么我们首先需要知道它构形的变化范围。本文主要研究范围以串联关节结构为主, 例如关节型机械臂、仿生腿型机器人。

首先要做的是根据模块划分对机器人的结构进行分析。机器人的基本功能结构图如图3所示。从图中我们可以看到主要的4个功能和对应的4个功能模块。由于实现方式不同, 所以可以据此对机器人进行不同的分类, 比如以移动机器人为例, 如果采用轮式结构实现, 则为轮式移动机器人;如果采用关节串联结构实现, 则为串联关节型机器人;如果采用仿生腿实现, 则为仿生腿移动机器人。以上这些例子是单一功能的实现, 真正复杂的机器人应该是两种或者是多种运动功能的叠加, 以适应更广泛的应用领域。以下, 主要开展关节串联结构移动机器人的研究。

在功能分析之后, 我们可以知道, 如果要实现串联结构来实现移动功能, 只能采用多自由度主动关节来进行, 那么移动机构的可重构就是机器人整体可重构的重要基础和关键所在。根据前述模块化设计原则, 我们可以把主动关节当作一个独立的模块, 由连杆参数 (两关节轴之问的相对位置关系) 决定串联机构的运动性能。

要开发出模块化设计平台, 就必须采用典型划分方法, 利用拓扑结构和自身特征进行分组, 首先定义基础模块, 在此基础上开发连杆、关节两个并列模块, 并衍生出控制类的工具和调节模块。特点需要强调的是调节和连杆两个模块共同组成连接结构, 前者用于调节关节轴之间的距离, 后者用于调整关节轴之间的角度, 两种模块一起作用可以实现关节轴的任意运动。

基础模块是系统的根基, 用来定义可重构机器人的整体结构外包络, 如图4所示。

关节模块是系统的纽带, 用来定义任意两关节之间的交叉角度, 调整位置和坐标, 如图5所示为三种不同类型的关节:垂直转动关节、横向摆动关节和上下移动关节。

连杆模块是系统的桥梁, 用来定义两关节之间的最短距离, 如图6所示。

4 可重构机器人构形设计

4.1 基础构形设计思路

可重构机器人所需要完成的任务可以进行逐级分解, 在这里, 我们以某个装配任务作为例子进行分析, 底层任务是运动路径规划, 中间层任务是定位、加紧、加工等工序集合, 顶层任务为完成从零件到部组件的装配。所以可重构机器人的基础构形设计思路可概括为:

由问题出发:运动路径规划并发任务拆包分发, 借助模块化平台搭建整体可重构模型;

从结果反求:通过模块构建通信控制平台, 最终圆满完成给定任务。

4.2 可重构机器人构形设计方法

广义上构形设计问题都可以概括为一类搜索问题, 在约束条件和任务目标下, 通过搜索目标函数构造最优构形。传统优化方法采用计算代价函数的梯度值, 只能得到线性最优解, 不满足非线性要求, 故本文采用进化算法。进化算法与遗传算法类似, 是其的一种演化, 它以达尔文的进化论为基础, 通过模拟生物自然进化过程来进行求解和自适应, 主要通过选择、重组和变异三种手段实现优化问题的求解。

1) 进化算法不需要假设提前解, 不需要考虑形式与功能之间的关联, 柔性很大, 可以完成任意产品的构形设计;

2) 进化算法比其他算法能更好的处理离散问题, 耦合问题, 适用于不同大小的搜索空间, 构形设计空间往往是高度耦合的, 涵盖离散和连续的变量:

3) 进化算法鲁棒性能优越, 避免了其他算法往往纠缠于局部最优解的困扰, 尽可能的实现全局最优解;

4) 进化算法操作简单, 运行时间较短, 对计算机的硬件需求较低, 不需要特别高的配置, 具有很好的并行工作能力。

4.3 构形设计实例

在知道了任务要求和得到可重构机器人模块化平台的前提下, 即可开展构形设计, 前述文中已经讨论过构建模块化平台所需要的四种模块, 在后续讨论中, 我们只考虑除末端工具模块以外其余的三个:

基础模块B的有三个实例:Bml (0.2m) , Bm2 (0.4m) , Bm3 (0.8 m) , 变换矩阵如下, h为高度值:

连杆模块L的一共有10个长度实例, 分别为0.05, 0.l, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5 m。变换矩阵如下, L为高度:

关节模块J有三个实例, 变换矩阵如下:

c为关节回转中心到上下两个连接端的长度, 2c=0.lm, θ1为回转中心两部分相对转动的角度:

C同上, θ2为横向摆动关节两部分相对转动中心的交叉角度值:

d为上下移动关节模块的移动量, d1为上下移动关节的移动量为初始值时的长度;

输入条件为六自由度串连关节机器人, 路径规划为输出端可以快速按预定轨迹移动, 位置姿态要求如下所示:

位姿矩阵一:

位姿矩阵二:

位姿矩阵三:

位姿矩阵四:

经过构形设计后, 可重构机器人的摹本构形为:

适应度函数为:

进化参数设置为:种群大小为30, 最大代数为15, 变异概率为0.25, 交叉概率为0.7。

运行结果为:Cm02→JSm→Lm09→JRm→Lm0l→JLm→Lm02→JSm→Lm08→JLm→Lm06→JSm→Tool

5 结论

可重构机器人的构形设计目标在于从在广泛的模块库中寻找和优化出最优的拓扑模型, 从本质上来讲是一种以任务为前提的优化求解过程。本文通过分析可重构机器人构形设计问题的特点, 开展了理论研究, 并对构形设计问题进行了量化说明, 采用遗传算法开展构形设计, 有效地实现了非线性, 强耦合性条件下的构形优化。

参考文献

[1]Carly Rae Jepsen.Modular Reconfigurable Robots.Transaction of Welfares Robotics Systems, Seoul, Korea, Oct.2000.5.

[2]赵卫东.机器人学[M].北京理工大学出版社.2004.

[3]Jennifer Lopez.Research on the Reconfigurable Robot.PhD Thesis.Stanford University.1998.

[4]David Tao.A New Modular in Reconfigurable Robot.Transaction of the IEEE on Robotics, November 2003.

一种可重构超短波天线设计 篇2

1 天线设计

文中设计的超短波天线工作频段为225~512 MHz,若使用单根单极子天线,由于其工作频带较窄,故无法实现。根据频率可重构天线的实现方法,文中考虑在单根单极子天线上加载开关使其工作在不同的频段,并分别设计宽带匹配网络来实现。天线工作原理如图1所示,当开关导通时,天线工作于较低的频段,并与匹配网络1连接;当开关断开时,天线工作于较高的频段,并与匹配网络2连接。即在整个工作频带内,通过加载无耗匹配网络,天线与馈线均能得到良好的匹配。

首先使用电磁仿真软件IE3D对天线进行了具体的仿真,最终将天线的工作频段划分为225~340 MHz和340~512 MHz两个频段,分别称为频段1和频段2。当天线工作在频段1时,取单极子天线的总高度H=0.275 m,单极子天线半径为8 mm。仿真结果表明,天线在该频段内VSWR<3.5。使用简化实频法[4](Simplified Real Frequency Technique)在Matlab中编写程序设计了匹配网络,使其VSWR降低至2以下。图2和图3分别为加载匹配网络前后天线的驻波比和匹配网络1的具体形式。

天线工作在频段2时,取开关的高度为h=0.178 m,此时开关断开,即天线在该频段的工作高度为0.178 m。仿真结果表明,天线在该频段内VSWR<3。同样使用简化实频法设计了匹配网络,使其VSWR降低至2以下。图4和5分别为加载匹配网络前后,天线的驻波比和匹配网络2的具体形式[5]。

2 仿真结果与分析

将设计好的匹配网络与天线在IE3D中进行联合仿真,天线在整个工作频段的驻波比以及水平方向上的增益分别如图6和图7所示。可看出,天线在整个工作频带内VSWR<2,增益均>3 dB。图8~图10分别为天线在230 MHz、370 MHz以及510 MHz垂直面和水平面的增益方向图。由此可见,天线在水平面内均为全向辐射,在垂直面内波束虽有轻微上翘,但在水平方向上仍可保持良好的辐射。

3 结束语

文中应用可重构和宽带匹配技术,设计了一种新颖的超短波天线,该天线在工作频带内驻波比<2,且具有较高的增益,同时横向尺寸远小于传统的套筒天线,在实际工程中具有一定的应用价值。

摘要:介绍了一种超短波单鞭天线。通过使用可重构以及宽带匹配技术,与传统的套筒天线相比,大幅减小了天线的横向尺寸。仿真结果表明,该天线在工作频段内电压驻波比<2,且具有良好的辐射特性。

关键词:超短波,可重构,宽带匹配

参考文献

[1]王元坤,李玉权.线天线的宽频带技术[M].西安:西安电子科技大学出版社,1995.

[2]周良明.一种新型的宽带直立天线[J].现代电子技术,1994(4):40-42.

[3]卢昭,傅光.一种改进型套筒单极子天线的研究[J].电子科技,2007(3):5-8.

[4]AN Hongming,BART K J,NAUWELAERS C,et al.Broad-band microstrip antenna design with the simplified real fre-quency technique[J].IEEE Antennas and Propagation,1994,42(2):129-136.

可重构控制系统框架的设计与实现 篇3

传统的机电控制系统普遍采用“工艺相似性”的设计思路进行研究开发,即根据事先规划好的工艺路线和机电系统所处的工作环境而编写程序,其最大的特点是机电系统的控制逻辑被固化在封闭式的控制器内,一旦更改控制对象的工艺路线,或其工作环境发生变化,则需要专业的编程人员通过专用语言对程序进行重新编写与调试,甚至重新更换本体结构。根据此类设计方法开发出来的机电控制系统具有开放性差、系统维护困难、设备使用不可持续和对用户素质要求高等一系列弊端;另一方面,传统的控制系统设计方法在控制逻辑与任务未确定之前无法着手具体的程序编写与调试工作,这也给产品的开发过程带来了设计周期长、成本高等问题。

由于传统的控制系统设计方法存在以上的问题,给机电设备在工业中的应用带来了一定的局限性,如生产应变能力差、功能利用率不高等[1,2],因此,能否着眼于全局,从设计方法的研究上找到一个具有广泛通用性和柔性的控制系统构架,而不是局限于某个具体的工艺和已知环境,使得机电控制系统具有较好的快速响应能力、可操作性和开放性,是工业自动化领域一个重要的研究方向[3]。

通过研究可重构技术的思想理论可以发现,如果把模块化可重构的程序设计方法应用于PLC控制系统的设计开发,将会有效地解决该类封闭式控制系统存在的问题。本研究探索和研究一种简易的可重构控制系统框架的设计方法,并采用Visual Basic可视化编程语言和三菱FX2N PLC作为开发和测试工具,对可重构控制框架的可重构性进行验证。

1 可重构控制框架的设计

1.1 可重构性原理

可重构性原理是控制理论中发展较早的设计思想,但到目前为止,对“可重构性”的定义还尚未形成统一的定义。例如1997年美国Iova州立大学的Lee认为:可重构性是指以较低的成本和较短的周期来重组制造系统的能力[4]。又如1999年Michigan大学的Koren对可重构性的定义又延伸到了制造系统的规划、设计和使用范畴的概念。2004年清华大学的罗振璧、于学军等[5]也提出了基于拓扑相似性的可重构性定义:一种可以按照规划和设计规定的变化,利用子系统、模块和组元间的重排、更替、嵌套、革新等等方式,以快速更改工作流程或系统功能、更改系统输出,实现对市场需求与环境变化快速响应的能力。

不管是以上何种定义,上述文献所指的可重构性都有一个共同特点,那就是:可面向用户需求的、可快速响应应用变化的柔性组态与重构的能力。

1.2 可重构系统框架设计

可重构性分为动态可重构和静态可重构两个概念[6]。基于以上对可重构性的定义,本研究设计了一种具有静态可重构性的控制系统框架(以下简称SRCSF),如图1所示。SRCSF应包含:满足用户需求的最少功能组元,且各组元保持相对的独立性和可交互性;可使系统功能最大化的集成耦合单元;解析用户任务的分解单元;感知外部环境的认知单元以及各子模块之间的交互接口等。现分述如下:

(1) 基于人类语言的任务定义接口。

该接口提供简单易懂的人类语言表达,用户可以通过该接口轻易规划和设计作业任务。

(2)任务解析单元。

该单元模块的主要作用是对用户定义的任务规划进行转换,输出集成耦合单元所能识别的任务数据流。转换的依据是知识与行为规则库中所储存的最少功能约定。

(3)知识与行为规则库。

该单元模块的主要功能是对最少功能进行约定,起着人类高级语言与机器语言转换的桥梁作用,是任务解析单元和集成耦合单元行为准则的根本判据。

(4)集成耦合单元。

该单元模块的主要功能是重构系统的功能逻辑,也是SRSF最核心的管理单元。集成耦合单元可根据任务解析的结果,对比知识与行为规则库中的最少功能约定,依次调用相应的功能组元,更改系统输出,实现逻辑功能的重构目的。为了加强系统的可靠性,耦合单元还能根据认知单元所传递的信息,查阅知识与行为规则库中的规定,实时调整输出。

(5)功能组元。

每个功能组元都是根据用户需求设计的最少功能模块,是整个系统中直接作用于外界的基本单位。各个组元之间保持一定的独立性,服从集成耦合单元的协同管理命令。

(6)认知单元。

该模块对系统所处的环境以及自身的状态进行感知,为集成耦合单元的判断提供依据。

为了实现本研究提出的SRCSF框架体系的柔性组态控制功能,笔者结合三自由度气动机械手的运动特点,设计了基于PC机的VB上位机控制系统和基于PLC控制器的下位机控制系统。上、下位机采用PLC编程口协议进行通信。

2 功能组元设计及行为规则库定义

2.1 功能组元设计

三自由度气动机械手所具备的基本运动模块有:手爪、手臂、升降台和旋转基座。根据机械手的这4个本体模块及SRCSF的设计思路,本研究定义了8个基本功能组元:①FNC 1-抓;②FNC 2-放;③FNC 3-伸;④FNC 4-缩;⑤FNC 5-升;⑥FNC 6-降;⑦FNC 7-左转;⑧FNC 8-右转。

2.2 行为规则库定义

通过行为规则库的定义,研究者可为各个逻辑顺序中的功能组元类型进行编号定位,以供任务解析和逻辑耦合单元调用。本研究采用FX-PLC中的辅助继电器M对功能组元类型进行定义编号,所制定的行为规则库如表1所示。

3 上位机系统设计及VB实现

在SRCSF中,上位机控制系统起着人机交互、任务解析及任务下传的作用,主要由初始化模块、任务规划模块、任务解析及发送模块和状态监视模块构成。

上位机人机界面如图2所示。

功能流程图如图3所示,由Visual Basic 6.0编程软件实现。

3.1 上、下位机通信协议

本研究采用基于RS-232C的三菱FX系列PLC编程口通信协议作为该系统实现上、下位机数据传输的通信格式[7,8,9,10,11]。根据该通信格式及指令,可实现对PLC所有软元件的操作,编程口通信指令表如表2所示。

3.2 初始化模块

当上位机程序开启后,软件首先进行初始化设置。该软件需要调用串行通信接口与PLC进行编程口通信,因此要对MSComm串口控件的波特率、数据位、停止位、校验位等参数进行初始化设置。此外,任务规划窗口控件、监视窗口控件的参数均要初始化。

3.3 联机测试模块

初始化完成后,在任务规划之前,本研究进行系统联机测试,确保上下位机通信正常及确认下位机状态正常,否则不激活后续功能模块,如任务规划及解析、系统监视模块等。

3.4 任务规划及解析、任务下传模块

系统联机成功及状态正常条件下,激活编程窗口,用户可在此区域规划作业任务。其中,为了便于解析任务,本研究定义了一个字符串型数组变量Set_Mov_Name(7),用于储存用户为每次动作所选取的动作类型。第1个动作的任务解析语句为:

Select Case Cmb_Mov_Name_1.Text

Case "抓": Set_Mov_Name(0) = "M11"

Case "放": Set_Mov_Name(0) = "M121"

……

Case "右转": Set_Mov_Name(0) = "M18"

End case

其他动作的解析语句依次类推。用户在点击“程序写入”命令后,系统首先检查有无任务数据及数据格式是否正确,待确认数据符合设计规定后,再询问PLC是否可以接收并执行任务数据。待所有工作已经就绪,下载任务解析数据,将相应的任务标志M置“ON”,以供PLC集成耦合动作逻辑时作为判断依据。

4 下位机系统设计及PLC实现

在SRCSF中,下位机控制系统起着任务耦合及任务执行的作用,主要包括任务集成单元及基本功能组元模块构成。

4.1 任务集成单元

当用户任务经上位机解析后被下传至下位机控制器时,任务集成单元根据行为规则库及通信协议的约定,通过耦合机制的作用重新组合成用户规划的动作逻辑,并调用相应的基本功能组元,输出动作。任务集成单元的流程框架如图4所示。

按照图4流程图所示的算法,本研究应用三菱FX2n系列PLC作为控制器,实现了柔性重组动作逻辑的功能。部分梯形图如图5所示。

4.2 基本功能组元

为简化梯形图结构,提高程序运行效率,本研究采用模块化的编程方法设计各个动作的执行程序,以便灵活调用任务集成单元,基本功能组元的程序模块如图6所示。

5 结束语

针对传统机电控制系统在工业应用中所存在的不灵活性,本研究应用可重构技术的基本原理,提出了静态可重构的控制系统框架,并通过可视化编程软件及可编程逻辑控制器验证了该方案的可行性和有效性。在系统运行过程中,上位机数据发送稳定可靠,无乱码及丢帧现象,下位机能够根据用户任务准确地执行动作。

通过运用本研究所提出的结构框架设计开发控制系统,可以提高机电设备的开发效率,缩短开发周期;且人机界面友好,用户只要经过简单的培训即可掌握对设备的操作,该系统开发方法具有较强的使用价值。下一步,笔者将对上位机系统的功能开展进一步的研究,如在逻辑重组控制的基础上增加运动控制计算部分等。

摘要:针对控制系统存在的开发周期长、开放性差、操作复杂、设备利用率低等问题,将可重构技术的思想理论应用到机电控制系统的开发中,提出了一种模块化静态可重构的控制系统设计框架,在此基础上定义了一组行为规则库,并详细说明了上位机任务解析方法和下位机任务耦合机制;最后,基于三菱FX系列编程口通信协议,利用可视化编程软件和可编程控制器对该框架进行了可行性和有效性的验证。实验结果表明,该系统框架的设计方法可以实现系统输出逻辑的快速重组,降低操作复杂性,有效提高机电设备的开发效率和利用率,增强了系统的柔性。

关键词:可重构,控制系统框架,Visual Basic,FX2N PLC

参考文献

[1]KOREN Y.Reconfigurable manufacturing systems[J].An-nals of the CIRP,1999,48(1):1055-1060.

[2]SCHULZ H.Neuer vorstoss in den volumenmarkt[J].Werk-sattund Betrieb,1999,132(12):22-23.

[3]王文,秦兴,陈子辰.基于可编程逻辑器件的可重构数控系统研究[J].计算机集成制造系统,2002,8(7):555-569.

[4]LEE G H.Reconfigurability considerations in the design ofcomponent and manufacturing systems[J].InternationalJournal of Advanced Manufacturing Technology,1997,13(5):376-386.

[5]罗振璧,于学军.可重构性和可重构设计理论[J].清华大学学报:自然科学报,2004,44(5):577-580.

[6]黄金梭.基于MAS理论的模块化工业机器人控制策略研究[D].杭州:浙江大学机械工程学系,2010.

[7]张鲁国.PLC在机械手控制系统中的应用[J].微计算机信息,2000,16(1):36-37.

[8]龚仲华,史建成,孙毅,等.三菱FX/Q系列PLC应用技术[M].北京:人民邮电出版社,2006.

[9]郭昌荣,吴作明.FX系列PLC的链接通信及VB图形监控[M].北京:北京航空航天大学出版社,2008.

[10]马丽萍.基于PLC的干燥箱温度控制系统[J].轻工机械,2011,29(4)51-53.

可重构设计 篇4

多媒体处理实时性高, 数据量大, 计算复杂性高的特点使得传统的ASIC或DSP处理器难以满足现代图像处理的要求[1]。作为一种能够同时提高硬件的执行效率和软件的可编程性系统的模型, 可重构计算技术通过配置不同的可重构处理单元满足不同的计算需求。它能够在获得传统的ASIC高性能的同时又能保持很好的软件灵活性, 因此为多媒体处理提供了一个很有价值的发展方向。

可重构系统设计中需要考虑的因素涉及到粒度, 处理单元构造, 互联, 配置模式和编程深度等诸多要素, 在这些要素中, 可重构系统的粒度是需要首要考虑的因素。所谓粒度, 指的是可重构单元处理数据的大小。细粒度处理单元 (如FPGA) 适合位级操作, 通常用一位或很少几位完成单一功能。与粗粒度单元相比, 细粒度单元实现复杂逻辑需要很多功能单元, 大量的互联线资源和布线开关, 占用更长配置时间和更大面积, 功率消耗也很大, 但它却具有更广的灵活性。粗粒度数据单元所用的配置数据和控制信号都比较少, 其重构时间比细粒度单元具有优势。

在粒度设计中, 通过亚字并行来提高数据处理并行性的方法在数字信号处理器中得到了广泛的应用, 但是应用在可重构阵列的设计中的并不多。

实验结果表明, 将亚字并行技术应用到可重构阵列设计中, 是一种提高可重构阵列运算效率的有效方法。

1 亚字并行技术及其应用

1.1 亚字并行技术

多媒体处理涉及到许多计算密集型的计算, 这大大增加了处理器的工作量, 因此研究如何提高处理器的工作效率是一个重要的议题。分析表明, 这些计算密集型计算有两个基本的特点:大量的数据并行性和低精度数据的大量应用。亚字并行技术的应用可以有效满足这两个特点, 因此从提出以来就获得了广泛的应用。

在亚字并行技术中, 原本以字级 (word) 为单位的数据通路被划分成更低精度的数据通路, 称作亚字级 (subword) , 于是数据可以在亚字级上并行执行。由于指令是同时应用到整个字, 这其实是一种小型的SIMD模型[2]。SIMD模型的并行深度取决于亚字并行中亚字的大小, 而亚字的大小取决于实际的计算需求。因此对一个64位的数据, 可以根据需要将其划分为八个8位亚字, 四个16位亚字或两个32位亚字, 分别对应三种不同的处理深度。亚字并行的小型实例如图1所示。

总结起来, 亚字并行技术的主要优点在于:

(1) 低精度数据的计算实现了更高层次的数据并行, 有效避免了数据通路和寄存器的浪费。

(2) 处理器对数据并行性的支持使得控制信号变得简单。

(3) 数据打包成亚字级传输的能力有效减少了在主存和处理器之间传输数据的时间, 从而提高了处理效率[3]。

1.2 亚字并行技术的应用实例

亚字并行技术自从提出至今得到了广泛的应用, 许多多媒体扩展的指令集中, 都增加了这一技术。基于PA-RISC处理器的MAX-2指令集支持数据的亚字并行技术[3], 其增加的亚字指令如HADD亚字加, HSUB亚字减, HSLADD左移加, HAVG取平均数等, 都使得原本需多个周期才完成的指令在单周期内即可完成。另外, Intel公司开发的基于IA-32处理器的MMX[4], 和基于IA-64处理器的指令[5]也都增加了亚字并行的指令, 得到了广泛应用。

2 可重构处理阵列的设计

本文是在原设计的8×8可重构阵列基础上用亚字并行方法进行改进, 因此, 首先介绍基于流水线映射结构设计的粒度为16位可重构阵列。此阵列的PE内部结构和互联情况如下。

2.1 PE内部结构设计

一般的可重构系统是由若干个可重构处理单元组成, 每个处理单元叫做PE (Processing Element) 。面向多媒体处理解码应用设计的可重构PE的系统取决于可映射到此系统的算法, 经算法分析, 得到PE功能设计需要满足如下几个条件:

(1) 基本的加, 减, 移位运算

这是所有处理器中必须要实现的基本运算。

(2) 饱和运算

所谓饱和运算, 就是当运算结果大于一个上限或小于一个下限时, 结果就等于上限或是下限。在多媒体处理应用中, 由于图像的像素点的RGB的位宽最高为比特级, 所以经常有判断运算结果是否饱和的处理, 因此PE设计需要加入饱和处理功能。但在现有的PE设计中, 数据通路为十六位, 因此数据饱和溢出的几率非常小, 导致饱和处理模块没有得到充分的应用。

(3) Bypass旁路功能

经算法分析得到, 设计中需要加入旁路功能, 并且无需设计乘法器。旁路设计中同样存在资源浪费的问题。十六位的数据通路在数据均为八位的应用中浪费了50%的资源。

设计的可重构阵列处理单元的内部架构如图2所示, 所有的数据处理单元的基本单位都是16位, 移位操作可以进行左右移6位之内的操作, 移位性质为算术移位。ALU使用超前进位加法器设计, 处理单位为16位。

2.2 可重构单元的互联

可重构单元的互联是在可重构系统设计中需要考虑的另一重要因素。由于后续改进方法涉及到可重构阵列的互联, 所以在此介绍一下。基于算法分析得, 多媒体处理的许多算法如DCT, iDCT, Hadamard变换等都可以化作流水线映射形式的数据通路, 这种映射方式具有配置固定, 数据流动的特点, 可以有效提高计算效率。因此设计基于流水线映射的互联系统如下:将每一行划分为一个基本单位, 行与行之间通过路由系统进行全连接, 即每一行的任意PE都可以接受来自上一行任意PE的数据, 并可将自身计算结果传给其下一行的任意PE。第一行以最后一行为上一级单位。这种互联方式可以有效地将常见的图像处理算法映射到阵列上, 利于数据的流水线执行。

以DCT算法为例, H.264中DCT变换可以用下述公式表示:

Y= (CfXCfΤ) ⨂Ef

其中

Cf=[111121-1-21-1-111-22-1]Ef=[a2ab/2a2ab/2ab/2b2/4ab/2b2/4a2ab/2a2ab/2ab/2b2/4b2/4b2/4]

其中, a=1/2, b=2/5。⨂运算符表示分别对同一位置的两个矩阵元素做一次的乘法操作。这部分运算被合并到量化, 反量化过程中。将一次行/列变换的数据流图如图4所示。

在将DCT算法映射到此8×8可重构阵列中时, 进行如下配置:将第一行的从右到左的四个PE分别配置为+, +, -, -操作, 其对应的数据输入分别为:x (0) 与x (3) , x (1) 与x (2) , x (1) 与x (2) , x (0) 与x (3) , 第二行的四个PE分别配置为加, 减, 移位加, 移位加操作, 对应的输入分别根据数据流图来自上一行的四个PE单元即可。对于其它算法, 只要能画出其流水线型的数据流图, 就可以容易地将其映射到可重构阵列上。

2.3 现有阵列存在的问题

多媒体处理是以像素点为单位处理数据的, RGB三个像素空间中的每个空间都是不大于八位的数据宽度。因此, 原有的粒度为十六的可重构阵列的设计在应用在多媒体处理中时造成了很大程度的资源浪费。饱和处理, 旁路模块, ALU及移位器等功能都只使用了不到50%。根据前面分析中多媒体处理所满足的两个特点, 考虑将亚字并行技术应用到此可重构阵列中来, 对阵列进行改进, 提高其工作效率和资源利用率。

3 对PE的亚字并行改进方法及复杂度分析

3.1 亚字并行改进方法

根据算法分析, 代表像素点的数据位宽不超过八位, 但数据处理的中间结果由于溢出等原因可能超过八位。以DCT算法为例, 输出数据最大为八位, 经过两级运算之后, 则最大可能为十位, 由于要分别进行行运算和列运算, 所以最大运算可能结果为十二位。根据数字信号处理中的有限字长效应, 数据位宽越大, 运算精度必然也越大, 但同时消耗的硬件资源也越大。由于多媒体处理对数据精度要求不高的特点, 为了方便设计, 将原来的十六位粒度数据分成两个八位数据, 同时对其进行四位的数据扩展, 于是我们的PE处理单元的亚字单位即为十二位。

对PE进行亚字并行的改进必然带来硬件额外的开销, 在此系统中, 需要在PE中加入数据位宽处理模块, 用于将原来的字级分成亚字级计算。改进后每个PE单元输出的数据都为24位, 其高12位和低12位分别为亚字并行处理的结果, 可传递给其他PE进行运算。

为了扩展PE的功能, 使其同时可进行高位宽的数据计算, 我们保留了原来的16位粒度模式, 通过设定一个配置位sub-word sel来判断此PE是在原模式下计算还是亚字模式下计算。

改进后的PE的内部架构如图5所示:

与图2相比, 粗线代表数据的位宽扩展到24位, 在亚字并行模式下其高低位分别是两个12位的亚字, 在原16位运算模式下, 则为16位的数据。PE的每个模块运算之前都要先进行亚字并行模式的判断。

改进后的ALU的设计如图6所示。其中, ALU12是亚字并行模式下的ALU处理模式, ALU16是原PE非亚字并行模式下的ALU处理模式。

3.2 复杂度分析

使用亚字并行改进方法后增加的硬件开销可以从三方面进行衡量:①每个PE内部增加的位宽处理寄存器;②阵列内部的互联线条数和位宽;③配置字开销增加。

在此种改进方法中:①每个PE增加了3个位处理寄存器, 那么对阵列来说共增加了3×64=192个寄存器;②此种改进方法不改变阵列的互联, 则互联线的条数跟原来相同, 每行之间的互联线仍为8×8=64条, 整个阵列中为64×8=512条, 但是其位宽均由16位均扩展为24位;③每个PE的配置字中增加一个亚字并行模式的选择位, 64个PE相当于增加了一个64位的寄存器。

4 仿真实验数据和结果

用Verilog HDL代码分别将改进前和改进后的可重构阵列实现, 在VCS仿真环境下进行了功能仿真和验证, 然后采用SMIC的0.18μm的CMOS工艺库, 用Synopsys的 Design Compiler工具进行综合, 得到运行结果如表1所示。

由上述综合结果看出, 可重构阵列的处理效率可以达到很高的水平, 根据关键路径和工作频率的倒数关系, 得到在不加外围的控制设备时, 改进前和改进后的阵列均可以工作在约250M的频率下。亚字并行方法将原来的十六位数据变为两个八位数据的并行运算, 因此改进之后的阵列对数据的处理能力比原来增加了一倍, 但由于增加了相应的硬件单元, 使得关键路径长度变长, 同时面积也有了增加, 这可以从综合结果中看出。

5 结束语

针对多媒体处理解码应用设计了一个粒度为16位的可重构运算阵列, 并且在此基础上基于亚字并行技术对其改进, 加入亚字并行功能, 使阵列对数据的处理能力增加了一倍。

摘要:设计了一种面向多媒体处理的8×8可重构处理阵列, 并在该阵列基础上, 对其粒度进行改进, 提出了一种基于亚字并行的改进型可重构阵列设计思路。该设计根据图像处理中的算法的位宽特点, 实现了一种数据的高位和低位可以同时运算的可重构阵列单元, 有效提高数据的并行度, 使得阵列的处理速度得到了显著的提高。在典型的图像处理中, 这种改进型可重构阵列的处理能力较原来增加了一倍。

关键词:可重构,亚字并行,粒度

参考文献

[1]姚于斌, 毛志刚.面向图像处理的可重构协处理器结构研究[J].信息技术, 2008 (4) :102-104.

[2]Lee R B.PLX:A Fully Subword-Parallel Instruction Set Architec-ture For Fast Scalable Multimedia processing[C].IEEE Interna-tional Conference on Multimedia and Expo (ICME2002) , 2002, 15 (2) :117-120.

[3]Lee R B.Subword parallelism with max-2[J].IEEE Micro, 1996, 16 (4) :51-59.

[4]Alex Peleg, Uri Weiser.MMX Technology extension to the Intel Architecture[C].IEEE.1996:42-50.

可重构设计 篇5

1 CPCI总线概述

CPCI(Compact Peripheral Component Interconnect)总线是一种高性能局部总线,数据总线为32 位,可扩展为64 位,数据传输速率[1]为128~528 MB/s。由于CPCI局部总线独立于处理器的独特设计和其高性能、低成本、开放性等方面的优势,它在航天领域的应用相当广泛。在本设计中通过CPCI总线进行配置数据流的传输,相对于传统的电缆和网络下载具有速度快、延时小、可靠性高等特点。

2 硬件实现

图1 为应用于某航天地面测控基带设备中CPCI信号处理板卡硬件框图。FPGA1 和FPGA2 为Xilinx公司VIRTEX 6 系列FPGA,对ADC采样中频输入信号的数据进行功率调整,数字滤波,载波恢复,信息提取,位同步,帧同步,信息提取,调制等处理。DSP为TI公司的TMS320C6455,实现参数计算,频率捕获,传输控制等功能。主控FPGA是采用Xilinx公司的VIRTEX 5 FPGA实现,完成板上V6 FPGA和DSP程序的加载,电源管理与各芯片之间的接口控制等功能。双口RAM用于缓存上报监控计算机的数据和DSP的配置数据。PLX9056为CPCI总线接口芯片,实现PCI协议到本地总线的转换。监控计算机通过CPCI总线将数据读取后进行后续处理,同时监控计算机还可以通过CPCI总线把需要调制的数据注入到FPGA和DSP中,调制后由DAC转换成模拟中频信号。通过监控计算机的人机交互界面可实现对板卡的参数控制、状态监视、信息存储等功能。

为了实现动态重构,以监控计算机为主设备,通过CPCI总线将配置数据送到底层板卡上,并控制整个配置流程。 主控FPGA作为配置数据的通道,与板卡FPGA1,FPGA2,DSP接口,并且设计了配置状态机用于实现FPGA的配置时序。将不同模式的硬件配置文件存放在监控计算机硬盘中,通过监控软件实时加载不同的模式配置文件,即可实现系统重构,完成测控功能切换。

3 FPGA动态配置

3.1 Xilinx VIRTEX 6 系列FPGA配置方式介绍

现场可编程门阵列(Field Programmable Gate Ar⁃ray,FPGA)以其高度的灵活性以及丰富的I/O资源与内嵌模块等优势,在航天领域越来越广泛的应用[2]。Xilinx公司根据FPGA是否能够自己主动加载配置数据分为主模式、JTAG模式以及从模式[3]。主模式根据配置数据位宽和控制时序的不同又分为Master Serial,Master SPI,Master BPI⁃Up,Master BPI⁃Down,Master Select Map等几种接口。

主模式加载片外非易失性存储器中的配置比特流,配置所需的时钟信号由FPGA内部产生,且FPGA控制整个配置过程。在主模式下,FPGA上电后,自动将配置数据从相应的外存储器读入到FPGA内部SRAM中,实现内部结构映射。JTAG模式主要用于调试,可将PC中的比特文件流下载到FPGA中,断电后丢失。

在JTAG模式下,配置时钟为JTAG接口的TCLK,数据直接从TDI进入FPGA,完成相应功能的配置。从模式需要外部的主控设备(如处理器、微控制器或者DSP等)将数据下载到FPGA中,其最大的优点在于FPGA的配置数据可以放在系统的任何存储部位,如:硬盘、FLASH、网络等。

从模式根据配置数据的位宽不同又分为Slave Se⁃lect Map和Slave Serial两种模式。在从模式下,FPGA作为从属器件,由相应主控设备器配置所需的时序,实现配置数据的下载。

通过设置FPGA的MODE引脚的值,可以改变FPGA的配置模式。在本设计中选用了并行从模式即Slave Select Map来实现FPGA的动态配置。

3.2 FPGA动态配置设计实现

图2 为Slave Select Map模式配置时序图。

该模式的配置主要由以下信号进行控制:

PROGRAM_B:为低时复位芯片,复位后INIT_B变成低表示FPGA正在初始化配置存储,当采样到MODE引脚的值后,如果没有发生CRC错误INIT_B将拉高,若发生CRC错误,则INIT_B为低。

RDWR_B:控制配置数据的方向,为高时从FPGA读取配置数据,为低时向FPGA写入配置数据。

CSI_B:片选信号为低时,使能Select Map总线。在只有一片FPGA的情况下,可以将此引脚直接接地。

CCLK:配置时钟。 在VIRTEX 6 系列FPGA中,CCLK最高[4]可以达到105 MHz。但由于受到PCB工艺布线等因素影响,过高的时钟往往会受到信号过冲,建立保持时间等的影响,导致配置失败。因此为了保证配置的可靠性在本设计中采用主控FPGA产生50 MHz时钟输出给待配置FPGA。

D[0∶7]:8 b配置数据信号。在Xilinx的ISE开发环境中,对FPGA的工程进行编译,可以生成配置所需的不同二进制文件。FPGA的配置文件有多种不同的格式,例如BIT,BRT,BIN,MCS,EXO,TEK,HEX等[5]。ISE软件调用Bit Gen程序可直接生产BIT和BIN文件。由于BIN文件仅有配置数据无其他多余信息,因此在本设计中采用了BIN文件进行配置。

DONE:高有效,表示配置成功。

如图3 所示为主控FPGA中用户逻辑的模块划分框图及与片外FPGA的配置信号连接图。地址译码及数据通路模块实现与PCI9656 的接口,对PCI总线的地址进行译码和数据传输控制。FIFO用于缓存配置数据。配置控制模块实现动态配置的控制逻辑状态机。配置状态模块把FPGA1 和FPGA2 的状态上报到计算机。FPGA1 和FPGA2 所有需要配置的信号连接到主控FPGA的I/O引脚上。

当需要动态改变FPGA配置内容时,计算机将配置数据通过CPCI总线按字节把配置文件数据经过PCI9656 写入FIFO中。主控FPGA中的配置控制逻辑检测到FIFO非空后,并判断配置哪一块FPGA后,读取FIFO中的数据,并按照图2 中配置模式的时序把配置数据连续写入FPGA1 或FPGA2 中。配置成功后,被配置的FPGA将自动拉高DONE信号电平,此时计算机可通过读取该信号的值来监测被配置FPGA的状态,判断是否配置成功。

为了实现图2 配置时序,在主控FPGA配置控制模块中通过Verilog HDL代码设计了具有图4 状态转换图的状态机[6]。

IDLE状态:该状态为初始状态,等待总线配置命令。当需要进行模式切换时,监控计算机向映射到内存空间的CPCI指定地址写入0,1,0 产生开始配置的脉冲config_pulse。状态机检测到总线的开始配置脉冲后,进入RST状态。

RST状态:在该状态下,主控FPGA拉低PROGRAM_B,被配置FPGA进入复位状态。为了保证复位的有效性,复位时间[5]至少不低于250 ns。被配置FPGA复位以后,拉高PROGRAM_B,状态机进入CHECK_INIT状态。

CHECK_INIT状态:在该状态下通过检测INIT_B信号判断是否进行状态转换。若复位成功,被配置FPGA将清除用于配置的内部存储,并拉低INIT_B。当状态机检测到INIT_B为低后,状态进入RW_STROBE状态。如果该状态下INIT_B仍为高,表示配置失败,进入CFG_FAIL状态,结束配置。

RW_STROBE状态:在该状态下,判断被配置FPGA的内部SRAM是否完成初始化,为下一步写入配置数据做准备。当FPGA内部SRAM初始化完成并且没有发生CRC错误时,INIT_B信号将变高。一旦状态机检测到INIT_B为高,主控FPGA拉低RDWR_B信号,进入SEND_DATA状态。当内部计时器超过设定时间1 s,INIT_B还未变高,则进入CFG_FAIL状态,结束配置。

SEND_DATA状态:在该状态下,主控FPGA完成将配置数据送入待配置FPGA的功能。若FIFO不为空,读取FIFO中的配置数据,并将数据送入FPGA中。FIFO作为配置数据的通道需要被上层应用和配置逻辑监测空满状态。上层应用通过CPCI总线读取FIFO的状态,若FIFO数据半满则需要向FIFO中写入一部分配置数据块。监控计算机由于在实际应用中有多个线程同时运行并且受到CPCI总线传输效率不高的因素影响,虽然采用了DMA传输方式,写入FIFO的数据速率仍会低于50 MB/s的配置速率,因此会出现FIFO空的情况。若出现FIFO空,则需要拉高CSI_B信号,当FIFO中有配置数据之后才拉低CSI_B,保证配置数据的连续性。若监控计算机发生异常导致FIFO数据中断,将进行超时判断,超时后进入CFG_FAIL状态,并结束配置。写完配置数据后,检测DONE信号,若为高则表示配置成功,进入CFG_SUCCESS状态,结束配置。若检测到DONE信号一直为低,则进入CFG_FAIL状态,并结束配置。

CFG_SUCCESS状态:前一状态若检测到DONE信号为高,则进入该状态,表示本次配置成功,并在下一个时钟周期,进入初始IDLE状态。

CFG_FAIL状态:配置超时或者数据传输异常,DONE信号无法拉高等情况下,都进入该状态,表示配置失败。

4 TMS320C6455DSP动态加载

4.1 TMS320C6455 DSP概述

TMS320C6455 DSP是TI公司的一款高性能DSP,不仅具有高速的数据运算能力,还有丰富的外部接口,如外部存储器EMIF接口,高速串行接口Serial Rapi⁃d IO,PCI接口,三速以太网MAC控制器等[7]。

TMS320C6455 DSP内部有丰富的存储资源,它的L2 级RAM存储容量达4 Mb/s,分配的内存地址范围为0x00800000~0x009FFFFF。为了满足更多应用对内存的需求,可以通过DDR2 控制接口或EMIFA接口扩展系统的内存。

4.2 基于EMIFA接口的启动过程

DSP的启动是将程序和数据段加载到其内部存储空间,并且初始化内部寄存器的过程。通常启动模式主要有:NOBOOT模式、主机(HPI/PCI接口)模式、EMIFA模式、主I2C模式、从I2C模式、SRIO模式等模式。本设计中采用了EMIFA片外ROM启动模式。TMS320C6455 DSP的EMIFA接口能与各种外部设备接口,如SRAM,FIFO,ROM,FLASH等。 EMIFA对应的DSP的地址空间分为4 片空间,分别对应的片选信号CE2~CE5,可扩展的地址空间达1 GB。

上电复位后,DSP通过DMA/EDMA控制器,自动将存有程序代码的片外存储器中1 KB数据搬移到起始地址为0x800000 的内存中[8]。搬移完成后,DSP将从该地址执行程序。通常在这段1 KB程序里存放为Bootloader程序,Bootloader程序将保存在片外存储器中的其他程序数据搬移到DSP L2 RAM空间中,并在搬移完成后让DSP跳转到程序起始处开始执行,此时DSP完成整个启动过程。

4.3 DSP动态配置的实现

如图1 所示,DSP的EMIFA CE3 的地址数据等控制信号通过主控FPGA与双口RAM和FLASH连接。在板卡上电的初始状态下,DSP的EMIFA的CE3 信号线通过MAIN FPGA与FLASH连接。当需要进行功能切换时,计算机首先通过CPCI总线将DSP的程序二进制文件写入双口RAM中。然后控制主控FPGA将EMIFA CE3 的数据、地址、控制等信号切换到双口RAM上。为了让DSP重新启动,监控软件向主控FPGA中复位寄存器写入1,产生复位DSP的脉冲。DSP复位之后,重新开始启动过程,但通过EMIFA CE3 地址空间访问的内存将不再是FLASH,而是片外双口RAM。DSP加载双口RAM中的程序数据后,实现DSP功能的切换。由于片外双口RAM比FLASH具有更高的工作时钟,这种DSP的启动方式,相对于FLASH加载的方式,不仅可以减少烧写FLASH的环节,缩短DSP的启动时间,而且可通过监控软件的人机界面随时更改DSP加载的程序内容,具有很大的灵活性。

5 结语

本系统利用CPCI总线传输不同的配置文件实现系统的可重构,具有简单,易于开发的特点。通过应用软件实际测试,整板(包括2 片FPGA,1 片DSP)的重构时间不超过2 s。CPCI总线结构动态重构系统具有很大的优越性,不仅数据传输速率高,资源利用率高,减小了系统规模功耗,而且可以对不断变化的环境迅速适配。本设计已应用于实际工程中,并取得了良好的效果。

摘要:近年来航天测控任务出现了测控目标多,信息传输量大,工作模式多样化等特点,为了满足实际测控任务中对设备的处理能力和灵活性的更高要求,该文实现了一种基于CPCI的动态可重构系统设计。在基带设备中通过应用程序将配置文件由CPCI总线根据需要实时写入到信号处理板上,并由主控FPGA将配置数据加载到核心处理器件FPGA和DSP中。与传统的FPGA和DSP加载方式相比,这种方法可以在极短的时间实现基带设备不同功能和模式的快速切换,不仅节约了硬件资源同时也使系统具有较大扩展性和灵活性,能够满足不同应用需求。该文给出这种可重构系统的详细设计和工程中的典型应用,该设计已经在实际中应用并取得理想的效果。

关键词:FPGA,DSP,动态配置,CPCI

参考文献

[1]BUDRUK Ravi,SHANLEY Tom,ANDERSON Don.PCI Express系统体系结构[M].北京:电子工业出版社,2005.

[2]王文华,韩双丽,张宇.航天应用FPGA配置可靠性研究[J].空间科学学报,2011,31(1):106-111.

[3]Xilinx Technology Inc.Virtex-6 FPGA configuration user guide[EB/OL].(2012-09-11)[2015-04-20].http://www.xilinx.com/support/documentation/user_guides/ug360.pdf.

[4]Xilinx Technology Inc.Virtex-6 FPGA data sheet:DC and switching characteristics DS152[EB/OL].(2011-04-01)[2015-04-20].http://www.xilinx.com/support/documentation/data_sheets/ds152.pdf.

[5]孟龙,郄志鹏,朱江,等.基于CPCI总线的FPGA加载设计[J].通信技术,2013,46(5):127-129.

[6]Xilinx Technology Inc.A CPLD-based configuration and revision manger for Xilinx platform flash PROMS and FPGAs[EB/OL].(2005-01-19)[2015-04-22].http://www.xilinx.com/support/documentation/application_notes/xapp693.pdf.

[7]Texas Instruments Inc.TMS320C6455 fixed-point digital signal processor[EB/OL].(2012-03-23)[2015-04-10].http://www.ti.com/lit/ds/symlink/tms320c6455.pdf

可重构设计 篇6

1 可重构物料异动单的数据结构设计

1.1 异动类型及物料异动单

分析各种“物料异动单”,分析其涉及的“异动处理方式”,主要有如下几方面:1)仓库入出标识:一般可分进库,出库或调整。2)记帐方向:借,贷,与借贷无关。如在结月进耗存时,记帐方向为借记入月收,为贷记入月发,与借贷无关则记入月调整。3)应收标识:记入应收帐款,不记入应收帐款。4)应付标识:采购,外加工,无应付。5)结进耗存标识:纳入进耗存报表,不纳入进耗存报表。

按以上分析,为统一描述和存储各类“异动处理方式”应抽取出“异动类型”对象,其数据库表结构如表1。这样,每种“物料异动单”均可与某一异动类型表中的一条记录相对应。

对于具体的某类物料异动单主要的属性包括:进行物料异动的仓库,储位,异动的物料编号,异动的数量,异动的物料单位,物料异动单位与仓库成本核算单位之间的兑换率,异动单价,异动的金额,及计价的币别等,另外每类物料异动单应与某种异动类型对应,其数据表结构如表2,通过对异动类型的维护,可实现对物料异动单的定制。

2.2 异动验证和处理规则

物料异动单在异动处理前应进行数据的合法性验证,如按出货单进行仓库出货时,申请出货数量不能大于发货仓库库存量,否则不能进行出货异动操作。只有通过合法性验证后,方可按物料异动单进行相关异动处理(对相关业务数据表进行更新操作),如更新当前仓库的物料库存数量,修改相应物料的月收、月发或月调整量等。本文所提出的可重构物料库存管理模块将物料异动单的验证规则与处理规则相分离,并均以记录的形式存储于数据库表中,只要通过对物料异动单的验证与处理规则进行简单的维护而无需修改程序代码即可实现对物料异动处理功能的动态重构,以适应不同的系统需求。

2.3 异动验证规则的存储

物料异动单的验证规则可通过一组带参数的SQL语句来表示,并以记录的形式存放在数据库表中,对于某一异动类型可以对应有多项验证语句,利用序号字段来区别并标明各验证语句的执行先后次序,如表3和表4所示。表达式中的“@字段”表示待定的字段参数值。

2.3.1 异动处理规则的存储

异动处理规则也用一组带参数的异动处理SQL语句来表示,并以记录的形式存放在数据库表中,对于某一具体的异动类型可能有多条异动处理语句,以序号字段来标识各语句的执行次序,如表5,6所示。表达式中的“@字段”表示待定的字段参数值。

2.3.2 异动验证和处理规则的维护

系统通过提供一个系统维护程序(对用户不开放),实现对物料异动单验证和处理规则的统一管理和动态配置。

3 异动验证和处理逻辑的实现

采用基于COM+的C/S三层技术架构开发,应用服务器选用COM+,数据库服务器为SQLServer2003,以Dephi为客户端开发工具。物料异动单的生成及处理流程见图1。图1中的单据转换、数据验证和异动处理功能由应用层构件MTIForm相应的接口函数完成,如图2所示,受篇幅所限,本文重点介绍数据验证和异动处理接口函数的实现。

3.1 客户端调用

客户端通过物料异动单输入或单据转换界面,获得异动验证和处理必须的信息字段如异动的物料编号、申请单号、申请单项次、异动数量、使用单位数量、仓库、储位、异动日期、异动类型等字段信息,并用OleVariant类型将各字段信息封包在变体数组OleSave中,其中OleSave[0]对应字段名1字段值1,OleSave[1]对应字段名2字段值2,以此类推,变体数组中封装的字段个数为SaveCount,异动类型为strDealType,客户端通过调用应用层构件MTIForm的DealStock函数完成异动处理,代码如下:

3.2 应用层物料异动单的验证

3.2.1 验证SQL语句的生成

因为后台验证规则表中存放的是异动验证和处理语句的模版,其中的待定参数用@字段名来表示,如@odd_code表示订单表中Odd_code字段的值(订单号),在实际执行验证操作时,@odd_code要用客户端传入的对应字段值即实际订单号替换,才可得到实际的可在后台执行的SQL语句,由于客户端的字段值信息均封包在OleSave变体数组中,需将验证SQL语句中的待定参数(@字段名)用OleSave中的包含的具体字段值替换以生成可执行的SQL语句,这由DecodeSql函数完成。

3.2.2 物料异动单的验证

首先根据物料异动单对应的异动类型(strDealType)从异动验证规则表取出对应的所有异动验证语句模版,通过调用DecodeSql得到可执行的验证SQL语句,按序号顺序执行各条验证SQL语句,由每条验证SQL语句的执行结果与返回结果共同决定该条验证语句是否通过合法性验证(如表7所示)。只有当所有验证语句对应的验证结果均为True时,方可判定该物料异动单通过合法性验证,否则判定异动验证未通过并返回错误信息提示前端用户。

实现异动验证的代码如下:

3.3 应用层的异动处理逻辑

应用层的物料异动单构件中提供DealStock方法以完成对物料异动单的异动处理。处理逻辑是首先调用CheckSql进行异动验证检查,若未通过验证,则中断本次异动处理操作。对于通过异动验证检查的物料异动单,再根据其异动类型从异动类型明细表中取出对应的所有异动处理SQL语句模版,同样通过调用DecodeSql得到可执行的异动处理SQL语句,逐条执行各异动处理SQL语句从而完成整个异动处理过程,代码如下。

3结论

相对于一般的物料库存管理模块,本文所提出的可重构物料库存管理模块可以大大减少开发工作量,在适应不同用户的个性化需求方面,可通过简单地维护异动类型和对应的异动验证和处理规则即可实现物料异动处理功能的快速重构,使系统具有更好的灵活性和适应性。本文所设计的可重构物料库存管理模块已在某服装企业的ERP系统中得到成功的应用。

参考文献

[1]彭烈辉.ERP系统中物料管理系统的设计与实现[J].制造业自动化,2005(10).

[2]王蓉.库存管理及控制信息系统设计研究[J].浙江工业大学学报,2006(4).

可重构设计 篇7

数控系统是现代制造装备的核心。可重构数控系统具有在一定范围内迅速调整其结构和功能的能力,能够快速适应市场的迅猛变化和系统自身的改变,从20世纪90年代开始已成为数控技术研究的一个热点[1,2]。

数控系统的重构包括硬件可重构和软件可重构。目前对数控系统软件可重构的研究主要有:①将数控软件的功能封装并抽象成标准“软件芯片”,以“软件芯片”库为基础,通过库中的“软件芯片”组合实现系统可重构[3];②以开放式体系结构为基础,将功能模块设计成标准组件,组件通过标准接口通信实现系统的可重构[4];③以标准总线为基础,通过总线的易扩展性实现系统的可重构[5,6]。

以上研究的特点是,采用将功能和数据封装成一个对象,通过对象的复用实现系统的重构。但是这些对象均为被动对象,每次重构都需要设计所有对象的调用才能运行。数控系统是个行为复杂的系统,当对象的数目增多时,调用方法和顺序将会变得十分复杂,从而导致数控系统的重构变得繁琐和低效。

本文提出面向活动对象的可重构数控系统软件设计。活动对象之间无需设计相互的调用。通过“订阅”外部事件,以事件驱动其执行。通过“出版”事件,以事件同外部进行通信。在该模式下,活动对象耦合性小、可复用程度高,系统集成简单、重构能力强。

1 面向活动对象的设计

活动对象(active object)是“一个拥有其自己的控制线程的对象”[7],它不被外部的对象所调用,通过异步事件交换的方式同其他活动对象通信,以RTC(run-to-completion)的方式执行事件处理。图1所示是一个活动对象,它包含一个控制线程(事件循环)、一个事件队列和一个状态机,即“活动对象=(控制线程+事件队列+状态机)”[8]。

1.1活动对象RTC事件处理

在图1右侧显示了事件循环的流程。queue.get ()从事件队列中取出事件,通过dispatch()派送到状态机进行处理。在处理完成后返回queue.get (),并从事件队列中取出下一个事件,重复上面的过程,如此循环。事件循环保证了每个活动对象处理事件的RTC形式。RTC形式固有地排除了内部并发问题,在第二个事件被处理前,dispatch()操作必须完成并且返回到事件循环。这里的RTC指的是单个活动对象内部的事件处理。在优先级抢占的多任务系统中,当高优先级的活动对象有事件需要处理时,低优先级的活动对象会被挂起,将CPU的控制权让给高优先级的对象。在高优先级的活动对象处理完后,CPU控制权重新归还当前悬挂对象,使其继续执行。

RTC形式可以进行有效堵塞。当事件队列为空时,活动对象会堵塞在queue.get ()上(此时不占有CPU),直到有新事件出现,才会继续执行,从而提高了CPU的利用率。

1.2活动对象异步事件交换

活动对象与其他对等实体的事件交换采用异步方式。每个活动对象拥有一个自己的事件队列,所有的事件异步地投递到事件队列中,活动对象通过事件队列唯一地接收事件。一方面,当活动对象在忙碌时,可以自动地对输入事件进行排队。另一方面,事件生产者仅需将事件投递到活动对象的事件队列中,而不必一直等待其处理完成。除此,活动对象可以不区分事件来源地接收事件并统一处理。事件可以是其他活动对象产生,也可以是中断产生,还可以是自身产生。

1.3活动对象的状态机行为规划

数控系统根据输入的信息(如数控程序、操作面板的输入、传感器的反馈信息)控制机床移动,实现加工操作(如轴运动、换刀、停止机床等),属于典型的反应式系统[9]。反应式系统(reactive system)是一个对外部和内部刺激做出响应的事件驱动系统(event-driven system)。在确定性的反应式系统中,系统输入的顺序和数值决定了系统的响应顺序和数值[10]。因此,需要专门的方法来描述系统的行为。状态机(state machines)是说明和实施事件驱动系统最有名的形式,先进的UML状态机代表着状态机理论和表示法的当前艺术状态[8]。本文以UML状态机(Statecharts,也称状态图)来表示并规划活动对象的行为。

图2所示是一个简单的状态图,图中包含A、B、C、D 4个状态,处于某一状态意味着系统只响应所有允许输入的一个子集(如处于D状态只响应a输入和c输入),只产生可能响应的一个子集(转移到A状态或转移到B状态),并且改变状态也只是可能状态的一个子集(对于输入事件除了可以发生状态改变还可以有其他的输出)。C状态是一个父状态,包含A和B两个子状态,子状态可以继承父状态的响应(如在A状态遇到d输入会转移到D状态)。Statecharts相关信息及优点请参考文献[7,11]。

1.4活动对象“出版-订阅”事件投递

面向活动对象的设计将应用分解成若干功能专一的活动对象,它们通过异步事件交换进行通信。因此,如何将事件投递到目标对象至关重要。

最简单的方法是活动对象彼此直接发送事件。然而,它们要求活动对象密切“知道”彼此。不仅需要拥有一个指向对应实体对象的指针或引用,而且还必须知道对方可能感兴趣的事件类型。这种密切的“知识”存在于所有参与的活动对象之间,使得系统难以改变和扩展。例如,加入一个新的活动对象是困难的,因为已经存在的活动对象不了解新来的对象,并且不会向其发送事件。

观察者(OBSERVER)模式(又称出版-订阅(publish-subscribe)模式)定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。中介者(MEDIATOR)模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

图3所示的“出版-订阅”框架结合了观察者和中介者两种设计模式。“出版社”是一个观察者,同时又是一个中介者,活动对象是观察者。活动对象从“出版社”订阅自己感兴趣的事件,并将自己要出版的事件投递到“出版社”。“出版社”收到事件后按照订阅列表一一投递给所有的订阅者(活动对象)。

“出版社”除了接收活动对象投递的事件外,同时还接收中断投递的事件。

在这种方式下,所有事件被公众所知,活动对象无需相互“知道”,只向“出版社”“订阅”自己想要的事件。系统内部活动对象之间具有松的耦合性。一个活动对象可以不用知道其他活动对象是如何运行的,而只需知道系统中具有哪些事件,根据这些事件,自己该如何运行。一个活动对象的行为逻辑发生了改变,不会影响到其他活动对象的运行。一个新活动对象的加入可以很好地融入系统,又不影响系统其他部分的运行。

2 活动对象的实现

图4所示为活动对象的实现类图。活动对象继承基类CActive,CActive联合了3个基本要素:状态机(来自CHsm类)、事件队列和执行线程。

2.1执行线程的实现

执行线程具有平台依赖性,不同的操作系统具有不同的执行方式。图5所示为创建及执行线程的伪代码。首先在CActive::Start () 内创建好事件队列及执行线程,在CActive::run ()内通过for(;;)循环从事件队列中获取事件,并将其投递到状态机进行处理。

2.2事件队列的实现

很多实时操作系统天生具有自己的消息队列(有时称为邮箱或消息邮箱),此时可以将消息队列映射成所需要的事件队列,从而实现对事件的排队和堵塞。对于不具备消息队列的操作系统,需要设计自己的事件队列来处理事件排队、回收、堵塞等机制。事件队列的实现可参考文献[8]。

2.3状态机的实现

活动对象的状态机是通过继承CHsm类实现的。CHsm类是一个能够处理层次状态转移的状态机抽象类,它封装了状态机的状态转移机制等。通过这种方式,活动对象对状态机的实现只需编写所有状态的状态处理函数。图6所示为一段事件处理代码,在状态处理函数内,根据事件类型进行状态转移或进行相应的事件处理。

2.4事件“出版-订阅”的实现

图7所示为事件的“出版-订阅”订阅者列表,在该列表中,每个事件对应一个清单,清单中保存着订阅该事件的所有活动对象的优先级编号(每个活动对象对应唯一的一个优先级编号)。当有事件出版时,根据该事件的清单对订阅者一一进行投递。通常活动对象在初始化内部状态机时通过PB::subscribe(CActive *a,Signal sig)接口订阅该活动对象感兴趣的事件,在运行的任何时候通过接口PB::publish(Event *e)出版自己的事件。

3 D-Max ENC数控系统应用

D-Max ENC是以Windows CE6.0为软件平台的可重构嵌入式数控系统,按照设计要求它需具有快速重构能力,可以根据客户需求重构出具有不同联动轴数,或不同刀库,或不同用户界面,或增加其他功能(如,增加机械手或增加远程监控)的数控系统。

3.1D-Max ENC M3数控系统硬件结构

图8所示为D-Max ENC M3铣削加工中心的硬件结构。该系统具备三轴联动,自动换刀等功能。 系统采用主从式多CPU结构,X86工业主板具有主CPU,通过PC/104总线分别与FPGA运动控制卡及PC/104数据采集卡相连,通过串口总线与刀库PLC相连。

3.2D-Max ENC M3数控系统软件实现

D-Max ENC M3系统共包含IO活动对象、TC活动对象、MC活动对象、Core活动对象和HMI活动对象5个活动对象(图4)。

IO活动对象:主要检测I/O信号,管理MDI键盘的按键输入。该对象的状态机只有一个状态,其简化状态图如图9所示。在该状态下,活动对象不断检查是否有键按下。当有键按下时,创建一个该按键的事件,并将该事件出版。

TC活动对象:负责与刀库的PLC通信,从而控制刀库选择相应的刀具。该活动对象简化状态图如图10所示,活动对象有Idle和Busy两个状态。在Idle状态,可以接收选择刀具的事件(SELECT_TOOL),并进入Busy。此时,若再收到选择刀具的事件,将不会进行处理(可以有效防止破坏换刀的控制逻辑),直到收到刀库处理完成事件(TM_PROCESSED)后,重新转移到Idle状态。

MC活动对象:管理运动控制卡的行为。根据所控制的运动控制卡有批处理和立即处理两种模式,且在批处理模式有数据缓存区、允许暂停和取消功能,其简化状态图如图11所示。在Idle状态和Hungry状态可以接收插补指令事件,而在Full状态不会处理接收的插补指令。进入Suspend状态后,插补会暂停,在收到START事件后,又会恢复到上一个状态。

Core活动对象:编译程序,并将编译后的指令通过事件出版出去。由于指令具有多种类型以及单次处理的指令长度有限,为了保证事件出版后其他活动对象能够进行处理,需要将编译后的指令按类型及长度分成多个指令段,并订阅运动控制卡数据处理完成事件(MC_PROCESSED)、运动控制卡数据饥渴事件(MC_HUNGRY)和刀库处理完成事件(TM_PROCESSED)。在这些事件的驱动下,将分段指令出版。除此,该活动对象还订阅了插补、急停、复位、进给保持、启动等事件,从而控制整个过程的执行。其简化状态图如图12所示。

HMI活动对象:负责程序的编辑、参数设置、显示以及自动或手动的数据准备等。其简化状态图如图13所示。该活动对象订阅了所有的按键事件,通过模式选择事件进入不同状态,不同的状态只处理固定的按键事件。如,在Auto状态收到START按键事件后会出版带有零件程序参数的编译事件,在JOG状态会处理X+等轴控制按键事件,而不会处理START按键事件。

3.3D-Max ENC M5E数控系统软件重构

图14所示为面向活动对象软件设计的重构流程。

首先,根据新的系统需求,分析判断已有活动对象的行为是否发生了改变,包括其状态图及事件的处理方式是否需要发生改变;其次,在已有活动对象修改完成后,对比新系统,查看已有活动对象无法完成的功能,设计并添加新的活动对象;然后,重新对所有活动对象检查,检查是否有出版的事件漏处理或未出版等;最后,整合所有活动对象进行验证、仿真、测试等,最终得到新的系统。

D-Max ENC M5E系统是一五轴联动数控系统,该系统除具有五轴联动外,还具有网络监控功能。通过互联网可以远程监视其运行状况,或传送数据控制机床运行(在Online模式)。表1及图15、图16所示为D-Max ENC M3重构为D-Max ENC M5E系统的软件重构内容。

从上述重构过程可以看出:

(1)活动对象通过事件出版进行通信,没有相互的调用,避免了重构过程“牵一发而动全身”。如,IO的改变并没有影响到TC活动和MC活动对象的行为;加入Monitor活动对象,并没有干涉到IO活动对象、TC活动对象、MC活动对象、Core活动对象的活动。通过减小相互间的耦合,从而可以降低重构难度,提高活动对象的复用程度。

(2)活动对象以一状态机来控制其行为,通过状态图将控制逻辑图形化。使得重构的分析和设计更加便捷和清晰。避免了阅读控制逻辑复杂代码和大量描述文档的繁复和耗时,从而可以节省时间,提升效率。

(3)活动对象的实现采用了抽象和继承(图4),复杂的逻辑运算均已被抽象的CActive类实现,活动对象只实现通过状态处理函数实现对事件的处理(图6)。从而使得重构后创建新的活动对象和修改已有活动对象更加容易。

摘要:为使数控系统软件可重构,提出一种面向活动对象的软件设计方法,给出设计原理、实现方法;以实际应用为例,阐明设计方法、重构流程及重构结果。该方法基于面向对象设计,并给每个对象赋予一个独立执行线程、事件队列和状态机。活动对象相互独立、不共用资源、能够独立执行,通过事件队列与其他对象通信,以“出版-订阅”的方式投递和接收事件。在该方式下,数控系统的重构复杂程度低、修改便捷、重构效率高。

关键词:活动对象,数控系统,软件重构,嵌入式数控

参考文献

[1]Koren Y,Heisel U,Jovane F,et al.ReconfigurableManufacturing Systems[J].Annals of the CIRP,1999,48(2):527-540.

[2]王涛,刘清建,王太勇,等.具有3层重构能力的可重构数控系统[J].中国机械工程,2011,22(2):197-201.Wang Tao,Liu Qingjian,Wang Taiyong,et al.Re-search on Three-ply Reconfigurable CNC System[J].China Mechanical Engineering,2011,22(2):197-201.

[3]魏仁选,周祖德,陈幼平,等.可重用面向对象数控软件及其开发环境研究[J].华中理工大学学报,1999(3):19-21.Wei Renxuan,Zhou Zude,Chen Youping,et al.Study on Reusable Object-oriented CNC Softwareand Its Development Environment[J].Journal ofHuazhong University of Science and Technology,1999(3):19-21.

[4]文立伟,王永章,路华,等.基于开放结构控制器的可重构数控系统[J].计算机集成制造系统-CIMS,2003,9(11):1483-1489.Wen Liwei,Wang Yongzhang,Lu Hua,et al.ReconFigurable CNC System Based on Open ArchitectureController[J].Computer Integrated ManufacturingSystems,2003,9(11):1483-1489.

[5]齐继阳,竺长安,王欢.基于USB和组件技术的可重构数控系统的研制[J].制造技术与机床,2007(12):17-20.Qi Jiyang,Zhu Changan,Wang Huan.Developmentof Reconfigurable CNC System Based on USB andComponent Technologies[J].Manufacturing Tech-nology&Machine Tool,2007(12):17-20.

[6]王太勇,李波,万淑敏,等.基于现场总线的可重构数控系统的研究[J].计算机集成制造系统,2006,10(12):1662-1667.Wang Taiyong,Li Bo,Wan Shumin,et al.Reconfig-urable CNC System Based on Field Bus[J].Comput-er Integrated Manufacturing Systems,2006,10(12):1662-1667.

[7]OMG.OMG Unified Modeling Language(OMG UML),Superstructure(v2.4.1)[EB/OL],(2011-08-06)[2011-10-01].http://www.omg.org/spec/UML/2.4.1/Super-structure/PDF

[8]Miro Samek.PRACTICAL UML STATECHARTSIN C/C++,Second Edition[M].Burlington:Ne-wnes,2008.

[9]李霞,王永章,梁宏斌,等.有限状态机在开放式数控系统中的应用[J].计算机集成制造系统-CIMS,2005,11(3):428-432.Li Xia,Wang Yongzhang,Liang Hongbin,et al.Fi-nite State Machine Application in Open CNC[J].Computer Integrated Manufacturing Systems,2005,11(3):428-432.

[10]Chito S,Michael J,Wang Shige,et al.SpecifyingReconfigurable Control Flow for Open ArchitectureControllers[J].Proceedings 1998 Japan-USASymposium on Flexible Automation,1998,7(2):659-666.

上一篇:零负团费下一篇:景区景点