控制器设计

机载电台担负着空空和地空之间通信,为保证电台性能,需要对其进行定检。基于单片机的检测仪存在测量速度慢、可扩展性差的问题;而基于PXI仪器或VXI仪器的检测仪存在着功耗大、体积大、价格高等缺点。为解决上述问题,利用基于ARM处理器来实现电台检测控制器成为重要的发展方向,ARM是一种高性能、低功耗的RISC结构处理器,由于其出色的性能被广泛应用于工业控制、无线通讯、成像和安全、网络应用等方面,采用基于ARM的电台检测控制器具有可移植性强、可扩展性好、抗干扰能力强等优点。

1 硬件设计

良好的硬件设计是是解决基于单片机、PXI、VXI等系统的电台检测仪问题的关键。为实现硬件结构的模块化设计,硬件主要分为两大部分:主控制器电路和调理电路。为设计一个具有高性能、低功耗、可扩展性好和低成本检测仪,主控制器的选择至关重要,为满足检测仪的可扩展性设计主控制器必须具备网络功能、USB存储、串行通信、SPI通信、I2C通信、模数转换等功能模块,为满足人机交互设计的要求,还必须具备必要的频率预置电路、显示电路等。具备这么多功能的控制器以及满足高性能、低功耗等性能的控制器只有ARM处理器才能完成。根据某电台的电气特性,主控器和电台之间的通信还必须进行必要的电平转换,另外电台输出的响应信号不能直接送到主控制器,还必须进行必要的分压网络、阻抗匹配等电路设计,这就需要调理电路。主控制器电路和调理电路相配合来完成电台的检测工作,根据电台测试需求设计的硬件整体结构如图1所示。

基于ARM的某机载电台检测控制器设计

1.1 主控制器

主控制是电台检测控制器的核心,担负着信息采集、存储、网络功能以及和电台通信等重要任务,主控制的好坏也直接决定了系统性能,经对比选择飞利浦公司的LPC2388作为该电台的主控制器,该器件是基于ARM7TDMI-S内核的处理器,具有太网控制器、USB控制器、I2C、串行接口等丰富的外设,可以满足该检测仪的需求。

1.2 存储电路

为满足可扩展性、测试结果可存储的要求,检测控制器要把每次对某型电台测量的结果保存下来,这就需要有主控制器和无线电综合测试仪之间能进行通信,某无线电综合测试仪对外通信有串口通信方式,在测量时可以把通信控制接口连接到无线电综合的串口线上,这样就可以把测试结果读到控制系统内部,想把该信息存储下来,存储器就必须满足可擦写,为节省控制器的宝贵的通用I/O口,选择具有12C通信存储功能CAT24WC64作为E2PROM,该器件负责保存电台性能测试结果,最多保存50次电台测试结果,超过50次,系统自动把原来存储的测试结果擦除掉然后再存储。

当需要查看系统电台测试结果时通过3种方法来实现:
1)把USB存储设备插入USB存储接口电路,系统会自动识别该设备,然后选择存储测试结果按键就可以把保存测试结果保存到USB存储设备;
2)通过网络接口和计算机相连接,然后用远程控制的方式来读取测试结果;
3)利用串行通信方式把信息读到计算机中。

1.3 USB存储接口电路

USB接口电路是完成和USB存储设备通信的窗口,LPC2388内部具有兼容USB2.0协议的控制器,这种控制器为USB接口设计提供方便。为满足系统可靠性,在D+和D-线上分别串接上一只33 Ω的电阻,在D+上还要增加一只1.5 kΩ上拉电阻,为表明USB存储设备连接上,在Ul_UPLED引脚上增加一个指示灯,当USB存储设备连接,指示灯亮。

1.4 网络接口电路

为满足远程控制需要,检测控制器就应该具备网络控制接口。LPC2388具有10/100 Mb/s以太网通信速率,为保证可靠传输,通过内部集成了16 KB字节的以太网控制器专用SDRAM、以太网控制器和ARM7内核之间使用高速AHB总线通信,并且使用了专用DMA进行数据传输来实现。处理器内部使用的以太网控制器使用RMII接口,通过与外围电路PHY芯片DM916lA进行通信就可以实现以太网通信功能。

1.5 频率形成电路

电台检测仪要想充分地检测电台性能,应检测多个频率点处电台性能,这样就要求检测仪能够输出频率可变的控制码,频率控制码的形成就需要频率形成电路。频率形成电路就是通过脉冲整形、计数,最后进过缓冲送到主控制器。脉冲形成电路利用自复位开关来实现,整形电路利用MAX708计数和缓冲电路分别利用54HCl90和54LVC245来实现,为节省处理器宝贵的I/O口资源,采用模拟总线的方式来实现,通过锁存、译码电路来控制频率码的形成。

