当前位置:首页 > 嵌入式 > 嵌入式硬件

摘要:在分析工业生产中多单元同步传动特点的基础上,介绍了同步传动控制器的原理。以往同步控制器大都是基于或PC的,限制了先进算法的使用,PC成本较高,针对这种情况,采用ARM核芯片作为核心微处理器,并根据控制要求扩展外围电路,给出了系统的硬件原理图、控制方法及基于uClinux的主要硬件的驱动程序。该控制器可对机台的车速在线调整。

关键词:同步传动;交流电机;微处理器;操作系统

1 引言

在工业生产的很多行业,诸如纺织、造纸、印染等都要求进行多个单元的同步控制,保持张力的恒定,以提高产品的质量。随着交流调速技术的日趋成熟,以及交流的结构、性价比、维护等方面都优于直流,本同步控制器主传动部分采用交流异步电机变频调速。以往大多进行一些简单的控制,系统大多在循环加中断的方式下工作,而随着32位CPU 的出现(如ARM),嵌入式系统能够适应复杂的控制,进行多任务的处理,极大提升了效率。当然这一切还需要嵌入式操作系统的支持。嵌入式在市场中逐渐赢得了众多用户的青睐,因此,控制部分采用ARM核微处理器,移植uClinux操作系统进行开发。

2 系统工作原理

微机同步控制器要控制各单元的线速度相等,即V4 =V3=V2=V1,电气控制示意图如图1所示。M1 ~M4为交流异步电机,~INV4为通用型。整条生产线上的被加工物的张力控制被分割成两段,因而设计两个张力控制环来控制整条线的生产张力。

图1电气控制示意图

第一个张力控制环主要由松劲架、测速电机TG、电机M1、电机M2和组成。当该段张力太小时,松劲架将张力值反馈给控制器,控制器运算处理后自动增加电机M1的给定电压,从而使电机M1转速增加,该段张力增加。反之,当张力过大时,控制器减小电机M1的给定电压,从而使电机M1转速下降,被加工物所受张力减小。另一个张力控制环主要由松劲架、测速电机TG、电机M3、电机M4和组成,其工作原理与第一个张力控制环相同。通过这两个张力控制环可以任意控制两端的工作张力。生产过程中,使两个控制环张力给定值一致,两个主令电机M2、M3速度给定值一致,从而实现四个单元的恒张力同步控制。

3 硬件组成

同步控制器核心部件由处理器及其外围器件组成。主要包括:16M的;2M的;显示器及4×4键盘,用于设定控制器参数及显示过程参数;8255芯片用于输入开、停车信号,输出报警、指示等量信号;A/D转换芯片用于采集测速发电机和松劲架的反馈信号;D/A转换芯片用于输出给定信号;实现的3.3V信号电平与外围5V信号电平之间的转换。系统硬件框图见图2。

图2 系统硬件框图

S3C4510B是一款高性价比的16/32位微控制器,内含一个16/32位 处理器核,内部集成有以太网控制器,可移植uC、uCOS Ⅱ等操作系统。

为4通道12位逐次逼近式模数转换芯片,其内部自带2.5V参考电源,采样速率可达133KSPS,电压范围为2.7V至3.6V,串行接口兼容于SPI/QSPI和Microwire同步串行标准,允许将4个通道编程为单极性/双极性和差动/单端工作。

为电压输出的12位数/模转换器。+3.3V单电源供电,可与+5V逻辑电平直接相连,串行接口兼容于SPI/QSPI和Microwire同步串行标准。可调的精密输出允许增益设置。

此处用S3C4510B的通用I/O口模拟同步串口,实现SPI总线通信,多片和都挂接在该SPI总线上,从而使硬件连接简单方便。采用产生1.25V参考电压。D/A和A/D转换的部分连接图见图3。

图3 MAX1246和MAX5353与S3C4510B的连接

4 软件设计

4.1 控制方法

在实际生产中,生产速度的变化会立即影响到当前时刻的张力测量值,速度变化时,可能会出现因张力失控或张力变化过大而使被加工物变形、断裂等现象。考虑到这种情况,对该同步控制系统中每个闭环所采用的增量式PID算法改进如下:

⑴ 当速度的给定值保持不变时,按带有防积分截断误差的增量式PID控制算法控制各自的张力和速度。

⑵ 当速度的给定值改变,且变化量△V≤△Vmax时,则相应地在张力控制的输出U上,增加一个提前量K△V,即:

式中Ut为当前的输出量,Ut-1为上一次的输出量,△U为PID求得的增量,K为比例系数,△V为速度给定值的变化量,△Vmax为允许最大的速度变化量。

⑶ 当速度的给定值变化很大时,由微机分步输出,设△V<M△Vmax (M为正整数)。取△V’=△V/M<△Vmax,则需M步才能把速度从V升到V+△V,故速度的给定值每步增加△V’,其张力的输出量为:

