ARM7嵌入式系统在车辆调度中的应用

发布者:CrystalBreeze最新更新时间:2012-08-05 来源: 21ic 关键字:ARM7  车辆调度  UCOS-II 手机看文章 扫描二维码
随时随地手机看文章

一、车辆调度系统的整体设计:

整个系统包括四个部分(1)通信主站;(2)车载从站;(3)通信链路。(4)系统监控部分。下面对各个部分的功能做一个简单的介绍。

(1)通信主站:完成信息的转发,它是连接系统监控部分和车载从站的纽带,它将从系统监控部分来的信息转发给车载从站。并且接收车载从站的信息,并将信息上传给系统监控部分。

(2)车载从站:被监控的对象,接收监控调度命令,并可以返回自己的状态信息。状态信息的取得是依靠在车载从站中的GPS接收机来完成车辆位置和速度信息等的采集工作。

(3)通信链路:完成通信主站和车载从站的信息传递及通信主站和系统监控部分的信息交互。其中前者在本次设计中是以GSM手机模块做为通信的工具,而后者是采用RS232或USB来实现的。

(4)系统监控部分:以图形的方式将被监控车辆的位置信息显示在电子地图上(GIS,地理信息系统的采用),并且可以显示其状态等文字信息。并且可以通过系统监控部分的人机界面来完成调度命令等信息的输入。由于在很多的论文中包含了这些车辆监控系统的基本组成元素,所以在这里就简单的介绍一下。相关内容可以参考有关的论文资料。下面重点讨论UC/OS-II的内核调度机理、操作系统的移植、基于状态机的嵌入式系统程序开发和硬件设计方面的问题。图一给初一个车辆监控系统的示意图。

11.jpg

二、操作系统的内核调度机理:

由于本系统对时性要求不是很强,采用了UC/OS-II这种简单的源码开发的操作系统。由于UC/OS-II是以任务为基础进行调度的。所以系统中所要处理的中间结果或响应外部的输入和输出,都应该在任务中完成。任务的调度是基于优先级的(UC/OS不支持时间片轮转的方法)。在多任务调度开始后,时钟节拍开始工作,时钟节拍产生周期性的中断,时钟节拍提供延时或超时的依据。多任务启动之前应该先进行初始化的工作,包括CPU、TCB(任务控制块)、ECB(事件控制块)和操作系统本身的初始化等。初始化完毕后多任务启动,系统总是运行就绪状态优先级最高的任务。由于任务本身是一个无限的循环,所以任务中必须包含引起任务切换的函数,如OSTimeDly()、OSSemPend()等,执行到这些函数时将引起任务的切换,即任务的调度。任务切换之前应该保护现场。任务之间要进行通信,通信的方式很多,可以采用全局变量、共享存储区等一些常用的方式,但在采用UC/OS-II的系统中任务之间的通信更多采用信号量、消息邮箱等进行。[page]

三、操作系统的移植:

将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;读取短消息结束时,系统状态返回到欢迎界面。实际的系统还有返回按键等,这里只是用这个图简单说明采用状态机的程序设计方法。

五、硬件设计:

为了从分利用S3C44B0X的时钟频率高的特点,减小S3C44B0X在取指和存取数据的延迟,系统中采用将代码固化在FLASH中,并在系统启动后将代码从FLASH拷贝到SDRAM中运行。并且系统中采用PDIUSBD12做为通信主站和PC上的系统监控部分之间通信。比起RS232串行通信方式,速度有很大的液提高。尤其在调度的车辆数量比较多的时候其速度优势是比较明显的。

22.jpg

六、总结:

经过系统的运行,系统达到了设计的要求。

关键字:ARM7  车辆调度  UCOS-II 引用地址:ARM7嵌入式系统在车辆调度中的应用

上一篇:基于低功耗STM32F103C8芯片的数字可调共振源的设计
下一篇:基于STM32F103的深海远程电机控制系统设计

推荐阅读最新更新时间:2024-03-16 13:04