1.6 显示、键盘电路

显示电路是人机交互的窗口,直接显示了当前检测仪所处的状态和电台检测结果。当检测的电台不能满足性能要求时,直接显示错误结果;键盘电路完成检测仪部分功能的输入。为保证检测仪显示结果的可靠性,检测仪显示电路采用抗干扰性强的LED数码管显示,LED数码管的驱动器选用ZLG7290,ZLG7290利用三线串行码与ARM处理器进行信息交互,其动态显示功能降低了系统功耗。ZLG7290除了用来驱动显示数码管外,电台检测的部分输入也通过其键盘接口来实现,其电路图如图2所示。

基于ARM的某机载电台检测控制器设计

1.7 其他电路

一个系统能可靠工作,必须有一系列诸如晶体振荡、看门狗、电源等电路保证,提供系统工作所必需的时钟、监视电路,晶体振荡电路提供必须的时钟信号,看门狗电路在程序运行出现异常时,把微控制器提供复位信号,增加了系统的鲁棒性:电源电路为整个系统电源,采用转换效率高的DC/DC开关电源,按功能为系统设计供电,即为控制电路电源和调理电路独立供电:增加了系统的抗干扰性。

1.8 调理电路

检测控制器的工作状态和工作时序由主控制器来完成,然而这只是检测控制器检能正常工作的一个方面,另外一个重要方面就是调理电路,其主要由继电器阵列、分压网络、模拟开关、电平转换等部分组成。控制器输出的信号一般不能直接加到电台内部,这主要有两方面原因:1)检测控制器输出的串口数据为单端输出,而该电台所需要的信号为差分信号;2)控制器输出的信号电平和格式完全正确,为保证系统的抗干扰性,在控制器的输出端和电台输入端一般要加一个缓冲器,增加系统模块之间的隔离度。检测控制器面板的所有控制信息经过处理器处理后通过串口发送给电台,而电台所需要的为差分信号,利用DSl6F95来实现信号电平方式的转换。检测控制器除了测试收发机性能外还可以测试控制盒的性能,另外也可以利用控制来控制收发机,从而模拟机上控制盒控制收发机,在控制盒控制和检测控制器本身信号不能同时发送到电台,这就需要继电器阵列来完成检测仪和控制盒之间的转换。另外,为监控电台工作电压,检测仪要分时显示出工作电压,而工作电台27V以及内部收发控制电压等也要显示,这些电压需要分压网络经过分压后送到数控模拟开关,控制器轮流监视各路电压。

2 软件架构设计

电台检测控制器属于典型的嵌入式控制系统,其性能设计的好坏直接关系到系统是否能够可靠工作。嵌入式软件设计和普通的PC机软件差别较大,由于检测仪控制关系复杂,再加上网络接口、USB存储驱动、中断时间控制、定时器设计、串行通信等因素,对软件架构的要求较高,必须考虑软件和硬件检测协调,另外软件还必须满足可测性、可移植性、健壮性等设计,要综合考虑多种因素。该电台检测控制器的软件流程如图3所示。系统上电后经过初始化配置,然后选择测量控制方式,若是远程控制则启动网络连接,用计算机来控制检测控制器进行工作,进入收发机性能测试,测试的结果通过网络存储到远程计算机中;若是手动测试,则判断测量方式是测控、外控还是测控,如果是内控,则由检测控制器控制收发机,在无线电综合测试仪的配合下测量收发机主要性能,通过读取无线电综合测试仪的测试结果可以把结果保存下来,在保存结果时,如果USB存储设备存在,则把结果存在其中,反之,则存于内部的可擦写的E2PROM中;若是测控,则检测控制器测量控制盒状态,并把结果保存起来;如果是外控,则在控制盒的控制下测量收发机性能,检测控制器通过读无线电综合测试仪结果同样把测试结果保存下来。

基于ARM的某机载电台检测控制器设计

3 结束语

基于ARM实现的电台检测控制器硬件设计灵活,软件架构设计良好,实现了软件与硬件平台的无缝结合,具有高性能、低功耗、可移植性好、可扩展性好,实现了对电台的检测与控制。通过网络接口,可以实现远程控制,并可以实时读取测量结果:通过增加USB存储接口,在手动测试的情况下还可以把测量数据直接保存下来,极大地提高了测试结果的处理速度,具有广阔的经济效益和军事效益。

转自: 广电电器

围观 6
882

引 言

运动控制器是运动控制系统的核心部件。目前,国内的运动控制器大致可以分为3类:

第1类是以单片机等微处理器作为控制核心的运动控制器。这类运动控制器速度较慢、精度不高、成本相对较低,只能在一些低速运行和对轨迹要求不高的轮廓运动控制场合应用。

第2类是以专用芯片(ASIC)作为核心处理器的运动控制器,这类运动控制器结构比较简单,大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场合不能使用这类控制器。

第3类是基于PC总线的以DSP或FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插件形式嵌入PC机,即“PC+运动控制器”的模式。这样的运动控制器具有信息处理能力强,开放程度高,运动轨迹控制准确,通用性好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计算机主板的PCI或者ISA插槽,因此每个具体应用都必须配置一台PC机作为上位机。这无疑对设备的体积、成本和运行环境都有一定的限制,难以独立运行和小型化。

针对这些问题,设计了一种基于ARM+DSP的嵌入式运动控制器。该控制器将嵌入式CPU与专用运动控制芯片相结合,将运动控制功能以功能模块的方式嵌入到ARM主控板的架构,把不需要的设备裁减掉,既兼顾功能又节省成本。该控制器是一种可以脱离上位机单独运行的一种独立型运动控制器,具有良好的应用前景。

1 嵌入式运动控制器的硬件平台设计

嵌入式运动控制器的硬件主要包括两个部分:ARM主控板和DSP运动控制板。这两块控制板通过通用I/O口以总线的方式连接在一起。在设计时,可以分别对ARM主控板和DSP运动控制板进行设计,最后再调试。这种将ARM主控板和DSP运动控制板分开设计和调试的硬件方案,将设计难点分散,使设计和调试更简单。

1.1 ARM主控板部分

本系统采用的ARM芯片为Samsung公司推出的16/32位RISC处理器S3C2440A,主频为400 MHz,最高频率可达533 MHz。ARM主控板以嵌入式处理器S3C2440A为核心,外扩存储器和通用设备接口。ARM主控板的硬件结构框图如图1所示。

ARM+PCL6045B的嵌入式运动控制器设计

通过通用I/O接口与DSP运动控制板通信,实现ARM主控板与运动控制板之间数据的实时双向传送;外部NAND Flash存储器(64 MB),用于存储系统参数及运动指令;NOR Flash存储器(2 MB),用于存放系统运行程序;SDRAM存储器(64 MB),用于存放临时数据;通过串口、以太网接口、USB接口与上位机系统通信,实现两者之间数据的传送;通过LCD接口,实现320×240分辨率液晶屏的图形与字符显示,并具有触摸屏接口,提供友好的人机交互界面;通过I/O扩展接口,提供可编程的数字I/O通道;通过JTAG接口与PC机通信,实现系统运行程序的仿真调试及下载,软件升级接口。

1.2 DSP运动控制板部分

本系统DSP运动控制芯片选用PCL6045B。PCL6045B是一种功能十分强大的DSP运动控制芯片。芯片能够控制四轴,并实现两轴到四轴直线差补、两轴圆弧差补。所有插补计算由芯片完成,上位机只需写入圆弧的参数即可,其多轴插补控制功能特别优秀。系统硬件采用主从式双CPU结构模式。主CPU为ARM处理器,负责键盘、显示、网络通信等管理工作;从CPU为PCL6045B运动控制芯片,专门负责运动控制的处理工作。PCL6045B与ARM的通信是靠读写I/O总线上的几个地址来进行指令和数据的传输。控制系统硬件结构框图如图2所示。

ARM+PCL6045B的嵌入式运动控制器设计

1.3 ARM处理器与运动控制芯片的连接

通过设置引脚IF0与IF1,PCL6045B芯片与不同的CPU相连,如表1所列。

ARM+PCL6045B的嵌入式运动控制器设计

本系统设置IF1:IF0=0:1,CPU连接如图3所示。

ARM+PCL6045B的嵌入式运动控制器设计

2 嵌入式运动控制器的软件设计

本系统可根据被控对象的特征设计不同的模块化用户软件,来满足不同的运动控制任务。模块化软件恰好是Linux操作系统的优点。Linux还可以根据用户的需求实现内核的裁减和定制,源码开放,网络支持功能强大,价格上也更具有竞争优势等。所以该控制器选用Linux作为片上系统(SoC)。但是,Linux并不是一个实时操作系统,因此,通过实时内核补丁RTAI(Real Time Application In-terface),在硬件平台的基础上增加一个实时内核,将Linux内核当作它的优先级最低的任务执行,从而保证运动控制系统的实时性。系统的控制软件分为两个区域:非实时域和实时域。非实时域是建立在普通Linux内核基础上的,其主要包括系统初始化和通信模块。

①系统初始化:进行微处理器的硬件初始化,包括输入/输出接口的配置、具体总线通信方式的配置以及伺服系统相关的接口参数配置。

②通信模块:负责运动控制卡和上位机之间的坐标值、速度值、数控系统的I/O接口状态、报警状态以及数据链表的传输。

实时域建立在RTAI实时内核的基础上。其实时任务通过实时进程的方式来完成,一种为周期性(peri_odic)实时进程,另一种为一次性(one shot)实时进程。实时域主要包括如下4个周期性实时线程:

①状态检测线程(rt_monitor_thread)。本任务对设备运行状态进行检测,负责从I/O端口读入各个连接的I/O设备值,然后将状态写入状态检测缓冲区中,对设备急停、伺服报警、限位信号进行判断,并进行相应的处理。

②插补线程(rt_interpolation_thread)。从译码缓冲区中顺序取得插补数据,然后根据是直线或者圆弧进行插补,插补得到下个周期应该到达的理论坐标值。

③位置控制线程(rt_position_thread)。读取计数器中编码器的数值,得到实际的位置,并与插补器中的理论位置坐标作比较。根据差值调节PID参数,并将具体脉冲输出数写入对应的PWM口的脉冲数寄存器中。

④功能控制线程(rt_function_thread)。功能控制任务利用RTAI实时管道来传递命令和状态信息的功能。通过管道的命令设置实现Linux操作系统对实时部分RTAI的访问,从而实现运动控制器的运行、暂停、给定速度等状态设置。

2.1 软件平台的建立

软件平台是系统应用程序开发的基础。本系统软件平台主要包括:ARM-Linux的移植、串行接口驱动开发、USB接口驱动开发、LCD接口驱动开发、触摸屏接口驱动开发、以太网接口驱动开发、文件系统的移植等。这些软件的开发和移植在很多文献中有详细的说明。

2.2 运动控制函数库的设计

通用运动控制器的功能主要取决于运动控制函数库。要做成一个开放式的运动控制器,必须编写丰富的运动控制函数库,以满足不同的应用要求。运动控制函数库要为单轴及多轴的步进或伺服控制提供许多运动函数,如单轴驱动、两轴直线插补、3轴直线插补、圆弧插补等等。另外,为了配合运动控制系统的开发,还编写了一些辅助函数,如中断处理、编码器反馈、间隙补偿、通用开关量的输入输出等。这样,用户在开发应用程序时就不必再关心底层的东西,只需根据控制系统的要求编制人机界面,并调用运动控制函数库中的函数,就可以开发出满足要求的多轴运动控制系统。

2.3 对Ljnux进行实时化改造

由于Linux不是一个实时操作系统,所以,利用实时内核补丁RTAI(Real Time Application Interface)。RTAI的安装和使用详见参考文献[7]。该控制器所使用的Linux开发环境为ELDK(Embedded Linux DevelopedKit)3.0。Linux内核为Linuxp pc_2_4_devel,而RTAI的版本为24.1.12。由Linux中的init_module()和cleanup_modtde()两个函数加载和卸载实时任务模块,通过这两个函数进行实时线程及其处理函数的创建和回收。其关键程序如下:
ARM+PCL6045B的嵌入式运动控制器设计

2.4 应用软件设计

应用软件主要包括人机交互界面的设计、数控指令的编译解释、按键功能的实现、运动状态的监视等。通过操作系统ARM-Linux,可方便地实现上述功能,并进行多任务的调度。运动控制器根据输入的数控指令文件,将其存入NAND Flash中。ARM处理器通过对数控指令进行译码、速度预处理、粗插补计算等,调用运动控制函数,进而发出控制指令控制步进或伺服系统去控制执行部件进行动作,从而达到实现运动控制的目的。

结 语

本文综合应用ARM嵌入式系统技术、DSP运动控制技术等多种技术开发出高性能的嵌入式运动控制器。该控制器相比传统的基于PC机的运动控制器,具有成本低、体积小、功耗低、功能丰富、运行稳定的特点和优势。以ARM微控器和PCL6045B为核心的嵌入式运动控制器,采用Linux操作系统,经过对其进行实时化改造,使系统能很好地进行多任务处理,保证了系统的实时性。该控制器能够实现高速和高精度的运动控制需求,具有良好的运动控制性能。该运动控制器的设计,为读者提供了一种良好的解决方案,在运动控制领域具有广阔的应用前景。

来源: 中国百科网

围观 9
403

运动控制系统已被广泛应用于工业控制领域。近年来,工业控制对运动控制系统的要求越来越高。传统的基于PC及低端微控制器日渐暴露出高成本、高消耗、低可靠等问题,已经不能满足现代制造的要求 。随着嵌入式技术的日益成熟,嵌人式运动控制器已经初露锋芒。基于ARM技术的微处理器具有体积小、低成本、低功耗的特点,决定其在运动控制领域具有良好的发展前景。

PCL6045BL是一种新型专用DSP运动控制芯片,它具有强大的数据处理能力和较高的运行速度,可以实现高精度的多轴伺服控制。为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,文中给出一种基于ARM 微处理器S3C2440与DSP专业运动控制芯片PCL6045BL构成的嵌入式四轴运动控制器。该运动控制器具有高性能、低成本、体积小、可独立运行等特点,可以满足运动控制系统高速、高精度的 要求。它可广泛应用于雕刻机、机器人、绣花机以及数控加工等工业控制领域。

为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,给出一种基于ARM微处理器S3C2440和专用DSP运动控制芯片PCL65045BL组合的嵌入式四轴运动控制器。硬件上该控制器采用ARM+DSP的主从式双CPU结构,结合ARM在人机界面显示、通信接口方面的优势以及PCL6045BL高控制精度的优点。软件上在S3C2440上移植μC/OS-II实时操作系统来管理运动控制系统。该控制系统通用性较强,可广泛应用于雕刻机、机器人、绣花机以及数 控加工等工业控制领域。

1 系统总体设计

嵌入式四轴运动控制器主要由硬件部分和软件部分构成。

硬件主要包括S3C2440嵌入式主控板和PCL6045BL运动控制板两个部分。S3C2440嵌入式主控板和PCL6045BL运动控制板之间通过通用的IDE通信接口进行连接。

软件方面在硬件平台的基础上移植S3C2440实时嵌入式操作系统,设计Boot Loader、外设驱动以及运动控制系统的应用程序。采用上述的软硬件平台,嵌入式运动控制器可以达到开放性能好、精度高的要求。本嵌入式四轴运动控制器的结构如图1所示。

ARM+DSP的嵌入式四轴运动控制器设计
图1 嵌入式四轴运动控制器的构成

ARM具有丰富的片内外围电路,如USB接口、IIS接口、LCD控制器等,在人机界面的显示、通信接口以及系统移植方面具有更强大的功能。PCL6045BL运动控制芯片速度快,可靠性高,性能好,在运动控制方面有很大的优势。

实时操作系统μC/OS-II包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理等功能,可以使各个任务独立工作,互不干涉,很容易实现准时而且无误地执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化 。将S3C2440处理器、PCL6045BL 以及μC/OS-II三者的优势应用到本嵌入式四轴运动控制器中可以使其具有强大的功能,并缩短开发时间。

本嵌入式四轴运动控制器以S3C2440为主控平台,在ARM上移植μC/OS-II实时操作系统来进行人机界面的显示、I/O的管理、任务问的通信、指令的编译等工作。PCL6045BL运动控制模块主要负责位置控制,插补驱动,速度控制。用户的指令通过S3C2440指令编译系统的编译,通过与PCL6045BL之问的专用通信接口来控制DSP运动控制芯片发出脉冲以达到使伺服电机高速运行。

2 系统硬件设计

2.1 系统硬件平台设计

在控制系统中,以S3C2440处理器为主控核心,PCL6045BL运动控制芯片为从CPU,构建的嵌入式运动控制器结构如图2所示。

ARM+DSP的嵌入式四轴运动控制器设计
图2 系统硬件

S3C2440是一款16/32位ARM920T RISC处理器,它实现了MMU、AMBA总线和独立的16 KB指令和16 KB数据哈佛结构的缓存,每个缓存均为8个字长度的流水线。S3C2440提供全面的、通用的片上外设,不需要配置额外的部件。PCL6045BL运动控制芯片,由NPM公司生产,是一种通过总线接收CPU命令、并产生脉冲控制步进电机或脉冲驱动型伺服电机的CMOS大规模集成芯片,可提供多种输出运动控制功能,包括连续、定长、回原点等输出方式。PCL6045BL可以实现2~4轴线性插补及任意两轴圆弧插补。在这种主从结构框架基础上,主CPU S3C2440主要负责数据的存储、人机界面的显示、网络通信等管理工作。从CPU PCL6045BL输出的脉冲发送给4个轴的伺服驱动器。S3C2440只需要通过发送简单的指令给PCL6045BL,便可实现各种控制功能。

2.2 ARM 与PCL6045BL的连接

PCL6045 BL与ARM的通信是通过读写I/O总线上的几个地址来进行指令和数据的传输。PCL6045BL每个轴的内部寄存器地址由A0、A1 和A2地址线输人决定,其控制地址范围由输入端子A3和A4进行选择。因此在这种主从结构的设计中,ARM与PCL6045BL的连接如图3所示。

ARM+DSP的嵌入式四轴运动控制器设计
图3 PCL6045BL与S3C2440的接口电路

2.3 I/O接口电路

嵌入式四轴运动控制器与伺服电机之间是通过I/O接口电路进行连接的。I/O接口电路主要任务是完成输入信号的光电隔离以及对输出脉冲的驱动。设计中采用光电耦合器将PCL6045BL芯片与后面的伺服电机驱动器以及其他控制反馈等线路隔离。由于光耦合器输入输出问互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。将PCL6045BL的输出信号(如CP、CW等)和输入信号(如报警、限位等)都使用光耦器件与PCL6045BL隔离,这样能有效地防止干扰信号进入主芯片损坏PCL6045BL。

