嵌入式系统结课设计论文.docx
- 文档编号:9292297
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:195.11KB
嵌入式系统结课设计论文.docx
《嵌入式系统结课设计论文.docx》由会员分享,可在线阅读,更多相关《嵌入式系统结课设计论文.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式系统结课设计论文
嵌入式系统结课设计(论文)
基于Xscale和嵌入式Linux的运动控制系统的设计与应用
学生姓名:
学号:
班级:
所在学院:
专业:
年月
摘要
随着汁算机技术、微电子技术以及相关技术的飞速发展,嵌入式系统正在应用到越来越多的领域。
在工业控制特别是运动控制方面,复杂的控制和处理,以往多采用工业计算机和PLC作为处理机。
但是在移动机器人等体积较小的应用中,使用工业计算机和PLC有很多不利的因素,而基于微处理器和嵌入式Linux的嵌入式运动控制系统体积小,处理能力强,灵活性好,得到了越来越多的应用。
本课题中进行了基于嵌入式Linux的运动控制系统研究。
由IntelXscale架构微处理器PXA255构建的上位计算机采用嵌入式Linux操作系统,由AT89S52构建的直流电机数字伺服控制板作为下位运动控制单元,两者之间通过串行接口进行通讯,共同构成一个运动控制系统。
关键词:
嵌入式系统Xscale51单片机运动控制串行通讯
ABSTRACT
Withthedevelopmentofcomputer,Micro—electronicsandtechnologyrelated,embeddedsystemisappliedtomoreandmoreareas.Inindustrialcontrol,theuseofindustrialcomputerandPLCispopular,especiallyforthemotioncontr01.However,intheapplicationofsmallvolumedemandedsuchasmobilerotot,industrialcomputerandPLChavemanydisadvantages,butthemotioncontrolsystembasedonmicro-processorandembeddedLinuxbecomemobilepopularbecauseofitssmallvolume,highprocessingcapacityandgoodadaptability.Inthethesis,themotioncontrolsystemdevelopedconsistsoftwoparts:
theupperlayercomputerbasedonPXA255CPUofIntelXscalearchitectureusestheLinuxoperatingsystem;thebottomlayerDCservomotordigitalcontrolboardisconstructedbyAT89S52.Twopartscommunicatebyserialportandmakeupamotioncontrolsystem.
KEYWORDS:
EmbeddedsystemXscale51seriesMCUMotioncontrolSerialcommunication
目录
摘要I
ABSTRACTII
1绪论1
1.1嵌入式系统概述1
1.1.1嵌入式系统的定义1
1.1.2嵌入式系统的组成1
2Xscale上位计算机3
2.1系统总体设计方案3
2.2Xscale上位计算机3
3Linux的设备驱动程序6
3.1设备驱动程序的结构6
4伺服运动控制系统方案8
4.1伺服系统硬件接口分析8
4.2伺服运动控制板的软件设计9
结论11
参考文献12
1绪论
1.1嵌入式系统概述
在日常生活中,嵌入式系统无处不在,如天天必用的移动电话、手腕上的电子表、烹调用的微波炉、办公室的打印机、汽车的燃油喷射系统、ABS系统以及现在流行的数码相机、数码摄像机、PDA等都是嵌入式系统的应用。
当前,随着计算机技术和信息技术的飞速发展,以及3C(计算机:
Computer、通讯:
Communication、消费电子:
ConsumerElectries)的普及,人类进入了后PC时代,各种信息非常丰富,数字信息技术和网络技术高度发达,人们对产品的要求也在提高,数字化、智能化的产品成为发展方向,对大量信息的处理以及数字化与智能化的要求使得嵌入式系统应用更为广泛。
嵌入式系统以应用为中心,强调体积和功能的可裁减性,是以完成控制、监视等功能为目标的专用系统。
在嵌入式应用系统中,系统执行任务的软硬件都嵌入在实际的设备环境中,通过专用的I/O接口与外界交换信息,一般它们执行的任务程序不由用户编制。
嵌入式系统主要用于各种信号处理与控制,目前己应用在国防、国民经济及社会生活各领域。
嵌入式系统在应用数量上远远超过了各种通用计算机。
1.1.1嵌入式系统的定义
根据电气工程师协会的定义,嵌入式系统是用来控制、监视或者辅助设备、机器或工厂运行的装置(devicesusedtocontrol,monitor,Orassisttheoperationof,equipment,machineryorplants)。
国内一般认为嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
1.1.2嵌入式系统的组成
嵌入式系统通常由嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等大部分组成。
图1
一.嵌入式处理器是嵌入式系统的核心部件。
嵌入式处理器与通用处理器最大的不同点在于其大多工作在为特定用户群设计的系统中。
它通常把通用计算机中许多由板卡完成的任务集成在芯片的内部,从而有利于嵌入式系统设计趋于小型化,同时也具备高效率、高可靠性等特征。
国际上大的硬件厂商几乎都有自己的嵌入式处理器,从低端的51单片机到现在广泛使用的ARM、MIPS、PowerPC、MC6800等。
在本文中,上位计算机采用的处理器是Intel公司生产的Xscale架构的PXA255处理器。
二、嵌入式外围设备
嵌入式外围设备是指在一个嵌入式系统中,除了嵌入式处理器以外用于完成存储、通信、调试、显示等辅助功能的其他部件。
根据外围设备的功能可分为以下3类:
(1)存储器:
主要有静态非易失性存储器(RAM/SDRAM)、动态存储器(DRAM)和Fash存储器等。
其中,Flash具有可擦写次数多、存储速度快、容量大及价格低等优点而在嵌入式领域得到了广泛的应用。
(2)接口:
应用最为广泛的包括并口、RS-232串口,IrDA红外接口、SPI串行外围设备接口、
总线接口、USB通用串行总线接口、Ethernet.网络接口等。
(3)人机交互:
LCD显示器、键盘和触摸屏等人机交互设备。
三、嵌入式操作系统
在大型以及复杂的嵌入式应用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定的、安全的软件模块集合,用以管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,即嵌入式操作系统。
四、嵌入式应用软件
嵌入式系统应用软件是针对特定的实际专业领域,基于相应的嵌入式硬件平台,并能完成用户预期任务的计算机软件。
用户的任务可能有时间和精度的要求。
有些应用软件需要嵌入式操作系统的支持,但在简单的应用场合下也可以不需要专门的操作系统。
嵌入式应用软件是用户开发的重点,用户的系统开发通常需要做的软件方面的工作主要是应用软件。
2Xscale上位计算机
2.1系统总体设计方案
本文中研究的运动控制系统将用作移动机器人的开发平台,要求能有精确的运动控制。
直流伺服电机可以用电池作为动力,适用于移动平台。
所以设计中的运动控制系统采用直流伺服电机。
伺服控制单元采用主处理器AT89S52、伺服控制芯片LM629、H桥功率驱动器LMDl8200、MAXON直流伺服电动机RE25,500线增量式光电编码器HEDL-5540构成伺服系统硬件平台。
系统中由处理能力强大的Xscale架构处理器PXA255构成上位计算机,AT89S52作为主处理器和伺服控制芯片LM629构成下位机,以串行方式通讯。
构成一个全数字伺服控制系统平台。
如下图3所示。
其中伺服控制芯片LM629是可编程全数字式伺服控制的专用运动控制处理器。
具有8位分辨率的PWM输出、内部梯形速度图发生器,可以进行位置和速度控制。
而且其速度、位置和数字PID控制器参数可以在控制过程中改变。
此系统有位置和速度两种控制模式,集成度高,需要外围部件少,易于调试,简化了高精度的运动控制系统的设计。
下图中传感器信号输入可以用于系统扩展,本文中用上位计算机的按键信号代替传感器信号。
光电编码器
信号输入
图2
2.2Xscale上位计算机
Xscale架构微处理器是基于ARMV5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器架构。
它支持32位ARM指令和16位Thumb指令和DSP指令集,己应用在数字移动电话、个人数字助理、网络产品和工业控制等场合。
Xscale架构处理器是Intel目前主要推广的一款ARM微处理器。
运动控制系统的上位计算机采用Xscale架构的PXA255处理器构建。
图4所示为PXA255的处理器结构图。
PXA255采用高效能、低功耗的Xscale核心、
RISC技术和O.18微米工艺,同时它也采用了Intel先进的媒体处理技术,包含40位累加器和16位SIMD以增强处理能力和音频/视频解码能力。
PXA255还具有丰富的扩展接口,除了SDRAM、DRAM和Flash等系统存储器接口外,还可支持PCMCIA、CompactFlash、MMC/SDCard扩展卡,UART、BlueTooth、IC、SSP、USBSlave等串行接口以及大量的GPIO接口。
以PXA255作为移动机器人的处理平台,能够进行后续的视觉以及复杂的应用开发。
为了以后系统开发的方便,需要进行BootLoader(启动加载器)的移植,这里选用源代码开放的U-Boot作为BootLoader进行移植。
下面是上位计算机总体配置的描述:
1、微处理器:
IntelXscalePXA255,主频:
400Mhz;32bitRISC架构,32K指令cache。
2、存储器:
SDRAM64MByte,总线速度100MHz;IntelNORFLASH32MByte。
3、显示系统:
LCD接口,支持各种STN,TFTLCD,最高支持800X600TFTLCD;4+2可编程LED指示灯。
4、输入设备:
4个可编程按键;4线制电阻式触摸屏接口;SPI接口,可扩展键盘。
5、音频系统:
立体声输出,输出阻抗32欧姆;立体声混音输入,LINEIN,,单声道麦克风输入。
6、通讯接口:
10/100M自适应以太网接口一个;IRDA红外接口一个,支持SIR和FIR;标准RS232接口一个,支持完全的控制信号;标准UART接口一个,可支持高速蓝牙传输;USBDEVICE接口一个,支持USB协议1.1。
7、调试接口:
标准JTAG口一个,支持仿真器调试;CPLDJTAG口一个,支持CPLD内容更新。
8、扩展卡槽:
CF卡插座一个,支持存储卡,WLAN,MODEM,ETHERNET;SD卡插座一个,支持存储卡;
9、其他:
4个可编程IO口;4个10bitADC接口;1个PWM输出口;
图3PXA255的处理器结构图
3Linux的设备驱动程序
进行嵌入式系统的开发,很大的工作量是为各种设备编写驱动程序,除非系统不使用操作系统,程序直接操纵硬件。
Linux系统中,内核提供保护机制,用户空间的进程一般是不能直接访问硬件的。
Linux中设备被抽象出来,所有设备都被看成文件。
设备的读写和普通文件一样。
用户进程通过文件系统的标准接口访问设备驱动程序。
设备驱动程序主要完成这些功能:
(1)探测设备和初始化设备;
(2)把数据从内核传送到硬件和从硬件读取数据;
(3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据;
(4)检测和处理设备出现的错误。
Linux系统把设备分成3种类型:
字符型设备,块设备和网络没备。
字符设备的读写以字节为单位,存取时没有缓存。
块设备读写以块为单位,存取时有缓存支持以提高效率。
典型的字符设备包括鼠标、键盘及串行口等。
块设备主要包括硬盘、软盘、CD-ROM等,一个系统要安装操作系统必须使用块设备。
网络设备用于通信,网络设备在Linux里做专门的处理。
Linux的网络系统主要基于BSDUnix的socket机制。
在系统和驱动程序之间定义有专门的数据结构(skbuff)进行数据的传递。
系统里支持对发送数据和接收数据的缓存,提供流量控制机制和对多种协议的支持。
所有设备的驱动程序都有一些共性,对编写所有类型的驱动程序都通用,操作系统提供给驱动程序的支持也大致相同。
这些特性包括;
(1)读写
几乎所有设备都有输入和输出。
每个驱动程序要负责本设备的读写操作。
(2)中断
中断在现代计算机结构中有重要的地位。
操作系统必须提供驱动程序响应中断的能力。
(3)时钟
在实现驱动程序时,很多地方会用到时钟。
如某些协议里的超时处理,没有中断机制的硬件的轮询等。
操作系统应为驱动程序提供定时机制,一般是在预定的时间过了以后回调注册的时钟函数。
3.1设备驱动程序的结构
Linux的设备驱动程序可以分为以下三个重要组成部分:
(1)自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和能否正常工作。
如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态进行初始化。
这部分驱动程序仅在初始化时被调用一次。
(2)服务与I/O请求的子程序,又称为驱动程序的上半部分。
调用这部分程序是由于系统调用的结果。
这部分程序在执行时,系统仍认为是与进行调用的进程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程序的运行环境,因而可以在其中调用一些与进程运行环境有关的函数。
(3)中断服务子程序,又称为驱动程序的下半部分。
在Linux系统中,并不是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由Linux系统来接收硬件中断,再由系统调用中断服务子程序。
4伺服运动控制系统方案
直流伺服系统在现代生产生活中无处不在,尤其是在一些以电池为动力的移动机构中,如AGV(自动导航车)、LGV(激光导航车),行走机器人。
直流系统有着不可替代的作用,直流伺服技术发展已十分成熟。
由许多专用的集成芯片,如位置控制芯片LM629、脉宽调制芯片637UC、以及功率驱动芯片IR2110、LMDl8200,采用它们可以构成不同功率等级的直流伺服系统。
直流伺服电机构成的伺服控制系统有两种:
速度伺服系统和位置伺服系统(又称随动系统)。
为了实现精确的控制,课题中伺服运动控制系统具有速度模式和位置模式两种控制方式。
由于该平台将用作移动机器人的开发平台,要求能有精确的运动控制,所以采用了瑞士MAXON公司的直流伺服电机,用电池作为动力。
选用电机型号:
RE2520W,参数:
额定电压24V、空载转速9550r/min、堵转电流10400mA、最大连续转矩26.1mNm。
配备行星轮减速器:
速比157/l。
伺服控制板采用主
处理器AT89s52、伺服控制芯片LM629、H桥功率驱动器LMDl8200、MAXON直流电动机,500线增量式光电编码器HEDL-5540构成伺服系统硬件平台,此系统有位置和速度两种控制模式,集成度高,需要外围部件少,易于调试,简化了高精度的运动控制系统的设计。
系统结构原理如图4所示:
图4
4.1伺服系统硬件接口分析
一、处理器与LM629、LMDl8200的接口
本设计中采用AT89S52单片机作为主处理器对电机进行伺服运动控制。
AT89S52单片机的主要工作就是向LM629传送运动数据和PID数据;通过LM629、LMDl8200对电动机的运行进行监控:
与上位计算机通讯并显示电机以及系统的工作状态。
LM629的I/0口Do~D7与单片机的PO口相连,用来从单片机传送数据和控制指令,从LM629传送电动机的状态和运动信息。
单片机的P2.7引脚与LM629的片选相连,作为选中LM629的地址线。
用DO经74LS37锁存后与LM629的Ps相连,作为命令和数据端口选择线,当D0=0时,单片机可以向LM629写指令,或从LM629读状态;当DO=l时,单片机可以向LM629写数据,或从LM629读信息。
LM629的中断引HI经一个非门与单片机的中断0相连,LM629的有6个中断源都通过该引脚申请中断,一旦有中断申请,单片机必须通过读LM629的状态字来识别哪一个中断发生。
处理器AT89S52的P1.7、P1.6脚是LMDl8200过热和过流信号输入引脚,系统工作中AT89S52还要不停查询LMDl82000的状态,根据过流和过热信号情况进行系统的保护。
二、LM629、LMDl8200与电机的接口
LM629输出的PWM的方向和大小信号PWMS和PWMM是根据LM629的内置梯形速度图发生器产生的,经过光电隔离后与LMDl820的D取方向、PWM输入引脚连接。
增加光电隔离是为了防止电机驱动电路大电流及其变化和噪声对前端控制电路的影响。
由于LM629的时钟频率是8MHz,所以这里的光电隔离器需要特别的选择,不能选择常用的中低频器件,否则从光电隔离器件输入PWM信号矩形波,在光电隔离器件的输出端只能得到梯形波,并不能实现准确的PWM控制。
故选用了高速光电隔离器6N137。
高速光电耦合器6N137由磷砷化钾发光二极管和光敏集成检测电路组成。
通过光敏二极管接收
信号并经内部高增益线性放大器把信号放大后,由集电极开路门输出。
该光电隔离器高、低电平传输延迟时问短,典型值仅为48ns,已接近TTL电路传输延迟时间的水平,因而在传输速度上完全能够满足要求。
除此之外,6N137还具有一个控制端,通过对该端的控制,可使光耦输出端呈现高阻状态。
LMDl8200根据输入的PWM方向和大小,输出电压到引脚2、10直接驱动电机。
直流电机安装了增量式光电编码器,输出IN、A、B三个信号,检测电机的速度和位置并且接入LM629的1~3光电编码器反馈引脚,LM629根据反馈信号每隔一个采样时间进行动态的梯形速度图计算,并形成新的PWM信号输出提供给LMDl8200,构成一个闭环控制系统,对电机的位置和速度实行精确控制。
4.2伺服运动控制板的软件设计
主程序设计:
主程序的功能是系统的初始化,包括处理器本身以及LM629的初始化;监测和维护系统运行;LM629参数传送;状态显示等。
主程序设计的关键有以下几个部分:
一、主处理器的初始化
主处理器AT89S52的初始化包括:
系统环境以及堆栈的设置、定时器的初始化、串行通讯的初始化等。
1、堆栈设置
堆栈是处理器运行时必需的资源,在系统发生函数调用、中断处理以及需要保存中间变量时,堆栈是最常使用的。
MCS51单片机的堆栈是向上增长的形式,指令系统中有专门设置堆栈的指针SP,初始化时需要设置堆栈指针并且空出一段内存作为堆栈使用,具体大小可以根据程序的大小、函数调用的层次以及中断处理中保护现场参数的多少来决定。
2、定时器的初始化
AT89S52片内含有三个定时器To、T1和T2以及一个Watchdog定时器。
To~T2都有三种工作方式:
方式0、方式l、方式2和方式3。
此处的50ms定时使用定时器TO,定时器T1用来产生串行通讯波特率。
定时器设置主要是对AT89S52的几个特殊功能寄存器进行操作,AT89S52的特殊功能寄存器与定时器有关的是定时器/计数器控制寄存器TCON、工作方式控制寄存器TMOD、中断允许寄存器IE和中断优先级寄存器IP。
(1)TMOD设置
TMOD在特殊功能寄存器中,字节地址为89H,无位地址。
TMOD的高4位用于T1,低4位用于TO,4种符号的含义是:
GATE:
门控制位。
GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器,计数器的打开或关闭,GATE=0是用软件控制位TR控制定时器状态。
(2)TCON设置
TCON在特殊功能寄存器中,位地址(由低位到高位)为88H~8FI-I,由于有位地址,十分便于进行位操作。
TFl、TRl用于定时器T1;TF0、TR0用于定时器TO。
两组符号有相同的含义;TF:
定时器/计数器中断请求标志位。
当定时器计满回零时,TF=1,并可申请中断;当CPU响应中断并进入中断服务程序后,TF自动清零。
如对TF查询,定时器回零后,要用指令将TF清零。
TR:
定时器/计数器开闭控制位。
IEl,ITl用于外部中断1(1NTl);IE0,IT0用于外部中断0。
两组符号的含义相同。
IT:
下降沿/低电平引起外部中断请求的选择位。
IT=1,由下降沿引起中断;IT=0,由低电平引起中断。
IE:
外部中断的中断申请标志。
IE=0,表明无外部中断请求;IE=1,表明有外部中断请求。
当有外部中断请求时,IE自动为l,单片机CPU响应此中断后,IE自动清零。
这里用到定时器0的定时中断,先复位TCON为0X00以清除设置,然后设置TCON=0X01(外部中断0设为下降沿触发),用于LM629的中断引脚HI输入。
下面的初值设置完成后再对TCON进行位操作:
置位TR0、TRl,启动定时器0和1.
(3)初值设置
重要的是定时器初值的设置,需要设置两个特殊功能寄存器。
TH和TL。
定时器T0的初值设置:
TH0和TL0,分别是定时器0初值的高字节和低字节:
定时时间为50ms,晶振频为12MHz,根据定时时间的公式为:
定时时间=(
一定时器初值)×晶振周期
12
结论
本文的主要任务是利用IntelXscale上位计算机和由AT89S52构建的运动控制板共同组成一个运动控制系统,并进行与开发相关内容的设计。
一、首先给出了嵌入式系统的定义,对嵌入式系统的结构、原理、现状及发展前景进行讨论。
分析了Linux操作系统的由来、发展及其特点,讨论了Linux应用于嵌入式系统的优缺点。
嵌入式Linux系统具有开放源代码、内核可裁减、开发费用低的优势,正在得到越来越多的应用。
二、分析了Linux的向嵌入式操作系统的改造,介绍了如何从Linux生成适用于本文中Xscale架构CPUPXA255的ARM-Linux系统。
建立了嵌入式Linux的交叉开发环境;介绍了ARM-Liniux内核的裁减和编译以ARM-Liniux文件系统的建立,完成了ARM-Linux内核向Xscale上位计算机的移植。
三、讨论了Linux下设备驱动程序的实现和开发过程,介绍了Linux模块编程技术的原理和实现,并编写了Xscale上位计算机与伺服运动控制板的串行通讯程序,通过串口来实现IntelXscale上位机和伺服运动控制板构成的下位机之间的通讯。
四、介绍了伺服控制板的硬件和软件的设计,分析了伺服控制板采用的硬件特性和软件实现的方法和流程,并对开发过程中的硬件和软件设计过程中的技术问题进行了讨论;随着计算机技术和网络技术的发展,Linux操作系统作为开放源代码软件的代表得到了越来越广泛的应用,在我国得到了政府和很多企业的支持正处于蓬勃发展的阶段。
由于对运动控制系统的性能和使用条件的特殊要求,对基于Linux的嵌入式系统的研究和开发,特别是适应性和灵活性强的嵌入式运动控制系统的研究具有很好的理论和实践意义。
参考文献
[1]毛德操等,linux内核源代码情景分析(上、下),,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 论文