新闻中心

EEPW首页>嵌入式系统>设计应用> 时分多线程技术在单片机中的应用

时分多线程技术在单片机中的应用

作者: 时间:2011-08-10 来源:网络 收藏
2 确定时间片长度

  在统筹考虑任务线程段的代码量、外设响应、系统响应性能以及线程切换的数据保护量后,确定以lOms作线程时间片的切换单位。主要考虑以下几方面因素:

  (1)任务线程段代码量的大小

  根据各功能模块大小,依据相关性以及时序等逻辑关系,在考虑各功能模块内聚性、线程切换运算量的基础上,进行模块分解、合并,组成线程执行代码段,以确保线程执行代码段(包括中断服务程序的执行时间)能在时间片内完成,从而简化了控制模型,降低了多线程中上下文之间切换的复杂度。

  例如处理键盘输入,为实现键盘输入的消抖动干扰、冗余读取键值以及持续按键与点击按键功能。通过设置若干标识变量,细分键值处理线程的时序作业步骤,使每个作业执行时间片小于lOms,从而适应时钟片调度的时间约束条件,降低设计风险。

  对按键的20~30ms防抖动延时,可通过设置标识量keydelay,在时间片中断服务程序中进行延时计数,而在主循环程序中就可进行如下处理。

时分多线程技术在单片机中的应用

  (2)外设响应

  在考虑MCU同各种外设交互的延时因素中,要综合平衡外设延时时间、线程切换、时间片周期等因素对系统整体综合性能的影响,最大限度地提升CPU利用率。

  (3)A/D数据转换速率

  对所读温度、功率值的采样频率,根据C8051F005的片上A/D转换速率以及数字滤波处理的信号冗余读数要求,兼顾时间片大小。

  3 特别注意事项

  ①时间片中断T2应设最高优先级,以免其他中断程序干扰时间片调度程序的实时性处理。

  ②中断服务程序的调度算法应尽量简短,提高系统的响应能力。

  ③注意堆栈操作的溢出控制。

  ④分配在时间片中的线程代码段要有合理的组合与调度考虑,以均衡负担CPU的时间片,降低设计风险。

  ⑤在初始化系统状态时,确保线程状态标识的创建,以及时间片中断T2的使能。

  ⑥慎重处理中断服务程序执行时间,避免挤占线程时间片的正常处理,引起控制紊乱、系统崩溃。

  结语

  针对日益复杂、多样、高实时要求的应用项目,本文提供了一种易于设计、功能便于扩充的解决方案。由此也启示我们,采用正确、灵活的设计方法,综合运用现有技术,可有效提高应用系统性能,扩大应用领域,增强实时控制能力,降低开发难度。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