ARM处理器设计的电机电物理量采集系统
返回和数据的访问的原因,所以采用查询方式不断检测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核的微控制器也使之较传统的系统在可靠性、体积、功耗、性价比等方面都具有明显的优势,使之有广泛的应用前景和价值.
- 基于Linux的便携式RFID信息采集处理系统 (07-03)
- 一种基FPGA和DSP的高性能PCI数据采集处理卡设计(08-26)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 基于DSP的图象采集与处理系统的设计(06-15)
- 基于DSP的信号采集处理系统(07-21)