嵌入式linux直流电机驱动程序的设计综述

上传人:最**** 文档编号:115675076 上传时间:2019-11-14 格式:DOC 页数:17 大小:84KB
返回 下载 相关 举报
嵌入式linux直流电机驱动程序的设计综述_第1页
第1页 / 共17页
嵌入式linux直流电机驱动程序的设计综述_第2页
第2页 / 共17页
嵌入式linux直流电机驱动程序的设计综述_第3页
第3页 / 共17页
嵌入式linux直流电机驱动程序的设计综述_第4页
第4页 / 共17页
嵌入式linux直流电机驱动程序的设计综述_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《嵌入式linux直流电机驱动程序的设计综述》由会员分享,可在线阅读,更多相关《嵌入式linux直流电机驱动程序的设计综述(17页珍藏版)》请在金锄头文库上搜索。

1、辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)辽 宁 工 业 大 学 单片机及接口技术 课程设计(论文)题目:直流电机驱动程序的设计院(系): 电子与信息工程学院 专业班级: 计算机101 学 号: 100401018 学生姓名: 郑 杭 指导教师: 瞿 涛 教师职称: 讲 师 起止时间:13-12-28至14-01-10 课程设计(论文)任务及评语院(系):电子与信息工程学院 教研室:计算机科学与技术学 号100401018学生姓名郑杭专业班级计算机101课程设计(论文)题目直流电机驱动程序的设计课程设计(论文)任务直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转

2、换成直流电能的旋转电机。主要设计内容:硬件电路设计:1. 直流电机原理及控制技术2. 总体设计方框图3. 设计原理分析软件设计:1. 系统软件功能说明2. 程序设计要求:1、根据题目和所用的接口电路芯片设计出完整的接口电路,并用计算机绘制出电路原理图以及程序流程图。2、认真独立完成所规定的设计内容(4000字左右),严禁相互抄袭;3、撰写、打印设计说明书一份。指导教师评语及成绩总成绩 : 指导教师签字: 年 月 日目 录第1章 嵌入式linux1第2章 设备驱动程序简介32.1设备驱动程序的概念322设备驱动程序的基本结构3第3章 搭建交叉编译环境53.1 安装Redhat 9.0Linux操

3、作系统53.2安装交叉编译器53.3配置NFS网络文件系统53.4 链接挂载5第4章 直流电机驱动程序的编写64.1驱动程序的编写64.2 直流电机用户应用程序94.3驱动程序的编译文件Makefile104.4用户程序的Makefile文件11第5章 运行程序125.1建立设备进入点125.2加载驱动程序125.3运行用户应用程序12第6章 课程设计总结13参考文献14第1章 嵌入式linuxLinux操作系统核心最早是由芬兰的Linus Torvalds于1991年9月在芬兰赫辛基大学上学时发布的(Linux 0。01版,第一个正式向外公布的Linux内核版本),后来经众多世界项尖的软件工

4、程师不断修改和完善,Linux得以在全球普及开来,在服务器域及个人桌面领域得到越来越多的应用。Linux是在GNU公共许可权限下免费获的,是一款符合POSIX标准的多用户、多任务、支持多线程和多CPU的类Unix操作系统。Linux以其高效性和活跃性著称。Linux模块化的设计结构,使得它既能够在格昂贵的工作站上运行又能够在廉价的PC机上实现全部的Unix特性。Linux当前有很多发行版本,流行的有:RedHat Linux、Debian Linux、ReflagsLinux、Ubuntu等。由于集成电路技术的飞速发展,嵌入式系统的开发从单片机时代进入到了一个“系统开发的阶段,嵌入式操作系统也

5、逐渐走上了历史舞台。从国内和国外来看,嵌入式操作系统主要有Windows CE、VxWorks、pSOS、Palm OS等。Linux是一个成熟、稳定的操作系统,由于其在嵌入式开发方面具有其它操作系统无可比拟的优势,经过这几年的发展,已迅速跻身主流嵌入式开发平台。Linux作为嵌入式操作系统的优势在于: 1.Linux是开放源代码的免费软件。只要遵守GPL的规定,就可以免费获得Linux内核和其它自由软件的源代码,采用Linux操作系统构建嵌入式系统,可以大大降低开发成本和周期。 2.Linux具有完善的文档和广泛的技术支持。Linux是互联网充分发展的产物,在网上能够找到许多关于Linux的

6、文档以及强大的技术支持。 3.Linux内核功能强大,性能高效、稳定。Linux的内核非常稳定,它的高效和稳定性已经在各个领域,尤其是在网络服务器领域得到了事实的验证。 4.Linux能够支持多种体系结构,是支持微处理器种类最多的操作系统。目前,Linux已经被移植到数十种硬件平台上,几乎所有主流的硬件平台,如X86、ARM、PPC、MIPS、ALPHA、SPARC等,Linux都支持。 5.Linux拥有强大的网络功能。随着嵌入式系统的发展,嵌入式系统与Intemet结合得越来越紧密。与其它操作系统相比,Linux在网络方面有较大的优势,基本上所有的网络协议和网络接口都可以在Linux上找到

