?嵌入式运动控制器系统的设计与开发
摘??要:本文综合运用嵌入式系统技术和运动控制技术,采用X86架构的PC104作为核心中央处理器的方案,详细介绍了嵌入式运动控制器的硬件设计,及如何使用Windows?CE?Platform?Builder开发平台,进行裁减和定制嵌入式运动控制器的Windows?CE操作系统平台,进行软件设计。 1?引言
目前,嵌入式技术已成为通讯、控制和消费类产品的发展方向,嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它的开发应用已被列入国家重点科技发展计划,以其体积小、功能强、价格低的优势而得到日益广泛的应用,已成为工业自动化应用的一种趋势。
运动控制器技术,是综合应用自动控制、计算机控制等相关技术,对机械传动装置中电机的位置、速度进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数完成相应的动作。嵌入式结构的运动控制器把计算机嵌入到运动控制器中,能够独立运行,它与计算机之间的通信采用了可靠的总线连接方式(采用针式连接器)?,更加适合工业应用。
2?系统硬件平台设计
嵌入式运动控制器主要包括两个部分:嵌入式CPU主板和运动控制模块[1][2][3][12]。运动控制模块可采用固高科技有限公司的高性能运动控制板卡,在高性能运动模块的基础上,对嵌入式处理器部分有严格的要求,例如:对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间;具有功能较强的存储区保护功能;可扩展生长的处理器结构,能迅速地开发出满足各种应用性能的嵌入式微处理器;功耗很低等等。
图?1?PC104模块
可选的方案包括:1)基于单片机,适合于数据量小、速度较低、功能简单的现场控制,无法胜任要求高速、高精度的运动控制器。?2)基于ARM架构或其他微控制器,优势在于简单的设计和高效的指令集,但是目前对现有通用软件的兼容性不理想,必须培训专门的软件人员。?3)PC104的X86架构,即X86体系结构的CPU,主要是Intel公司的CPU,也包括AMD、威盛、ICOP(昭营科技)等公司与其兼容的CPU。通过PC104总线,连接X86架构的PC机主板与运动控制板卡,组成嵌入式运动控制器。在非常成熟的运动控制板卡技术的基础上,这种形式的嵌入式运动控制器实现简单,开发时间较短。
因此选用了ICOP-6070嵌入式主板作为系统核心,具体接口见图?1。除了核心控制模块外,就是运动控制模块,它是具体动作的执行者。嵌入式PC104主机板通过插件直接插装在运动控制卡上,运控卡上有两个DB62插座,连接到端子板上,再由端子板给出控制电机信号。由于运动控制器和计算机模块之间分别采用插针式的连接,相互独立,运动控制器和PC板都可以作为一个独立的模块,生产升级容易,维修方便,可靠性也相对较高。
图?2为嵌入式PC104主板和运动控制卡之间机械连接示意图。
图?2?核心模块与运控模块的连接示意图 系统的完整构建过程如下:
(1)?将ICOP-6070嵌入式主板与固高运动控制卡通过PC104接口装在一起。 (2)?然后将外部输入设备和输出设备接到嵌入式主板上。
(3)?其次通过两个根62PIN的数据线将固高IO端子板和固高控制卡接在一起。 最后将24V的输入信号,输入给固高IO端子板和嵌入式主板。 3?软件平台设计
工业嵌入式系统的主要指标是:实时性、高效率、安全稳定性与可靠性以及结构紧凑、易于剪裁、良好的开放性。可供嵌入式应用的图形操作系统有多种,比如Windows?CE、Palm?OS等,而Palm?OS一般只应用在手持设备上。适合工业环境应用(过程)标准的系统,目前有Windows?CE?和Linux等几种。
WinCE是微软开发的多任务嵌入式操作系统,模块化及可伸缩性、实时性能好,通信能力强大,支持很多种嵌入式CPU(包括X86,arm等)。选择Windows?CE?.net嵌入式操作系统,作为本嵌入式运动控制系统的操作平台,最主要考虑Windows操作简单实用,多任务的操作,功能的强大,性能的稳定,最主要是Windows程序移植方便,熟悉Windows程序开发的人员,能够迅速掌握Windows?CE?.net程序的开发,同时减少程序开发人员的难度。
3.1?操作系统平台设计
为了能够能在Windows?CE?.net操作系统,必须定制一个Windows?CE?.net操作系统平台,平台的生成可以使用Windows?CE?.net的工具Platform?Builder?4.2。其生成平台主要步骤如下:
(1)?将Windows?CE?.net?4.2的操作平台装入PC机。
(2)?将ICOP?6070的BSP程序安装到PC机。
(3)?执行“Platform?Builder”,进入平台创建向导对话框,点击“NEXT”接钮。 在此对话框,须要为ICOP主板选择“ICOP_VORTEX86”BSP程序。
(4)?继续点取“NEXT”按钮,在对话框中,可以选择“Industrial?Controller”功能项。
当嵌入式平台创建成功后,则需要对此平台进行编译设置;在采用平台创建向导生成的一个平台后,可能此平台存在不需要的文件信息,又或缺少相关文件。 为此,要对此平台进行删除、添加相关文件,配置相关编译信息。
(1)?手动添加对存储硬盘和FAT文件系统的支持。先在目录显示区中的“Device?Drivers”?->“Storage?Devices”->“Storage?Devices”找到“ATAPI?PCI/IDE?Storage?Block?Driver”信息,在此栏上点击鼠标右键,在弹出的对话框中,点取“Add?to?platform”一项,此时,此相关信息就被加入到平台工程中。采用同样方法,在目录显示区中的“Core?OS”?->“Display?based?devices”->“File?Systems?and?Data?Store”?->“Store?Manager”找到“FAT?File?System”信息,在此栏上点击鼠标右键,在弹出的对话框中,点取“Add?to?platform”,相关信息就被加入到平台工程中。 (2)?需向平台工程中加入对Windows?SDK和MFC类库的支持.?MFC类库支持在目录显示区中的“Core?OS”?->“Display?based?devices”->“Applications?and?Services?Development”?->“Microfot?Foundation?Classes(MFC)”。
(3)?嵌入式平台的工程基本功能添加完毕后,就可以编译此平台。在编译平台之前,先进行平台设置,在“Platform?Settings”对话框,选中选项“Enable?Images?Larger?than?32MB”,保存更改设置。
(4)?编译平台,生成Windows?CE?.NET操作系统的映像文件?NK.bin。
(5)?完成了嵌入式平台的工程,可以将NK.bin下载到主板运行,也以通过网络下载到嵌入式主板上运行。
3.2?嵌入式运动控制器驱动程序
在使用运动控制器之前,必须先安装运动控制器的驱动程序,这样才可以正确使用运动控制器,加入此驱动程序的步骤如下:
(1)?将运动控制器驱动程序文件GooGolDriver.dll拷贝到平台的Release目录下。
(2)?在平台编辑环境中打开工程中project.reg文件,将如下文本内容复制到此文件中。
[HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\GooGolDriver] \ \ \ \
(3)?在平台编辑环境中打开工程中project.bib文件,将如下文本内容复制到此文件中。
GooGolDriver.dll?$(_FLATRELEASEDIR)\\GooGolDriver.dll?NK?SH (4)?上述操作可用于注册驱动程序和将驱动程序GooGolDriver.dll打包到映像NK.bin。驱动程序文件GooGolDriver.dll导出十个函数,用于提供给系统调用,函数分别如下:GOL_Close,GOL_Deinit,GOL_Init,GOL_IOControl,GOL_Open,GOL_PowerDown,GOL_PowerUp,GOL_Read,?GOL_Seek,?GOL_Write。这十个函数不能够直接调用,Windows?CE?.NET有专用的API函数可以调用它们。
3.3?运动控制器动态链接库安装:
在使用运动控制器之前,须先安装运动控制器的动态链接库,才可以正确使用运动控制器。动态链接库包含对运动控制器的运动函数指令,如直线运动指令GT_LnXYZ,圆弧运动指令GT_ArcXY等等。加入此驱动程序的步骤如下: (1)?将文件gtdll.dll拷贝到平台的Release目录下。
(2)?在平台编辑环境中打开工程中project.bib文件,将如下文本内容复制到此文件中。
gtdll.dll?$(_FLATRELEASEDIR)\\gtdll.dll?NK?SH (3)?上述操作可用于注册驱动程序和将驱动程序GooGolDriver.dll打包到映像NK.bin中。
4?控制软件的设计
构建了系统软件后,还需要进行应用软件的开发设计。嵌入式软件的开发平台有多种,较为常见的开发平台为:eMbedded?Visual?C++,与Windows操作系统下的开发环境Visual?C++非常类似,所以熟悉windows操作系统Visual?C++开发环境的人能够较快掌握eMbedded?Visual?C++。
使用eMbedded?Visual?C++开发之前先安装嵌入式操作平台的SDK,否则无法打开eMbedded?Visual?C++。构建嵌入式操作平台的SDK操作如下:
(1)Platform?Builder平台开发环境中,点取“Project”->“Configure?SDK”,配置将生成的SDK。在配置对话框中,可以修改将导出的SDK的文件名及其存入目录、相关信息。SDK的文件名为ICOP6072_SDK.msi。
(2)配置好SDK导出的相关信息后,再点取“Project”->“Build?SDK”,在此对话框中,可以导出一个SDK,在配置文件设置目录下,创建一个ICOP6072_SDK.msi的文件。
(3)在Windows操作系统下双击ICOP6072_SDK.msi文件,安装Icop?5072的嵌入式系统的SDK。
(4)至此,嵌入式系统的SDK安装完毕,eMbedded?Visual?C++可以在此SDK的基础下开发程序。
本软件最主要的功能通过运动控制器的运动指令的调用,来实现在运动控制器的使用,满足具体的应用中的控制过程。
工业控制软件是工控系统中用于控制工业生产的软件部分,其安全性和可靠性的要求是非常高了。本控制软件除了具有工业控制软件的基本特点之外,还需有具有以下特点:系统软件的长期稳定工作的特性;控制软件实时性;控制软件操作的实用性、简单性; 根据工业控制软件特点,因此本软件中没有丰富的图形显示界面,主要从功能实现、软件稳定性、控制的实时性、软件操作简单上编写。以能够完好的达到功能演示为目的编写此程序。
在对嵌入式运动控制器操作之前,先必须初始化嵌入式运动控制器;为了更好的反应当前加工状态,须要实时读取当前加工机床的实际位置,根据此位置信息,把实际的加工情况用简单的三维图形显示出来。 5?小结
传统基于PC的运动控制器,采用软件实现的控制方法,无论性能如何提高,也不能胜任越来越高的高速高精度要求。嵌入式运动控制器的研究是一个系统的过程,为了确保性能的稳定和可靠性,必须对软硬件的设计有一个全面地认识。本文提出的PC104设计方案解决了目前市场对嵌入式运动控制器的强大需求。本文的研究内容将对今后的研究工作起到一定的指导作用。
6?结束语
本系统是固高科技有限公司目前在嵌入式运动控制领域开发出的一套功能强、性能稳定、体积小、价格低、适合工业控制的运动控制系统,是在传统PC-Based?运动控制器基础上的重要创新。本文的创新在于:目前对嵌入式控制器的应用介绍得较多,没能够对核心的研发技术进行研究;另外本文对嵌入式系统操作系统平台Windows?CE的研究,使得客户现有的Windows下编译的应用软件,可以很方便的移植到CE下使用,减少开发周期,降低开发成本,快速见效益。
此贴来自中华工控网工控博客。