ucos-ii学习笔记——首个多任务程序的创建
#include INCLUDES.h #define TASK_STK_SIZE 512 //定义两个任务的任务堆栈,每一个任务有一个任务堆栈 OS_STK MyTaskStk ; OS_STK YouTaskStk ; INT8U x=0,y=0; //字符显示位置 //声明两个任务函数 void MyTask(void *data); void YouTask(void *data); void main (void) { char *s_
[单片机]
ARM7&ARM9双核平台的技术分析
嵌入式系统教学平台市场上的主导产品都是基于ARM7或ARM9架构的,一般都认为ARM7属于低端产品、ARM9属于高端产品,也出现了所谓的“ARM7&ARM9覆盖高端&低端的教学平台”。宣传“两套 CPU 子板都是可以自由插拔,一套实验系统变化为两套, ARM7 的实验系统可以实现基础的 ARM 嵌入式教学,主要包括指令实验,基础接口实验, UCOS-II 操作系统实验和 uCLinux 操作系统实验; ARM9 的实验系统可以实现高端的 ARM 嵌入式教学,主要包括扩展接口实验, Linux 操作系统实验和 WinCE 操作系统实验。” 这种观点有误导用户的嫌疑。因为ARM9和ARM7同属于ARMv41,是属于中低端系列的ARM
[单片机]
ARM7单片机+RTL8019嵌入式TCP_IP协议栈使用分析
一、 总则 本文件是嵌入式TCP/IP协议栈的说明文件,嵌入式TCP/IP应用开发人员可通过阅读本文件,掌握在嵌入式TCP/IP协议栈的基础上开发服务器和客户端应用程序,如FTP服务器,WEB服务器,串口服务器等等。 二、 参考文件 1) TCP_IP详解卷1,2,3 2) RFC 959 (rfc959) - File Transfer Protocol.htm 3) rfc1945- Hypertext Transfer Protocol -- HTTP/1.0 三、 技术说明 1) 用户应用协议栈则需要编写以太网的数据报收发驱动,就可以使用协议栈提供的标准SOCKET API,完成服务器和客户端应用程序的开发。 2) 协议栈运
[单片机]
高性能单电源 ARM7 微控制器介绍
LPC2138 是一款高性能单电源 ARM7 微控制器,它具有多种断电模式,用于在微控制器等待执行任务时节省电量。在掉电模式下,LPC2138 在室温下从 3.3 V 电源消耗大约 60 µA,并在掉电启用时消耗大约 30 µA,在掉电禁用时消耗大约 30 µA。考虑到该部件是使用深亚微米工艺构建的,这是相对较好的。然而,在高温下,漏电流显着增加。 本应用笔记的目的是描述使用 LPC2138 时在整个温度范围内具有极低漏电流的低成本方法。这种方法需要一些外部元件,但它可以显着降低漏电流。 本应用笔记将讨论两种恢复微控制器断电前状态的方法。一种方法使用廉价的外部 EEPROM,另一种方法使用可保留用于 EEPROM 仿真的内
[单片机]
高性能单电源 <font color='red'>ARM7</font> 微控制器介绍
基于ARM7的畜牧养殖智能消毒机器人控制系统设计
1 总体方案设计 畜牧养殖智能消毒机器人控制系统由机器人智能控制模块、监视模块、及无线网络通讯模块等三大部分组成。工作过程是通过接入互联网的手机或者微型计算机客户端通过无线网络向远程的机器人发送控制指令代码,期间传输信号由发送端使用加密狗加密。当信号经互联网发送到接收终端时,智能消毒机器人网络模块把接收的指令传送到处理器,处理器指示驱动模块驱动智能消毒机器人执行动作。运动的同时监视模块把采集到的图像通过无线互联网传输到客户机端,其整体结构如图1所示。 1.1 智能控制模块 此模块是智能消毒机器人的核心部分。采用的是嵌入式系统设计,可以准确高效地运行及处理数据。控制器通过网络组件WIFI或者GPRS与外部网络进行数据通讯,
[单片机]
基于<font color='red'>ARM7</font>的畜牧养殖智能消毒机器人控制系统设计
基于ARM7核处理器VxWorks系统BSP设计
摘要:该文主要介绍了SAMSUNG公司的基于ARM7TDMI核S3C4510B微处理器,并详细介绍了利用该处理器所设计的嵌入式系统以及VxWorks操作系统下BSP(Board Supported Package)的开发。 关键词:ARM7TDMI S3C4510B VxWorks BSP 1 介绍 S3C4510B是三星公司推出的针对嵌入式应用的16/32 位嵌入式处理器,该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点, S3C4510B中内置了ARM公司设计的16/32位ARM7TDMI处理器, 可以执行32位的ARM指令,也可执行16位的THUMB指令, 并集成了多种外围部件,主
[嵌入式]
51单片机移植UCOS-II的方法与改进
约定:文中所写的硬件堆栈或系统堆栈是指51单片机SP指针所指向的堆栈空间,而用户堆栈或任务堆栈是指用来保存任务状态为每个任务分配的堆栈空间。 前一段时间一直在学习UCOS-II,看了一个月的源码感觉有了一个初步的认识,就开始着手找一个平台移植起来跑跑看,不然终究是纸上谈兵。先是看了公司的一个产品,用的UC是在ARM平台上移植的,费了好大力气终于把任务切换的过程看明白了。自以为对于UC的移植掌握的差不多了,于是拿出自己先前焊的51最小系统,想在51上面把UC跑起来,可是真正移植的时候却发现难度很大,不知如何下手,没办法只好找网上移植范例来学习。我找到的版本有两个,一个不知道是谁移植的,用的是KEIL小模式编译的;另一个是03年
[单片机]
51单片机移植<font color='red'>UCOS-II</font>的方法与改进
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved