基于嵌入式arm+linux平台的直流电机调速控制系统的设计

基于嵌入式arm+linux平台的直流电机调速控制系统的设计

ID:6634568

大小:232.11 KB

页数:0页

时间:2018-01-20

基于嵌入式arm+linux平台的直流电机调速控制系统的设计_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《基于嵌入式arm+linux平台的直流电机调速控制系统的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、题目基于嵌入式ARM+Linux平台的直流电机调速控制系统8基于嵌入式ARM+Linux平台的直流电机调速控制系统的设计摘要本设计基于北京博创兴业科技有限公司开发的UP-NETARM2410-S嵌入式实验平台,它采用ARM7TDMI内核的三星S3C44B0X01芯片,且采用RedHatLinux9.0作为它的操作系统。设计了调速控制系统,并实现驱动程序对直流电机的控制,电机的转动情况会通过实验箱上的AD模块中电位器的旋转不同而变化。在UP-NETARM2410-S嵌入式实验平台上的实验结果表明系统运

2、行正常、稳定。关键词:ARM;Linux;直流电机;驱动8一、设计要求采用实验箱上的电位器作为信号输入器件,控制直流电机的运转方向和运转速度。电位器处于中间值时,电机停止不转,电位器顺时针调大时电机顺时针旋转,且速度随着电位器的旋转而增加。电位器向逆时针转动调小时,电机逆时针旋转,且速度随着电位器旋转的角度增加。电位器转到最大或最小值时,电机的速度应该达到最高速度。电位器在中间位置时,电机不应该出现抖动情况。二、Linux开发环境设置1、建立工作目录[root@home]#mkdirzgc[root

3、@home]#cdzgc2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,在本次开发过程中使用vim,我们可以是用下面的命令来编写dcm_main.c的源代码,进入10_dcmotor目录使用vi命令来编辑代码:[root@10_dcmotor]#vidcm_main.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。这样我们便在当前目录下建立了一个名为dcm_main.c的文件。

4、3、编写Makefile要使上面的dcm_main.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用Makefile的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。下面是本次实验用到的Makefile文件。

5、CC=armv4l-unknown-linux-gcc#CC=gccLDFLAGS=-static8EXEC=nihaoOBJS=hello.oall:$(EXEC)$(EXEC):$(OBJS)$(CC)$(LDFLAGS)-o$@$(OBJS)clean:-rm-f$(EXEC)*.elf*.gdb*.o4、编译应用程序在上面的步骤完成后,我们就可以在hello目录下运行“make”来编译我们的程序了。如果进行了修改,重新编译则运行:[root@10_dcmotor]#makeclean[roo

6、t@10_dcmotor]#make三、系统设计1、设计思路根据设计要求,先分别对实验箱上AD程序和电机程序进行调试并熟练,然后在电机主程序中加入AD模块及线程,将AD模块的电位器转动角度转换成的电压幅度的1024倍作为电机转动的pwm值。这样即可以满足设计要求。2、硬件流程框图对直流电机进行调速和控制,需经过AD模块,在linux操作系统中,在电机中加载AD程序后,挂载到实验箱程序。电脑通过串口把执行的程序命令发给S3C44B0X01处理器,在处理器中通过分析数据。手动调节AD模块中电位器后,处理

7、器收到相应信号,并发命令给电机,使电机的转动做出相应的调整。硬件流程框图如图1所示。图1硬件流程框图83、软件设计及调试虽然实验室的arms3c2410开发箱已经搭建好开发环境,可是这一部还是必须得熟悉的,首先是Boot—Loader的移植,然后再进行LINUX内核移植。在宿主机的linux下需要搭建Linux交叉编译环境,用于应用程序的开发和编译。将硬件系统设计好之后,必须开发、加载直流电机的驱动程序,驱动设备开发商都已经提供,只需要insmod到目标机上,即可编程操作这些设备。dcm_main.

8、c程序中主要实现代码:/****************************************************************/intmain(intargc,char**argv){floatd;pthread_tth_com;void*retval;inti=0;intstatus=1;intsetpwm=0;intfactor=DCM_TCNTB0/1024;if(init_ADdevice()<0)return-1;pthread_c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。