① ARM,单片机,嵌入式,FPGA有啥区别我想学习FPGA,需要其他单片机,嵌入式等的知识吗
ARM是一种微处理器的类型。
单片机范围很广,其实广义上讲,ARM也是单片机。但是算是比较高级的单片机了。
ARM和单片机的关系就像说 酷睿i3 和 计算机处理器之间的关系。
嵌入式,这个没有明确的定义的。曾经有个工程师对我说:只要满足一下两个条件就属于嵌入式产品---1.专用性,就是是为了某一项功能或者某一个领域而设计的软硬件系统.2.可裁剪性,就是陆旅亮说和通用计算机相比,不管是软件还是硬件都可以根据自己的需要镇李进行删减的软硬件系统。就是嵌入式系统。
嵌入式要说定义没有,举例的话很多了,什么手机,MP3\4,Pad,上班用的打卡机,复印机……
FPGA,FPGA和前面所说的ARM,单片机是有本质区别的。因为ARM属于处理器,而FPGA不是。FPGA内部没有运算器,没有控制器,没有寄存器。只有许多逻辑门。你可以通过自己的需要控制里面逻辑门的连通与断开从而实现不同的电路。打个比方ARM是一把剑,那么FPGA就是一块铁,你可以照着ARM的样子打一把剑出来用,也可以照着51单片机一样打一把刀出来用。
单纯从学习方面来说,学习FPGA只早宽需要硬件描述语言的知识,比如verilog、VHDL等等。其他可以不管,有了这基础一定能学会。
如果要是应用的话,还得有单片机、嵌入式的知识才行。因为FPGA独立使用的话价值不大。成本不低。要和嵌入式处理器或其他器件配合使用才能发挥FPGA最大的用处。
② 学单片机能用什么样的笔记本电脑
现在一般的笔记本电脑都可以的
———————————————————————————————
如果你的确是想买一台适合自己用的电脑,那就耐心把我的回答看完。
———————————————————————————————
我推荐的机器都是够用最划算的,如果你的预算比较宽可以在外观和品牌方面在做比较。
如果对你有帮助请【及时采纳】,如果没有帮助只当是多分参考中的一份。
【版权所有:xian86913】谢谢!如转载请注明,谢谢!
【我不可能为每一个人去整理推荐资料,一般大众化的购买需求都可以参考。】
对于现在的电脑科技来说,最佳的购机尺寸是14寸,尺寸小一点发挥不出笔记本配置的性能,在大的话就失去了笔记本电脑便携的优势。买笔记本电脑前期最好可以多去附近的电脑城看看,看看实体机器到底是否适合自己,【购买时应注意:cpu、内存、硬盘、显卡等。】
主流配置一般都是cpu:i3 i5或者i7;内存:2G 4G;硬盘:320G 500G 1T;独立显卡等
i3与i5同品牌价格相差300到800不等;i5与i7相差500到1200不等(仅供参考)
清华同方、方正、海尔等是一个清察高层次
华硕、戴尔、联想、惠普、宏基、三星是一个层次
索尼、东芝、苹果等代表更高一层
我推荐以中层为主:
宏基:4750G-2432G50Mnkk(540M/1GB独显) ¥4000 左右
屏幕尺寸:14英寸 1366x768
CPU型号:Intel 酷睿i5 2430M
内存容量:2GB DDR3
硬盘容量:500GB 5400转
显卡芯答尺片:NVIDIA Geforce GT 540M
操作系统:Windows 7
惠普:g4-1060TX(LZ776PA) ¥4200左右
屏幕尺寸:14英寸
CPU型号:Intel 酷睿i5 2410M
内存容量:2GB DDR3
硬盘容量:750GB 5400转
SATA 显卡芯片:AMD Radeon HD 6470M
操作系统:Windows 7
索尼:EG26EC/W(白) ¥4099左右
屏幕尺寸:14英寸
CPU型号:Intel 酷睿i3 2330M
内存容量:2GB DDR3
硬盘容量:500GB 5400转
SATA 显卡芯片:Intel GMA HD 3000
操作系统:Windows 7
戴尔:Inspiron 灵越14RD-718Sw ¥4300左右
屏幕尺寸:14英寸
CPU型号:Intel 酷睿i3 2330M
内存容量:2GB DDR3
硬盘容量:500GB 5400转
SATA 显卡芯片:AMD Radeon HD 6470M
操作系统:Windows 7
华硕:A43EI231SV-SL ¥4099左右
屏幕尺寸:14英寸
CPU型号:Intel 酷睿i3 2310M
内存容量:2GB DDR3
硬盘容量:500GB 5400转
SATA 显卡芯片:NVIDIA GeForce GT 540M
操作系统:Windows 7
联想:ThinkPad E420(1141A51) ¥4000左右
屏幕尺寸:14英寸 1366x768
CPU型号:Intel 酷睿i3 2330M
内存容量:2GB DDR3
硬盘容量:320GB 5400转
SATA 显卡芯片:AMD Radeon HD 6470M
操作系统:没袜Windows 7
联想:G470A-IFI(深棕色) ¥4100 左右
屏幕尺寸:14英寸
CPU型号:Intel 酷睿i5 2410M
内存容量:2GB DDR3
硬盘容量:500GB
显卡芯片:AMD Radeon HD 6370M
操作系统:Linux
祝你早日选到自己的本本。(有合适的型号追问我也可以帮你参考)
希 望 我 的 回 答 对 你 购 机 有 一 定 的 帮 助 。
③ 为什么都不建议买i312100
④ 如何用单片机控制直流电机
通过与单片机相连的按键控制直流电机停启的电路如下图所示,通过P3.6口按键触发启动直流电机,P3.7口的按键触发停止直流电机的运行。由图可知,当P1.0输出高电平“1”时,NPN型三极管导通,直流电机得电转动;当P1.0输出低电平“0”时,NPN型三极管截止,直流电机停止转动。
通过单片机产生PWM波控制直流电机程序
#include"reg52.h"
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[10]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管显示码(0-9)
sbitxiaoshudian=P0^7;
sbitwei1=P2^4;//数码管位选定义
sbitwei2=P2^5;
sbitwei3=P2^6;
sbitwei4=P2^7;
sbitbeep=P2^3;//蜂鸣器控制端
sbitmotor=P1^0;//电机控制
sbits1_jiasu=P1^4;//加速按键
sbits2_jiansu=P1^5;//减速按键
sbits3_jiting=P1^6;//停止/开始按键
uintpulse_count;//INT0接收到的脉冲数
uintnum=0;//num相当于占空比调节的精度
ucharspeed[3];//四位速度值存储
floatbianhuasu;//当前速度(理论计算值)
floatreallyspeed;//实际测得的速度
floatvv_min=0.0;vv_max=250.0;
floatvi_Ref=60.0;//给定值
floatvi_PreError,vi_PreDerror;
uintpwm=100;//相当于占空比标志变量
intsample_time=0;//采样标志
floatv_kp=1.2,v_ki=0.6,v_kd=0.2;//比例,积分,微分常数
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
voidtime_init()
{
ET1=1;//允许定时器T1中断
ET0=1;//允许定时器T0中断
TMOD=0x15;//定时器0计数,模式1;定时器1定时,模式1
TH1=(65536-100)/256;//定时器1值,负责PID中断,0.1ms定时
TL1=(65536-100)%6;
TR0=1;//开定时器
TR1=1;
IP=0X08;//定时器1为高优级
EA=1;//开总中断
}
voidkeyscan()
{
floatj;
if(s1_jiasu==0)//加速
{
delay(20);
if(s1_jiasu==0)
vi_Ref+=10;
j=vi_Ref;
}
while(s1_jiasu==0);
if(s2_jiansu==0)//减速
{
delay(20);
if(s2_jiansu==0)
vi_Ref-=10;
j=vi_Ref;
}
while(s2_jiansu==0);
if(s3_jiting==0)
{
delay(20);
motor=0;
P1=0X00;
P3=0X00;
P0=0x00;
}
while(s3_jiting==0);
}
floatv_PIDCalc(floatvi_Ref,floatvi_SpeedBack)
{
registerfloaterror1,d_error,dd_error;
error1=vi_Ref-vi_SpeedBack;//偏差的计算
d_error=error1-vi_PreError;//误差的偏差
dd_error=d_error-vi_PreDerror;//误差变化率
vi_PreError=error1;//存储当前偏差
vi_PreDerror=d_error;
bianhuasu=(v_kp*d_error+v_ki*vi_PreError+v_kd*dd_error);
return(bianhuasu);
}
voidv_Display()
{
uintsu;
su=(int)(reallyspeed*10);//乘以10之后强制转化成整型
speed[3]=su/1000;//百位
speed[2]=(su00)/100;//十位
speed[1]=(su0)/10;//个位
speed[0]=su;//小数点后一位
wei1=0;//第一位打开
P0=table[speed[3]];
delay(5);
wei1=1;//第一位关闭
wei2=0;
P0=table[speed[2]];
delay(5);
wei2=1;
wei3=0;
P0=table[speed[1]];
xiaoshudian=1;
delay(5);
wei3=1;
wei4=0;
P0=table[speed[0]];
delay(5);
wei4=1;
}
voidBEEP()
{
if((reallyspeed)>=vi_Ref+5||(reallyspeed
{
beep=~beep;
delay(4);
}
}
voidmain()
{
time_init();
motor=0;
while(1)
{
v_Display();
BEEP();
}
if(s3_jiting==0)//对按键3进行扫描,增强急停效果
{
delay(20);
motor=0;
P1=0X00;
P3=0X00;
P0=0x00;
}
while(s3_jiting==0);
}
voidtimer0()interrupt1
{
}
voidtimer1()interrupt3
{
TH1=(65536-100)/256;//1ms定时
TL1=(65536-100)%6;
sample_time++;
if(sample_time==5000)//采样时间0.1ms*5000=0.5s
{
TR0=0;//关闭定时器0
sample_time=0;
pulse_count=TH0*255+TL0;//保存当前脉冲数
keyscan();//扫描按键
reallyspeed=pulse_count/(4*0.6);//计算速度
pwm=pwm+v_PIDCalc(vi_Ref,reallyspeed);
if(pwm
if(pwm>100)pwm=100;
TH0=TL0=0;
TR0=1;//开启定时器0
}
num++;
if(num==pwm)//此处的num值,就是占空比
{
motor=0;
}
if(num==100)//100相当于占空比调节的精度
{
num=0;
motor=1;
}
}
⑤ 单片机实现傅立叶变换
用FPGA这种单片机
在对FFT(快速傅立叶变换)算法进行研究的基础上,描述了用FPGA实现FFT的方法,并对其中的整体结构、蝶形单元及性能等进行了分析。
关键词:
FPGA FFT
傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。
1 整体结构
一般情况下,N点的傅立叶变换对为:
其中,WN=exp(-2 pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。
N=8192点DFT的运算表达式为:
式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。
由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。
图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。
2 蝶形运算器的实现
基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有:
A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)]� (4)
B′=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(
i2×c2+r2×s2)+(r3×c3-i3×s3)] (5)
C′=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] (6)
D′=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)]� (7)
看明白了吗?