普通单片机与加有前缀ds单片机的基本区别
时间:10-02
整理:3721RD
点击:
它们都是Microchip公司的PIC系列的单片机。
PIC单片机有很多种。PIC10、PIC12、PIC16、PIC18这些都是8位的单片机。
dsPIC30和dsPIC33系列单片机是属于带DSP(数字信号处理)功能的16位单片机。而PIC24系列是跟dsPIC30系列单片机相似,就是不带DSP的16位单片机。
还有就是PIC32系列是32位的单片机,是microchip为了和ARM争夺高端32位嵌入式芯片市场而生产地。
补充:有dsPIC字样的是带DSP功能的16位单片机,可以理解为有ds字样的就是DSP芯片。DSP芯片:数字处理芯片,可以在一个时钟周期里完成一个MAC,就是16位乘上16位数,其积再加上一个32位数这两个操作一个时钟周期完成。在dsPIC中,就是两个晶振周期完成,如果晶振是4MHz的话,就是说上述乘法和加法的操作能在2微秒内完成。这MAC是衡量DSP芯片的一个指标。还有就是FFT(快速傅里叶变换)等等。
PIC18和PIC24系列的也有内部的乘法器,但他们的乘法器速度远远追不上DSP芯片的MAC。 看看百度百科对DSP的详解。
DSP怎么用
举个例子:有的语音DSP芯片,可以做一个数字滤波器,两个人同时说话,麦克风录入这些声音到这个滤波器里,滤波器的喇叭可以实时算出某个人的声音,并且只输入这个人的声音(实时的,旁观者根本分辨不出延时)。这就是DSP芯片的快速数字运算能力所决定的。不要跟我说计算机的CPU也有这么快,计算机的微处理器只是频率高,在某些工程数学运算场合,它根本比不上DSP芯片。
至于Microchip的dsPIC30系列,因为它是面向于对电机、变频器的数字控制,所以它要实现上述的语音实时滤波比较困难。至于dsPIC33系列的,因为我没用过这系列的DSP,所以不敢确定是否能实现上述功能。
使用DSP芯片的快速运算功能需要编程者有《信号与系统》《复变函数》《有限元分析》《小波变换》等等的研究生才学的课程,如果只是拿来做普通单片机,那就太大材小用了。
PIC也不算便宜。和AVR一样。
PIC的优势在在于他们的芯片较多,从六个引脚的单片机到上百引脚的单片机都有。其型号不同,内部集成的功能种类和RAM/ROM大小也不同。还有集成了DSP功能的dsPIC系列。
而相对有好几百种单片机的PIC来说,AVR单片机种类没有那么多。也就那几款,所以看起来PIC低价位的单片机要比AVR那几款单片机要便宜,其实PIC贵的单片机不少。
因为PIC种类繁多,所以能适用于从电子玩具到大型仪器仪表各个工控家电自动化等范围中。
但说到抗干扰能力,个人感觉PIC和AVR差不多。而且,小编最好先学通了51单片机。然后实际动手多做几个设计。在学其他的单片机就简单了。单片机原理基本是一样的,不同的是内部的指令和集成的功能。我刚毕业没学过PIC,因为在学校做过几个51和DSP的设计,所以一个月不到就弄懂了PIC16和PIC18系列单片机。后来给别人做东西,又自己学的AVR,感觉他们都差不多,主要是理解了单片机的结构。
MSP430是16位单片机。其他两个是8位单片机。(这里指的是PIC16F系列,和ATmega系列单片机)如果在同样晶振的条件下,当然是16位单片机速度最快了。AVR单片机不分频。PIC是4分频的。所以同样晶振条件下,AVR速度快于PIC。但是如果是PIC18F系列的就两样了。因为它里面有PLL倍频电路,速度当然快的多了。dsPIC(16位单片机)甚至可以进行数字信号处理。速度就更快了。实际项目中要看具体要求的,并非芯片的速度越快越好。还要综合功耗,抗干扰能力等方面考虑。一般来说芯片跑的越快,功耗越大,抗干扰能力越低。
TI公司产品的功耗低是世界闻名的。不过嘛事情也不是绝对的。近年来Mircochip也宣称它的MCU功耗最低。但是各个公司提供的计算方法不一样。它们的结果当然就不一样了。我去过Micochip的培训,跟他们原厂的人也探讨过PIC的功耗问题。不过有的地方功耗低他们是以牺牲抗干扰为代价的。所以这也不能一概而论的。各人的角度不一样,结果就不一样了。
从出货量来说目前8位单片机是PIC最多。不过AVR也不算很少。最近一段时间有人经常在比较PIC和AVR的特点,其实各有各的长处,关键看各人喜欢了。16位单片机从使用角度来说用的并不多,目前主要使用的就是8位单片机和32位的(ARM内核)单片机。
PIC10、12、16、18、24、32虽然是Microchip公司的PIC系列单片机。但结构却是完全不相同的:
首先,PIC10/PIC12/PIC16是pic八位中档单片机,汇编指令只有三十多条,没有乘法除法指令(用汇编写乘除,只能循环做移位计算),其芯片的引脚数从六个引脚的到六十四个引脚的不等,引脚多的所集成的外设功能也多……第二PIC18系列也是八位的PIC单片机,较前者高档点,集成的功能也多比如USB、CAN总线等等。汇编指令有八十多条,和前者不同,带乘法除法指令和硬件乘法器。
第三PIC24系列的是16位单片机, 近七十条汇编指令。有硬件乘法器和硬件除法器(有了它就可以在一个指令周期内完成一个17*17或32/16的算法)。内部集成的存储器较大。还有一种芯片上面没提到,就是dsPIC系列,这其实就是集成了DSP(数字信号处理)功能的PIC24单片机,在进行某些信号控制的时候需要用到它,但它功耗较大。
第四种就是PIC32,它是三十二位的单片机,它出现的目的就是MICROCHIP公司为了用它来盒和ARM做市场竞争的。简单点说,它跟ARM是一个级别的。
虽然MICROCHIP公司的PIC芯片都是用RICS指令结构,但其内部结构不尽相同,如果你要学PIC单片机,建议先学PIC16F887,这款芯片几乎包括了PIC10~16系列中的大部分外设。推荐这个系列的最好先学汇编指令。先把这个学懂了,然后再用PIC10~16系列的其他芯片,你只需要从Microchip的网站上下载Datasheet仔细阅读以下和PIC16F887的区别就可以(指令都一样的)。而PIC18和PIC24和dsPIC系列的,你需要在原有的基础上,多看DATAHSEET,主要是看指令集的区别。这三个系列的可以直接学C,但也要了解一下汇编。
而PIC32,现在它还比不过ARM芯片,市场前景很难估计,也没有几个企业用这芯片的。
你的第一个问题,看门狗用了预分频的话,那定时器0就不能再用预分频了。有的PIC芯片还带有看门口自己独用的分频器,这样的话可以给TIMER0让出一个预分频来(比如PIC16F886)。 看门狗如何设成最优,那只能是从你的指令里计算了,还必须根据你的单片机所运行的环境来看,如果电磁环境很恶劣,最好是较短时间就设置一调喂狗指令。
PIC12、PIC16、PIC18、pic24等系列的单片机基本上都是10位精度的AD,而dsPIC30/33系列单片机有12位精度的AD。
在这只说10位精度的AD的计算。
首先2的10次方就是1024,也就是说AD采集到的数据用0到1023这1024个数值来表示,这还需要看你设置的参考电压的值,如果设置参考电压为5V(VREF引脚接5V),则参考电压范围是0V~5V,其对应的就是0~1023.
所以 AD值 = (采集到的数据 * 5V)/ 1023
内部时钟不是系统时钟,系统时钟是单片机在运行时的时基时钟,而内部时钟是由片内振荡器产生的时钟。也就是说,时钟源可以是内部时钟也可以是外部时钟来产生。而产生的这个时钟源进入系统后由于dspic有4级流水线,所以时钟频率乘以4.
比如说最高30MIPS,时钟源是15M的,应用8倍频,那么15M * 8 = 120M(即FOSC) 1/120M = 0.0083333 0.0083333 * 4(4级流水) = 0.03333(单指令周期) 1/0.03333 = 30MIPS 单指令周期为33.3nS.
来自 我爱方案网
PIC单片机有很多种。PIC10、PIC12、PIC16、PIC18这些都是8位的单片机。
dsPIC30和dsPIC33系列单片机是属于带DSP(数字信号处理)功能的16位单片机。而PIC24系列是跟dsPIC30系列单片机相似,就是不带DSP的16位单片机。
还有就是PIC32系列是32位的单片机,是microchip为了和ARM争夺高端32位嵌入式芯片市场而生产地。
补充:有dsPIC字样的是带DSP功能的16位单片机,可以理解为有ds字样的就是DSP芯片。DSP芯片:数字处理芯片,可以在一个时钟周期里完成一个MAC,就是16位乘上16位数,其积再加上一个32位数这两个操作一个时钟周期完成。在dsPIC中,就是两个晶振周期完成,如果晶振是4MHz的话,就是说上述乘法和加法的操作能在2微秒内完成。这MAC是衡量DSP芯片的一个指标。还有就是FFT(快速傅里叶变换)等等。
PIC18和PIC24系列的也有内部的乘法器,但他们的乘法器速度远远追不上DSP芯片的MAC。 看看百度百科对DSP的详解。
DSP怎么用
举个例子:有的语音DSP芯片,可以做一个数字滤波器,两个人同时说话,麦克风录入这些声音到这个滤波器里,滤波器的喇叭可以实时算出某个人的声音,并且只输入这个人的声音(实时的,旁观者根本分辨不出延时)。这就是DSP芯片的快速数字运算能力所决定的。不要跟我说计算机的CPU也有这么快,计算机的微处理器只是频率高,在某些工程数学运算场合,它根本比不上DSP芯片。
至于Microchip的dsPIC30系列,因为它是面向于对电机、变频器的数字控制,所以它要实现上述的语音实时滤波比较困难。至于dsPIC33系列的,因为我没用过这系列的DSP,所以不敢确定是否能实现上述功能。
使用DSP芯片的快速运算功能需要编程者有《信号与系统》《复变函数》《有限元分析》《小波变换》等等的研究生才学的课程,如果只是拿来做普通单片机,那就太大材小用了。
PIC也不算便宜。和AVR一样。
PIC的优势在在于他们的芯片较多,从六个引脚的单片机到上百引脚的单片机都有。其型号不同,内部集成的功能种类和RAM/ROM大小也不同。还有集成了DSP功能的dsPIC系列。
而相对有好几百种单片机的PIC来说,AVR单片机种类没有那么多。也就那几款,所以看起来PIC低价位的单片机要比AVR那几款单片机要便宜,其实PIC贵的单片机不少。
因为PIC种类繁多,所以能适用于从电子玩具到大型仪器仪表各个工控家电自动化等范围中。
但说到抗干扰能力,个人感觉PIC和AVR差不多。而且,小编最好先学通了51单片机。然后实际动手多做几个设计。在学其他的单片机就简单了。单片机原理基本是一样的,不同的是内部的指令和集成的功能。我刚毕业没学过PIC,因为在学校做过几个51和DSP的设计,所以一个月不到就弄懂了PIC16和PIC18系列单片机。后来给别人做东西,又自己学的AVR,感觉他们都差不多,主要是理解了单片机的结构。
MSP430是16位单片机。其他两个是8位单片机。(这里指的是PIC16F系列,和ATmega系列单片机)如果在同样晶振的条件下,当然是16位单片机速度最快了。AVR单片机不分频。PIC是4分频的。所以同样晶振条件下,AVR速度快于PIC。但是如果是PIC18F系列的就两样了。因为它里面有PLL倍频电路,速度当然快的多了。dsPIC(16位单片机)甚至可以进行数字信号处理。速度就更快了。实际项目中要看具体要求的,并非芯片的速度越快越好。还要综合功耗,抗干扰能力等方面考虑。一般来说芯片跑的越快,功耗越大,抗干扰能力越低。
TI公司产品的功耗低是世界闻名的。不过嘛事情也不是绝对的。近年来Mircochip也宣称它的MCU功耗最低。但是各个公司提供的计算方法不一样。它们的结果当然就不一样了。我去过Micochip的培训,跟他们原厂的人也探讨过PIC的功耗问题。不过有的地方功耗低他们是以牺牲抗干扰为代价的。所以这也不能一概而论的。各人的角度不一样,结果就不一样了。
从出货量来说目前8位单片机是PIC最多。不过AVR也不算很少。最近一段时间有人经常在比较PIC和AVR的特点,其实各有各的长处,关键看各人喜欢了。16位单片机从使用角度来说用的并不多,目前主要使用的就是8位单片机和32位的(ARM内核)单片机。
PIC10、12、16、18、24、32虽然是Microchip公司的PIC系列单片机。但结构却是完全不相同的:
首先,PIC10/PIC12/PIC16是pic八位中档单片机,汇编指令只有三十多条,没有乘法除法指令(用汇编写乘除,只能循环做移位计算),其芯片的引脚数从六个引脚的到六十四个引脚的不等,引脚多的所集成的外设功能也多……第二PIC18系列也是八位的PIC单片机,较前者高档点,集成的功能也多比如USB、CAN总线等等。汇编指令有八十多条,和前者不同,带乘法除法指令和硬件乘法器。
第三PIC24系列的是16位单片机, 近七十条汇编指令。有硬件乘法器和硬件除法器(有了它就可以在一个指令周期内完成一个17*17或32/16的算法)。内部集成的存储器较大。还有一种芯片上面没提到,就是dsPIC系列,这其实就是集成了DSP(数字信号处理)功能的PIC24单片机,在进行某些信号控制的时候需要用到它,但它功耗较大。
第四种就是PIC32,它是三十二位的单片机,它出现的目的就是MICROCHIP公司为了用它来盒和ARM做市场竞争的。简单点说,它跟ARM是一个级别的。
虽然MICROCHIP公司的PIC芯片都是用RICS指令结构,但其内部结构不尽相同,如果你要学PIC单片机,建议先学PIC16F887,这款芯片几乎包括了PIC10~16系列中的大部分外设。推荐这个系列的最好先学汇编指令。先把这个学懂了,然后再用PIC10~16系列的其他芯片,你只需要从Microchip的网站上下载Datasheet仔细阅读以下和PIC16F887的区别就可以(指令都一样的)。而PIC18和PIC24和dsPIC系列的,你需要在原有的基础上,多看DATAHSEET,主要是看指令集的区别。这三个系列的可以直接学C,但也要了解一下汇编。
而PIC32,现在它还比不过ARM芯片,市场前景很难估计,也没有几个企业用这芯片的。
你的第一个问题,看门狗用了预分频的话,那定时器0就不能再用预分频了。有的PIC芯片还带有看门口自己独用的分频器,这样的话可以给TIMER0让出一个预分频来(比如PIC16F886)。 看门狗如何设成最优,那只能是从你的指令里计算了,还必须根据你的单片机所运行的环境来看,如果电磁环境很恶劣,最好是较短时间就设置一调喂狗指令。
PIC12、PIC16、PIC18、pic24等系列的单片机基本上都是10位精度的AD,而dsPIC30/33系列单片机有12位精度的AD。
在这只说10位精度的AD的计算。
首先2的10次方就是1024,也就是说AD采集到的数据用0到1023这1024个数值来表示,这还需要看你设置的参考电压的值,如果设置参考电压为5V(VREF引脚接5V),则参考电压范围是0V~5V,其对应的就是0~1023.
所以 AD值 = (采集到的数据 * 5V)/ 1023
内部时钟不是系统时钟,系统时钟是单片机在运行时的时基时钟,而内部时钟是由片内振荡器产生的时钟。也就是说,时钟源可以是内部时钟也可以是外部时钟来产生。而产生的这个时钟源进入系统后由于dspic有4级流水线,所以时钟频率乘以4.
比如说最高30MIPS,时钟源是15M的,应用8倍频,那么15M * 8 = 120M(即FOSC) 1/120M = 0.0083333 0.0083333 * 4(4级流水) = 0.03333(单指令周期) 1/0.03333 = 30MIPS 单指令周期为33.3nS.
来自 我爱方案网
受教了