7、。6.Linux大小和功能可定制。Linux继承了Unix的优秀设计思想,内核与用户界面完全独立,各部分的可定制性很强,可以按照需求进行定制和配置,这对于硬件资源有限的嵌入式系统是一个理想的选择。第2章 设备驱动程序简介 2.1设备驱动程序的概念设备驱动程序是有内核中的相关例程和数据组成的IO设备软件接口,每当内核意识到要对某个设备今次那个特殊的操作是,它就调用相应的驱动例程,当驱动例程 完成后,就返回至用户进程。 设备驱动程序是操作系统内核、硬件之间的接口。设备驱动程序为应用程序忽略 了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象 操作普通文件一样对硬件设备进行操

8、作。设备驱动程序是内核的一部分,它文成以下功能:(1)对设备初始化和释放。(2)把数据从内核传送到硬件和从硬件读取数据。(3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据。(4)检测和处理设备出现的错误。每个设备驱动程序都有以下几个特性:(1)具有一整套的和硬件设备通讯的例程,并且提供给操作系统一套标准的 软件接口。 (2)有一个可以被操作系统动态调用和移除的自包含组件。(3)可以控制和管理用户程序和物理设备之间的数据流。22设备驱动程序的基本结构 对用户程序而言,设备驱动程序隐藏了设备的具体细节,对各种不同设备提供了一致的接口。一般设备驱动程序可以分为三个主要组成部分: (1)自

9、动配置和初始化子程序:自动配置和初始化子程序常在相应的driver中实现, 负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的状态进行初始化。这部分驱动程序仅在初始化的时候调用一次。 (2)服务于IO请求的子程序:它又称为驱动程序的上半部分, 调用这部分是由于系统调用的结果。这部分程序在执行的时候,系统仍认为是和进 行调用的进程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程序的运行环境。因此可以在其中调用sleepO等与进程运行环境有关的函数。 (3)中断服务子程序:在Lintm系统中,并不是直接从中断向量表中调用

10、设 备驱动程序的中断服务子程序,而是由系统来接收硬件中断,再由系统调用中断服务子程序。中断可以产生在任何一个进程运行的时候,因此,在中断服务程序被调用的时候,不能依赖于任何进程的状态,也就不能调用任何与进程运行环境有关的函数。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序的时候,都带有一个或多个参数,以唯一标识请求服务的从设备。 第3章 搭建交叉编译环境 3.1 安装Redhat 9.0Linux操作系统在PC机上安装虚拟机,并在虚拟机上安装Redhat 9.0Linux操作系统。3.2安装交叉编译器似乎 启动虚拟机并以root用户名登录,在主机的根目录/下,创建

11、linuette目录,如:mkdir /linuette。在mnt/cdrom目录下找到光盘,将光盘中RPMS文件夹拷贝到/linuette目录下,打开系统工具下地终端,此时,系统将弹出终端框,在里面改变目/linuette/RPMS下,输入如下命令:#rpm Uvh *.rpm3.3配置NFS网络文件系统根据 在Linux主机终端上执行setup,选中Firewall configuration,回车,进入系统服务选项菜单,选择NO FIREWALL关闭防火墙。之后选中System setvices回车,选中*nfs.保存退出。利用编辑器打开/etc/exports文件,修改为:/(rw)保

12、存退出。改变目录到/etc/rc.d/init.d/下,执行如下命令: ./nfs start3.4 链接挂载 用交叉网线主机和实验系统链接起来,打开minicom,配置波特率为115200,无奇偶校验位。给系统上电,利用ifconfig eth0 192.168.0.12改变系统IP地址。在主机终端上配主机Linux系统IP地址为192.168.0.11.利用ping命令看主机与实验系统是否链接上。利用chmod R 777 /home/nfs改变/home/nfs文件夹属性,在minicom上输入命令mount 192.168.0.11/home/nfs /mnt/yaffs 回车,挂载主

13、机上的/home/nfs到实验系统的/mnt/yaffs目录下。至此,Linux实验环境搭建成功。第4章 直流电机驱动程序的编写4.1驱动程序的编写 首先是设备初始化,定义直流电机驱动程序的初始化函数ZLDJinit(),在函数中实现向系统注册设备号、设备名称和初始化寄存器。向系统注册设备,这里定义电机的主设备号宏符号名为ZLDJ-MAJOR,设备名称为zldj-drv,设备的结构体为&ZLDJ-ops,则设备的注册函数为:Devfs-register-chrdev(ZLDJ-MAJOR,”zldj-dev”,ZLDJ-ops);设备初始化函数:Static intintZLDJ-init(v

14、oid)Int ret=-ENODEV;ret= Devfs-register-chrdev(ZLDJ-MAJOR,”ZLDJ-drv”,&ZLDJ-ops);showversion();printk(ZLDJ-Module register success! -kernel-n”);if(ret0)/当返回值小于0时,设备注册失败Printk(”Could not register ZLDJ-driver”);return 0;驱动程序的file-operation数据结构,由于直流电机驱动程序只能控制电机旋转和停止,因此只需要接口函数ioctl()就够了。static struct file-operations ZLDJ-ops=Ioctl:ZLDJ-ioctl,控制直流电机转动和停止的借口函数,控制直流电机转动和停止的借口函数ioctl()后,主要是设备寄存器GPRS与寄存器GPCR的值。GPSR为置位寄存器

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号