时分多线程在单片机系统中的应用研究

发布者:rho27最新更新时间:2012-01-17 关键字:时分多线程  单片机系统 手机看文章 扫描二维码
随时随地手机看文章

引 言
   
随着IT技术的飞速发展,单片机应用系统几乎覆盖了社会生活的各个角落,从消费电子、通信网络、工业控制、汽车到军事等领域皆可觅其踪影;而在硬件、软件以及网络技术日益成熟的今天,其应用形式正呈现多样性和复杂性。尤其是SoC、可配置内核等性能的出现,其可裁剪性使系统设计成本大大降低,减小了系统设计工作量,为单片机应用提供了便利,在产品设计、更新换代等应用方面也备受青睐。
    为适应这些纷繁的应用需求.本文就时分多线程技术在单片机中的应用进行了介绍。该方法为构建低成本、高效、便于维护的单片机系统提供了良好的体系框架结构和设计思想。


1 时分多线程结构应用
   
通常,在单片机应用的各种控制系统中,都或多或少地存在着诸如现场数据采集、控制量输出、工作状态检测以及数据传输等各种同外设的交互过程;而各类外设与Mcu的响应速度不匹配,是制约系统整体性能的重要因素。面对这种交互瓶颈,运用时分多线程架构可获得良好的效果。
    特别是对于系统与外设频繁进行数据交互的场合,能显著提升系统的实时响应能力。这里采用的是以时分轮转调度算法实现在单片机系统中的多任务控制目标。
1.1 时分轮转调度算法的多线程实现

    时分轮转调度算法是以多个线程轮流占用cPu的执行时间来实现的。在外设交互频繁的应用场合中,可有效地解决响应速度不匹配所造成的CPU等待外设响应的时间消耗问题,从而提高MCU运算部件的利用率。
    而在多线程的调度切换过程中,要对上一个线程的运行环境进行保护,并为下一个线程做好准备。就单片机系统而言,要严格实现真正意义上的实时多线程控制,会受到容量、中断源、指针等一系列系统资源的条件限制。
    本文是以C8051F005单片机构建的应用系统。它是以805l内核为基础的,没有太多空间用于存放或保护任务切换时的现场数据(如程序指针、程序状态字、累加器等),也难于应用抢占式实时任务切换的实现激励机制,同时MCU速率也有限。
    针对单片机存在的这些资源瓶颈,运用时分轮转算法作为多线程控制算法架构,以非抢占式异步处理方法,在合理分配、运用通用工作寄存器组的情况下,通过整合或细分功能模块结构,将控制程序划分为各线程任务,以缩短CPU的闲置时间;并将每个线程的执行时间控制在时间片内,以降低上下文切换的复杂度,从而降低开发风险。
1.2 多线程的管理策略及应用
(1)时间片长度
   
通过对控制功能、时序的合理组合,以时间片长度划分的程序片段,应确保每个线程的执行代码段在“时间片”内完成,以此降低线程任务的控制复杂度和设计风险。具体实施原则详见第2节。
(2)线程协调方式
    通过设置标识量,将各时间片内的线程任务协调起来。例如,在键盘输入中的消抖动延时和键值冗余读取、在A/D数据采集中的采样触发与数值读取,以及SPI 的数据传输等功能块,都可进行任务线程的作业步骤细分。通过设置线程的阶段标识量,协调前后时间片的线程执行步调。
(3)线程管理
    在时钟中断服务程序中,用任务号调度线程执行次序。根据控制目标、设备状态以及当前线程的执行结果,选择下一步将要执行的任务号;而各任务线程执行在主控循环程序中完成。也就是说,把时间片驱动以及任务调度与任务线程处理过程分开,这样有利于构建灵活、高效的软件框架结构,提高系统的实时响应能力与可维护性。
    在以C8051F005芯片构建的应用系统中,为了缩短时间片中断服务程序的执行时间,提高系统的中断响应能力,任务线程调度以及上下文切换控制在T2时钟中断服务程序中实现,以事件发生标识TstateChange和线程标识TimeSlice进行线程调度。TstateChange用于控制主控循环方向,TimeSlice则用于调度就绪线程的执行次序。
    为了降低系统功耗,提高系统可靠性,程序主控循环体在每个循环结束后都要使MCU进入体眠状态,并以时间片T2中断、其他异步中断源或引脚触发事件等唤醒 MCU。而TstateChange状态标识量就是控制主控循环方向,以区分时间片任务线程调度与非T2等的异步中断事件。其主控循环流程如图1所示,其线程控制可以用如下程序结构实现。

   
    该体系框架优点在于:可方便地构建控制关系并行的多线程架构;任务线程的执行时间明确;同时对调整任务线程执行时序、维护功能模块提供了便利。
    缺陷是:由于构成的是非抢占式控制方式,在线程调度处理上不能确保时间关键的异步事件优先执行,这也是其器件内核的固有缺陷。