3 软件设计

系统软件部分由μC/OS-II实时嵌入式操作系统及相关应用软件组成。μC/OS-II实时嵌入式操作系统仅仅提供了一个任务调度的实时内核,因而需要自行开发一系列与系统运行相关的设备驱动程序、API函数及应用程序,才能将μC/OS-II扩展为一个完整、实用的实时操作系统。

3.1 Boot Loader的设计

嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Boot Loader来完成。Boot Loader是系统加电后运行的第一段代码,负责初始化系统并启动操纵系统,相当于PC机的程序。Boot Loader初始化硬件设备,建立内存空间的映射图,为最终调用操作系统内核准备好正确的环境。

Boot Loader分为阶段1和阶段2两个部分,与CPU核以及存储设备密切相关的处理工作通常都放在阶段1中,且可以用汇编语言来实现;而阶段2则通常用C语言来实现一般的流程以及对板级的一些驱动支持。

阶段1主要进行定义入口、设置中断向量、系统寄存器配置、初始化寄存器等操作。而阶段2主要完成调用初始化函数、初始化闪存设备、初始化内存分配函数等操作。Boot Loader是嵌入式系统软件开发的第一个环节,把实时操作系统和硬件平台紧密地结合起来,对于嵌入式系统的软件开发尤为重要。

3.2 μC/OS-II在S3132440的移植

嵌入式实时操作系统μC/OS-II是一个源代码公开的多任务实时操作系统内核,它简化了应用软件的设计,使控制系统的实时性得到保障。良好的多任务设计,有助于提高控制系统的稳定性和可靠性。所谓移植,就是通过修改操作系统内核与处理器相关部分的源代码,使一个实时内核能在微处理器或微控制器上运行。μC/OS-II的文件系统结构包括核心代码部分,配置代码部分,处理器相关代码部分,如图4所示。其中处理器相关代码部分包括OS_CPU.H,OS_CPU.A.ASM,OS_CPU.C.C 3个文件。将μC/OS-II移植到S3C2440只需要修改与处理器相关的代码即可。

ARM+DSP的嵌入式四轴运动控制器设计

3.3 系统应用程序设计

实时应用程序的设计过程包括如何把问题分割为多个子任务,每个子任务都是整个系统的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和堆栈空间。一个任务,也叫一个线程,是一个简单的程序,该程序可以认为CPU完全只属于自己。在本设计中将任务划分为人机界面的设计、数控指令编译解释、伺服单元采集任务、状态监视等。μC/OS-II可以按照优先级启动各个任务,并通过内核来完成任务之间的调度。系统的基本流程如图5所示。

S3C2440根据系统的应用程序对指令进行解释,调用运动控制函数,继而PCL6045BL发出脉冲控制伺服电机去控制执行机构动作,实现运动控制的结果。

ARM+DSP的嵌入式四轴运动控制器设计
图5 用户程序流程

3.4 NC代码解释

运动控制器接受来自上位机发送过来的加工文件,但加工文件指令在程序中不能直接被识别,在执行指令之前必须先对其进行解析译码。解释器的主要功能就是将用户程序以程序段为处理单位,将程序中的轮廓信息、运行速度和辅助功能信息,转换成嵌入式运动控制器能够执行的格式。解释过程主要包括数控文件的读入、词法分析、语法分析以及加工信息存储数据结构等过程,如图6所示。

ARM+DSP的嵌入式四轴运动控制器设计
图6 程序处理流程

4 实例分析

上位机通过RS485总线与S3C2440连接,把NC指令文件输入到ARM 中,经过NC代码解释器,变成PCL6045BL能够识别的代码,从而完成规定的运动控制功能。用NC代码编写如下加工程序:

N001 COO X15 Y25//起始点选定

N002 G18//XY平面选择

N003 G90 G01 X15 Y5//准备直线插补

N004 X30 Y5//(15,5)到(30,5)

N005 X30 Y15//前行至点(30,15)

N006 X45 Y15//前行至点(45,15)

N007 X45 Y5//前行至点(45,5)

N008 X60 Y5//前行至点(60,5)

N009 X60 Y25//前行至点(60,25)

N010 X15 Y25//回到始点(15,25)

根据上面所给的代码可以完成如图7所示的多点之间直线插补的功能。

ARM+DSP的嵌入式四轴运动控制器设计
图7 多线段直线插补运动轨迹

5 结语

