嵌入式系统设计报告(共12页).doc

上传人:飞****2 文档编号:14038811 上传时间:2022-05-02 格式:DOC 页数:12 大小:1.23MB
返回 下载 相关 举报
嵌入式系统设计报告(共12页).doc_第1页
第1页 / 共12页
嵌入式系统设计报告(共12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《嵌入式系统设计报告(共12页).doc》由会员分享,可在线阅读,更多相关《嵌入式系统设计报告(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 研究生课程设计报告直流电机程序设计课程名称 嵌入式系统设计 姓 名 王招治 学 号 专 业 电子与通信工程 任课教师 李国刚 开课时间 2013-8-17 教师评阅意见:报告成绩评阅日期课程设计提交时间:2013年9月10日直流电机程序设计一、 设计目的1、熟悉 ARM 本身自带的PWM,掌握相应寄存器的配置。2、Linux 下编程实现ARM 系统的PWM 输出,从而控制直流电机。3、了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。4、掌握带有 PWM 的CPU 编程实现其相应功能的主要方法。二、 设计内容 学习直流电机的工作原理,了解实现电机转动对

2、于系统的软件和硬件要求。学习 ARM PWM的生成方法。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译直流电机的驱动模块和应用程序。运行程序,实现直流电机的调速转动。1、直流电动机的PWM 电路原理 晶体管的导通时间也被称为导通角,若改变调制晶体管的开与关的时间,也就是说通过改变导通角 的大小,如图2.9.1 所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制 (PWM)变速控制。在PWM 变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。 构成PWM 的功率转换电路或者采用H桥式驱动,或者采用 T式驱动。由于T

3、式电路要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。因此只适用于小功率低电压的电动机系统。而H桥式驱动电路只需一个电源,功率晶体管的耐压相对要求也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。2、直流电动机的PWM 等效电路 如图2.9.2 a 所示:是一个直流电动机的PWM 控制电路的等效电路。在这个等效电路中,传送到负载 (电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz至5kHz,小功率时(100W,5A 以下)可以取高些,这决定于晶体管的特性。对于绝缘栅双极晶体管

4、(IGBT),一般为5kHz 至l2kHz;对于场效应晶体管(MOSFET),频率可高达2OkHz。另外,开关频率还和电动机电感有关,电感小的应该取得高些。 当接通电源时,电动机两端加上电压UP,电动机储能,电流增加,当电源中断时,电枢电感所储的能量通过续流二极管VD 继续流动,而储藏的能量呈下降的趋势。除功率值以外电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间及电机的电磁时间常数有关。3、开发平台中直流电机驱动的实现开发板中的直流电机的驱动部分如图2.9.3 所示;由于S3C2410 芯片自带定时器,所以控制部分省去了三角波产生电路、脉冲调制电路和PWM 信号延迟及信号分配

5、电路,取而代之的是S3C2410 芯片的定时器0、1 组成的双极性PWM 发生器。PWM 发生器用到的寄存器主要有以下几个: TCFG0 定时器配置寄存器0参考:Dead zone length0;prescaler value2。TCFG1 定时器配置寄存器1时钟输入频率PCLK/(prescaler value+1)/(divider value)。prescaler value 有TCFG0 决定;divider value 由TCFG1 决定。参考:无DMA 模式,divider value2。本系统中PCLK50.7MHzTCON 定时器控制寄存器参考:dead zone opera

6、tion enable;Inverter offTCNTB0& TCMPB0 定时器计数缓冲区寄存器和比较缓冲区寄存器TCNTB0 决定了脉冲的频率,TCMPB0 决定了正脉冲的宽度。当TCMPB0TCNTB0/2 时,正负脉冲宽度相同;当TCMPB0 由0 变到TCNTB0 时,负脉冲宽度不断增加。参考:脉冲频率为1Hz。TCNTO0 定时器观察寄存器三、程序分析Linux 下的直流电机程序包括模块驱动程序和应用程序两部分。Module 驱动程序实现了以下方法:static struct s3c2410_dcm_fops = owner: THIS_MODULE,open: s3c2410_

7、dcm_open,ioctl: s3c2410_dcm_ioctl,release: s3c2410_dcm_release,;开启设备时,配置IO 口为定时器工作方式:( GPBCON &= 0xf; GPBCON |= 0xa; )配置定时器的各控制寄存器:( TCFG0 &= (0x00ff0000); TCFG0 |= (DCM_TCFG0); TCFG1 &= (0xf); TCNTB0 = DCM_TCNTB0; /* less than 10ms */ TCMPB0 = DCM_TCNTB0/2; TCON &=(0xf); TCON |= (0x2); TCON &=(0xf)

8、; TCON |= (0x19); )在s3c2410_dcm_ioctl 中提供调速功能接口:case DCM_IOCTRL_SETPWM:return dcm_setpwm(int)arg);应用程序dcm_main.c 中调用:ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor);实现直流电机速度的调整。具体程序代码da_main.c 如下:#include #include #include #include #define DCM_IOCTRL_SETPWM (0X10)#define DCM_TCNTB0 (16384)static

9、int dcm_fd=-1;char *DCM_DEV=*/dev/dcm/Oraw*;/延时时间void Delay(int t) int i;for(;t0;t-)for(i=0;i400;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)0printf(*Error opening %s devicen*,DCM_DEV);return 1;for(;)for(i=-512;i=5

10、12;i+)if(status=1)setpwm=i;else setpwn=-i;ioctl(dcm_fd,DCM_IOCTRL_SETPWM,(setpwm * factor);/速度调整Delay(500);printf(*setpwm = %d n*, setpwm);status=-status;close(dcm_fd); return 0;四、操作步骤:1、 配置NFS 服务器连接好串口线、网络线,接着启动minicom然后设置一下虚拟机:在 vm-settings-hardware 虚拟机的设置,修改网络连接方式为BridedPing 宿主机(ping 192.168.0.12

11、1)。然后 mount nfs(mount t nfs o nolock 192.168.0.121:/arm2410s /host),查看是否成功:执行 ls /mnt, 可看到已显示宿主机/arm2410s 目录里的内容,显示成功。2、 进入/arm2410s/exp/basic/10_dcmotor 目录,使用vi 编辑器编辑源程序da_main3、 编译应用程序运行make 产生da 可执行文件da_main4、 下载调试切换到minicom 终端窗口,输入mount t nfs 192.168.0.xxx:/arm2410s /hostinsmod /host/kernel-2410

12、s/drivers/char/s3c2410-dc-motor.ocd /host/exp/basic/10_dcmotor/./dcm_main程序运行结果:直流电机变速转动。五、总结通过学习嵌入式系统设计这门课,我熟悉了 Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。同时学会使用Linux 的armv4l-unknown-linux-gcc 编译等编译方法,以及使用基于NFS 方式的下载调试,比较深入了解嵌入式开发的基本过程。在这门课的学习过程当中,老师采用理论与实验想结合的方法,使我们对嵌入式这门深奥的专业课更好的理解和撑握,这对于我们这次直流电机程序

13、的顺利完成起了铺垫的作用。通过这次设计,我掌握了ARM 本身自带的PWM,掌握相应寄存器的配置了解直流电机的工作原理,学会用软件的方法实现直流电机的脉冲分配。这对以后的学习和工作都起到了一定的作用,同时加强了动手能力和学业技能。由于对嵌入式系统的开发过程掌握得不够熟练,所以刚开始做的时候在配置NFS上花了很长时间,通过这次程序的编译,下载调试直到最后程序运行出正确结果,我感觉到自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时这次设计增加了我对这门学科的兴趣。总体来说,这次设计让我受益匪浅。在摸索该如何设计使之实现所需功能的过程中,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐。最后感谢李老师和同学们的指导和帮助!专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