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

发布者:咖啡狐狸最新更新时间:2007-11-12 来源: 单片机及嵌入式系统应用关键字:实时  响应  寄存  架构 手机看文章 扫描二维码
随时随地手机看文章
引 言

随着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业的硬件技术不断提升,探求高效软件方法同样是不容忽视的问题。虽然一些低效、存在速度瓶颈的程序问题.会随着时问推移因硬件技术的提升而化解,但编写高效软件是锻炼、提升编程人员技术水平的途径,有极强的技术性,需要有的放矢、长期的代码实践,才能磨砺出编写高效代码的技巧、方法和能力。在资源、设计成本、交货时间允许的日常设计中,应进行多重算法的优劣选择,而不要简单地使用头脑中首位闪现的方案。

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

上一篇:基于Nios II与FPS200的半导体指纹采集系统设计
下一篇:单片机控制步进电机驱动器工作原理

推荐阅读最新更新时间:2024-05-13 18:39

基于DSP的实时MPEG-4编码的软件优化设计
    摘要: 结合开发工具TMS320C6201EVM板的结构和特点,阐述了在实现MPEG-4实时视频编码中,对算法的软件优化所做的工作。     关键词: TMS320C6201 MPEG-4 优化 并行处理 TMS320C6201芯片是TI公司新推出的并行处理的数字信号处理器。它的最高处理能力高达1600MIPS,即16亿万次每秒定点运算,是目前市场上所有的DSP芯片中速度较快、处理功能较强的DSP处理器。其应用前景十分广泛。本文利用C6201开发工具EVM(模拟评估)板,用软件实现实时MPEG-4编码。详细探讨了MPEG-4视频编码中的关键模块,并针对TMS320C6000的物理指令结构,对软件优化的特