该运动控制器的硬件结构是基于微处理器S3C2440和PCL6045BL运动控制芯片设计的,它较好地发挥了ARM处理器的高性能、低成本和运动控制芯片的高可靠性、开发周期短的优点;在控制器硬件平台上移植μC/OS-II实时操作系统既能使整个软件系统结构简结、层次清晰,又能很好地达到运动控制实时性的要求。

来源: elecfans.com

围观 16
386

本文设计了一种基于2μm高功率光纤激光器的医疗仪,以STM32为控制核心,完成了人性化的人机触控界面功能设计、激光器的驱动控制、精密水冷单元的参数监控、配电模块的抗干扰设计以及输出功率的校准。

2μm高功率激光医疗仪市场需求越来越大,而目人机交互模块前国内此类设备在控制上缺乏对系统安全和出光精准度的考虑。同时随着YY0505-2012医用电气电磁兼容标准于2014年的执行,设计符合YY0505-2012标准的医用设备已迫在眉睫。因此,本文采用模块化设计,设计了一种基于STM32的2μm光纤激光器医疗仪控制系统,将水冷单元的参数监控、电源模块的抗干扰设计、输出功率的校准等集成于一体。测试结果表明,系统可靠稳定,操作方便。

系统功能和结构设计

按功能划分,医疗仪主要由2μm光纤激光器模块、精密水冷单元、STM32主控制器模块、人机交互模块等部分组成,结构如图1所示。控制器是医疗仪的大脑,负责整个设备的启停和正常运行。2μm光纤激光器经过光学系统准直聚焦,得到医用激光,在特定条件下,脚踏开关闭合发出相应功率的激光,由光纤传导到病灶部位。精密水冷单元的循环水流经激光腔,使激光器工作在合适温度,确保输出功率稳定,且水冷单元的启动总是先于激光器,防止激光器在高温高湿环境下结露而损坏。门控直接与激光器内部的interlock信号相连,同时主控器对其状态实时监测。此外光纤检测可对医用光纤进行规范化管理,防止因光纤老化影响治疗效果。

图1医疗仪总体结构图
图1医疗仪总体结构图

设备以触摸屏为主要人机交互平台,实现的功能包括:汽化与凝血参数的同时设置;不同方案的保存和调用;能量、计时等治疗参数的统计显示;系统异常状态的报警提示;出光指示灯的亮度调节。

系统硬件设计

2.1系统硬件结构

系统硬件以STM32F107VCT6为核心,硬件框图如图2所示。精密水冷单元的参数监控包括高低水位、水流量、水压力、水温的监测;以触摸屏为主的人机交互模块集成了出光指示灯、钥匙开关、急停、启动、脚踏、门控等外部硬件控制;配电模块集成了继电器驱动电路和电磁兼容设计。其中,水冷单元、光纤激光器、触摸屏和音效合成模块分别通过RS232与主控制器通信。

图2系统硬件框图
图2系统硬件框图

2.2配电模块电路设计

为实现高可靠性,配电模块电路采用冗余设计,每路继电器驱动电路控制两个固态继电器。以图3所示激光器的继电器驱动电路为例,U5、U6代表两个继电器,输出端分别串联到电源的零线和火线上,实现同开同断,避免某一个继电器发生故障时影响整个系统的工作。每路信号除通过I/O控制外,急停信号也对继电器可控,达到软件和硬件同时急停的目的。选用的急停按钮是常闭型,高电平有效,当急停触发时,Q3不导通,致9引脚电平拉低,再与I/O信号经过与门,输出也为低电平,致Q4不导通,继电器处于开路状态,电源断路。

另外,电路一方面在STOP和I/O信号接口处接入5V瞬态抑制管,以防止静电积累损坏器件;另一方面在Q4导通时D3点亮作为电路工作状态指示,当系统出现异常时方便故障排查。

图3继电器驱动电路
图3继电器驱动电路

2.3配电模块电磁兼容设计

电磁兼容问题是影响医用电气设备安全有效的重要因素之一,不仅直接影响医用设备的安全使用,甚至会对患者以及医护人员的人身安全造成影响。国家食品药品监督管理局于2012年12月正式发布了新版标准YY0505-2012,并于2014年1月正式实施,该医疗仪配电模块结合此标准做了相关电磁兼容性(EMC)设计。实际工作环境下该系统电磁干扰主要来源于电源线上的高频干扰、接线端口的静电干扰、浪涌电流、可控硅通断时产生的干扰等。

首先考虑硬件选型,选用交流单相双节电源滤波器,不仅能抑制共模干扰,对快速瞬变脉冲群(EFT)实验也有很好的辅助效果。与传统电磁线圈继电器相比,固态继电器的寿命长,可靠性好,切换速度可达几毫秒至几微秒,没有触点燃弧和回跳,减少了电磁干扰和瞬态效应,但固态继电器导通时会产生较大热量,系统通过在继电器下方放置散热片来解决此问题。