输出的电机控制信号Uk1跟随Uk2,Uk4跟随Uk3变化。

4.2 驱动程序设计

操作系统的作用之一就是向用户隐藏硬件设备的特殊性,使应用程序的开发与底层物理设备无关。设备驱动程序是连接应用程序和具体物理设备的桥梁。在uClinux中MAX1246和MAX5353属于字符型设备。

在uClinux中每个设备都被看成是一个文件,通过File_operations结构体记录了每一种设备具体操作函数的函数指针,以便在具体调用中转入到实际操作的函数中。在这个结构体中,定义了各类操作函数的类型和入口参数,常用的操作函数有、、、write、等。并不是所有的接口函数都需要在驱动程序中实现,对于设备不支持的操作,可以将对应的设备接口函数指针置为空。

模块初始化函数_( )是每个内核模块加载的时候首先调用的一个默认函数。一般在该函数中完成设备的注册,当模块加载完毕之后,内核即知晓设备的存在。模块卸载函数_exit( )与_( )做相反的工作,在内核中取消设备的登记。该函数在模块卸载的时候自动调用。

对MAX5353和MAX1246各开发了一个驱动程序,其结构体分别声明如下。

static struct file_operations _fops={

: _,

: _,

llseek: max5353_, };

static struct file_operations _fops={

open: _open,

release: _release,

llseek: max1246_, };

模块初始化函数module_( )主要通过调用int register_chrdev(unsigned int , *,struct file_operations*fops)完成设备的注册,例如:

int retv=register_chrdev(,max5353_,&max5353_fops);

int retv=register_chrdev(,max1246_,&max1246_fops);

模块卸载函数module_exit( )主要通过调用int unregister_chrdev(unsigned int major, *name)取消对设备的注册,例如:

int retv=unregister_chrdev(major,max5353_name);

int retv=unregister_chrdev(major,max1246_name);

MAX5353的控制操作函数如下,其中arg参数为需要D/A转换输出的数值,cmd参数用于选择4路D/A输出通道,send_data(arg,cs_ctrl)函数实现S3C4510B与MAX5353通信的时序关系。

static int max5353_ioctl(struct inode *inode, struct file *file,

unsigned int cmd, unsigned long arg)

{ int cs_ctrl;

switch (cmd)

{case MAX5353_CH0:

cs_ctrl=0xfb; //CH0:片选cs=0

send_data(arg,cs_ctrl);

break;

case MAX5353_CH1:

cs_ctrl=0xfd; //CH1: 片选cs=0

send_data(arg,cs_ctrl);

break;

…… }

return 0; }

运行于uClinux上的应用程序需要调用第0路D/A输出时,调用ioctl(fd, MAX5353_CH0, value)函数即可,其中fd参数为设备文件句柄,MAX5353_CH0参数表示选择第0路通道,value参数为要D/A转换输出的数值。通道的应用与此类似。

MAX1246的控制操作函数如下,其中cmd参数用于4路A/D输入通道的选择,adcadc(adctrl)函数实现S3C4510B与MAX1246通信的时序关系并返回A/D采样值。

static int max1246_ioctl(struct inode *inode, struct file *file,

unsigned int cmd, unsigned long arg)

{ int adctrl,addat=0;

switch (cmd)

{ case MAX1246_CH0:

adctrl=0x9e;

addat=adcadc(adctrl);

break;

case MAX1246_CH1:

adctrl=0xde;

addat=adcadc(adctrl);

break;

…… }

return addat; }

运行于uClinux上的应用程序需要调用第0路A/D采样时,利用value=ioctl(fd, MAX1246_CH0, 0)语句即可实现,其中fd参数为设备文件句柄,MAX1246_CH0参数表示选择第0路通道,value变量为A/D转换结果。通道的应用与此类似。

5 结论

通过给S3C4510B扩展A/D、D/A等外围部件,增强了其在控制领域的适应性,该扩展方法对其它ARM芯片的功能扩展也具有一定的参考价值。实践证明,该同步控制器具有良好的抗干扰能力和控制精度,同步能力强,运行可靠。利用其工业以太网接口,可实现多个控制器的互连,以及与计算机的互连,从而实现多单元的网络化同步控制,具有广泛应用前景。采用先进的32位ARM核微处理器代替传统的单片机,控制器的处理速度大幅度提高,能够适用于复杂控制算法的运算,有效增强了控制系统的实时性,控制精度明显提高,且较以往PC控制系统降低了成本。在S3C4510B处理器上移植了嵌入式操作系统uClinux,使控制器能够支持多任务操作,并且使开发过程更方便。为外围硬件编写了uClinux下的驱动程序,使应用程序的开发更为简便,通用性更好,且便于控制器应用程序的改进升级。S3C4510B芯片上集成有以太网控制器,在操作系统uClinux的支持下,可实现以太网通信,从而实现网络化控制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