基于Linux和ARM的嵌入式智能控制系统软件编程的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)然后使用SOUI'Ce命令,使配置生效
作者简介:顾而立,上海交通大学自动化系,硕士研究生,上海2002240 邵惠鹤,上海交通大学自动化系,教授.博士生导师。上海2002240
55
万方数据
MicrocomputerApplicationsV01.24,No.8,2008
技术交流
微型电脑应用
2008年第24卷第8期
j=o

其中巧,K,也是可选择的参数。e t为当前时刻的偏差,
e川为前一时刻的偏差,T为控制周期(秒)。舻i互, 曰取5--10之间的数,此对象中,取9=6。
5小结
本设计无论在实验室还是工业上都能非常方便的达 到智能控制的功能,将软件和硬件系统结合起来,形成 真正的嵌入式产品。将是一个用途非常广泛且小巧的设 备,而且成本低廉,意义十分重大。
10)运行.,configure—qconfig local—embedded锄
——shared-system·-libjpeg-system-libpng-system-zhb-qt-gff -thread-no-qvfb—no-xft—no-ipv6--qt-mouse-lmuxtp --nO—mouse-pc—disable—sql
(下转第45页)
万方数据
MicrocomputerApplications VoL 24,No.8,2008
技术交流
微型屯脑应用
2008年第24卷第8期
为了了解和控制缺陷带来的费用,必须测量缺陷排除的 效果。对于几十行到几百行的程序,可能只引入很少的缺陷。 尽管发现和修复这些缺陷会带来一点麻烦,但通常不会花费 很长的时间。但是,对于较大型的程序,就需要很多时间来 发现和修复缺陷。在设计和编码阶段引入缺陷,当发现和排 除这些缺陷时,又需要花费更多的时间进行重新设计和重新 编码。在这段时间也会引入更多的缺陷。为了更好地解决这 个个问题,就需要减少缺陷引入率,增加缺陷排除率。为了 做到这一点,必须计算和跟踪缺陷的引入率和排除率。
3控制模型
3.1此智能控制对象的模型如下图所示:
t姊臣翠[丑田 。~…‘赢;一刃/一一\.~\.一…一。 臣兰习 图1-智能控制对象的模型
3.2实际界面如下图
图2一实际界面
4控制算法
此只能控制对象的控制算法采用数字PID实现,其 算法为
“l=(1一夕)。”卜l+∥+【足,巳+腿f∑PJ+!;生(q—el-i)】
编译大约需要2个小时左右。 2 3 Qt的移植
1)把qt-embedded-3.3.2版本的uic和moc复制到 qt-embedded-3.3.2/bin目录下
2)在qt-embedded一3.3 2/mkspecs/qws/lmux—arm-g++ 目录下面的qmake.conf文件中的QMA KE_CXX变量中 增JJla-DQT_QWS__IPAQ
技术交流
截型电脑应用
2008年第24卷第8期
文章编号:l007—757X(2008)8-0055—02
基于Linux和ARM的嵌入式智能控制系统软件编程的设计与实现
顾而立 邵惠鹤
摘要:是研究基于Linux 2 4操作系统和ARM嵌入式系统的智能控制系统的软件设计。 它一共分为用户界面,控制
算法,数据通讯三层。用户界面显示实时现场数据,输入控制方法,调整系统参数。控制算法主要使用PID算法,它稳定
root.cramfs。 打开电源即能启动嵌入式Lmux系统。
2.5 Socket通信 此智能操作系统的通信层面使用socket通信,首先
引用系统类撑include<sys/typesh>和j5f include<sys /socket.1l>,使用其函数int socket(mt domain,mt type,mt protoc01)获得一个套接12描述符,用mt bmd(mt sockfd,stmct sockaddr*my addr,int addrlen)绑定控制对象 的口地址,使用int connect(rot sockfd,stluct sockaddr‘ sci'v addr,mt addrlen)进行连接。用int recv(mt sockfd,void‘ buf,int len,unsigned mt flags).接受控制信息,用int send(int sockfd,const void+msg,mt len,mt flags)发送控制信息,用 close(sockfd)关闭此描述符。
TPMouseHandlerPrivate构造函数中,在QSocketNotifier *mouseNotifier语句前增加handler->readCalibration();来 }A]etc/pomtercal文件中读入校正参数。
9)设置QTDIR环境变量,export QTDIR=qt-embed ded-3.3.2所在目录
Linux2.4操作系统和ARM嵌入式系统的智能控制系统软件编程的Qt集成开发环境的配置与移植问题。
关键词:控制对象PID;Lmux;Ann;Qt;C++
中图分类号:TP3II
文献标识码:A
0概述
嵌入式系统是一种将计算机技术、半导体技术和电 子技术以及各个行业的具体应用相结合后的产物,以 ARM架构为核心的处理器正依赖其低功耗、高性能和丰 富的片上外围接口等强大的优势,迅速的抢占单片机、 X86架构低功耗CPU、P0、ⅣER PC、MIPS处理器、DSP 等芯片的应用市场。而Lmux是一套免费使用和自由传播 的类Unix操作系统,它以高效性和灵活性著称,具有多 任务、多用户的能力,它可以根据自己的需要对其内核 代码进行必要的修改,能更好地用于应用市场。作为本 文重点讨论的QT是一个跨平台的C++GUI应用构架, 它提供了丰富的窗口部件集,具有面向对象、易于扩展、 真正的组件编程等特点。QT支持MS/WINDOWS.95、 98、NT和2000:1n岍X/)(11-Linux、Sun Solaris、lip.UX、 Digital Unix、IBM AIX、SGI IRIX等平台,正逐渐成为 Lmux窗口平台上进行软件开发时的GUI首选。
a0概述嵌入式系统是一种将计算机技术半导体技术和电子技术以及各个行业的具体应用相结合后的产物以arm架构为核心的处理器正依赖其低功耗高性能和丰富的片上外围接口等强大的优势迅速的抢占单片机x86架构低功耗cpup0erpcmips处理器dsp等芯片的应用市场
Microcomputer Applications VoL 24,Nqt-mouse-lmuxtp和一no-mouso-pc 选项
6)通过校正程序获取pointercal校正文件,放在目 标系统的/etc目录下
7)把qmouse _.qws .h 文件中的 类的 read Calibration 和 write Calibration
protected改为public类型 8)在qmouselinuxtp_qws cpp文件中的QWS Lmux
QWSCalibrate函dM数。由useHandler
source SHOME/bash_profile 4)进入Qt的源码目录,并开始编译(本系统需要 用到多线程,故加.thread)
cd/usr/local/qt ./configure-thread 5)会看到一个是否同意GPL/QPL的协议的问题, 敲入yes回车即可。然后键入 make
3)在src/tools目录下生成Qt配置文件
qcontig—local.h,按需求进行系统定制,默认为完全编译 4)增加对触摸屏的支持,关键的几个文件为src/
embedded目录卜.的qmouse_qws.cpp、qmousedfiverfactory _qws.Clap和qmouselmuxtp_qws.clap三个文件
11)运行/usr/bin/gmake 2.4 Qt程序的下载
此智能控制系统所使用的Lmux版本是RCM9K开发 套件里BSP包中经过裁减的嵌入式Lmux2 4版本,可按 如下步骤将此版本直接烧写入开发板中。
1)设置超级终端COM口配置,其中波特率115200, 数据位8位,无奇偶校验,停止位l位,无数据流控制。
而且便于修改。数据通讯主要基于socket通讯,协议成熟,稳定性强。它的软件编程由Qt集成开发环境实现,Qc是基于
C++的针对构造图形用户界面(程序)所使用的GUI工具包,具有很好的可移植性。整个系统体积小,结构精简,同时有
很高的执行效率。它能针对不同的控制对象建立精确的对象模型,并应用于各种工业控制对象中。因此,本文重点讨论基于
Qt集成开发环境可以从www.trolltech.tom下载。此 智能控制系统所使用的是Qt3.3.2版本。
1)把安装文件qt-embedded-3.3.2 tar放到/root下, 然后依次键入
cd/root
tar zxvf qtoembedded一3 3.2.tar
mv/root/qt-embedded-3_3 2.tar/usr/local/qt 2)然后编辑自己的配置文件(SHOME/bash.profile 或者¥HOME/.profile)或者系统的配置文件(/etc/profde), 添加如下几行
2)ASCII码设置:行延迟1毫秒,字符延迟0毫秒, 选中“将换行符附加到传入行末尾”和“将超过终端宽度的 行自动换行”选项。
3)然后在该模式下把BSP包中B.Record格式的文 本文件programBoot b txt通过UART口载入flash。
4)分别载入Boofloader的映像文件bootbm和 Lmux2.4的内核映像文件Image,最后载入文件系统
l硬件平台介绍
该智能控制系统的核心芯片使用的是摩托罗拉i.MX 系列的第二代产品MC9328MXL,以ARM920TDMI为内 核,内核速度可以达到200MHZ,而系统速度可以达到 96MHZ。该处理器多媒体功能比较强,具有多媒体硬件 加速器和视频接口。
该智能控制系统使用的硬件平台是基于 MC9328M)正的RCM9K开发板,包括核心板和扩展板 两部分。核心板含有MC9328MXL微处理器,32M SDRAM和16M Flash。详细信息可查看 www.rlseCore.tom。
信号就由该对象发射(enut)出去,这就是对象所要做的全 部事情,它不知道另一端是谁在接收这个信号。这就是 真正的信息封装,它确保对象被当作一个真正的软件组 件来使用。槽用于接收信号,但它们是普通的对象成员 函数。一个槽并不知道是否有任何信号与自己相连接。 而且,对象并不了解具体的通信机制。程序员可以将很 多信号与单个的槽进行连接,也可以将单个的信号与很 多的槽进行连接,甚至于将一个信号与另外一个信号相 连接也是可能的,这时无论第一个信号什么时候发射系 统都将立刻发射第二个信号。总之,信号与槽构造了一 个强大的部件编程机制。 2.2 Qt的配置
QTDIR=/usr/local/qt PATH=¥QTDIR/bm:¥PATH MAI耵PAlH=¥()7IDIR/nlan:¥^ⅡANPA:IH
LD_LIBRARY_PATH=¥QTDIR/lib:¥LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD..LIBRARY——PATH
对每个阶段,从这个阶段的累计引入缺陷和累计花费分 钟数开始,然后计算累计每小时引入的缺陷数,计算过程如 下(数据为假设数据):
在设计阶段累计每小时引入缺陷数 =60×(设计阶段累计引入缺陷数)/(设计阶段累计花 费分钟数) =60×5/195 =1.54(defectstnour)。 在编码阶段累计每小时引入缺陷数 =60×(编码阶段累计引入缺陷数)/(编码阶段累计花 费分钟数) =60×25/792 =1.89(defects/hour)。 对每个阶段,从这个阶段的累计排除缺陷和累计花费分 钟数开始,然后计算累计每小时排除的缺陷数,计算过程如 下(数据为假设数据): 在代码复查阶段累计每小时排除缺陷数 =60×(代码复查阶段累计排除缺陷数)/(代码复查阶 段累计花费分钟数) =60×12/145 =4.97(defects/hour)。 在编译阶段累计每小时排除缺陷数 =60×(编译阶段累计排除缺陷数)/(编译阶段累计花 费分钟数)
2 软件编程中的Qt配置与移植
2.1 QT的核心机制一信号和槽机制
信号和槽它是一种高级接口,应用于对象之间的通
信,它是QT的核心特性,也是QT区别于其它工具包的 重要地方。此外信号和槽是QT自行定义的一种通信机 制,它独立于标准的C/C++语言,所有从Qobject或其子 类派生的类都能够包含信号和槽。当对象改变其状态时,
相关文档
最新文档