配电模块的结构框图如图4,在电源的进线端串入滤波器,然后进入瞬态电压浪涌抑制模组(包含千瓦级TVS、压敏电阻、防雷管等),再接入继电器,最后在电源进入每个模块之前再分别串入滤波器。测试结果表明,该结构能够达到抑制电磁骚扰(EMI)和提高仪器的电磁抗扰度(EMS)的双重目的。

图4配电模块结构框图
图4配电模块结构框图

系统软件设计

3.1软件功能设计

系统软件主要实现以下功能:

(1)5个安全状态的实时检测,包括检测光纤连接、脚踏连接、门控、水冷单元连接和激光器连接是否正常。
(2)5个工作状态的判定,包括开锁状态、初始化状态、参数设定状态、准备状态、异常状态的判定。
(3)水冷单元参数的采集,包括压力传感器、水位开关、温度传感器、流量传感器数据的采集,并判断是否超出正常范围。
(4)激光器内部状态参数的读取并分析,激光器内部有一个32bit的状态字,存放激光器当前的工作状态,读取每一位状态,判断激光器当前是否正常工作。
(5)外部硬件设备信号的采集和控制,包括钥匙开关、急停按钮、启动按钮、出光指示灯和脚踏开光的信号采集或控制。
(6)工作参数的设定,包括汽化和凝血功率的设定、指示灯的开闭、存储方案的设定和选择。
(7)操作日志的存储和显示,包括开机时间、工作累积时间、出光累积时间和出光能量累积的存储以及当前治疗方案的出光时间和出光能量的显示。
(8)激光输出功率的校准。

软件流程如图5所示,按系统要求,异常状态优先级最高,通过中断处理。为节省系统资源,对5个安全状态每1s扫描1次,若发现连接异常,系统重新自检,直到连接正常方可进入主循环。对其他触摸屏有效包、水冷单元有效包、激光器有效包依次处理。

图5系统软件流程图
图5系统软件流程图

3.2激光功率自动校准算法

由于医疗产品对可靠性的特殊要求,激光输出功率的准确性必然成为衡量一台医疗设备品质好坏的重要参数。激光功率在光纤耦合处和光纤尾端、切口端面会产生衰减,如图6所示。光纤终端功率小于用户设置功率,尤其在设置功率小于60W时,最大偏差达63.6%。为了得到准确的光纤终端功率,需要借助功率计采集终端功率并读取与之对应的激光器驱动电流,然后通过插值法得到功率与电流的分析表达式,以便用户设置每个功率参数时都能找到与之对应的电流值。

图6校准前终端采集功率与用户设置功率关系
图6校准前终端采集功率与用户设置功率关系

采集了16组对应值,由于环境等因素影响采集结果,导致偶然误差。为了尽可能准确地得出未知点,相同实验重复4次,并将对应值取平均。通过增加节点个数来提高差值多项式对函数的逼近程度,由于此时高次多项式插值容易出现Runge现象,故采用Lagrange线性插值,把节点分成13段,分段采用低次多项式近似函数。分段节点处函数值如表1所示。

分段表达式为:

将各点分别带入式(1)得出分段表达式:

表1节点处函数对应值
表1节点处函数对应值

随机抽取一点值f(18)≈φ0(18)=1.1×18+8.1=27.9,与实际测量值f(18)=27.7比较,偏差为0.7%,符合精度要求。将式(2)写入软件插值函数子程序中,当用户设定功率时,算法先判断该值所在区间范围,再求出对应电流百分比,通过串口发送到光纤激光器。经插值算法校准后,用户设置功率与终端采集功率之间的关系如图7所示,可知最大偏差为2.5%,较之前的63.6%有明显改善。测试结果表明,通过此方法获得了较准确的激光输出功率,精度控制在±1W以内。

图7校准后用户设置功率与终端采集功率关系
图7校准后用户设置功率与终端采集功率关系

系统测试及结果

本文设计了一种基于2μm高功率光纤激光器的医疗仪,以STM32为控制核心,完成了人性化的人机触控界面功能设计、激光器的驱动控制、精密水冷单元的参数监控、配电模块的抗干扰设计以及输出功率的校准。输出功率0W或4W~80W,步进长度1W连续可调,可通过脚踏自由切换汽化和凝血两种功率参数输出;温度采集精度±0.5℃,水流量3.6L/min,符合IPG-TLR-80-WC-Y12型号光纤激光器正常工作要求。经过功率校准算法,用户设置功率与终端采集功率的最大偏差由之前的63.6%降低到2.5%,控制精度为±1W。测试结果表明,该系统具有可靠性高、抗干扰能力强、输出功率稳定准确、操作便利等优点。

围观 5
463
订阅 RSS - 控制器设计