嵌入式系统原理与应用 第7章 电脑自动打铃器设计与实现.ppt
《嵌入式系统原理与应用 第7章 电脑自动打铃器设计与实现.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统原理与应用 第7章 电脑自动打铃器设计与实现.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电脑自动打铃器设计与实现December,2007绪论绪论电脑自动打铃器设计与实现电脑自动打铃器设计与实现 通过对ARM7TDMI体系结构、LPC2000系列ARM、C/OS-II微小内核分析与程序设计基础的深入学习之后,我们已经对嵌入式系统有了比较清晰的了解。本章将结合一个具体的实例电脑自动打铃器来阐述嵌入式应用系统的工程设计方法。目 录设计要求设计要求任务设计任务设计硬件设计硬件设计程序设计程序设计1234电脑自动打铃器设计与实现电脑自动打铃器设计与实现设计要求设计要求系统功能系统功能系统框图系统框图12设计要求设计要求|电脑自动打铃器设计与实现电脑自动打铃器设计与实现系统功能系统功能l具
2、有实时时钟功能,能显示时分秒,年月日星期(采用8位数码管显示)l具有 键盘 输入功能 l可以设置若干个闹钟,以及闹钟的禁止与使能l可设置每个闹钟发生时的输出动作(一共四路输出,可独立设置每路输出的时间和电平状态)设计要求设计要求|电脑自动打铃器设计与实现电脑自动打铃器设计与实现系统框图系统框图 LPC2000系列ARM具有RTC功能,RTC掉电后仍可使用电池继续运行,从而保证了系统掉电后时钟的准确性。ZLG7290是一款键盘和LED驱动芯片,最多支持64个按键和8个共阴极数码管。LPC2000ZLG7290Vcc键盘输入数码管显示SDASCLINT输出控制电脑自动打铃器设计与实现电脑自动打铃器
3、设计与实现硬件设计硬件设计键盘显示电路键盘显示电路输出控制电路输出控制电路12硬件设计硬件设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现键盘显示电路键盘显示电路 本设计实例基于SmartARM2200A工控开发平台实现。SmartARM2200A工控开发平台提供I2C0接口,可以和PACK板“Panel Module ZYPM7290”连接,组成键盘显示电路,硬件电路及连接方法请参考配套教材。硬件设计硬件设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现输出控制电路输出控制电路 图示为输出控制模拟电路,在实际应用中,可能需要控制继电器等。电脑自动打铃器设计与实现电脑自动打铃器设计与
4、实现任务设计任务设计任务的划分任务的划分 任务的数据结构设计任务的数据结构设计任务的优先级设计任务的优先级设计 123多任务之间的同步与互斥多任务之间的同步与互斥多任务之间的信息传递多任务之间的信息传递 45任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的划分任务的划分 对一个嵌入式应用系统进行“任务划分”,是实时操作系统应用软件设计的关键,任务划分是否合理将直接影响软件设计的质量。以以CPU为中心为中心“关键关键”功功能能“紧迫紧迫”功能功能消耗机时消耗机时关系密切关系密切相同事件触发相同事件触发运行周期相同运行周期相同任务划分固定顺序执行固定顺序执行 任务划分原则如
5、下:首先,以CPU为中心,将与各种输入/输出设备(或端口)相关的功能分别划分为独立的任务发现“关键”功能,将其最“关键”部分“剥离”出来,用一个独立任务(或ISR)完成,剩余部分用另外一个任务实现,两者之间通过通信机制沟通发现“紧迫”功能,将其最“紧迫”部分“剥离”出来,用一个独立的高优先级任务(或ISR)完成,剩余部分用另外一个任务实现,两者之间通过通信机制沟通将消耗机时较多的数据处理功能划分出来,封装为低优先级任务对于既“关键”又“紧迫”的功能,按“紧迫”功能处理将关系密切的若干功能组合成为一个任务,达到功能聚合的效果将由相同事件触发的若干功能组合成为一个任务,从而免除事件分发机制将运行周
6、期相同的功能组合成为一个任务,从而免除时间事件分发机制将若干按固定顺序执行的功能组合成为一个任务,从而免除同步接力通信的麻烦任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的划分任务的划分 电脑自动打铃器任务划分如下:RTC中断中断显示任务显示任务键盘任务键盘任务输出控制任务输出控制任务电脑打铃器电脑打铃器 电脑自动打铃器具有键盘输入功能,用于设置时钟和闹钟,因此需要一个键盘任务。电脑自动打铃器需要有显示功能,用来显示时钟和闹钟,因此需要一个显示任务。电脑自动打铃器需要一个输出控制任务,用来控制闹钟时间到后各路的输出。电脑自动打铃器具有实时时钟功能,需要一个RTC中断。任
7、务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的优先级设计任务的优先级设计人机接口,实时性低键盘任务键盘任务1输出控制任务输出控制任务3显示任务显示任务2RTC中断中断4电电脑脑自自动动打打铃铃器器控制接口,实时性高任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的优先级设计任务的优先级设计键盘任务键盘任务1输出控制任务输出控制任务3显示任务显示任务2RTC中断中断4电电脑脑自自动动打打铃铃器器优先级:6优先级:12优先级:13任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的数据结构设计任务的数据结构设计 对于一个任务,除了它
8、的代码(任务函数)外,还有相关的信息。为保存这些信息,必须为任务设计对应的若干数据结构。任务需要配备的数据结构分为两类:一类是与操作系统有关的数据结构;另外一类是与操作系统无关的数据结构。任务的数任务的数据结构据结构与操作系与操作系与操作系与操作系统有关的统有关的统有关的统有关的数据结构数据结构数据结构数据结构与操作系与操作系与操作系与操作系统无关的统无关的统无关的统无关的数据结构数据结构数据结构数据结构任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的数据结构设计任务的数据结构设计1.与操作系统有关的数据结构 一个任务要想在操作系统的管理下工作,必须首先被创建。在C/O
9、S-II中,任务的创建函数原型如下:任务函数指针任务参数指针,一般设为(void*)0任务堆栈栈顶指针任务优先级任务ID,一般设为prio任务堆栈栈底指针任务堆栈大小任务附加数据指针,一般设为(void*)0创建任务选项INT8U OSTaskCreateExt(void (*task)(void*pd),void *pdata,OS_STK *ptos,INT8U prio,INT16U id,OS_STK*pbos,INT32U stk_size,void *pext,INT16U opt);任务设计任务设计|电脑自动打铃器设计与实现电脑自动打铃器设计与实现任务的数据结构设计任务的数据结构
10、设计 在电脑自动打铃器应用中,我们设计了3个任务(键盘任务、显示任务和输出控制任务),与操作系统有关的数据结构定义如下:#define TASKKEY_ID12/定义键盘任务的ID#define TASKKEY_PRIOTASKKEY_ID/定义键盘任务的优先级#define TASKKEY_STACK_SIZE512/定义键盘任务堆栈的大小#define TASKDISP_ID13/定义显示任务的ID#define TASKDISP_PRIO TASKDISP_ID/定义显示任务的优先级#define TASKDISP_STACK_SIZE512/定义显示任务堆栈的大小#define TAS
11、KCTRL_ID6/定义控制任务的ID#define TASKCTRL_PRIO TASKCTRL_ID/定义控制任务的优先级#define TASKCTRL_STACK_SIZE 512/定义控制任务堆栈的大小OS_STK TaskKeyStkTASKKEY_STACK_SIZE;/定义键盘任务的堆栈OS_STK TaskDispStkTASKDISP_STACK_SIZE;/定义显示任务的堆栈OS_STK TaskCtrlStkTASKCTRL_STACK_SIZE;/定义控制任务的堆栈void TaskKey(void*pdata);/键盘任务声明void TaskDisp(void*p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统原理与应用 第7章 电脑自动打铃器设计与实现 嵌入式 系统 原理 应用 电脑 自动 打铃 设计 实现
限制150内