e-works数字化企业网  »  文章频道  »  工业自动化控制  »  嵌入式系统

嵌入式Linux系统实现对直流电机的控制实验解析

2008/11/11    来源:e-works    特约撰稿人:岳临萍      
关键字:Linux系统  线程  嵌入式  串口  
本实验完成了串口的接收、发送以及界面消息的处理用多线程实现。建立人机交互界面,可以直观和方便的输入数据,发送到串口,并实时处理和显示从串口接收的数据。学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。
一 、背景

    近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一;可运行在X86、Alpha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多种硬件平台,而且开放源代码,可以定制;可与各种传统的商业操作系统分庭抗争。越来越多的企业和研发机构都转向嵌入式Linux的开发和研究上,在新兴的嵌入式操作系统领域内也获得了飞速发展。

    uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。

    通过几个月的上机实验,对Linux及ucLinux下的编程开发有所了解,做出一个简单的通过串口控制目标板直流电机的程序,在PC机和开发板上皆实现了人机交互界面及通过串口的两者的互相通信以及对直流电机转速的控制。

二、实验内容

    串口的接收、发送以及界面消息的处理用多线程实现。建立人机交互界面,可以直观和方便的输入数据,发送到串口,并实时处理和显示从串口接收的数据。学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。

    学习ARM知识,掌握PWM 的生成方法,同时也要掌握I/O 的控制方法。 编程实现ARM 芯片的一对PWM 输出用于控制直流电机的转动,通过A/D 旋钮控制其正反转及转速。

    下载Microwindows系统安装包,解压缩后进行系统设置,编译安装。在开发板进行正确的环境配置,运行触摸屏校正程序,对触摸屏进行校正,以便在用MicroWindow开发界面后,用触摸屏控制界面上的按钮。

    下载Anjuta和GTK软件包,在PC机上进行安装以建立开发PC机界面程序的编译/编辑环境。

三、设备及工具

    硬件:NET-ARM3000 嵌入式实验仪,PC 机pentumn500 以上,硬盘40G 以上,内存大于128M
    软件:PC 机操作系统redhat linux 9.0+minicom+uClinux 开发环境

四、原理

    1 整套程序的框架(如下图)


    程序需要写两个,一个是客户端程序,在PC机上运行,一个是服务端程序,需要在目标板上运行。

    客户端程序并不能直接对目标板上的直流电机进行控制。首先,需要开启目标板上的服务端程序客户端程序,然后客户端端程序通过COM2往目标板发送命令,目标板的服务端程序接收到数据之后,解析出转速,然后对电机进行控制。另一方面,也可以不通过客户端而直接用服务端设置直流电机的转速,当在服务端直接设置电机转速之后,同时把速度信息通过COM2发送给客户端,客户端接收信息并把速度显示到屏幕上。

    2 客户端程序

    下图是客户端程序的显示界面:

 
    用户可以自己在编辑框中填入转速,然后点击“设置”按钮之后,客户端程序就会把转速发往服务端,点击“加速”,直流电机的转速就会加1,点击“减速”使直流电机速度变慢,点击“正转”使电机按逆时针方向旋转,点击“倒转”使转速为负,也就是顺时针旋转。

    客户端程序的工作示意图:


    客户端共有2个线程,一个线程用来从串口接收数据,也就是接收服务端设置的转速,同时设置界面输出显示转速,界面线程则处理消息循环兼往串口发送数据。
责任编辑:殷爽
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