1、基于堆栈结构的开放式控制器关键技术研究赵辉 符意德 白晖(南京理工大学 计算机科学与技术学院,南京 210094)摘 要:本文提出了基于堆栈结构的开放式控制器体系结构,并给出该体系结构的总体框架;在开放式控制器的扩展过程中,模块化设计和配置系统是整个系统设计的关键,有效的通信机制是系统运作的核心。针对系统地址的离散特征,设计采用触发中断的方式以实现系统对硬件板卡接入的响应,通过配置系统完成硬件板卡驱动程序的加载。在通信机制中,采用了控制缓冲技术以实现对多板卡的并行控制,采用信息紧凑技术以保证系统控制过程中信息的有效性和控制的实时性。关键词:堆栈结构;控制缓冲;信息紧凑;组态随着技术市场、生产组
2、织结构等方面的快速变化,人们希望能根据不同的加工需求,迅速高效地构建面向客户需求的控制系统,降低生产厂家对控制系统的高依赖性,改变以往控制系统封闭性的设计模式,使得生产控制更简便有效1。这一趋势促成了开放式控制系统的产生。在开放式控制系统中,逻辑上分离的组件是最基本的构成单元,组件之间和组件与应用平台之间有良好的界面定义,并对用户提供良好的交互界面2。本文主要针对现有控制系统中存在的问题,提出基于堆栈结构的开放式控制器体系结构,给出该体系结构的总体框架和设计思路;在此基础上对板卡接入后驱动的加载给出具体的实现方式,对该体系在控制过程中为了保证控制信息的有效性和控制过程的实时性而采用的控制缓冲技
3、术和信息紧凑技术给以说明。1.开放式控制系统的体系结构开放式控制系统已经发展了多年,但目前学术界和工业界对开放式控制器系统研究还争论颇多。就现有的国内外的开放式控制器系统而言,虽然系统运行在标准的软硬件环境之上,支持多种操作系统、硬件体系结构及通讯传输协议;但对硬件的扩充却是受限的,整个系统仍然受到原有硬件结构和操作系统的限制,特别是有关硬件驱动的开发和加载方法,有关信息有效性和控制实时性的保障策略仍然是制约系统扩展的关键3。在我们提出的基于堆栈结构的开放式控制器系统架构中,将在三个层次上实现控制系统的开放性;在硬件层次上,控制系统能够方便的进行功能扩展,当控制系统需要添加其他控制功能时,板卡
4、可以通过主模板上的pc/104总线接口与系统连接;在系统控制层上,控制系统能够准确的定位外部板卡的接入,并实现板卡驱动的加载;在控制应用层上,系统可以通过组态软件实现控制过程额图形化配置4。本文主要针对在硬件层次开放过程中,有关板卡接入和驱动的加载给以说明,并对系统扩充后的相关通信问题给予论述。首先,我们给出系统的总体框图:具体构成如图1,系统构成是基于主模块和接入板卡的,主模板是开放式控制器的核心,其硬件由CPU、SDRAM、NOR Flash、NAND Flash、实时时钟、RS-232接口、USB主接口、以太网接口、全真彩LCD接口、类PC104总线驱动等组成。功能模块通过类PC104总
5、线与主模板连接,并提供特定的控制功能,其硬件包含CPU、SDRAM、NOR Flash、NAND Flash、实时时钟、类PC104总线驱动等,并根据具体的控制功能要求,提供一定数量的I/O接口和A/D接口。图1在系统的结构设计上,我们将其分为硬件层,硬件抽象层,控制支撑层和控制应用层。其中,硬件抽象层主要包含启动引导程序和精简操作系统;控制支撑层包含监控系统,配置系统,语言系统,通信系统,诊断系统和系统调用接口API;控制应用层主要包含应用程序,数据库,web服务,控制算法,控制图形库和控制组态软件。如图2所示图2其中,精简操作系统5包括进程控制系统和文件系统;进程控制系统负责进程间通信和进
6、程调度,文件系统主要负责文件和设备的管理并负责创建虚拟文件系统,管理高速缓冲,另外精简操作系统还负责内存管理并负责向上层提供系统调用接口,具体关系如图3所示。监控系统负责硬件的实时监控、响应板卡的接入,并配合配置系统完成板卡的驱动加载;配置系统负责操作系统功能模块的加载和应用软件的升级和控制应用功能的扩展。图3以下,我们将对基于堆栈结构6的开放式控制器在硬件层次开放过程中的关键技术给出具体的解决方案和具体策略。2驱动加载技术基于堆栈结构的开放式控制器,其硬件扩展方式的特征决定了扩展板卡驱动加载过程的特殊性;对于总体系统而言,由于主模板和扩展板卡在硬件上的独立性,整个系统在内存单元,地址分配都具
7、有较强的离散特征。当扩展板卡接入系统时,总线接口的特定引脚将触发中断,系统监测进程将做出响应,直到板卡接入稳定为止,然后配置系统将按图4,完成驱动程序的加载。图4配置系统在确定扩展板卡部件稳定接入系统后,将给该部件创建硬件设备节点和链接文件,链接文件指向存放在该扩展板卡的Flash的固定区域,该区域存放该板卡的驱动程序;节点和链接文件创建成功后,主模板将通过类PC/104总线读取该板卡的硬件接口和描述信息,并实现对此板卡的硬件抽象;然后调用驱动管理程序,把链接文件指向的驱动程序添加到驱动链表中;驱动管理程序首先通过系统总线将驱动程序拷贝至主模板的一个特定的缓冲区,然后检测驱动链表所在的内存分配
8、空间的剩余大小,如果空间大小足够,再将缓冲区的驱动程序挂接到驱动链表中,否则将不作任何处理。当应用程序通过系统接口调用特定的板卡驱动时,如果该驱动程序在驱动链表中,将直接调用,否则将通过链接文件,将相应的驱动程序拷贝至主模板的缓冲区,通过一定的调度策略,删除驱动链表中若干个驱动程序,直到该板卡的驱动能够成功添加到驱动链表为止。开放式控制器作为原有控制器的发展,在实现系统开放性的同时,必须保证控制功能的有效性。系统硬件的扩展,必然会增加控制的复杂程度,降低系统的通信性能。为了保证通信过程中信息的有效性和控制的实时性,系统引入了控制缓冲和信息紧凑等策略。3.控制缓冲技术所谓控制缓冲,就是在处理器和
9、主模板接口之间,接入板卡和接入总线之间分别开辟独立的用于信息暂存的内存块,如图5所示,该内存块具有动态分配的特征,其内存块的大小按照整个系统接入板卡的数量进行分配,并对板卡控制的频率进行统计,图示中是接入N个板卡后的分配状态,该内存块被分为N个窗口,为了适应处理器并行控制的需要,系统为此内存块分配M个接口;接入板卡在特定的Flash区开辟与对应窗体大小一直的区域,用于存放接受信息和发送信息的缓冲;图中,处理器和总线间的通道用于实时性信息的传输和接收;处理器与该内存块之间的通道和该内存块与总线之间的通道用于处理器对多个接入板卡同时控制时信息的发送和接收。图54.信息紧凑技术所谓信息紧凑,就是当主
10、控器对若干接入板卡同时控制时,为了减少系统总线上的信息传输总量,提高系统控制的实时性能,对此同步控制信息进行的压缩处理的过程。定义总线一次信息传输的信息量为L,传输时间为S,系统接入板卡的极限为N,对N按照操作上的互斥性分为M类,使得类内的板卡在操作上互斥;特定板卡的控制集和为C,将C按照指令互斥性分为D类,使得类内在操作上互斥;定义OP_L(T,G)为T时刻对G个接入板卡进行同步控制的信息量;定义OP_S(T,G)为T时刻对G个接入板卡控制操作完成的时间;,为系统所有控制的信息总量和传送时间。则R_N可表达信息集合涵盖(i为G中信息序号)的所有控制信息因此,只需构造函数F(T,S,G)实现信
11、息长度为T_R_N的信息集和到信息集和的映射,并解析F(T,S,G)获得F1(T,S,G)完成板卡对控制信息的获取。下面,我们以实现点位转换的函数示意信息紧凑的过程,并在信息紧凑过程中说明怎样实现信息的有效性和控制的实时性。在系统稳定情况下,系统将对接入板卡和对应的板卡的控制指令创建一张位图表;如图6所示,其中横向代表接入板卡的序号,纵向代表对应板卡的控制指令,统一颜色的列(行)代表期间有互斥,按照互斥邻接的原则将板卡进行横向排列,指令纵向排列;在对应板卡的存储区域保存属于自己的指令列位图;当有新的接入板卡加入系统时,系统将对该位图表进行更新,即按照板卡的互斥原则和指令的互斥原则,遵循最小改动
12、的原则更新位图表的列和行,并将有改动板卡的指令列位图发送给该板卡,并存储在特定区域。图中的灰色区域为6号板卡的列位图,其存储在6号板卡的特定存储区域中。图6当我们对指定板卡发送多条指令时,如图7所示,红色区域为将要发送的指令,系统将根据此位图表定位列项和行项,然后将该数据在总线上以广播的方式发送,板卡通过对列项数据的处理获得是否有控制信息的输入,然后板卡根据行项值查找本地指令列位图,获得并行控制的指令,实现主控器对特定板卡的多指令同步控制。如果按图中所示定位某一特定板卡(列项)需要4比特数据,定义特定板卡的每个互斥段指令(行项)需要2+3+3+2比特数据,那么对指定板卡发送多条指令时共计需要1
13、4比特数据量,由于指令在主模板和接入板卡还需要进行点位图匹配运算,这将消耗一定的时间,所以我们定义一个;当时,我们将进行信息紧凑,否则将直接逐条发送控制指令,即仅当发送信息量大于信息紧缩后信息量(对指定板卡发送多条指令时,信息紧缩后信息量为定值)的倍时,我们才进行信息紧凑操作。图7当我们对多个接入板卡发送相同控制指令时,如图8所示,红色区域为将要发送的指令,系统将根据此位图表定位列项和行项,然后将该数据在总线上以广播的方式发送,板卡通过对列项数据的处理获得是否有控制信息的输入,然后板卡根据行项值查找指令列位图,获得并行控制信息的指令,实现主控器对多个板卡的同步控制。如果按图中所示定位每个互斥段
14、板卡(列项)需要2+2+2+1比特数据,定义同步控制的指令(行项)需要5比特数据,那么对指定板卡发送多条指令时共计需要12比特数据量,虽然指令在主模板和接入板卡仍需要进行点位图匹配,但由于控制的同步性要求,我们将不需要定义原始控制信息量和信息紧凑后的信息量的操作临界比例,因为对不同板卡的同步控制不仅仅是压缩信息量的需要,更多是基于信息的有效性的需要。图8当我们对多个接入板卡发送不同控制指令时,如图9所示,红色区域为将要发送的指令,系统将根据此位图表定位列项和行项,然后将该数据在总线上以广播的方式发送,板卡通过对列项数据的处理获得是否有控制信息的输入,然后板卡根据行项值查找指令列位图,获得并行控
15、制信息的指令,实现主控器对多个板卡的同步控制。如果按图中所示定位每个互斥段板卡(列项)需要2+2+2+1比特数据,定义不同控制的互斥指令(行项)需要2+3+3+2比特数据,那么对指定板卡发送多条指令时共计需要17比特数据量,这时指令在主模板和接入板卡进行点位图匹配的时间相对与数据传输的时间将产生很大影响,而且控制信息量压缩有限且没有真正意义的同步控制特征,所以当对多个接入板卡发送不同控制指令时一般不需要进行信息紧凑。图9当我们对多个接入板卡发送多条同步控制指令时,如图10所示,红色区域为将要发送的指令,系统将根据此位图表定位列项和行项,然后将该数据在总线上以广播的方式发送,板卡通过对列项数据的
16、处理获得是否有控制信息的输入,然后板卡根据行项值查找指令列位图,获得并行控制信息的指令,实现主控器对多个板卡的同步控制。如果按图中所示定位每个互斥段板卡(列项)需要2+2+2+1比特数据,定义不同控制的互斥指令(行项)需要2+3+3+2比特数据,那么对指定板卡发送多条指令时共计需要17比特数据量,此时信息紧凑后,不仅完成了信息量的压缩,而且可以实现同步控制,保证了信息的有效性和控制的实时性。图105.结束语采用基于堆栈结构的开放式控制器系统的体系结构,控制器系统可以方便的实现控制模块的扩展;文中仅对有关板卡加载过程和驱动加载过程给予说明,并针对系统在通信过程中信息有效性和实时性给出具体的策略,
17、其中信息紧缩技术目前仅限于构想层次。对于整个系统构成而言,有关驱动框架的开发,系统总线协议的设计7,监控程序的功能选择以及配置系统的操作原理将有待进一步研究和论证。参考文献1 James E Overbeke. Open Architecture J,Tooling & Production, 19962 Paula M. Noaker, The PCs CNC Transformation J. Manufacturing Engineering, 19953 Prischow G, et al. Open Controller Architecture-Past, Present and
18、Future. Annals of the CIRP v.50/1, 20014 Kynast R. Digital Drive Interface. SERCOS Interface, p.10-13 Vogel Verlag, Berlin. 20045 Lutz P. Secom 816-Controller for Secom interface. SERCOS interface, pp. 10-13 Vogel Verlag, Berlin. 20046 Brandon J R, Howarth M S Searcy S W A Neural Network for carrot Tip Classification. No.9075497 Open System Architecture for Controls with automation System EP6379&EP9115 .