资料介绍
一、车辆调度系统的整体设计:
整个系统包括四个部分(1)通信主站;(2)车载从站;(3)通信链路。(4)系统监控部分。下面对各个部分的功能做一个简单的介绍。
(1)通信主站:完成信息的转发,它是连接系统监控部分和车载从站的纽带,它将从系统监控部分来的信息转发给车载从站。并且接收车载从站的信息,并将信息上传给系统监控部分。
(2)车载从站:被监控的对象,接收监控调度命令,并可以返回自己的状态信息。状态信息的取得是依靠在车载从站中的GPS接收机来完成车辆位置和速度信息等的采集工作。
(3)通信链路:完成通信主站和车载从站的信息传递及通信主站和系统监控部分的信息交互。其中前者在本次设计中是以GSM手机模块做为通信的工具,而后者是采用RS232或USB来实现的。
(4)系统监控部分:以图形的方式将被监控车辆的位置信息显示在电子地图上(GIS,地理信息系统的采用),并且可以显示其状态等文字信息。并且可以通过系统监控部分的人机界面来完成调度命令等信息的输入。由于在很多的论文中包含了这些车辆监控系统的基本组成元素,所以在这里就简单的介绍一下。相关内容可以参考有关的论文资料。下面重点讨论UC/OS-II的内核调度机理、操作系统的移植、基于状态机的嵌入式系统程序开发和硬件设计方面的问题。图一给初一个车辆监控系统的示意图。
二、操作系统的内核调度机理:
由于本系统对时性要求不是很强,采用了UC/OS-II这种简单的源码开发的操作系统。由于UC/OS-II是以任务为基础进行调度的。所以系统中所要处理的中间结果或响应外部的输入和输出,都应该在任务中完成。任务的调度是基于优先级的(UC/OS不支持时间片轮转的方法)。在多任务调度开始后,时钟节拍开始工作,时钟节拍产生周期性的中断,时钟节拍提供延时或超时的依据。多任务启动之前应该先进行初始化的工作,包括CPU、TCB(任务控制块)、ECB(事件控制块)和操作系统本身的初始化等。初始化完毕后多任务启动,系统总是运行就绪状态优先级最高的任务。由于任务本身是一个无限的循环,所以任务中必须包含引起任务切换的函数,如OSTimeDly()、OSSemPend()等,执行到这些函数时将引起任务的切换,即任务的调度。任务切换之前应该保护现场。任务之间要进行通信,通信的方式很多,可以采用全局变量、共享存储区等一些常用的方式,但在采用UC/OS-II的系统中任务之间的通信更多采用信号量、消息邮箱等进行。
三、操作系统的移植:
将UC/OS-II这个操作系统移植到三星公司ARM7TDMI S3C44B0X上要注意OSCtxSW()这个任务切换函数,其中任务切换的核心是利用出栈指令将各个任务的工作现场加以恢复。利用中断返回指令改变PC的指针达到任务切换的目的。它实际上是从任务堆栈中恢复处理器所有的寄存器,并且执行中断返回指令。实际的移植是用软件来模拟中断的发生。移植中的关键问题是如何构造任务堆栈及任务切换时的出栈顺序。而任务区堆栈初始化主要是模拟任务被中断后堆栈中的内容。另值得注意的是开关中断的函数OS_ENTERCRITICAL()和OS_EXIT_CRITICAL()这个函数。这两个函数实现了对临界区内容的保护。
四、基于状态机的程序设计:
整个系统的软件设计采用任务加状态机的设计方法,由于系统中采用了UC/OS-II的操作系统,所以系统中所有事件处理都采用任务调度的方式,任务在操作系统得调度下运行。而对于每个任务采用基于状态机的设计方法,引起系统中某个状态发生转移的事件可能是信号量、也可能是其它的事件。下面对状态机的有关内容加以介绍。
状态机可以看成是一个状态和转换的图,描述了应用程序对接收到事件的响应。
状态机的执行:状态机在某个时刻处理某个事件而在处理另外的事件之前必须完成对这个事件的处理并得到结果。
基于状态机的程序执行过程是这样的:在任何时候都存在一个或者多个状态机活动的状态。如果一个状态是活动的,那么离开这个状态的转换可能会激发,引起一个事件的执行,并使得另一个状态或位于初始状态位置的状态激活(下一个状态处于初始状态)。
状态机它是说明状态机的对象在对象自己的生命期中事件的所经历的状态序列以及它们对那些事件的响应。可以这样理解状态机状态机是对象的状态在事件的作用下从一个状态转移到另一个状态。
状态机中的几个基本概念:
1.状态(state):是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。
2.事件(event)是对一个在时间和空间上占有一定位置的有意义的事情的说明。在状态机中一个事件的产生可以引起一次状态转换。
3.转换(transition)是两个状态之间的一种关系,它指明对象在第一个状态中执行的一定的动作,并当特定事件或特定条件满足时进入第二个状态。
在嵌入式系统的程序设计中,应该注意的另一个问题是函数的可重入问题, 可重入函数可以被递归调用,可以同时被两个或多个进程调用,这就要求在编译的时候要为可重入函数提供一个模拟堆栈区。
图二是设计中采用状态机这种设计方法设计的系统程序中LCD显示部份。下面是对图二的解释。
其中菜单1是显示欢迎界面(就是上面提到的状态);菜单2是发送短消息;菜单3是记录发送短消息内容的;菜单4是用来读取接收到的短消息。具体的状态转移过程是这样的,当显示处于欢迎界面的时候,在这个状态下,如向下的按键被按下(这就是一个事件)或发送短消息的键被按下,则系统状态转移到菜单2(发生了一次状态转移,下面和这是类似的,故相应的分析省略了。);在这个状态下,当向下按键被按下或系统要输入发送短消息的内容时候,系统状态从菜单2进入菜单3;在这个状态下,当向下的键盘被按下,系统的状态转移到菜单4;读取短消息结束时,系统状态返回到欢迎界面。实际的系统还有返回按键等,这里只是用这个图简单说明采用状态机的程序设计方法。
整个系统包括四个部分(1)通信主站;(2)车载从站;(3)通信链路。(4)系统监控部分。下面对各个部分的功能做一个简单的介绍。
(1)通信主站:完成信息的转发,它是连接系统监控部分和车载从站的纽带,它将从系统监控部分来的信息转发给车载从站。并且接收车载从站的信息,并将信息上传给系统监控部分。
(2)车载从站:被监控的对象,接收监控调度命令,并可以返回自己的状态信息。状态信息的取得是依靠在车载从站中的GPS接收机来完成车辆位置和速度信息等的采集工作。
(3)通信链路:完成通信主站和车载从站的信息传递及通信主站和系统监控部分的信息交互。其中前者在本次设计中是以GSM手机模块做为通信的工具,而后者是采用RS232或USB来实现的。
(4)系统监控部分:以图形的方式将被监控车辆的位置信息显示在电子地图上(GIS,地理信息系统的采用),并且可以显示其状态等文字信息。并且可以通过系统监控部分的人机界面来完成调度命令等信息的输入。由于在很多的论文中包含了这些车辆监控系统的基本组成元素,所以在这里就简单的介绍一下。相关内容可以参考有关的论文资料。下面重点讨论UC/OS-II的内核调度机理、操作系统的移植、基于状态机的嵌入式系统程序开发和硬件设计方面的问题。图一给初一个车辆监控系统的示意图。
二、操作系统的内核调度机理:
由于本系统对时性要求不是很强,采用了UC/OS-II这种简单的源码开发的操作系统。由于UC/OS-II是以任务为基础进行调度的。所以系统中所要处理的中间结果或响应外部的输入和输出,都应该在任务中完成。任务的调度是基于优先级的(UC/OS不支持时间片轮转的方法)。在多任务调度开始后,时钟节拍开始工作,时钟节拍产生周期性的中断,时钟节拍提供延时或超时的依据。多任务启动之前应该先进行初始化的工作,包括CPU、TCB(任务控制块)、ECB(事件控制块)和操作系统本身的初始化等。初始化完毕后多任务启动,系统总是运行就绪状态优先级最高的任务。由于任务本身是一个无限的循环,所以任务中必须包含引起任务切换的函数,如OSTimeDly()、OSSemPend()等,执行到这些函数时将引起任务的切换,即任务的调度。任务切换之前应该保护现场。任务之间要进行通信,通信的方式很多,可以采用全局变量、共享存储区等一些常用的方式,但在采用UC/OS-II的系统中任务之间的通信更多采用信号量、消息邮箱等进行。
三、操作系统的移植:
将UC/OS-II这个操作系统移植到三星公司ARM7TDMI S3C44B0X上要注意OSCtxSW()这个任务切换函数,其中任务切换的核心是利用出栈指令将各个任务的工作现场加以恢复。利用中断返回指令改变PC的指针达到任务切换的目的。它实际上是从任务堆栈中恢复处理器所有的寄存器,并且执行中断返回指令。实际的移植是用软件来模拟中断的发生。移植中的关键问题是如何构造任务堆栈及任务切换时的出栈顺序。而任务区堆栈初始化主要是模拟任务被中断后堆栈中的内容。另值得注意的是开关中断的函数OS_ENTERCRITICAL()和OS_EXIT_CRITICAL()这个函数。这两个函数实现了对临界区内容的保护。
四、基于状态机的程序设计:
整个系统的软件设计采用任务加状态机的设计方法,由于系统中采用了UC/OS-II的操作系统,所以系统中所有事件处理都采用任务调度的方式,任务在操作系统得调度下运行。而对于每个任务采用基于状态机的设计方法,引起系统中某个状态发生转移的事件可能是信号量、也可能是其它的事件。下面对状态机的有关内容加以介绍。
状态机可以看成是一个状态和转换的图,描述了应用程序对接收到事件的响应。
状态机的执行:状态机在某个时刻处理某个事件而在处理另外的事件之前必须完成对这个事件的处理并得到结果。
基于状态机的程序执行过程是这样的:在任何时候都存在一个或者多个状态机活动的状态。如果一个状态是活动的,那么离开这个状态的转换可能会激发,引起一个事件的执行,并使得另一个状态或位于初始状态位置的状态激活(下一个状态处于初始状态)。
状态机它是说明状态机的对象在对象自己的生命期中事件的所经历的状态序列以及它们对那些事件的响应。可以这样理解状态机状态机是对象的状态在事件的作用下从一个状态转移到另一个状态。
状态机中的几个基本概念:
1.状态(state):是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。
2.事件(event)是对一个在时间和空间上占有一定位置的有意义的事情的说明。在状态机中一个事件的产生可以引起一次状态转换。
3.转换(transition)是两个状态之间的一种关系,它指明对象在第一个状态中执行的一定的动作,并当特定事件或特定条件满足时进入第二个状态。
在嵌入式系统的程序设计中,应该注意的另一个问题是函数的可重入问题, 可重入函数可以被递归调用,可以同时被两个或多个进程调用,这就要求在编译的时候要为可重入函数提供一个模拟堆栈区。
图二是设计中采用状态机这种设计方法设计的系统程序中LCD显示部份。下面是对图二的解释。
其中菜单1是显示欢迎界面(就是上面提到的状态);菜单2是发送短消息;菜单3是记录发送短消息内容的;菜单4是用来读取接收到的短消息。具体的状态转移过程是这样的,当显示处于欢迎界面的时候,在这个状态下,如向下的按键被按下(这就是一个事件)或发送短消息的键被按下,则系统状态转移到菜单2(发生了一次状态转移,下面和这是类似的,故相应的分析省略了。);在这个状态下,当向下按键被按下或系统要输入发送短消息的内容时候,系统状态从菜单2进入菜单3;在这个状态下,当向下的键盘被按下,系统的状态转移到菜单4;读取短消息结束时,系统状态返回到欢迎界面。实际的系统还有返回按键等,这里只是用这个图简单说明采用状态机的程序设计方法。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- ARM7嵌入式系统于车辆调度中的设计
- 嵌入式开发教程之基于ARM7的LCD设计与实现
- 嵌入式实时操作系统FreeRTOS在ARM7上移植实现
- 基于ARM嵌入式系统的Socket通信设计 25次下载
- 基于ARM7与uClinux嵌入式智能终端系统_艾红 0次下载
- ARM7在嵌入式应用中启动 11次下载
- ARM7嵌入式系统的中断设计与中断处理优化 198次下载
- 32位ARM7嵌入式硬件平台简介
- ARM7在嵌入式应用中启动程序的实现
- ARM7内核上的uCOS II嵌入式系统移植
- ARM7嵌入式系统在车辆调度中的应用
- ARM7嵌入式系统在车辆调度中的应用
- ARM7系统中实现CF卡存储的文件系统设计
- 基于ARM7的嵌入式系统上开发USB接口的详细资料
- ARM7系统中实现CF卡存储的文件系统设计
- 基于时间触发多任务调度器的嵌入式系统设计与应用 1958次阅读
- 该如何正确选择嵌入式操作系统 2707次阅读
- 关于嵌入式技术的一些基础知识 3145次阅读
- 嵌入式系统在车用电子的发展与应用详解 6695次阅读
- 基于ARM嵌入式系统的数字音频播放系统设计 4052次阅读
- 关于嵌入式系统8大关键特性详解 1059次阅读
- ARM嵌入式系统硬件设计及应用实例详解 1w次阅读
- 嵌入式开发工具有哪些_五款嵌入式开发工具推荐 4w次阅读
- 想学嵌入式开发必须要学哪些知识点 3w次阅读
- 一文看懂嵌入式开发与c++开发有什么不同 2.3w次阅读
- 基于μC/OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案 1993次阅读
- 概述及汇总ARM的嵌入式操作系统 2951次阅读
- 成为ARM嵌入式系统硬件高手的要素 1546次阅读
- 基于ARM7系列芯片嵌入式平台上实现的设计方案 2362次阅读
- 基于32位低端嵌入式系统的图像采集模块 1411次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多