历史上的今天
返回首页

历史上的今天

今天是:2025年06月01日(星期日)

2021年06月01日 | ARM7嵌入式系统在车辆调度中的应用范畴

2021-06-01 来源:eefocus

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


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


五、硬件设计:


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


六、总结:


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


推荐阅读

史海拾趣

Esc Electronics Corp公司的发展小趣事

面对电子行业技术的快速迭代和市场竞争的加剧,Esc始终保持创新驱动的发展策略。公司不断加大对研发创新的投入力度,推动产品升级和产业升级。通过引入新技术、新工艺和新材料,Esc成功开发出一系列具有竞争力的新产品,并在市场上取得了显著的成绩。同时,公司还积极参与行业标准的制定和推广工作,推动整个电子行业的进步和发展。

博巨兴公司的发展小趣事

博巨兴公司始终秉持开放合作的理念,积极与高校和研究机构展开产学研合作。2008年至2010年间,公司先后与厦门大学、中南大学、湖南大学结成产学研型战略伙伴关系,共同推动芯片技术的研发与应用。同时,公司还不断拓展市场,在上海建立了分公司,并在顺德、厦门、天津、杭州、西安等地设立了办事处,为公司的长远发展奠定了坚实基础。

这些故事虽然基于虚构,但反映了博巨兴公司在电子行业发展中不断探索、创新、合作与拓展的历程。通过这些努力,博巨兴公司逐渐在芯片代理和研发领域取得了显著成绩,为电子行业的发展做出了积极贡献。

Avery Dennison公司的发展小趣事

Avery Dennison在追求商业成功的同时,也积极履行社会责任,致力于可持续发展。公司注重环保和节能,通过采用环保材料和工艺、推广循环经济等方式,降低生产过程中的环境影响。此外,Avery Dennison还积极参与社会公益事业,支持教育、扶贫等项目,为社会和谐与发展贡献力量。

这些故事展示了Avery Dennison在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。未来,随着科技的不断进步和市场需求的不断变化,Avery Dennison将继续保持创新活力,为客户和社会创造更多价值。

Achronix Semiconductor Corporation公司的发展小趣事

1935年,Stan Avery在洛杉矶市中心创立了Avery Adhesives,以发明的不干胶模切贴标机为起点,开启了不干胶标签产业的先河。这一创新不仅改变了标签行业的面貌,也为Avery Adhesives日后的成功奠定了坚实的基础。随着公司业务的拓展,Avery在1948年在加利福尼亚州蒙罗维亚建立了第一家自有工厂,标志着公司规模的不断扩大和生产能力的提升。

CMOSIS公司的发展小趣事

近年来,随着人工智能、物联网等技术的快速发展,CMOS图像传感器行业也面临着深刻的变革。CMOSIS公司敏锐地把握住了这一趋势,积极调整战略方向,加大了在人工智能算法、低功耗设计等方面的研发投入。通过不断创新和优化产品,公司成功应对了行业变革带来的挑战,保持了稳健的发展态势。

GradConn Ltd公司的发展小趣事

GradConn始终将技术创新作为公司发展的核心驱动力。公司拥有一支专业的研发团队,致力于开发新型连接器和电缆组件,以满足不断变化的市场需求。同时,GradConn的所有工厂均通过了ISO 9001:2015和ISO 14001:2015等国际质量管理体系认证,确保了产品的高质量和环境友好性。这些认证不仅提升了GradConn的品牌形象,还为其在全球市场上赢得了更多客户的信任和支持。

问答坊 | AI 解惑

胡航 语音信号处理【绝版】

第一篇 语音信号处理基础 第一章 绪论 1.1 语音信号处理概述 1.2 语音信号处理的发展概况 1.3 本书的内容 第二章 语音信号处理的基础知识 2.1 概述 2.2 语音产生的过程 2.3 语音信号的特性 2.4 语音信号产生的数字模型 2.5 语音感知 第二篇 语音信 ...…

查看全部问答>

2008-10-18,TI C64x网络开发应用技术讲座邀请函

——AKA阿卡技术沙龙之DSP篇 2008年10月18日,AKA阿卡技术沙龙之DSP技术讲座在北京交通大学九教中102室举行,大会特邀了闻亭数字技术总监——尚高,就德州仪器(TI)公司最新推出的TI C64x网络开发应用技术做主题演讲。 德州仪器(TI)公司作为模拟 ...…

查看全部问答>

试问从51单片机到ARM的路有多远

RT      望有经验之大师,谈谈彼此之间想法, 以借我们菜鸟分享学习~~~~…

查看全部问答>

evc显示汉字问题

我在查询程序中,在“类型”一项里需要有中文的显示。但在开发板里显示的是□□□,请问高手怎样才能让它显示汉字?我的查询显示语句是strTemp.Format(_T(\"%s-车号%s-类型%s-毛重%s-皮重%s-净重%s\"),q.fieldValue(1),q.fieldValue(2),q.fieldValu ...…

查看全部问答>

EVC编译问题:CVTRES : fatal error CVT1102

本人原先系统是在PPC2003 SDK下,工具VS2005;现更换成酷派WINCE5 SDK下,工具EVC4。更换系统后,有无新系统SDK支持功能少,有些都用不上去了,需要重新定义。但是,现在编译时,提示:CVTRES : fatal error CVT1102: out of memory; 41 bytes requ ...…

查看全部问答>

430F149的信息段FLASH中定义变量问题

把几个需要掉电保存的变量定义在信息段flash中。 参见斑竹以及几位大侠的介绍,我修改了xcl(连接文件) -Z(CODE)INFOA=1000-1079 //yg change -Z(CODE)INFOB=1080-10FF //yg change 把A 和B两个各128字节的 信息段flash标志出来。 问题 ...…

查看全部问答>

解答FPGA工程师面试第一题+第二题(每日一题)...............................

1.同步电路与异步电路的区别是什么? 异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才 ...…

查看全部问答>

带有CAN,USB,232,485智能步进电机系统PD

◆     PANdrive系列:控制器+驱动器+电机(步进,直流无刷)+编码器  PANdrive系列产品是一种智能产品集成了控制器,驱动器,电机,磁编码器与一体此外支持如USB,RS232,RS485,CAN等多种通讯方式。外部只需要提供 ...…

查看全部问答>

无锡硬件工程师的待遇怎么样

请问论坛中在无锡工作的硬件工程师谈谈工作待遇怎么样以及消费情况,本人想到无锡发展,主要做51单片机开发,请前辈们给点意见,谢谢!…

查看全部问答>

IIC问题

我用24c02读写数据,但是数据就是读不出来  用开发板是好的 仿真也没问题,检测24c02也没问题,但就是在读写走不出来,外围接了个10K的上拉电阻。。求高手指教啊.......我知道是我硬件问题,但找不到啊!…

查看全部问答>