文档介绍:第四节IPC测控系统实验
一、硬件系统原理框图
原理框图见图1-5,我们将在如图所示的系统上,完成本课程中最重要也是最复杂的实验。在前面各个章节中,我们已经完成了有关硬件部分讲解,这里的重点放在软件上。
二、软件框图
程序清单很长,为方便阅读,我们给出三个框图。
图12-8:
软件系统的三大块:
a) 初始化及任务调度,是系统的管理层负责任务调度;
b) 任务程序集合,它们在管理层的调度下实现各种功能;
c) 中断服务程序,是简化MROS的组成部分。
图12-9:
初始化及任务调度程序框图
图12-10:
中断服务程序框图
三大块框图
开始
各I/O口初始化, 设置1ms中断;各周期任务的周期值设定;
各定时任务的定时值设定;各任务允许、禁止状态设定;
屏幕背景颜色, 设置北京时间显示
初始化
就绪状态标志队列扫查主要工作:把CPU分配给就绪队列中优先级别最高的任务程序并撤除该任务的就绪状态标志
也可以作为一个任务程序,每n毫秒调度一次
键盘扫描主要工作:查找有无功能键按下,如有则把
该功能键对应的任务置为就绪状态
退出处理
返回Turbo C
集成开发环境
是退出键吗?
N Y
任务程序1
1ms中断服务程序主要工作:
各周期任务的周期阈值减1并判断是否为0,是则把相应任务置为就绪状态;
各定时任务的定时值与DOS时间比较,相等则把响应任务置为就绪态。
任务程序2
:
:
任务程序N
图12-8 IPC测控系统实验框图概要
初始化及任务调度 b)任务程序集合 c)中断服务程序
主程序
初始化
①
模拟量采样任务状态task_af ?
睡眠就绪
模拟量采样任务getad()投入运行,撤除标志
开关量采集任务状态task_sf ?
睡眠就绪
开关量采集任务程序投入运行,撤除标志
模拟量列表显示任务状态mnxsf ?
等待就绪
模拟量列表显示任务mnxs( )投入运行
开关量列表显示任务状态kgxsf ?
等待就绪
开关量列表显示任务kgxs( )投入运行
绘制电气主接线图任务subdl()是否启动?
等待就绪
绘制电气主接线图任务subdl( )投入运行,撤除标志。运行结束时,
如果是d键操作,则把模拟量填入主接线图任务tad( )置为就绪态;
… t键操作,则把开关量填入主接线图任务kg( )置为就绪态。
b a
b a
模拟量填入电气主接线图任务状态tadf ?
等待就绪
模拟量填入电气主接线图任务tad( )投入运行
开关量填入电气主接线图任务状态kgf ?
等待就绪
开关量填入电气主接线图任务kg( )投入运行
温度测控子系统任务状态stepf ?
睡眠就绪
步进机任务stepping( )投入运行,撤除标志
直流机测控任务状态motorf ?
睡眠就绪
直流电动机测控任务motor( )投入运行,撤除标志。若允许直流电动机作图标志pmotorf1=1,则把显示直流电动机运行曲线任务状态pmotorf置为就绪态
显示直流电动机运行曲线任务状态pmotorf ?
等待就绪
显示直流电动机运行曲线任务pmotor( )投入运行。撤除标志
“a”键按下?
N Y
把模拟量列表显示任务标志mnsxf置为就绪态,设置互斥。
210
“s”键按下?
N Y
把开关量列表显示任务标志kgsxf置为就绪态,设置互斥。
“d”键按下?
N Y
绘制主接线图任务subdl()投入运行。设置互斥。
“t”键按下?
N Y
绘制主接线图任务subdl()投入运行。设置互斥。
“m”键按下?
N
显示直流电动机运行曲线任务的允许标志pmotorf1=1。设置互斥。
非功能键按下?
N Y
显式各功能键定义
“q”键按下?
① N Y
退出处理,返回Turbo C集成开发环境
图12-9 初始化及任务调度程序框图
211
1ms中断处理程序
各周期任务的周期阈值减1
有阈值为0 ?
N
Y
把相应任务置为就绪态
零点到?
N
Y
“0点制表”任务置为就绪态
8点到?
N
Y
“8点制表”任务置为就绪态
16点到?
N
Y