[应用]
stm32f407之DMA(操作寄存器)
八、DMA 直接内存访问(DMA)是用来以提供外设和内存、内存和内存之间的高速数据传输的。数据可以在没有任何CPU干预下通过的DMA进行传输。这使得CPU资源更倾重与其他操作。 DMA控制器基于一个复杂的总线矩阵架构,结合了功能强大的双AHB主总线架构与独立的FIFO,以优化系统带宽。 两个DMA控制器共有16个数据流(stream),每个数据流可以编程与规定的通道中的一个搭配。 DMA的工作模式 1. 单次传输 2. 多次传输(burst):把数据分成多次传输 DMA的工作模式 1. 循环模式:循环模式是可用来处理循环缓冲区和连续的数据流(如ADC扫描模式)。启此功能可以设置DMA_SxC
[单片机]
stm32f407之DMA(操作<font color='red'>寄存</font>器)
汽车电子电气架构软件关键技术解析
1. 汽车电子电气架构与车载计算平台技术趋势 汽车电子电气架构从传统分布式架构正在朝向域架构、中央计算架构转变,车内控制系统趋于形成统一的架构标准及通用的软硬件平台,各类控制功能逐渐演变为统一平台下的各类应用。其技术演进有四个关键趋势:计算集中化、软硬件解耦化、平台标准化以及功能开发生态化。智能化与网联化共同推动了汽车电子电气架构的变革,一方面是车内网络拓扑的优化和实时、高速网络的启用,另一方面是ECU(电子控制单元)的功能进一步集成到域控制器甚至中央计算单元。 图1 汽车电子电气架构转变趋势示意图 汽车电子底层硬件不再是由实现单一功能的单一芯片提供简单的逻辑计算,而是需要提供更为强大的算力支持;软件也不再是基于某一固定硬件开
[嵌入式]
汽车电子电气<font color='red'>架构</font>软件关键技术解析
嵌入式实时操作系统μC/OS-II下的多串口通信编程方法
本文介绍了以LPC2365为核心处理器、嵌入式实时操作系统μC/OS-II下的多串口通信编程方法。对于固定长度的短字节帧数据,通过设置合适的字节触发深度,一次中断完成数据接收任务;对于变长的长字节帧数据,则通过多次中断和等待延时的方法判断数据稳定并完成帧数据的接收;对于大量数据的接收和发送采用建立FIFO数据队列的方法。 通过这些措施较好地完成了多串口较大数据量的通信任务。 国产某掠海恒高硬体拖靶在拖曳飞行时,需要将自身的各种参数通过无线链路实时上传至拖曳母机,同时实时接收拖曳母机的遥控指令完成相应的动作。拖靶自身的参数包括:开关高控状态、 蓄电池 电压 、无线电高度表值、飞行高度装定值、垂向加速度值、舵翼角、温度值、普通
[单片机]
嵌入式<font color='red'>实时</font>操作系统μC/OS-II下的多串口通信编程方法
Vishay推出的新款线性光耦具有更快的响应速度、更高的绝缘电压和传输增益稳定性
Vishay推出的新款线性光耦具有更快的响应速度、更高的绝缘电压和传输增益稳定性 汽车级器件,采用单端输出,数据传输速率达1.4 MHz,确保人员和车辆安全 宾夕法尼亚、MALVERN — 2022年11月23日 — 日前,Vishay Intertechnology, Inc.宣布,推出经过AEC-Q102认证的业内先进的线性光耦--- VOA300。 Vishay Semiconductors VOA300绝缘电压达到5300 Vrms,响应速度是竞品器件的五倍,同时典型传输增益稳定性提高到 ± 0.005 %/ ° C ,单端输出为设计提供灵活性。 日前发布的汽车级器件包括AIGaAs红外LED(IR
[电源管理]
Vishay推出的新款线性光耦具有更快的<font color='red'>响应</font>速度、更高的绝缘电压和传输增益稳定性
Google从苹果挖走芯片核心架构
北京时间6月14日消息,据外媒《名利场》报道,Google最近从苹果挖来了工程师马努-古拉蒂(Manu Gulati),这位工程师手里拥有15项涉及芯片设计的专利,曾在苹果工作,为iPhone,iPad和Apple TV制造定制芯片, 他的到来将为Google自研芯片提供强大助力。下面就随嵌入式小编一起来了解一下相关内容吧。 苹果的A系列芯片一直都是自主设计,这样一来它们就能掌握自己的命运,不用受制于英特尔或高通了。与其相比,Google旗下的Pixel和Pixel XL手机用的芯片则隶属于高通骁龙系列。古拉蒂的LinkedIn页面显示,他现在成了Google的“首席SoC架构师”。此前,古拉蒂在苹果已经工作了8年,在这之前他还在
[嵌入式]
基于NI Scope实时数据采集系统设计
虚拟仪器的概念最早是由美国国家仪器公司(Na-tional Instrument)提出来的,经过十几年的发展,目前正沿着总线与驱动程序标准化、硬件、软件模块化、编程平台图像化和硬件模块即插即用方向发展。随着计算机技术和网络技术的飞速发展,虚拟仪器将在数据采集、自动测试和测量仪器领域得到广泛应用,拟仪器技术十分符合国际上流行的 硬件软件化 的发展趋势,尤其是在高校科研和工业生产领域中发展前景非常广阔。 1 虚拟仪器概述 1.1 虚拟仪器简介 虚拟仪器核心技术思想是 软件即是仪器 ,在通用的集成硬件平台上,结合高性能的模块化硬件和高效灵活的软件使本来需要硬件实现的技术软件化。一般当标准化硬件平台确定后,通过标准的仪器驱动软件
[测试测量]
基于NI Scope<font color='red'>实时</font>数据采集系统设计
STM32开发笔记9: STM32CubeF0固件架构
单片机型号:STM32CubeF0 本文介绍STM32CubeF0固件架构。 STM32CubeF0固件架构图如下图所示。 1、Board Support Package (BSP) This layer offers a set of APIs relative to the hardware components in the hardware boards (such as LCD, Audio, microSD and MEMS drivers). It is composed of two parts: • Component This is the driver
[单片机]
STM32开发笔记9: STM32CubeF0固件<font color='red'>架构</font>
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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