数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx

上传人:b****3 文档编号:4277208 上传时间:2023-05-06 格式:DOCX 页数:16 大小:51.65KB
下载 相关 举报
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第1页
第1页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第2页
第2页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第3页
第3页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第4页
第4页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第5页
第5页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第6页
第6页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第7页
第7页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第8页
第8页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第9页
第9页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第10页
第10页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第11页
第11页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第12页
第12页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第13页
第13页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第14页
第14页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第15页
第15页 / 共16页
数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx

《数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx》由会员分享,可在线阅读,更多相关《数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx(16页珍藏版)》请在冰点文库上搜索。

数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析.docx

数字信号处理技术05电压信号的采集交流电机的模拟参数输入分析

第3章交流电机的模拟参数输入

3.1交流电机的模拟参数输入

3.1.1交流电机的模拟参数输入硬件电路的组成

3.1交流电机的模拟参数输入硬件电路

3.1.2交流电机的模拟参数输入过程

3.2MCP604

3.2.1MCP604简介

3.2.2MCP604的引脚与引脚功能

3.3TMS320LF2407A/D转换模块

3.3.1模数转换模块(ADC)工作原理

3.3.2模数转换模块(ADC)工作方式

模数转换模块(ADC)有两种不同的工作方式:

连续自动排序模式、启动/停止模式。

3.3.3ADC模块的寄存器

1.ADC控制寄存器1(ADCTRL1)

2.ADC控制寄存器2(ADCTRL2)

3.最大转换通道寄存器(MAXCONV)

4.自动排序状态寄存器(AUTO_SEQ_SR)

5.ADC输入通道选择排序控制寄存器(CHSELSEQn)

6.ADC转换结果缓冲寄存器(RESULTn)

3.3.4ADC转换举例

此例中用事件管理器A的定时器2定时时间到来触发A/D采样的启动。

采样时采用级连模式,一次做16个转换,转换通道分别是0~15。

转换完成后,在A/D中断服务子程序中将转换结果读出。

该程序只作一次A/D采样。

7.所需的复位和中断向量定义文件“vectors.asm”

//该文件利用汇编语言代码定义了复位和中断向量

.title“vectors.asm”

.ref_c_int0,_nothing,_ADINT

.sect“.vectors”"

reset:

b_c_int0//复位向量

int1:

b_ADINT//A/D中断向量

int2:

b_nothing

int3:

b_nothing

int4:

b_nothing

int5:

b_nothing

int6:

b_nothing

8.主程序Adc.c

//该程序用于进行A/D转换,A/D转换的结果保存在DRESULT[16]中,寄

//存器ceshi用于测试每个A/D转换的结果

#include"register.h"

intADRESULT[16];//定义一个数组用于保存AD转换的结果

volatileunsignedint*j;//定义一个指针变量

inti=0x00,ceshi;

//屏蔽中断子程序

voidinlinedisable()

{

asm("setcINTM");

}

//开总中断子程序

voidinlineenable()

{

asm("clrcINTM");

}

//系统初始化子程序

voidinitial()

{

asm("setcSXM");//符号位扩展有效

asm("clrcOVM");//累加器中结果正常溢出

asm("clrcCNF");//B0被配置为数据存储空间

*SCSR1=0x81FE;//CLKIN=6MHz,CLKOUT=4*CLKIN=24MHz

*WDCR=0x0E8;//不使能看门狗

*IMR=0x0001;//允许INT1中断

*IFR=0x0FFFF;//清除全部中断标志,“写1清0”"

}

//AD初始化子程序

voidadinit()

{

*T2CNT=0x0000;//T2计数器清0

*T2CON=0x170C;//T2为连续增计数模式,128分频,选用内部时钟源

*T2PER=0x75;//设置T2的周期寄存器

*GPTCONA=0x400;//T2周期中断标志触发AD转换

*EVAIFRB=0x0FFFF;//清除EVA中断标志,“写1清0”

*ADCTRL1=0x10;//采样时间窗口预定标位ACQPS3-ACQPS0为0,

//转换时间预定标位CPS为0,AD为启动/停止模式,

//排序器为级连工作方式

*ADCTRL2=0x0504;//EVA的一个事件信号触发AD转换,用中断模式1

*MAXCONV=0x0F;//16通道

*CHSELSEQ1=0x3210;

*CHSELSEQ2=0x7654;

*CHSELSEQ3=0x0BA98;

*CHSELSEQ4=0x0FEDC;//转换通道是0~15

}

//启动AD转换子程序(通过启动定时器4的方式间接启动)

voidADSOC()

{

*T2CON=*T2CON|0x40;//启动定时器2

}

//若是其它中断则直接返回子程序

voidinterruptnothing()

{

return;

}

//AD中断服务子程序

voidinterruptADINT()

{

asm(“clrcSXM”);//抑制符号位扩展

j=RESULT0;//取得RESULT0的地址

for(i=0;i<=15;i++,j++)

{

ADRESULT[i]=*j>>6;//把AD转换的结果左移6位后存入规定的数组

ceshi=ADRESULT[i];//检验每个A/D转换的结果

}

*ADCTRL2=*ADCTRL2|0x4200;//复位SEQ1,且清除INTFLAGSEQ1。

enable();//开总中断,因一进入中断总中断就自动关闭了

}

