- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux实验报告29(直流电机实验)
嘉应学院电子信息工程学院学生实验报告
班级: 082班 座号: 姓名: 成绩:
课程名称:嵌入式Linux应用程序开发标准教程
实验项目:直流电机实验
一、实验目的
1、熟悉ARM 本身自带的PWM,掌握相应寄存器的配置。
2、Linux 下编程实现ARM 系统的PWM 输出,从而控制直流电机。
3、了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。
3、掌握带有PWM 的CPU 编程实现其相应功能的主要方法。
二、实验内容
学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM PWM
的生成方法。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译直流电机的驱动模
块和应用程序。运行程序,实现直流电机的调速转动。
三、预备知识
C 语言的基础知识、程序调试的基础知识和方法,Linux 的基本操作。Linux 关于module
的必要知识。
四、实验设备及工具
硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC机Pentium 500 以上,硬盘10G以上
软件:PC 机操作系统REDHAT LINUX 9.0+MINICOM+ARM LINUX 开发环境
五、实验原理
1、直流电动机的PWM 电路原理
晶体管的导通时间也被称为导通角а,若改变调制晶体管的开与关的时间,也就是说通过
改变导通角а 的大小,如图2.9.1 所示,来改变加在负载上的平均电压的大小,以实现对电
动机的变速控制,称为脉宽调制 (PWM)变速控制。在PWM 变速控制中,系统采用直流电
源,放大器的频率是固定,变速控制通过调节脉宽来实现。
构成PWM 的功率转换电路或者采用H桥式驱动,或者采用 T式驱动。由于T式电路
要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。因此只适用于小功
率低电压的电动机系统。而H桥式驱动电路只需一个电源,功率晶体管的耐压相对要求
也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。
脉宽调制 (PWM)变速
2、直流电动机的PWM 等效电路
如图2.9.2 a 所示:是一个直流电动机的PWM 控制电路的等效电路。在这个等效电路中,
传送到负载 (电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。
开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz
至5kHz,小功率时(100W,5A 以下)可以取高些,这决定于晶体管的特性。对于绝缘栅双
极晶体管(IGBT),一般为5kHz 至l2kHz;对于场效应晶体管(MOSFET),频率可高达2OkHz。
另外,开关频率还和电动机电感有关,电感小的应该取得高些。
等效电路 PWM 电路中电流和电压波讨论
当接通电源时,电动机两端加上电压UP,电动机储能,电流增加,当电源中断时,电枢
电感所储的能量通过续流二极管VD 继续流动,而储藏的能量呈下降的趋势。
除功率值以外,电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间
及电机的电磁时间常数有关。
六、程序分析
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; 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); \
TCON |= (0x19); })
在s3c2410_dcm_ioctl 中提供调速功能接口:
case DCM_IOCTRL_SETPWM:
return dcm_setpwm((int)arg);
应
文档评论(0)