2 确定时间片长度
   
在统筹考虑任务线程段的代码量、外设响应、系统响应性能以及线程切换的数据保护量后,确定以lOms作线程时间片的切换单位。主要考虑以下几方面因素:
(1)任务线程段代码量的大小
    根据各功能模块大小,依据相关性以及时序等逻辑关系,在考虑各功能模块内聚性、线程切换运算量的基础上,进行模块分解、合并,组成线程执行代码段,以确保线程执行代码段(包括中断服务程序的执行时间)能在时间片内完成,从而简化了控制模型,降低了多线程中上下文之间切换的复杂度。
    例如处理键盘输入,为实现键盘输入的消抖动干扰、冗余读取键值以及持续按键与点击按键功能。通过设置若干标识变量,细分键值处理线程的时序作业步骤,使每个作业执行时间片小于lOms,从而适应时钟片调度的时间约束条件,降低设计风险。
    对按键的20~30ms防抖动延时,可通过设置标识量keydelay,在时间片中断服务程序中进行延时计数,而在主循环程序中就可进行如下处理。


(2)外设响应
    在考虑MCU同各种外设交互的延时因素中,要综合平衡外设延时时间、线程切换、时间片周期等因素对系统整体综合性能的影响,最大限度地提升CPU利用率。
(3)A/D数据转换速率
   
对所读温度、功率值的采样频率,根据C8051F005的片上A/D转换速率以及数字滤波处理的信号冗余读数要求,兼顾时间片大小。

3 特别注意事项
    ①时间片中断T2应设最高优先级,以免其他中断程序干扰时间片调度程序的实时性处理。
    ②中断服务程序的调度算法应尽量简短,提高系统的响应能力。
    ③注意堆栈操作的溢出控制。
    ④分配在时间片中的线程代码段要有合理的组合与调度考虑,以均衡负担CPU的时间片,降低设计风险。
    ⑤在初始化系统状态时,确保线程状态标识的创建,以及时间片中断T2的使能。
    ⑥慎重处理中断服务程序执行时间,避免挤占线程时间片的正常处理,引起控制紊乱、系统崩溃。


结语

    针对日益复杂、多样、高实时要求的应用项目,本文提供了一种易于设计、功能便于扩充的解决方案。由此也启示我们,采用正确、灵活的设计方法,综合运用现有技术,可有效提高单片机应用系统性能,扩大应用领域,增强实时控制能力,降低开发难度。
    当前,随着IT业的硬件技术不断提升,探求高效软件方法同样是不容忽视的问题。虽然一些低效、存在速度瓶颈的程序问题.会随着时问推移因硬件技术的提升而化解,但编写高效软件是锻炼、提升编程人员技术水平的途径,有极强的技术性,需要有的放矢、长期的代码实践,才能磨砺出编写高效代码的技巧、方法和能力。在资源、设计成本、交货时间允许的日常设计中,应进行多重算法的优劣选择,而不要简单地使用头脑中首位闪现的方案。

关键字:时分多线程  单片机系统 引用地址:时分多线程在单片机系统中的应用研究

上一篇:MSP430单片机系统应用结构设计与选型
下一篇:基于MSP430的网络化视频监控系统的设计

推荐阅读最新更新时间:2024-03-16 12:51