main()

{

disable();//禁止总中断

initial();//系统初始化

adinit();//AD初始化子程序

enable();//开总中断

ADSOC();//启动AD转换

while

(1)

{

if(i==0x10)break;

//如果已发生中断,则停止等待(发生中断后,i=0x10)

}

*T2CON=*T2CON&0x0FFBF;//停止定时器2,即间接停止A/D转换

while

(1)

{

;

}//死循环,在实际的工程应用中在此可以利用A/D转换的结果

}

3.4TMS320LF240x常用汇编指令

3.4.1TMS320LF240xDSP汇编指令的寻址方式

1.立即数寻址

2.直接寻址

3.间接寻址

3.4.2TMS320LF240xDSP的常用汇编指令

1.ABS,累加器取绝对值

2.ADD,累加器加

3.ADDC,带进位的累加器加

4.ADDS,符号扩展抑制的累加器加

5.ADRK,辅助寄存器加短立即数

6.AND,和累加器进行与操作

7.B,无条件跳转

8.BACC,跳转到累加器指定的地址

9.BANZ,辅助寄存器非0跳转

10.BCND,条件跳转

11.CALA,累加器指定地址的子程序调用

12.CALL,无条件子程序调用

13.CC,条件子程序调用

14.CLRC,控制位清零

15.CMPL,累加器逻辑取反

16.CMPR,辅助寄存器与AR0比较

17.IN,从端口读入数据

18.INTR,软件中断

19.LACC,带移位的累加器装载

20.LACL,装载累加器低16位,高16位清0

21.LAR,辅助寄存器装载

22.LDP,数据页指针装载

23.LT,暂存寄存器装载

24.LST,状态寄存器装载

25.LTD,TREG寄存器装载、累加前一次乘积并数据移动

26.MAR,修改辅助寄存器

27.MPY,乘

28.MPYU,乘无符号数

29.NEG

30.NMI,非屏蔽中断

31.NOP,空操作

32.OR,与累加器进行或操作

33.OUT,输出数据到端口

34.PAC,乘积寄存器内容装载到累加器

35.POP,堆栈顶内容弹出到累加器低16位

36.PUSH,累加器低16位压入堆栈

37.RET,子程序返回

38.RPT,重复执行下一条指令

39.SACH,存储累加器移位后的高16位

40.SACL,存储累加器移位后的低16位

41.SAR,存储辅助寄存器

42.SBRK,辅助寄存器减去短立即数

43.SETC,控制位置位

44.SPAC,累加器减乘积寄存器

45.SPH,存储乘积寄存器的高16位

46.SPLK,长立即数存储到数据存储单元

47.SPM,将立即数赋给乘积移位模式PM位

48.SST,存储状态寄存器

49.SUB,累加器减

3.5交流电机的模拟参数输入程序

3.5.1交流电机的模拟参数输入汇编语言主程序

1.所需的复位和中断向量定义文件“vectors.asm”

//该文件利用汇编语言代码定义了复位和中断向量

.title“vectors.asm”;此文件名为vectors.asm

.sect“.vectors”;定义主向量段

reset:

b_c_int0;复位向量

int1:

bGISR1;中断优先级1,ADC中断属于INT1

int2:

bPHANTOM

int3:

bPHANTOM

int4:

bPHANTOM

int5:

bPHANTOM

int6:

bPHANTOM

reservedbPHANTOM

sw_int8bPHANTOM

sw_int31bPHANTOM

.sect“.pvecs”;定义子向量段

PVECTORSbPHANTOM;保留向量地址偏移量0000H

bPHANTOM;保留向量地址偏移量0001H

bPHANTOM;保留向量地址偏移量0002H

bPHANTOM;保留向量地址偏移量0003H

bADCINT_ISR;向量地址偏移量0004H为ADC中断

bPHANTOM;保留向量地址偏移量0005H

bPHANTOM;保留向量地址偏移量00041H

2.主程序Dyxhcj.asm

;主程序:

.include"register.h";引用头部文件

st0_temp.usect“.b20”,1;分配1个字的空间给st0_temp

st1_temp.usect“.b20”,1;分配1个字的空间给st1_temp

context.usect“.b20”,7;分配7个字的空间给context

STACK.usect“.stack”,40;分配40个字的空间给STACK

ADRESULT.usect“.data0”,8;分配8个字的空间给ADRESULT

.def_c_int0;定义标号_c_int0

.text;下列指令为可执行代码

_c_int0

SETCINTM

CLRCSXM

CLRCOVM

CLRCCNF

LDP#0E0H

SPLK#81FEH,SCSR1;CLKIN=6MHz,CLKOUT=4*CLKIN=24MHz

SPLK#0E8H,WDCR;关看门狗

LDP#0

SPLK#0001H,IMR;允许INT1中断

SPLK#0FFFFH,IFR;清除所有中断标志

CALLADINIT;初始化ADC程序

