王招治-嵌入式系统设计报告材料_第1页
王招治-嵌入式系统设计报告材料_第2页
王招治-嵌入式系统设计报告材料_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、直流电机程序设计课程名称姓 名学 号 1201401011专 业任课教师国冈U开课时间2013-8-17教师评阅意见:报告成绩评阅日期课程设计提交时间:2013年9月10日直流电机程序设计设计目的1熟悉 ARM本身自带的PWM掌握相应寄存器的配置。2、Linux 下编程实现ARM系统的PWM输出,从而控制直流电机。3、了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。4、掌握带有 PWM的CPU编程实现其相应功能的主要方法。设计容学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARMPW的生成方法。使用 Redhat Linux 9.0操作系统环境及ARM编

2、译器,编译直流电机的驱动 模块和应用程序。运行程序,实现直流电机的调速转动。1、直流电动机的PWM电路原理晶体管的导通时间也被称为导通角a,若改变调制晶体管的开与关的时间,也就是说通过改变导通角a的大小,如图2.9.1所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制(PWM)变速控制。在PWM变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。构成PWM的功率转换电路或者采用 "H"桥式驱动,或者采用"T"式驱动。由于"T"式电路要求双电源供电,而且功率晶体管承受的反向电压为电源

3、电压的两倍。因此只适用于小2、直流电动机的PWM等效电路如图2.9.2 a 所示:是一个直流电动机的 PWM控制电路的等效电路。在这个等效电路 中,传送到负载(电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。开关 频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),般为IkHz至5kHz,小功率时(100W , 5A以下)可以取高些,这决定于晶体管的特性。对于绝缘栅双极 晶体管(IGBT),一般为5kHz 至l2kHz ;对于场效应晶体管(MOSFET),频率可高达2OkHz。 另外,开关频率还和电动机电感有关,电感小的应该取得高些。角;.? J(3-爼电瞬续逍二

4、扱甘2 D图ftJEWM电略中电洗和电圧渡讨伦当接通电源时,电动机两端加上电压UP,电动机储能,电流增加,当电源中断时,电枢电感所储的能量通过续流二极管 VD继续流动,而储藏的能量呈下降的趋势。除功率值以外电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间及电机的电磁时 间常数有关。3、开发平台中直流电机驱动的实现开发板中的直流电机的驱动部分如图所示;由于S3C2410芯片自带定时器,所以控制部分省去了三角波产生电路、脉冲调制电路和PWM信号延迟及信号分配电路,取而代之的是S3C2410芯片的定时器0、1组成的双极性PWM发生器。味冲迥启咆奇信右分毗电踹PWM发生器用到的寄存器主

5、要有以下几个:TCFGO定时器配置寄存器 0k 2.91 TCFGO 康存处地址it呜复也值7CFG00x1000000R.UGoniipire tbt two S<bif prewalenOxOWQOOCOTCFGOft初始状态Resened31:24OkOODed zcuel?u?th|23;1<5Tie st S bit? denuiue 也圮 deid 二 cu已 k丐di. Ths 1 unittime of ±e dead zone 1 已迟th is e(iial io th.it of tunei 0feMPrescaler 115:8Tlew S bit

6、s detemiine jrex derfor Timer 二 3 and4-0x00Frealer 02】Heit S bit了 determine jrexaler value for Tim-er 0 and 1,OkW参考: Dead zone length= 0 ; prescaler value= 2。TCFG1定时器配置寄存器1? 2.9.2 TCFG1 痒普T<FG10s51«(X)0WRW5-hfUX & DMA用ltuon itgiiteiOxWOQOWCTCTG1描址Resent31:2400000000DMA modeR3:>0Select

7、 DMA requestchAnn«l0000 = Mo 詛號t (all0Q01 = TimaOuit«rnLpt)0010 = Tnnerl0011 = Tim&20100 = TiuariiOlOl - Timed0110 = Rffienrd0000X1UX419 16Select MUX mpit fbrF珊M Tiuwr40000 = 1/2 0001 =140010 =1« 0011 = 1/16 Olan =IxtenialTCLKl00<K)MUXJ1512Select MUX mput far PWV Timer;.WW = 1/

8、2 0QQ1-P40Q1Q-1?0011 = 1 16 01sx=ExtttiilTCLKlooooWX2irsdetect MUX input for FWM TimerZ.0000 - 1 2 0001 = 1-4 0010 =1-30011 二 116 Olxx = External TCLK100 0QMUX1MSelect MUX inpur for PWM Timerl 0000 - 1/2 0001-14 0010-1? 0011 二 1 1(5 01 ex = External TCLK0OQOOMUXO30Select MUX input for PWM TiineiO om

9、 = 1 2 0001 = 1 4 0010 = I S 0011 = 1 U 01KX = External TC1K0oooo时钟输入频率= PCLK/ (prescaler value+1)/(divider value)prescaler value 有 TCFGO 决定;divider value由 TCFG1 决定。参考:无 DMA 模式,divider value = 2。本系统中 PCLK= 50.7MHz TCON定时器控制寄存器TCON r:地址ICONOxJIQOQQOSRWI'm近T control resisterOxOOOOQQflOTcoyft捕述初始狀箍

10、Turner 4 auto reload oa off22Determine auto reload on'off for Timer 4. 0 =Ooe-diot 1 = Intenal mode (auto reload10Timef 4 manual up da itP1JDetimme the manud update far I nner 4. 0 = No operation t - Update TCNTB40Tuner 4 start icopDficimiue start siop for Tim er 4. 0 = Stop 1 =Start for 丁 imer

11、40Timer 3 auto rdoad ottoff119Dtt*ituiie auro reload on'off for Timer 3.0One-shot l - InteKal mode Cauro reload)0Timer 3 output mrterOR'oflf阖Detexmiibe ouut inverter mL'&ff fbr Tim曰 3.0> Inverter off 1 = Inveite-r an for TOUT37Tiniw 1 manual update17Detemiin* manual update for Ti-

12、me-r 1. 0 "No aperabon L = Update TCVTB5 A TCMPB3i)Timer 3 start slop1<5Deteimiof start-stop for Timer 3 Q = Stop 1 = Start far Inner S0Timer 2 auto reload on- off15Dertmune auto r«load on'flff for Timer 2 0 =Ore-£ho( 1 = Int 色 rval mod# (me nlod)0Timer 2 output ins erter114Det

13、timine cutpul ini'erter on off forTinwi 2. 0 = lavetiei off 1 = Lit亡rtur on fbi TOUT20Tuuer 2 manna! vpcfateBlDttenaiiie the manual update for Timtr 2 0 = No operatioD 1 二 Update TCNTB2 & TCMPB20Timer 2 stirt' stop12Dtemnuestop for T imei 2 0 - Stop 1 -Starr fbi Timer 20Timer 1 auro relo

14、ad on. offHDetermine the auto reload oit off for Tmierl 0 =Oue-shot 1 = LntervaJ mode (auto reload)0Tuu« 1 output iHh«riftr on-ofif10)D#t*nti;n* th# &urput tnv*twr in for Timerl.Q = Inverter aH 1 = Inverter on for TOUT10Tim#i 1 unniial 丐da怯9Dettrauiie tie nuuual update for Ttm#t 1.0 ND

15、operatum 1 = Update TCNTB1 & TCMPB10Tuner 1 stilt- stopSDetertnhif stm stop for Tiinei 1. 0 * Stop 1 Stair for Timer 10ICONBitlxutiJRftened7:5RgfwvEdDead zone suable4Detenuioe the dead 页聊 opentiQn. 0 = Eh sable1 = Enable0Timer 0 auto reload on off3DetennizK auto reload on;off ibr Timer 0 0 =1 =

16、Lnteival mod占 aum r訂md)0Tuner 0 output inverter on o ff21Dttemune the output inverter on off for Timer 0 0 = Inverter off 1 = Inv«t« on foi TOUTO0Tuner 0 manual Lip date (note)IDf temuxie the Qiiual update fbi Tuner (J. 0 = Xd opeiaHcn 1 = Update TCNTBO & TC?vfPB00Timer 0 start' st

17、op0D# tenuuie tart stop for Timei 0 0 Scop 1 SlarT for Timer 00参考: dead zone operation enable; Inverter offTCNTB0& TCMPBO 定时器计数缓冲区寄存器和比较缓冲区寄存器占94TCMPBO地址TtNTBfl(helQOOTOCRWIwcr 0 count buffer reei st erTCMPBOtk51000010Tini-e匚 0 compare buffer f&isrer0x00000000ICMPBC也描述初始状击Tiinei 0 compare bu

18、fferregisieiIMS-et conrpare bcSer value for Tamei 00x00000000TCXIE0初始找盡Timer J count buffer reoictei15:0Sei count buffer value for Timer 00x00000000TCNTB0决定了脉冲的频率, TCMPB0决定了正脉冲的宽度。当 TCMPB& TCNTB0/2时,正负脉 冲宽度相同;当TCMPB0由0变到TCNTB0时,负脉冲宽度不断增加。参考:脉冲频率为1HzoTCNTO0定时器观察寄存器需存器地址r運也值TCNTOORTimer QaxOOQQQWQ

19、ICXIOQ描建TuEier 0 oberi'aLon iEEiGter15:0wuntforTuatJ 0三、程序分析Linux下的直流电机程序包括模块驱动程序和应用程序两部分。Module驱动程序实现了以下方法:static struct file_operations s3c2410_dcm_fops = owner: THIS_MODULE,open: s3c2410_dcm_open,ioctl: s3c2410_dcm_ioctl,release: s3c2410_dcm_release,;开启设备时,配置IO 口为定时器工作方式:( GPBCON &=0xf; G

20、PBCON |= 0xa; )配置定时器的各控制寄存器:( TCFG0 &=(0x00ff0000); TCFG0 |= (DCM_TCFG0); TCFG1 &=(0xf); TCNTB0 = DCM_TCNTB0; /* less than 10ms */ TCMPB0 = DCM_TCNTB0/2; TCON &=(0xf); TCON |= (0x2); TCON &=(0xf); TCON |= (0x19); )在s3c2410_dcmoctl中提供调速功能接口:case DCM_IOCTRL_SETPWM:return dcm_setpwm(int

21、)arg);应用程序dcm_main.c中调用:ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor);实现直流电机速度的调整。具体程序代码 da_main.c如下:#i nclude <stdio.h>#in clude <fcn tl .n>#in clude <stri ng.n>#in clude <sys/ioctl. n>static int dcm_fd=-1;char *DCM_DEV=*/dev/dcm/Oraw*; /延时时间 void Delay(int t)int i;for(

