dsPIC30F6010单片机的原理及应用
时间:11-06
来源:互联网
点击:
2.3 程序存储器结构
图3所示的程序存储器映射图分为两部分:用户程序空间和用户配置空间。用户程序空间包括复位矢量、中断矢量表、程序存储器和数据EEPROM存储器;配置空间包括一些设备配置寄存器以及器件的ID位等。PC指针最低位恒为“0”,增量为2。
访问4M×24位程序存储器的方法有三种,第一种是通过23位PC指针;第二种是通过特殊的表格读/写指令(TBLRDL、TBLWTL、TBLRDH和TBLWTH),第三种是通过PSV操作模式(程序空间可见)把16k字程序空间页面映射到数据存储器地址空间的高32kB。
dsPIC30F6010的外围模块比PIC丰富许多。首先,通信模式增加了CAN模块接口,其它通信模块的数量也增加了,因而可适应大系统的设计需求。其次,dsPIC30F6010有5个16位timer模块,其中TMR2和TMR3、TMR4和TMR5可以分别组合成32位定时器,程序员可以选择多种工作方式,例如16位/32位定时器、32位同步计时器、门控等模式。此外,dsPIC30F6010还增加了电机控制PWM模块以及积分编码模块。
3 指令特点
dsPIC30F系列单片机在增加了DSP功能后,其指令也只有84条,因此,和其它DSP相比,可大大简化编程难度。dsPIC30F6010在指令上的主要特点有:
(1)dsPIC30F6010的指令格式有别于PIC单片机,它的格式为: 操作符 源操作数 目的操作数,此外还增加了许多三操作数指令;
(2)dsPIC30F6010为16位CPU,因而在指令操作上有字操作和字节操作两种模式,可实现8位和16位操作;
(3)dsPIC30F6010除了保留有PIC单片机的大部分指令功能外,还增加了许多传送、数学运算、逻辑运算指令;相比PIC单片机,它的最大优点是增加了乘除法指令,因而可大大减少编程难度并优化程序。为了适应字操作,相应增加了减2、加2等指令;
(4)增加了相应的DSP功能指令,如DSP指令、程序流指令等;
(5)由于有多种堆栈形式,因而也就增加了不同形式的堆栈指令。
4 编程示例
dsPIC30F6010可支持C编译、汇编以及混合编译等多种模式,用户可根据自身能力选择不同的编程方式。
4.1 C编译
dsPIC30F6010的编程模式基本上和C语言及其它单片机或DSP的C编译相似,下面以A/D采样为例给出其编程应用,设计时需要注意的是:
(1)寄存器必须大写;
(2) 直接对某些位进行操作时,可在该寄存器后加bits,如ADCON1bits.ADON=1;
(3) 牢记先定义后使用的原则,调用的数学函数必须由编译软件库函数所支持。
int main (void) ? ;主程序
{ portinitial();
adinitial();
ADCON1bits.ADON=1;
ADCON1bits.SAMP=1;
delay();
ADCON1bits.SAMP=0;
… … … …
}
void portinitial()? ;初始化I/O口
{
TRISE=0x0000;
PORTE=0x0000;
}
void adinitial()? ;AD初始化子程序
{ ADCON1=0x2208;
ADCON2=0x0000;
ADCON3=0x0000;?
ADCHS=0x0000;
ADCSSL=0x0000;
ADPCFG=0x0000;
IFS0bits.ADIF=0;
IEC0bits.ADIE=1;
}
void delay() ?;延时子程序
{
for (j=1000;--j;) continue?
}
4.2 混编技术
在C语言中调用汇编语言时,只要在C汇编中定义一个extern型变量或函数并在其前面加一前缀( )即可。如在C程序中:
… … … …
extern void modulo(unsigned int *, unsigned int *, unsigned int);声明函数类型
… … … …
int main (void)
{… … … …
modulo( array1, array2, PRODLEN-1);在C程序中调用
… … … …
}
在汇编中调用:
.global_modulo ;定义全局变量
_modulo:
… … … …
.end
5 结束语
在某些应用场合,综合了16位单片机和DSP功能的dsPIC30F器件要大大优于32位单片机,而且可降低成本,同时,C代码效率也降低了对存储器的需求,从而缓解了16位单片机和低端数字信号处理器DSP存在的性能差。由于它本身的DSP功能大大提高了运算和响应能力,因而提高了系统的实时性,可完全适应现代工业控制技术发展的要求。丰富的外围模块以及I/O设备,必然使得dsPIC30F在未来的DSP市场中占有重要地位。目前,该产品已经开始在电机控制、网络连接、语音和音响、电源变换和监视、传感器控制、汽车控制等领域中开发应用。可以预见,随着dsPIC30F系列产品的不断开发和完善,以及开发工具、开发软件的不断丰富,dsPIC30F必将得到广大用户的青睐。
图3所示的程序存储器映射图分为两部分:用户程序空间和用户配置空间。用户程序空间包括复位矢量、中断矢量表、程序存储器和数据EEPROM存储器;配置空间包括一些设备配置寄存器以及器件的ID位等。PC指针最低位恒为“0”,增量为2。
访问4M×24位程序存储器的方法有三种,第一种是通过23位PC指针;第二种是通过特殊的表格读/写指令(TBLRDL、TBLWTL、TBLRDH和TBLWTH),第三种是通过PSV操作模式(程序空间可见)把16k字程序空间页面映射到数据存储器地址空间的高32kB。
dsPIC30F6010的外围模块比PIC丰富许多。首先,通信模式增加了CAN模块接口,其它通信模块的数量也增加了,因而可适应大系统的设计需求。其次,dsPIC30F6010有5个16位timer模块,其中TMR2和TMR3、TMR4和TMR5可以分别组合成32位定时器,程序员可以选择多种工作方式,例如16位/32位定时器、32位同步计时器、门控等模式。此外,dsPIC30F6010还增加了电机控制PWM模块以及积分编码模块。
3 指令特点
dsPIC30F系列单片机在增加了DSP功能后,其指令也只有84条,因此,和其它DSP相比,可大大简化编程难度。dsPIC30F6010在指令上的主要特点有:
(1)dsPIC30F6010的指令格式有别于PIC单片机,它的格式为: 操作符 源操作数 目的操作数,此外还增加了许多三操作数指令;
(2)dsPIC30F6010为16位CPU,因而在指令操作上有字操作和字节操作两种模式,可实现8位和16位操作;
(3)dsPIC30F6010除了保留有PIC单片机的大部分指令功能外,还增加了许多传送、数学运算、逻辑运算指令;相比PIC单片机,它的最大优点是增加了乘除法指令,因而可大大减少编程难度并优化程序。为了适应字操作,相应增加了减2、加2等指令;
(4)增加了相应的DSP功能指令,如DSP指令、程序流指令等;
(5)由于有多种堆栈形式,因而也就增加了不同形式的堆栈指令。
4 编程示例
dsPIC30F6010可支持C编译、汇编以及混合编译等多种模式,用户可根据自身能力选择不同的编程方式。
4.1 C编译
dsPIC30F6010的编程模式基本上和C语言及其它单片机或DSP的C编译相似,下面以A/D采样为例给出其编程应用,设计时需要注意的是:
(1)寄存器必须大写;
(2) 直接对某些位进行操作时,可在该寄存器后加bits,如ADCON1bits.ADON=1;
(3) 牢记先定义后使用的原则,调用的数学函数必须由编译软件库函数所支持。
int main (void) ? ;主程序
{ portinitial();
adinitial();
ADCON1bits.ADON=1;
ADCON1bits.SAMP=1;
delay();
ADCON1bits.SAMP=0;
… … … …
}
void portinitial()? ;初始化I/O口
{
TRISE=0x0000;
PORTE=0x0000;
}
void adinitial()? ;AD初始化子程序
{ ADCON1=0x2208;
ADCON2=0x0000;
ADCON3=0x0000;?
ADCHS=0x0000;
ADCSSL=0x0000;
ADPCFG=0x0000;
IFS0bits.ADIF=0;
IEC0bits.ADIE=1;
}
void delay() ?;延时子程序
{
for (j=1000;--j;) continue?
}
4.2 混编技术
在C语言中调用汇编语言时,只要在C汇编中定义一个extern型变量或函数并在其前面加一前缀( )即可。如在C程序中:
… … … …
extern void modulo(unsigned int *, unsigned int *, unsigned int);声明函数类型
… … … …
int main (void)
{… … … …
modulo( array1, array2, PRODLEN-1);在C程序中调用
… … … …
}
在汇编中调用:
.global_modulo ;定义全局变量
_modulo:
… … … …
.end
5 结束语
在某些应用场合,综合了16位单片机和DSP功能的dsPIC30F器件要大大优于32位单片机,而且可降低成本,同时,C代码效率也降低了对存储器的需求,从而缓解了16位单片机和低端数字信号处理器DSP存在的性能差。由于它本身的DSP功能大大提高了运算和响应能力,因而提高了系统的实时性,可完全适应现代工业控制技术发展的要求。丰富的外围模块以及I/O设备,必然使得dsPIC30F在未来的DSP市场中占有重要地位。目前,该产品已经开始在电机控制、网络连接、语音和音响、电源变换和监视、传感器控制、汽车控制等领域中开发应用。可以预见,随着dsPIC30F系列产品的不断开发和完善,以及开发工具、开发软件的不断丰富,dsPIC30F必将得到广大用户的青睐。
电子 集成电路 电压 单片机 嵌入式 电路 传感器 开关电源 相关文章:
- 利用蓝牙技术和远程信息控制单元实现汽车诊断(11-13)
- 六大特点助CMOS图像传感器席卷医疗电子应用(11-13)
- 汽车网络的分类及发展趋向(11-13)
- 多核嵌入式处理技术推动汽车技术发展(11-18)
- CAN总线的客车轻便换档系统设计与实现(02-13)
- 高性能嵌入式ARM MPU在医疗电子系统中的设计应用(05-12)