uclinux 下载是怎么实现多线程的实时性的 我现在只会单片机裸机程序 不懂操作系统是如何实现实时性的

基于ARM的uCLinux网络控制系统的设计与实现
1引言随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落,嵌入式系统也跨入了新的阶段,成为当前产业的焦点之一。随之出现的IT信息家电如可视电话、移动电话、机顶盒和数码相机等嵌入式设备的市场需求也越来越大,8/16位单片机的速度和内存较难满足嵌入式设备的上网等需求。随着集成电路的发展,处理器的价格不断下降,用户已可以大量使用,32位处理器更是受到青睐。在工业控制、民用设备如防盗系统等领域,多数设备的对外通信接口仍然是低速串口。串口由于其易用性和可靠性而受到用户的欢迎,但它有一个突出的弱点,就是传输距离有限,所以在工业远程控制中常采用TCP/IP方式实现。本文就是针对上述问题进行嵌入式系统开发并提出了在农业控制上的典型应用。智能温室已在国外取得了广泛成功,在我国也具有广泛的应用前景,本系统就是针对智能温室提出的技术方案。它采用嵌入式系统(ARM+uCLinux)作主控制器,通过TCP/IP网络与上层管理系统通信,与...&
(本文共3页)
权威出处:
网络控制系统(Networked Control Systems,NCS)是将传感器,执行器和控制器通过公用数据网络连接的分布式控制系统,是网络通信技术与传统控制技术相结合的产物,由于其价格低廉,易于维护而在近年来得到了广泛关注。然而,传感信息和控制信息通过网络传输不可避免地给信息带来随机,时变的不确定时延。由于这种网络时延的存在,使得控制系统的动态性能变差,稳定性降低,给网络控制系统的分析和设计带来了困难。基于IP协议的网络控制系统,尤其是基于Internet的网络控制系统极大地拓展了传统网络控制系统的空间,Internet网络的特点决定了这类网络控制系统具有与传统网络控制系统不同的特点,本文针对基于IP协议,尤其是Internet的网络控制系统开展了深入研究,取得了一些成果。同时针对目前网络控制系统研究重仿真,轻实践的缺点,设计了基于ARM的嵌入式网络控制系统实验平台,较好地解决了网络控制算法在真实网络上的验证问题。本文具体...&
(本文共86页)
权威出处:
1引言随着经济的发展、社会的进步,人们对能源提出越来越高的要求,寻找新能源成为当前人类面临的迫切课题。现有主要能源火电、水电和核电,都存在枯竭或者是破坏环境的危险。照射在地球上的太阳能非常巨大,大约40分钟照射在地球上的太阳能,便足以供全球人类一年能量的消费。可以说,唯有太阳能是真正取之不尽、用之不竭的能源。而且太阳能发电绝对干净,不产生公害。所以太阳能发电被誉为是理想的能源。LED路灯作为高效节能的新光源,有着众所周知的优点,太阳能发电与LED路灯恰恰是最理想的组合。太阳能LED路灯以太阳光为能源,白天充电晚上使用,无需复杂昂贵的管线铺设,可任意调整灯具的布局,安全节能无污染,无需人工操作工作稳定可靠,节省电费免维护。因为相同照度情况下,LED路灯需要的电能较传统灯具需要的电能少的多,这就意味着用相对小面积的太阳能电池板和小容量的蓄电池就能满足照度要求,大大减少了太阳能应用于路灯的成本。二者结合是今后路灯发展的必然趋势。本文探...&
(本文共4页)
权威出处:
远程网络控制是一个应用十分广泛的领域,当今发达的网络使得这一领域的面貌发生了根本的变化。远程网络控制技术是为了使人们可以在远离设备的地方及时了解设备的运行状态并对其运行状态进行控制而产生的一种网络控制技术。在网络已经普及的今天,使用远程控制技术可以提高企业的劳动生产率,加强企业的竞争力。目前远程网络控制技术已经广泛的应用于远程医疗、生产等方面,本论文主要是把这一新兴技术运用于传统的实验室教学管理中,实现对实验室大型设备的远程网络控制。在远程网络控制系统中,系统的管理数据、被控对象实时状态信息以及现场实时信息等都要通过网络来传输,因此,系统基于网络的数据传输机制,尤其是实时数据传输机制将左右远程控制系统的控制特性。本文重点研究了基于因特网远程控制的数据实时传输问题,根据系统需要传输的各类数据的不同特点,具体给出了采用不同协议的解决方案,设计了一种基于RTP的MPEG4视频流网络传输系统,并对传输过程中可能出现的数据包丢失和网络诱导...&
(本文共63页)
权威出处:
当前,单片机是设计开发温度控制系统的常用芯片,用以实现温度控制的目的。不过,因单片机中的ROM与RAM存在空间小的局限,所以调试、运动较大程序具有一定困难,且还存在其他诸多不足之处。于是,为了完善温度控制系统的不足,本文将提出基于ARM单片机的温度控制系统的设计,在设计过程中运用32位RISC微处理器AT9lRM9200、极限环法自整定PID参数等来进行系统的设计开发。1系统设计在基于AVR单片机的温度控制系统设计当中,嵌入了AT9lRM9200微处理器,从而实现了整个温度控制系统的通用性多路温度测控与实时温度测控。其中,该系统的硬件设计采用了ARM9这一高性能的处理器,并以各种信号转换芯片为主,而在软件设计中则采用嵌入式操作系统的应用程序设计为主。如图1是系统结构图,该系统的优点主要有2个:①满足较强通用性、可移植功能的硬、软件设计可以通过适当改动就能获得不同应用系统的支持;②系统的数据信息交互传输可以在较小以太网上利用串行通...&
(本文共1页)
权威出处:
近年来,随着计算机技术、自动控制技术、嵌入式技术以及Internet网络技术的高速发展,传统控制领域正经历着一场前所未有的变革。控制技术的发展一直受到计算机和计算机技术发展的制约。控制系统从最初的CCS(计算机集中控制系统),到第二代的DCS(分散控制系统),再发展到现在很流行的FCS(现场总线控制系统)。而由于对诸如图像、语音信号等大量数据、高速传输速率的要求又催生了信息网络与控制网络的结合。网路控制系统要求具有高性能、高实时性、低功耗、低成本,因此采用嵌入式系统来实现控制网络与信息网络的结合,是将来网络控制系统发展的重要方向之一。1嵌入式网络控制系统的原理及优点1.1现场总线技术的不足目前最流行的控制系统是现场总线控制系统,它实际上是连接现场智能设备和自动化控制设备的双向串行、数字式、多节点通信网络,也被称为现场底层设备控制网络(INFRANET)。和Internet、Intranet等类型的信息网络不同,控制网络直接面向生...&
(本文共3页)
权威出处:
扩展阅读:
CNKI手机学问
有学问,才够权威!
出版:《中国学术期刊(光盘版)》电子杂志社有限公司
地址:北京清华大学 84-48信箱 知识超市公司
互联网出版许可证 新出网证(京)字008号
京ICP证040431号
服务咨询:400-810--9993
订购咨询:400-819-9993
传真:010-
京公网安备75号基于ARM处理器和μC_OS-Ⅱ的嵌入式系统研究和实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于ARM处理器和μC_OS-Ⅱ的嵌入式系统研究和实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口单片机系统中的多任务多线程机制的实现
&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&
& 今天是:&&& 欢迎您光临[3edu教育网]!本站资源完全免费,无须注册,您最希望得到的,正是我们最乐于献上的。
◆您现在的位置:&&>>&&>>&&>>&&>>&&>>&论文正文
单片机系统中的多任务多线程机制的实现
单片机系统中的多任务多线程机制的实现
单片机系统中的多任务多线程机制的实现
摘要:单片机系统的开发多情况下不是在嵌入式操作系统平台上进行的,而是直接基于处理器编写。在多任务并行执行的要求下,可以借鉴操作系统中的任务和线程机制,对资源和处理器合理进行调度。本文以实例对此进行讨论。
&&& 关键词:单片机 任务 线程 并行处理
首先要指出的是一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。
一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原型的各种高端嵌入式处理器。
作为一个完整的操作系统,RTOS有一个可靠性很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包括起来,留给用户一个标准的应用程序接口(API);根据各个任务的优先级,合理地在不同任务之间分配CPU的时间,保证程序执行的实时性、可靠性。内核一般都能提供任务调度和中断服务等功能,部分高档商业化产品,如Windows XP Embedded,甚至支持32位地址空间、虚拟存储管理、多进程以及嵌入式操作系统中不多见的动态链接库(DLL)。对于这些RTOS来说,多任务实时处理不是件困难的事情。&&& 但更多的情况下,用户使用的是另一类CPU――微控制器,即单片机,往往是按照某一流程执行单一任务。出于成本和技术上的原因,这类软件开发多数还是基于处理器直接编写,没有选配实时多任务操作系统作为开发平台,也不需要将系统软件和应用软件分开处理。但是在实际应用中,有时也会面临同时处理多个并行任务的要求,这就需要安排一种运行机制,来模拟RTOS中的处理方法。
1 RTOS中的设计思想
单处理机多道程序系统具有如下特征:
①从宏观上看,几种程序“同时运行”。即它们先后开始了各自的运行,且均未结束。
②从微机上看,几道程序“交替执行”。对于单处理机系统而言,它们只能轮流地占用CPU。
其实质是指几道程序在处理机中“交替执行”。我们按照现在常用的方法,把一道程序和一个任务对应,把任务中的每个分开的、独立执行的部分称之为线程。
具体到RTOS来说,一方面,实时操作中的多任务引起的并发性和实时性,要求操作系统对资源分配具有更强的控制能力。通常的办法是采取设立前台与后台两个作业的分配办法。前台作业中包含实时采集、控制、处理有关的任务,任务优先级较高;后台作业一般是对数据进行分析、输出数据、响应操作员请求等任务,优先级较低。后台作业中与后台作业并非完全孤立的;后台作业所需数据由前台作业存储共享内存区内,作业之间通过共享存储区进行数据交换。
另一方面,实时任务总是由某个事件发生或时间条件满足来激活。事件有两种:内部事件和外部事件。时间驱动也有两种:按绝对时间驱动和按相对时间驱动。内部事件驱动是指某一程序运行的结果导致另一任务的启动,这个结果可能是数据满足一定条件,也可能是释放了某一资源;而最典型的实时任务是由外部事件驱动的。在实时系统中,外部事件发生有时是不可预测的,由外部事件驱动的任务一般是需要立即执行的任务,它的优先级最高。绝对时间驱动是指在某指定时刻执行的任务,也就是在自然时钟的绝对时间执行。相对时间驱动是指周期性执行的任务,总是相对上一次执行时间计时,执行时间间隔一定。除了周期性任务外,还有一些同步任务也可能由相对时间驱动,如等待某种条件到来。等待时间是编程设定的。相对时间可用计算机内部时钟或软件计时。图2 独立并行任务&&& 我们在实时设计当中,这两方面的问题都有所体现,所有的事件驱动和时间驱动都体现在设置相应的任务标识和线程标识。从后面的讨论中可以看出,当硬件环境一定时,依据这些标识,通过安排系统内中断响应方式和调整任务调度算法,可以有效解决多任务并行问题,因为系统的实时性主要取决于这两点。
2 多任务多线程机制的实现
我们设计的对象是双通道和四通道测试的某型医用检验设备。每个通道可以置入样本,设置不同的测试项目,完成测试后输出不同的测试结果和附加的计算结果。
常规的处理方法是这样的:和通道只能测试同一个项目,按统一步骤同步执行各任务的相同阶段,其处理示意如图1。为简化起见,我们用双通道进行说明。
显然,这样做不仅会失去测试的灵活性,例如不能同时测量不项目,不过随意在不同通道中测试不同版本,即使有空余通道也不能在上一样本测试过程中启动下一样本的测试;而且还牺牲效率,浪费时间,因为要等每个阶段最慢的一个处理完才能进入下一阶段。这其实是单任务的多次简单重复,设计也容易。国内很多类似产品采用了这种方案,但我们放弃了。
我们选择了安全并行的设计,即要求所有通道可以完全独立工作;任意启动和停止;彼此没有约速;时间上可以任意重叠;是几个独立的任务,如图2。
这里我们把每一个启动通道进行测试的程序叫做一个任务,把各自任务下的每一个单独的、分开处理的程序段叫做一个线程,每个线程依靠自己的标识来识别。一个通道的测试任务可分为启动、设置、加样品、预温计时、加试剂与搅拌、通道轮流采样、数据处理和作图打印等多个线程。另外,有一个温度的实时监控独立线程,它的优先级要次于通道的测试采样。图3 前台控制流程1----void Xlnt0() interrupt0&&& 这些线程可分属于前台和后台两类:前台主要是一些中断的处理,例如两路温度的实时监控、每100ms内的各通道循环检测一遍、采用中断方式的键盘干预等;后台主要是扫描方式下响应操作员的按键请求、数据处理、图形显示、打印报告等内容。
整个实现机制可以简单地概括如下:前台通过合理安排中断的响应和服务方式来对多个任务的实时线程进行处理;后台操作主要以循环方式扫描各个任务的线程标识,满足条件的线程被激活予以处理。
限于篇幅,不可能详细介绍整个设计方案,在此只能给出各测试通道工作任务的前台和后台线程划分及流程,供参考。然后,给出一个中断退出后返回到任意地址的函数,它比C51自己的setjmp和longjmp全程跳转函数的使用要方便很多。实时任务中,中断服务结束后不是返回到断点地址执行原有程序,而是强制返回到某一地址执行新程序的情况非常普遍。我们采用设置环境变量的方法,使中断退出后可以任意返回到多个设置入口中的某一个去执行,有效地解决了前台和后台任务线程的灵活切换这一关键问题。我们使用的CPU是97C52,编程语言为Keil C51 6.0版。
图3是主定时器中断服务,12C887提供中断请求信号至int0。12C887的三个中断触发服务中,温度扫描是独立线程,四次500ms“周期中断”(即每2s)后执行一遍;需要屏幕显示预温侄计时的时候使用“更新中断”,每秒一次,各测试任务,其倒计时线程依靠各自的标识启动和停止;“报警中断”需要时设置为每分钟1次,用于主菜单界面显示当前时间和长定时的返回。
图4是CPU内部定时器0的中断服务,用于A/D转换。每个测试任务的A/D分为两个线程:检测试剂加入和测试剂样品的反应曲线,虽然都是通过对光学传感器和输出进行检测的,但处理方法完全不同,数据量也很不一样。定时器0设定为每100ms中断1次,因为要用高精度∑-Δ转换器件,CPU必须直接控制器件的整个转换过程,所以,要注意所有通道轮扫一遍A/D的时间不能超过100ms。
图5为后台流程。后台程序依靠通道按键启动一个测试任务,然后进行该任务预处理,类似初始化的一些功能。如果这期间又启动别的任务,则未初始化完的先前任务中止。图4 前台控制流程2----void time0() interrupt 1&&& 初始化完成后进入多任务所属线程的循环处理阶段,其间可以随时由通道按键引起的中断来加入新的任务,每个线程的调度标识可以由相关的前台线程给出,也可来自相关的后台线程。配合Getadd()和Putadd()从中断强制返回某地此后,使用跳转语句到真正的目标地址。
最后给出强制返回程序代码(供参考):
/*保存当前地址信息到环境变量JMPEnv[env1][]中,每个变量由三项组成,env1是二维下标参数*/
void getadd(unsigned char env1)
JMPEnv[env1][0]=(*((unsigned char idata*)SP));
JMPEnv[env1][1]=(*((unsigned char idata*)temp));
JMPEnv[env1][2]=SP-2;
/*置中断返回的任意跳转地址*/
void putadd(unsigned char env1)reentrant
{ unsigned char temp[15];
/*下面保存进入中断程序时的压栈值*/
for(i=0,i&15;i++)
{temp[i]=(*((unsigned char idata*)SP));
/*放置新地址*/
SP=JMPEnv[env1][2];SP++;
(*((unsigned char idata*)SP)=JMPEnv[env1][1];SP++;
(*((unsigned char idata*)SP))=JMPEnv[env1][0];
/*恢复中断开始时的那些压栈值*/
for(i=14;i&=0;i--)
(*((unsigned char idata*)SP))=temp[i];
限于篇幅,不可能详述任务、线程和标识的细节,仅提出一种单片机等嵌入式控制系统对多任务进行实时处理的一种思想;借鉴于主流操作系统中的多任务和多线程机制。实践证明,这种想法是行之有效的,并且取得了很好的效果。
虽然我们研制的系统是对多个相同的任务进行并行处理,但该种设计方法应该可以推广到多种不同性质的实时任务的并行处理当中去。
《单片机系统中的多任务多线程机制的实现》一文由3edu教育网www.3edu.net摘录,版权归作者所有,转载请注明出处!
【温馨提示】3edu教育网所有资源完全免费,仅供学习和研究使用,版权和著作权归原作者所有,如损害了您的权益,请与站长联系修正。
上一篇论文: 下一篇论文:

我要回帖

更多关于 uclinux 下载 的文章

 

随机推荐