22、;t>0;t-) for(i=0;i<400;i+);/主程序int main(int arac,char *argv) int i=0;int status=1;int setpwm=0;int fartor=DCM_TCNTB0/1024; if(dcm_fd=open(DCM_DEC,O_WRONLY)<0 printf(*Error opening %s devicen*,DCM_DEV); return 1;for(;) for(i=-512;i<=512;i+) if(status=1) setpwm=i;速度调整else setpwn=-i; ioctl(

23、dcm_fd,DCM_IOCTRL_SETPWM,(setpwm * factor);/ Delay(500);printf(*setpwm = %d n*, setpwm); status=-status; close(dcm_fd);return 0;四、操作步骤:1、配置NFS服务器rooIhos l root# v i /e tc/txpor t sr oo t<loca Ihos t roo t # expor I fs *rv “porting 192.168 J)*:/arn£410srooIhos t root # se rv ice po r i tw p s

24、tartJ 功 por inuppe r :roo tlocaIhosi root# service nf s i tar I 启动NFS服务:Star t in雷 >FS qua tas: 启动NFS末护进桂 麻动 bfS twuntd:roo t ;®loca Ihos I root 1 roo tloca Ihos i roa tflirouni 192.168.0 J21: /a rir&410s /mii s /rmtbusybojt-1 *00-prel0 <loc gdb deiwsexp gu iITrooIhost rootl# Ike rne

25、1-241 Osroo t shVERSIChH确Jiiffi定 确定 确定 确定I111连接好串口线、网络线,接着启动mi nicomrootloc3 Ihost root# min icomW l<nrrr tn miTi icorri 2,00CPTMW; His lory Ki f fer. F-key弘却Th Hi ninry Bii (ft r t 11 Rn(bnpiled on Jan 25 2003, 00:15:18.Pw勢 CTRL*A Z forhe Ipsp-eciu 1 keysVI VI vert ion 0.1.4 ( i s he n-XUL J t g

26、 cc m1 i ion 2 . 2 200JOS 11 C r ? I e a e > Ite be I . coihMl tab Je ba se address = lh胆DFCDOOSucceed m?mry nupping .N>T) dev ice : Kinu far tuje I F> Oxcc t Ch ip ll> OxZG ( Sanrung K9DI20fiWMCcu Id not found s torrd v iv i pirunr ttr i. Ust de fnii11 viv i pa runr tc r5i.Pres Re turn

27、to 5 tar I the LINUX n<nv sny other key F-dt v iv iMs Slcrag« supper t regi s tered *mi ce ; PS/2 in>us-e dtvi« ccnnim f r a I L mices3c2410-tt iniliaizedMTT4: Linux TQV1P 1 .1 for 陲T4.0J? Protocols: ICM LU TCP* KJVPIP; roui ing cache hash cab k of 612 budfft" 4Kby usTCPilabk en

28、nf igured (e<;nbl i nhed 4D飾 bind 409fi)Linux IP rau 11 vcj 1 ron11r O.UG pin* PIMSMM.1'4 : Lhi 忙 dorni in ack-e t e 1 .U/SM1 for L lnu M?T4 .1).Nr t nrie r F Inciting “Hint Emi k cor 训.95 心)I99R- 1999 Re he I, corn WS: Mitin tod root < frsantfs f i It syfttrm:.IU)an td dev f s on /devFree

29、 ing i n i t rrr ivnry ; E)RKyj f f s : dv s 7937 twnr is *1 F:OIrUk ing /mt t/ya f f 4/ 11b/nodu 怙灯仝山.18-rmk7-pka lyifernt l/dr r s /12/ i2c- tcrttgifi .<i no PS/2 dev l ce found on PS/2 Per t 01nfl PS/2 dev ice ffliind on PS/2 Por t 1!tbi«yBnx vl (H) i: 200S .01 h20-I 1Bit i I i-in sbr I I

30、 (彩h)Fn ter 'ho 1 p1 for a I 1 of bu i 11- in comrands.run in|T /e i c; pi o t i lr ok|/nn rFya 阡首匚然后设置一下虚拟机:在vm-settings-hardware虚拟机的设置,修改网络连接方式为 BridedPi ng 宿主机(pi ng 192.168.0.121 )。然后 mount nfs (mount - nfs nolock 192.168.0.121:/arm2410s /host),查看是否成功:yimi/yaffsjping 12J6g,D J2tPlbG H2 J6

31、71;.O J21 C192.168.0 J21>:箭 thia by【和bytesfrom192.I&8.Q.1211i cnp_s«q=36it 1-64(inr=2(MMhf iniby le sr rom192.168.0.121:icirp_!i<?q-7t tl=t)4t inB-H0O1.3 tnj4b le sI'rctn192J68.0.121:icrrp_&eq=iKtll=64t irm-1 -5mt14by ie sf rem192. J(8.0 12kicnp_scq=3yt11=64t 1TTC =0 F 5ITSby

32、te sfrom192.168.0 J21:icnp_scq4Cttl=Mt inr =0 -4rrfi.)4bytesfrom192 J68.0.121:icnp_scq=41tl1-64t i nr =0. 5mtby le sf rum192.1S8 .0.121:icirp_seq=4Stl1-64i i nt =0.6IT!ij4by le it'rern:crrp_Eeq=4'it L l=<)4tim=0.5Aby le sfrem192 468.0.121:icnp_!iq=44t I I=ti4t ine =0 “5rrfi.by le sFrom192U61.0 J21:icnp 厝q=4百t tl=Mt i nr =0 H SnfB”.192.168.0.121 pingi s1 ltd IGp-a ckcl s t rjnsmi t ted h 1 U paeke Ls ere i ved r 78M packs tlos 5round-1r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论