微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM处理器设计的电机电物理量采集系统

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

时间:12-13 来源:互联网 点击:

返回和数据的访问的原因,所以采用查询方式不断检测ADCCONt3j(转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据.

主要代码有:

#define PRSCVL(206)

#define ADCCON

_

ENABLE_ START(Ox1)

#define STDBM (0x02)

#define PRSCEN(0xll41

void init

_ ADdevice0 //AD设备初始化

{

rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);

)

int GetADresuh(int channe1)

{

rADCCON=ADCCON

— ENABLE— START—BYREADI(channel3)IPRSCENIPRSCVL;

while(!frADCCONADCCON—FLAG)); //AD转换结束

return f0x3ffrADCDATO); //返回采样值

}

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== \n )

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核的微控制器也使之较传统的系统在可靠性、体积、功耗、性价比等方面都具有明显的优势,使之有广泛的应用前景和价值.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top