人人范文网 范文大全

嵌入式主控软件设计心得

发布时间:2020-03-01 19:07:26 来源:范文大全 收藏本文 下载本文 手机版

嵌入式主控软件设计模式初探

1.软件框架简述

根据本人近三年的嵌入式主控软件经验, 基于VxWorks的嵌入式的主控软件大概有以下几个模块

图2 大功率通信控制器主控软件架构

各模块简述如下:

1)初始化模块

用于系统必备资源的初始化工作,设备通信前需要将各通信接口如CAN控制器、RS-2

32、RS-485控制器初始化至适当的状态,申请发送/接收数据缓冲区;显示程序图形库一般采用VxWorks自带的windML实现,因此需要初始化windML相关参数以便能在屏幕上正确显示。如果采用其他图形库,则需要考虑其它图形库的初始化工作。上述相关参数初始化完毕后系统进入按键检测、按键处理、控制处理模块。

2)按键检测和按键响应模块

对于用户的按键输入为什么需要设置两个模块来完成呢?只使用一个按键模块实现能否可行呢?实践表明,采用一个按键模块有一定的风险。假设用户在某时刻按键,系统立即对该按键进行处理(可能该处理需要较长时间),在按键处理进行的过程中用户又按下一个键。由于系统正在进行按键处理工作,无法对再一次按键进行响应,该按键响应会被忽略,无法完成用户的预期任务。因此,把按键处理划分为按键检测模块和按键响应模块的好处在于检测模块将按键检测值缓存,等按键响应模块完成响应后再从该缓存中读取下一个键值,保证用户的每一次按键都能被正确记录。

—1—

研发中心设计案例集2007年9月

3)控制模块

控制模块和各应用层相关,无法一概而论,只能视情况而定。

5)显示模块

显示同控制分离是主控软件设计的主要特点之一。显示模块作为系统软件中的一个任务来实现,与按键响应模块、业务模块、控制模块采用自定义协议通信,根据这些模块发送的遥控协议进行界面显示。将显示单独作为一个模块有以下两点原因:

1) 一旦用户似于遥控盒的设备需求,该设备能实现对控制器的遥控显示功能,在遥

控盒软件设计时显示模块就可以直接移植到遥控盒的主控软件设计中,减少工作量。

2) 显示模块涉及到屏幕刷新操作时会占用一定的时间,显示模块如果直接在相关控

制模块中实现则会影响到控制模块的实时性能。

3.优先级上的考虑

主控软件设计中需要考虑多个任务之间的优先级问题,从目前的设计经验上来看业务单元、信道机调度需要最高优先级,因为中长波、短波通信系统过程中业务单元对信道机的实时性要求最高,按键检测和按键响应优先级次之,显示模块优先级最低。显示任务放在系统比较空闲的时候显示不至于影响到整个系统的实时性能。对于同等优先级的任务最好加上taskDelay(0)语句,因为同等优先级的任务采用分时隙调度的方式,taskDelay(0)能该任务在运行时隙结束时被其它同等优先级的任务抢占到CPU资源。

除端口查询外,采用while(1)或者FOREVER类似结构的无限循环的任务必须拥有信号量、消息等挂起本身的能力。否则,系统运行时从windView中观察:该任务即使优先级最低为255时,也会无休止的占用大量的系统资源,影响系统实时性。

4.总结

本文试图根据经历的几个嵌入式主控软件项目中提取一些设计经验和心得体会,有些经验只是在项目实际开展过程中的观察总结,抛砖引玉,希望对各位有所帮助。

嵌入式图像处理系统的软件设计论文

嵌入式心得

报告嵌入式心得

学习嵌入式心得

初探一种构件化嵌入式软件设计模型验证工具

软件设计中嵌入式实时软件的实践论文[全文]

嵌入式系统移植+心得

学习嵌入式系统开发心得

学习嵌入式系统心得

学习嵌入式的心得

嵌入式主控软件设计心得
《嵌入式主控软件设计心得.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档