用现场电磁兼容性理论剖析单片机系统设计解析方案
单片机系统在军事、工业、民用产品中的应用越来越广。它将许多以往用硬件实现的功能由软件来完成,体积小巧、功能丰富、智能化程序度,但在可靠性方面也面临许多新问题。用现场电磁兼容性(EMC)理论剖析单片机系统设计中的某些传统观念,会发现许多误区,并且有些误区至今还在工程界广为存在。 1 误区之一:有了看门狗就不会死机 死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应,显示凝固。单片机死机后,只有复全才能走出死循环,执行正常的程序流程。众所属知,克服死机的最有效手段是加看门狗(WatchDog)。 目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTime
[单片机]
用现场电磁兼容性理论剖析<font color='red'>单片机系统</font>设计解析方案
具有6位LED、4个按键的显示板电路图
按键和显示是单片机系统的基本输入输出部件,下面介绍一个由74LS164驱动的6位数码管和4个按键组成的通用仪表面板。 原理图如下图所示 script src="/gg/article-main.js" /script script type=text/javascript /script script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript /script script src="http://pagead2.googlesyndication.com/pagead/js/r20140211
[单片机]
具有6位LED、4个按键的显示板电路图
单片机系统重写printf函数
//将stdio.h头文件中的printf函数注释掉不然会冲突 //stdio.h头文件还是要包含的里面有va_list的定义 //使用vsprintf将要打印的数据赋给字符串 //使用字符串发送函数发送字符串 //不要把这个数组放在printf函数里面,一方面会在栈分配内存上耗费时间 //另一方面也是最主要的如果栈空间不够了还要分配100个字节那就会导致 //堆栈溢出,CC2530使用256字节的IDATA的一部分作为栈空间,我设置成了0xC0 //也就是192字节,在函数调用层次很深的时候在调用printf函数就会很容易 //导致堆栈溢出,出现莫名其妙的问题。 char string ; void printf(char
[单片机]
单片机系统多串行口设计方法
1 前 言 在以单片机为核心的测控系统中.微控制器往往需要两个或两个以上的串行口与其他主机或外设进行通讯,如何使系统具备多个串行接口,是一个具有普遍性的问题。尤其在航空航天领域,由于GPS、大气数据系统、数字罗盘、无线电高度表、甚至陀螺等航空电子设备普遍采用串行通讯方式,单片计算机系统就更需要有多个串行口以满足与外界信息交换的需要。 2 常用的多串行口设计方法 ①选用多串行口单片机 直接选用多串行口单片机作为系统的CPU,显然是最直接有效的方法。现在有许多新型CPU配备两个或两个以上串行口,如W77E58、DS80C320、MSP430F149、C8051F020单片机和数字信号处理器TMS320C30有两
[单片机]
<font color='red'>单片机系统</font>多串行口设计方法
单片机系统中高速数据采集的实现
在单片机系统中通常要用到高速数据采集。虽然目前单片机的工作频率不断提高,但仍然无法满足如周期信号频谱分析等需要采用高速数据采集的场合。对于速率在l00 kS/s以上的数据采集,如果采用一般的中断查询法就不易实现,因此可考虑通过存储器直接存储转换数据来实现1 MHz以上的高速数据采集。 1系统结构 系统由单片机、高速A/D转换器、高速静态RAM及切换控制电路等部分组成,如图1所示。静态RAM用作单片机与A/D转换器之间的数据缓冲。 RAM的数据线和地址线由总线切换电路来控制,选择连接单片机总线或连接到A/D转换器的数据输出和地址发生器输出地址。RAM的读写由读写控制电路实现。 在数据采集期间,存储器的写入地址
[单片机]
<font color='red'>单片机系统</font>中高速数据采集的实现
单片机系统对RAM的测试方法
  在各种单片机应用系统中,存储器的正常与否直接关系到该系统的正常工作。为了提高系统的可靠性,对系统的可靠性进行测试是十分必要的。通过测试可以有效地发现并解决因存储器发生故障对系统带来的破坏问题。本文针对性地介绍了几种常用的单片机系统RAM测试方法,并在其基础上提出了一种基于种子和逐位倒转的RAM故障测试方法。   1 RAM测试方法回顾   (1)方法1   参考文献中给出了一种测试系统RAM的方法。该方法是分两步来检查,先后向整个数据区送入#00H和#FFH,再先后读出进行比较,若不一样,则说明出错。   (2)方法2   方法1并不能完全检查出RAM的错误,在参考文献中分析介绍了一种进行RAM检测的标准算法MARC
[单片机]
工作频率可动态调整的单片机系统设计
摘要:介绍一种采用可编程CMOS频率合成器DS1077设计的单片机系统,使单片机能根据环境需要动态调整系统的工作频率,既能满足系统求的实时处理能力,又尽可能地降低系统的耗电量及引起的电磁干扰。同时还讨论了系统改变工作频率后对RS232串行通讯的影响以及解决办法确保该系统在不的工作频率下仍能正常进行RS232串行通信。这种单片机系统的变频设计提高了系统的适用范围和兼容性,使系统设计更加灵活。 关键词:可编程CMOS频率合成器 串行通讯 动态编程 DS1077 在单片机系统中,总希望单片机能够工作于最大频率,以提高系统的实时处理能力。但单片机系统工作频率越高,其耗电量及引起的电磁干扰也就越大,并且单片机工作频率的选择直接影响到RS
[单片机]
EMC技术在单片机系统中的应用
EMC电磁兼容性包括EMI(interference)和EMS(susceptibility),也就是电磁干扰和电磁抗干扰。随着智能化技术的发展,单片机的应用也日益广泛。虽然单片机本身有一定的抗干扰能力,但是用单片机为核心组成的控制系统在应用中,仍存在着电磁干扰的问题。为防止外界对系统的EMI,并确保单片机控制系统安全可靠地运行,必须采取相应的EMS措施。 1 EMI的产生原因分析 在单片机系统的工作环境中,往往有许多强电设备,特别是电机启动和继电器的吸合将对单片机产生强烈的干扰,使用示波器的话可以看到电源电压波形上有明显的毛刺干扰。此外受到条件限制有时单片机控制系统的各部分之间要有较远的距离,数据和控制线使用较长的导线且没有良好
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved