《基于Linux和ARM的嵌入式智能控制系统软件编程的设计与.pdf》由会员分享,可在线阅读,更多相关《基于Linux和ARM的嵌入式智能控制系统软件编程的设计与.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、M i c r o c o m p u t e rA p p l i c a t i o n sV o L2 4,N o 8,2 0 0 8技术交流截型电脑应用2 0 0 8 年第2 4 卷第8 期文章编号:l 0 0 7 7 5 7 X(2 0 0 8)8-0 0 5 5 0 2基于L i n u x 和A R M 的嵌入式智能控制系统软件编程的设计与实现顾而立邵惠鹤摘要:是研究基于L i n u x24 操作系统和A R M 嵌入式系统的智能控制系统的软件设计。它一共分为用户界面,控制算法,数据通讯三层。用户界面显示实时现场数据,输入控制方法,调整系统参数。控制算法主要使用P I D 算法
2、,它稳定而且便于修改。数据通讯主要基于s o c k e t 通讯,协议成熟,稳定性强。它的软件编程由Q t 集成开发环境实现,Q c 是基于C+的针对构造图形用户界面(程序)所使用的G U I 工具包,具有很好的可移植性。整个系统体积小,结构精简,同时有很高的执行效率。它能针对不同的控制对象建立精确的对象模型,并应用于各种工业控制对象中。因此,本文重点讨论基于L i n u x 2 4 操作系统和A R M 嵌入式系统的智能控制系统软件编程的Q t 集成开发环境的配置与移植问题。关键词:控制对象P I D;L m u x;A n n;Q t;C+中图分类号:T P 3 I I文献标识码:A0
3、 概述嵌入式系统是一种将计算机技术、半导体技术和电子技术以及各个行业的具体应用相结合后的产物,以A R M 架构为核心的处理器正依赖其低功耗、高性能和丰富的片上外围接口等强大的优势,迅速的抢占单片机、X 8 6 架构低功耗C P U、P 0、E RP C、M I P S 处理器、D S P等芯片的应用市场。而L m u x 是一套免费使用和自由传播的类U n i x 操作系统,它以高效性和灵活性著称,具有多任务、多用户的能力,它可以根据自己的需要对其内核代码进行必要的修改,能更好地用于应用市场。作为本文重点讨论的Q T 是一个跨平台的C+G U I 应用构架,它提供了丰富的窗口部件集,具有面向
4、对象、易于扩展、真正的组件编程等特点。Q T 支持M S W I N D O W S 9 5、9 8、N T 和2 0 0 0:1 n 岍X)(1 1-L i n u x、S u nS o l a r i s、l i p U X、D i g i t a lU n i x、I B MA I X、S G II R I X 等平台,正逐渐成为L m u x 窗口平台上进行软件开发时的G U I 首选。l 硬件平台介绍该智能控制系统的核心芯片使用的是摩托罗拉i M X系列的第二代产品M C 9 3 2 8 M X L,以A R M 9 2 0 T D M I 为内核,内核速度可以达到2 0 0 M H
5、 Z,而系统速度可以达到9 6 M H Z。该处理器多媒体功能比较强,具有多媒体硬件加速器和视频接口。该智能控制系统使用的硬件平台是基于M C 9 3 2 8 M)正的R C M 9 K 开发板,包括核心板和扩展板两部分。核心板含有M C 9 3 2 8 M X L 微处理器,3 2 MS D R A M 和1 6 MF l a s h。详细信息可查看w w w r l s e C o r e t o m。2软件编程中的Q t 配置与移植2 1Q T 的核心机制一信号和槽机制信号和槽它是一种高级接口,应用于对象之间的通信,它是Q T 的核心特性,也是Q T 区别于其它工具包的重要地方。此外信号
6、和槽是Q T 自行定义的一种通信机制,它独立于标准的C C+语言,所有从Q o b j e c t 或其子类派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(e n u t)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。程序员可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射
7、系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。2 2Q t 的配置Q t 集成开发环境可以从w w w t r o l l t e c h t o m 下载。此智能控制系统所使用的是Q t 3 3 2 版本。1)把安装文件q t-e m b e d d e d-3 3 2t a r 放到r o o t 下,然后依次键入c d r o o tt a rz x v fq t o e m b e d d e d 一33 2 t a rm v r o o t q t-e m b e d d e d-3 _ 32 t a r u s r l o c a l q t2)然后编辑自
8、己的配置文件(S H O M E b a s h p r o f i l e或者$H O M E p r o f i l e)或者系统的配置文件(e t c p r o f d e),添加如下几行Q T D I R=u s r l o c a l q tP A T H=$Q T D I R b m:$P A T HM A I 耵P A l H=$()7 I D I R n l a n:$A N P A:I HL D _ L I B R A R Y _ P A T H=$Q T D I R l i b:$L D _ L I B R A R Y _ P A T He x p o r tQ T D
9、I RP A T HM A N P A T HL D L I B R A R Y P A T H3)然后使用S O U I C e 命令,使配置生效作者简介:顾而立,上海交通大学自动化系,硕士研究生,上海2 0 0 2 2 4 0邵惠鹤,上海交通大学自动化系,教授博士生导师。上海2 0 0 2 2 4 05 5 万方数据M i c r o c o m p u t e r A p p l i c a t i o n s V 0 1 2 4,N o 8,2 0 0 8技术交流微型电脑应用2 0 0 8 年第2 4 卷第8 期s o u r c eS H O M E b a s h _ p r o
10、f i l e4)进入Q t 的源码目录,并开始编译(本系统需要用到多线程,故加t h r e a d)c d u s r l o c a l q tc o n f i g u r e-t h r e a d5)会看到一个是否同意G P L Q P L 的协议的问题,敲入y e s 回车即可。然后键入m a k e编译大约需要2 个小时左右。23Q t 的移植1)把q t-e m b e d d e d-3 3 2 版本的u i c 和m o c 复制到q t-e m b e d d e d-3 3 2 b i n 目录下2)在q t-e m b e d d e d 一3 32 m k s p
11、 e c s q w s l m u x a r m-g+目录下面的q m a k e c o n f 文件中的Q M AK E _ C X X 变量中增J J l a-D Q T _ Q W S _ _ I P A Q3)在s r c t o o l s 目录下生成Q t 配置文件q c o n t i g l o c a l h,按需求进行系统定制,默认为完全编译4)增加对触摸屏的支持,关键的几个文件为s r c e m b e d d e d 目录卜的q m o u s e _ q w s c p p、q m o u s e d f i v e r f a c t o r y_ q w
12、s C l a p 和q m o u s e l m u x t p _ q w s c l a p 三个文件5)C o n f i g u r e 时增加一q t-m o u s e-l m u x t p 和一n o-m o u s o-p c选项6)通过校正程序获取p o i n t e r c a l 校正文件,放在目标系统的e t c 目录下7)把q m o u s e文件中的类的_ q w sh和Q W S C a l i b r a t e 函d M 数。由u s e H a n d l e rr e a dC a l i b r a t i o nw r i t eC a l
13、i b r a t i o np r o t e c t e d 改为p u b l i c 类型8)在q m o u s e l i n u x t p _ q w sc p p 文件中的Q W SL m u xT P M o u s e H a n d l e r P r i v a t e 构造函数中,在Q S o c k e t N o t i f i e r*m o u s e N o t i f i e r 语句前增加h a n d l e r-r e a d C a l i b r a t i o n();来 A e t c p o m t e r c a l 文件中读入校正参数
14、。9)设置Q T D I R 环境变量,e x p o r tQ T D I R=q t-e m b e dd e d-3 3 2 所在目录1 0)运行,c o n f i g u r e q c o n f i gl o c a l e m b e d d e d 锄s h a r e d-s y s t e m-l i b j p e g-s y s t e m-l i b p n g-s y s t e m-z h b-q t-g f f-t h r e a d-n o-q v f b n o-x f t n o-i p v 6-q t-m o u s e-l m u x t p-n O
15、 m o u s e-p c d i s a b l e s q l1 1)运行u s r b i n g m a k e2 4Q t 程序的下载此智能控制系统所使用的L m u x 版本是R C M 9 K 开发套件里B S P 包中经过裁减的嵌入式L m u x 24 版本,可按如下步骤将此版本直接烧写入开发板中。1)设置超级终端C O M 口配置,其中波特率1 1 5 2 0 0,数据位8 位,无奇偶校验,停止位l 位,无数据流控制。2)A S C I I 码设置:行延迟1 毫秒,字符延迟0 毫秒,选中“将换行符附加到传入行末尾”和“将超过终端宽度的行自动换行”选项。3)然后在该模式下把
16、B S P 包中B R e c o r d 格式的文本文件p r o g r a m B o o tbt x t 通过U A R T 口载入f l a s h。4)分别载入B o o f l o a d e r 的映像文件b o o t b m 和L m u x 2 4 的内核映像文件I m a g e,最后载入文件系统r o o t c r a m f s。打开电源即能启动嵌入式L m u x 系统。2 5S o c k e t 通信此智能操作系统的通信层面使用s o c k e t 通信,首先引用系统类撑i n c l u d e 和j 5 fi n c l u d e ,使用其函数i n
17、 ts o c k e t(m td o m a i n,m tt y p e,m tp r o t o c 0 1)获得一个套接1 2 描述符,用m tb m d(m ts o c k f d,s t m c ts o c k a d d r*m ya d d r,i n ta d d r l e n)绑定控制对象的口地址,使用i n tc o n n e c t(r o ts o c k f d,s t l u c ts o c k a d d r s c i va d d r,m ta d d r l e n)进行连接。用i n tr e c v(m ts o c k f d,v o i
18、 d b u f,i n tl e n,u n s i g n e dm tf l a g s)接受控制信息,用i n ts e n d(i n ts o c k f d,c o n s tv o i d+m s g,m tl e n,m tf l a g s)发送控制信息,用c l o s e(s o c k f d)关闭此描述符。3 控制模型3 1 此智能控制对象的模型如下图所示:。赢;一刃一一一一。t 姊臣翠 丑田臣兰习图1-智能控制对象的模型3 2 实际界面如下图4 控制算法图2 一实际界面此只能控制对象的控制算法采用数字P I D 实现,其算法为“l=(1 一夕)。”卜l+【足,巳+
19、腿f P J+!;生(q e l-i)】j=o1其中巧,K,也是可选择的参数。et 为当前时刻的偏差,e 川为前一时刻的偏差,T 为控制周期(秒)。舻i 互,曰取5-1 0 之间的数,此对象中,取9=6。5 小结本设计无论在实验室还是工业上都能非常方便的达到智能控制的功能,将软件和硬件系统结合起来,形成真正的嵌入式产品。将是一个用途非常广泛且小巧的设备,而且成本低廉,意义十分重大。(下转第4 5 页)万方数据M i c r o c o m p u t e r A p p l i c a t i o n sV o L2 4,N o 8,2 0 0 8技术交流微型屯脑应用2 0 0 8 年第2 4
20、 卷第8 期为了了解和控制缺陷带来的费用,必须测量缺陷排除的效果。对于几十行到几百行的程序,可能只引入很少的缺陷。尽管发现和修复这些缺陷会带来一点麻烦,但通常不会花费很长的时间。但是,对于较大型的程序,就需要很多时间来发现和修复缺陷。在设计和编码阶段引入缺陷,当发现和排除这些缺陷时,又需要花费更多的时间进行重新设计和重新编码。在这段时间也会引入更多的缺陷。为了更好地解决这个个问题,就需要减少缺陷引入率,增加缺陷排除率。为了做到这一点,必须计算和跟踪缺陷的引入率和排除率。对每个阶段,从这个阶段的累计引入缺陷和累计花费分钟数开始,然后计算累计每小时引入的缺陷数,计算过程如下(数据为假设数据):在设
21、计阶段累计每小时引入缺陷数=6 0(设计阶段累计引入缺陷数)(设计阶段累计花费分钟数)=6 0 5 1 9 5=1 5 4(d e f e c t s t n o u r)。在编码阶段累计每小时引入缺陷数=6 0(编码阶段累计引入缺陷数)(编码阶段累计花费分钟数)=6 0 2 5 7 9 2=1 8 9(d e f e c t s h o u r)。对每个阶段,从这个阶段的累计排除缺陷和累计花费分钟数开始,然后计算累计每小时排除的缺陷数,计算过程如下(数据为假设数据):在代码复查阶段累计每小时排除缺陷数=6 0(代码复查阶段累计排除缺陷数)(代码复查阶段累计花费分钟数)=6 0 1 2 1 4
22、 5=4 9 7(d e f e c t s h o u r)。在编译阶段累计每小时排除缺陷数=6 0(编译阶段累计排除缺陷数)(编译阶段累计花费分钟数)=6 0 1 3 1 0 0=7 8 0(d e f e c t s h o u r)。在测试阶段累计每小时排除缺陷=6 0(测试阶段累计排除缺陷数)(测试阶段累计花费分钟数)=6 0 6 2 7 9=1 2 9(d e f e c t s h o u r)。4结语引入缺陷是编程人员在进行程序设计时的正常现象,所有的编程人员都有可能会引入缺陷。因此所有的编程人员都应该了解自己引入缺陷的类型和数据,并通过缺陷预测及缺陷排除效益的计算,来指导帮助
23、编程人员更好的开发出高质量的软件。参考文献:【1】1W a R sS H u m p h r e y P S P:AS e l f I m p r o v e m e n tP r o c e s sf o rS o f t w a r eE n g i n e e r s【M】,北京:人民邮电出版社,2 0 0 6 闭C a r n e g i eM e l l o nU n i v e r s i t yS o f t w a r eE n g i n e e r i n gI n s t i t u t e T h eC a p a b i l i t yM a t u r i t yM
24、 o d e lG u i d e l i n e sf o rI m p r o v i n gt h eS o f t w a r eP r o c e s s【M】,北京:人民邮电出版社,2 0 0 2 1 3 W a t t sS H u m p h r e y AD i s c i p l i n ef o rS o f t w a r eE n g i n e e r i n g【M】,北京:人民邮电出版社,2 0 0 2 4 1A u s t i n,R o b e r tD M e a s u r i n ga n dM a n a g i n gP e r f o r m a
25、 n c ei nO r g a n i z a t i o n s【M】N e wY o r k:D o r s e tH o u s eP u b l i s h i n gC o m p a n y,19 9 6 圈W i l l i a mA F l o r a c 脚t aD C a r l e r o n 度量软件过程【M】任爱华,刘又诚译北京:北京航空航天大学出版社,2 0 0 2 f 6】W a t t sS H u m p h r e y 个体软件过程【M】吴超英,车向东译北京:人民邮电出版社,2 0 0 2 门尼尔怀特管理软件开发项目嗍孙艳春,陈向群,赵俊峰译E 京:电子工
26、业出版社,2 0 0 2(收稿日期:2 0 0 8-0 5-0 4)移皤寻谬守毋谬谬移谬谬谬守守谬睁谬谬谬浔谬一守浔浔一谬谬守谬碍谬一婷守谬(上接第5 6 页)参考文献【1】1B r u c eM o l a y U N D E R S T A N D I N GU N I X L I N U XP R O G R A M M I N GAG U I D ET OT H E O R YA N DP R A C T I C E【M】杨宗源,黄海涛译j 匕京:清华大学出版4 5社,2 0 0 4 2 1T r o U t e e h q t 4 0 w h i t e p a p e r T r
27、o l l t e c h p B O L w w w r r o l l r e c h c o m,2 0 0 5【3】R C M 9 2 0 0 A D SA p p l i c a f i o nD e v e l o p m e n tS y s t 锄U s e r SM a n u a l,2 0 0 4 K 【4】刘峥嵘,张智超,许振山等嵌入式L i n u x 应用开发详解嗍北京:机械工业出版社,2 0 0 4(收稿日期:2 0 0 7-1 2-2 5)万方数据基于Linux和ARM的嵌入式智能控制系统软件编程的设计与实基于Linux和ARM的嵌入式智能控制系统软件编程的设计
28、与实现现作者:顾而立,邵惠鹤,GU Er-li,SHAO Hui-he作者单位:上海交通大学自动化系,上海,2002240刊名:微型电脑应用英文刊名:MICROCOMPUTER APPLICATIONS年,卷(期):2008,24(8)参考文献(4条)参考文献(4条)1.刘峥嵘;张智超;许振山 嵌入式Linux应用开发详解 20042.RCAM9200ADS Application Development System Users Manual 20043.Trolltech qt40whitepaperTrolltech 20054.Bruce Molay;杨宗源;黄海涛 UNDERSTANDING UNIX/LINUX PROGRAMMING A GUIDE TO THEORY AND PRACTICE 2004 本文链接:http:/