中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

基于ARM的嵌入式多单元同步控制器的实现

时间:2007/5/15 10:37:00  作者:  来源:ic72  浏览人数:1263
 
 

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

      1 引言

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

      2 系统工作原理

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

ic72新闻中心

图1      电气控制示意图

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

      3 硬件组成

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

ic72新闻中心

图2  系统硬件框图

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

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

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

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

ic72新闻中心

图3  MAX1246和MAX5353与S3C4510B的连接

      4 软件设计

      4.1 控制方法

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

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

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

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

 

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

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

      4.2 驱动程序设计

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

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

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

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

      static struct file_operations max5353_fops={

      open: max5353_open,

      release: max5353_release,

      llseek: max5353_ioctl,  };

      static struct file_operations max1246_fops={

      open: max1246_open,

      release: max1246_release,

      llseek: max1246_ioctl,  };

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

      int retv=register_chrdev(major,max5353_name,&max5353_fops);

      int retv=register_chrdev(major,max1246_name,&max1246_fops);

      模块卸载函数module_exit( )主要通过调用int unregister_chrdev(unsigned int major, const char *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的支持下,可实现以太网通信,从而实现网络化控制。

 
【相关文章】
·嵌入式系统的动态电源管理架构
·基于ARM的嵌入式多单元同步控制器的实现
·一种嵌入式系统的内存分配方案
·基于PPP的TMS320C6x嵌入式网络接口设计
·基于嵌入式PLC芯片组的多路模拟量PLC的开发
·LPC2294的实时时钟显示工程设计分析
·基于单片机的喷墨打印机控制技术
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9