基于ARM处理器的电机电物理量采集系统的设计

   2023-10-05 互联网2050
核心提示:  O 引言  自19世纪发明发电机和电动机以来,由于电能应用方便,电动机的性能优良,便于控制,使用与操作简单,从而得到了迅

  O 引言

  自19世纪发明发电机和电动机以来,由于电能应用方便,电动机的性能优良,便于控制,使用与操作简单,从而得到了迅速普及,应用范围越来越广.然而,由于电机运行机制复杂,长期处于高速运转和高电压、强磁场环境之下,运行环境恶劣,要求电机设备不出故障是不现实的,绝对安全可靠的电机设备也是根本不存在的l1J.因此,我们只能从预防故障和减少损失的角度出发,及时发现电机的异常,掌握设备的运行状态.对已经形成的或正在形成的故障进行分析诊断,判断故障的部位和产生的原因,并及早采取有效的措施,防患于未然.这就需要我们能实时的精确的采集电机在运行中的各种物理量,进而进行有效的分析、判断故障.传统的数据采集系统多以8/16位单片机构成控制系统,其硬件电路较复杂,集成度较低,设计和调试难度较大,不太方便系统升级.传统的前后台式的软件设计方法限制了硬件系统功能的充分发挥,影响了系统的实时性与稳定性.笔者从ARM9来人手,借鉴了一些新的测试方法,并应用ADS1.2设计出一套电机电物理量采集系统.

  1 系统简介

  本系统设计采集电机的电压、电流2个物理量.其中电流3相都要采集.电物理量采集系统的设计关键在于A/D转换的环节.A/D转换器是模拟信号源和CPU之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示.在工业控制和数据采集及许多其他领域中,A/D转换是不可缺少的.A/D转换器有以下类型:逐位比较型、积分型、计数型、并行比较型、电压一频率型.主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素决定选择何种类型.本系统的ARM采用三星公司的S3C2410一S,其拥有8路10位A/D转换器,最大转换率为500 KPSO1.S3C2A-10一S的A/D转换器能接受电压范围为0—3.3 V,但电机电信号是成正弦波的图像分布的,超出了A/D转换器能接受的电压范围.所以设计前端调理电路将电信号的正弦波整体向上抬高。使之范围控制在0—3.3 V.然后将电信号输出到A/D转换器.最后经CPU的处理将采集到的数据从串口传送给计算机.进计算机可以对电机物理量进行相应的分析.

  2 系统设计

  2.1 硬件设计

  该系统主要由前端调理电路、CPU集成电路和计算机组成.基本结构如图1所示:

其中由于S3C2410一S的A/D转换器能接受电压范围为O~3.3 V,但电机电信号是成正弦波的图像分布的.所以前端调理电路设计将电信号的正弦波负半轴对称折到x轴上方,使之范围控制在0-3.3 V.产生波形如图2所示.

  同时电路里产生一个方波信号.当波形属于被翻上去的部分时方波处于低电平,其他时候处于高电平.以此方波信号在上位机来还原波形.CPU集成电路包括直流稳压电源电路、A/D电路、主CPU电路和串口电路.A/D电路接受从转换电路送过来的模拟信号,然后转换成ARMCPU能接受的数字信号.经过处理后从串口电路传送给上位计算机.

  2.2 软件设计

  2.2.1 μC/OS II操作系统的移植

  μC/OS II提供的仅仅是一个任务调度的内核,要想实现一个相对完整,实用的嵌入式实时多任务操作系统,还需要相当多的扩展性的工作,主要包括:建立文件系统(本系统以Flash为存储介质,建立文件和目录)、为外部设备建立驱动程序并规范相应的API函数创建图形用户接口(GUI)函数、建立其他实用的应用程序接口(API)函数等.本系统中基于μC/OS II内核的RTOS软件系统总体框图如图3所示.

2.2.2 应用程序的设计

  该程序采用ADS1.2结合c语言来设计.首先是系统初始化,根据ARM芯片固有的功能和特征,进行主程序的入口设置,所用寄存器清零,程序ROM区和数据RAM区的初始化,中断矢量设置等主程序运行前的准备工作.以及检查系统电源,监视芯片上电后的ARM芯片内的硬件运行情况.当ARM芯片运行正常后,进人数据采集软件的主程序运行.流程图如图4所示.

  1)AD数据采集.A/D转换的数据可以通过中断或查询的方式来访问,如果是用中断方式,全部的转换时间(从A/D转换的开始到数据读出)要更长,因为中断服务程序返回和数据的访问的原因,所以采用查询方式不断检测ADCCONt3j(转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据.

  主要代码有:

  #define PRSCVL(20<<6)

  #define ADCCON

  _

  ENABLE_ START(Ox1)

  #define STDBM (0x0<<2)

  #define PRSCEN(0xl<

  void iNIt

  _ ADdevice0 //AD设备初始化

  {

  rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);

  )

  int GetADresuh(int channe1)

  {

  rADCCON=ADCCON

  — ENABLE— START—BYREADI(channel<<3)IPRSCENIPRSCVL;

  while(!frADCCON&ADCCON—FLAG)); //AD转换结束

  return f0x3ff&rADCDATO); //返回采样值

  }

2)数据发送.异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送.数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行.接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符.为了恢复发送的信息,双方必须协调工作.在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差。因此实现较容易.主要代码有:

  int Uart_

  Init(int whichUart,int baud)

  {

  if(whichUaxt>=NumberOfUartDrv)

  return FALSE;

  return serial_

  drv[whichUart]->init(baud);

  }

  int Uart_ SendByte(int whichUart,int data)

  {

  if(whichUart>=NumberOfUartDrv)

  return FALS E;

  return serial— .drv[whichUart]->write(data);

  }

  void Uart_

  SendString(int whichUart,char pt)

  {

  while( pt){

  if( pt== )

  Uart_

  SendByte(whichUart, kr );

  Uart

  _ SendByte(whichUart,*pt++);

  )

  )

  void Uart_Prinf(int whichUart,char fmt,...)

  {

  va

  _ list ap;

  static char string[256];

  va

  _ start(ap,fmt);

  vsprinf(string,fmt,ap);

  Uart_

  SendString(whichUart,string);

  va

  _ end(ap);

  )

  3 结论

  采集数据分4路,1路电压和3路的电流.采集时上位机接收到的数据每路每个周期有52个点.既其采样频率达到了2 600 Hz.根据奈奎斯特定理,为了完整的保留原始信号中的信息,在进行模拟/数字信号的转换过程中,要使采样频率大于信号中最高频率2倍. 所以本系统能分析的谐波最高频率为1.3 kHz,即1-3 kHz/50 Hz:26次谐波.足够满足上位机做谐波分析的要求.以S3C2410一S为核心的嵌入式硬件系统,并采用ADS开发相应的应用程序,串口方式实现通信,实现了电机物理量的采集,给上位机分析电机提供了可靠的保障.并且该系统采用的ARM核的微控制器也使之较传统的系统在可靠性、体积、功耗、性价比等方面都具有明显的优势,使之有广泛的应用前景和作用。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