CLRCINTM;开全局中断

CALLAD;启动模数转换程序

WAIT:

NOP

BWAIT

;ADC初始化程序

ADINIT:

LDP#232;设置通用定时器2

SPLK#0000H,T2CNT;计数器清0

SPLK#170CH,T2CON;连续增计数模式,输入时钟=CPU时钟/128

SPLK#075H,T2PR;定时器周期中断时间

SPLK#0400H,GPTCONA;由定时器2的周期中断启动模数转换

SPLK#0FFFFH,EVAIFRB

SPLK#0000H,EVAIMRB;屏蔽定时器2的周期中断,但不影响

;定时器2定时周期到时相应的中断标

;志位置1,从而启动模数转换。

LDP#DP_PF2;设置ADC控制寄存器

SPLK#0000H,ADCCTRL1;双排序器工作模式,启动/停止模式,CPS=0

;ADC中断请求为高优先级

SPLK#0400H,ADCCTRL2;SEQ1采用中断模式1,不使能SEQ2中断

SPLK#0007H,MAXCONV;8个通道的转换

SPLK#0000H,CHSELSEQ1

SPLK#0000H,CHSELSEQ2

RET

;启动模数转换程序

AD:

LDP#DP_PF2

LACLADCCTRL2

OR#2000H;EVA事件触发启动SEQ1

SACLADCCTRL2

LDP#232

LACLT2CON

OR#40H;启动定时器2

SACLT2CON

RET

;中断程序

GISR1:

;INT1中断子程序入口

;保护现场

LDP#0;保存上下文

SST#0,st0_temp;保存ST0的内容到st0_temp

SST#1,st1_temp;保存ST1的内容到st1_temp

SACLcontext;保存ACC的低16位,context=(AL)

SACHcontext+1;保存ACC的高16位,context+1=(AH)

SARAR1,context+2;context+2=(AR1)

SARAR2,context+3;context+3=(AR2)

SARAR3,context+4;context+4=(AR3)

SARAR4,context+5;context+5=(AR4)

SARAR5,context+6;context+6=(AR5)

LDP#0E0H;DP=E0H,页首地址为7000H(E0H*80H)

LACCPIVR,1;PIVR的内容左移一位后送入ACC

ADD#PVECTORS;加上外设中断入口地址

BACC;跳到相应的中断服务子程序

ADCINT_ISR:

CLRCSXM;抑制符号扩展

LDP#DP_SARAM2

LARAR0,#8;(AR0)=8

LARAR1,#ADRESULT;(AR1)=ADRESULT

LARAR2,#RESULT0;(AR2)=RESULT0,转换结果存储在位15~位6

MAR*,AR2

ADC1:

;得到8个转换结果,依次存放在地址为(AR1)+2*n的存储器区间

LACC*+,10,AR1;(ACC)=((AR2))<<10,(AR2)=(AR2)+1

SACH*;((AR1))=(AH)=右对齐的转换结果

ADRK#2;(AR1)=(AR1)+2

MAR*,AR0

BANZADC1,*-,AR2

;若(AR0)≠0,则跳转到ADC1;(AR0)=(AR0)-1

LDP#DP_PF2;一次转换结束,8个通道的转换结果全部读出

LACLADCCTRL2;(ACC)=(ADCCTRL2)=(00000400H)

OR#4000H;复位SEQ1

AND#0FFDFH;清INTFLAGSEQ1

LACLT2CON

AND#0FFBFH;停止定时器2,即停止A/D转换

SACLT2CON

GISR1_RET:

;中断返回出口

LDP#DP_EVA

SPLK#0FFFFH,EVAIFRA

LDP#0

LARAR5,context+6

LARAR4,context+5

LARAR3,context+4

LARAR2,context+3

LARAR1,context+2

LACCcontext+1,16

ADDScontext

LST#1,st1_temp

LST#0,st0_temp

;恢复现场

CLRCINTM;开总中断,因为一进中断就自动关闭了总中断

RET

;假中断程序

PHANTOM

KICK_DOG;复位看门狗

RET

END

3.5.2交流电机的模拟参数输入汇编语言主程序分析

1.程序执行过程

2.采样过程说明

3.数字量与模拟量的关系

            (3.1)

4.ADCINT中断向量地址的获取

5.A/D转换的转换周期

A/D转换的转换周期可被分成5个阶段:

1启动时序同步(SOS同步)。

2采样时间(ACQ)。

3转换时间(CONV)。

4结束转换时间(EOC)。

5序列转换完成后设置标志位时间(EOS)。

此设计中A/D转换的转换周期=2+16+80+8+1=107个CLKOUT时钟周期。

6.定时器2的定时周期中断时间T

定时器在连续增计数模式下,定时器周期的时间为TxPR+1个定标的时钟输入周期,此设计中,,T=(117+1)*128/CPU时钟频率=118*128个CLKOUT时钟周期。

作业

3.2简述模数转换模块(ADC)的工作原理。

3.3简述模数转换模块(ADC)的两种工作方式的特点。

3.5简述TMS320LF2407A实现交流电机转速测量的过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2