59基于ARM内核的智能小车 - 图文

2026/4/29 18:16:01

光耦合器件联系。光耦合器件,简称光耦,是将光电晶体管和发光二极管封装在同一装 置内而制成的器件。当电流流过发光二极管时,发光二极管发射的光照射到光电晶体管 引起晶体管导通,从而达到光耦两端的电路既隔离又有联系的目的。因为是通过光实现 耦合,所以光耦两端是高度绝缘的。本系统采用光耦TLP521-4进行光电隔离,LPC2368 的PWM2、PWM3为信号输入端,接口电路如图4.13。 电机驱动电路: 由于LPC2368的PWM端口资源有限,所以先选用PWM2、PWM3先经过逻辑组合电路如图4.14得到PWM2与IPWM2一对相反的PWM信号,PWM3与IPWM3一对相反的PWM信号,这样就可以满足使用L298N实现双极性可逆PWM。其中用LPC2368的PO.17和P0.18进行选择是否开通双极性可逆PWM模式。 本系统使用L298N控制智能小车的左右轮电机,控制电机转动,驱动电路如图4.1 5所示。光耦隔离出来的四路信号分别与L298N的四个输入端口Inl、In2、In3、In4相连接;P1.21和P1.22分别和EnA和EnB相连,作为电机的控制使能端,其中SA和SB通过1欧姆的电阻接地,作为电流反馈引脚,以便实现系统的电流闭环控制;L298N的四个输出管脚Outl、Out2、Out3、Out4分别和左右轮驱动直流电机的两端相连,连接其中短路块JP3和JP4可以用来实现带动一个容量为额定值两倍的电机。 28

LPC2368输出PWM波来控制L298N的输出。L298N的逻辑功能如表4.1所列。 4.为达到小车控制的实时性要求,采用嵌入式软件系统设计。 智能小车系统的软件采用了基于心OS.II嵌入式实时操作系统的软件设计方法。有了这个操作系统的支持,所有的用户任务可以并列运行,所以程序的编写更简易。系统共有6个任务需要建立,包括:菜单设置任务、显示任务、键盘扫描任务、测量任务、控制算法任务、电机驱动任务。 OS.II嵌入式实时操作系统 COS.II是一种抢占式内核的实时操作系统。所谓实时操作系统(RTOS),是一段在嵌入式启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源管理,消息管理,任务调度及异常处理等工作。抢占式内核是指正在运行的任务使一个更高优先级的任务处于就绪状态,那么这个任务就要让出CPU控制权。如果中断服务子程序使一个高优先级的任务就绪,那么中断完成时,中断的任务被挂起,优先级高的那个任务开始运行。显然,抢占式内核 29

的操作系统实时性更好。对于一个实时操作系统来说,一共有两个最基本的功能:任务切换和任务之间的通信。因为任务切换的过程需要对CPU的寄存器进行操作,所以必须用汇编语言完成,而每种CPU内核的内部结构又不尽相同,所以与任务切换的3个文件是需要移植的。任务之间的通信有三种方式:信号量、邮箱和队列。 由于COS.II仅是一个实时内核,把它移植到目标硬件平台上只是系统设计工作的开始,还需要针对实际的应用需求对其进行扩展,在OS.II的基础上扩展成使用的操作系统。 此外,COS.II的使用使得实时应用程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务,使得应用程序的设计过程大为简化。 下面我们首先对OS.II内核核心部分进行分析,然后介绍COS.II操作系统任务间的通信方式,最后对ttCOS.II在ARM7上的移植进行分析。 任务调度: 一个任务,也被称为一个线程,是一个简单的程序,该程序可以认为CPU完全只 属于该程序自己[58j。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。每个任务都是一个无限的循环,都可能处于休眠态、就绪态、运行态、挂起态及被中断态5种状态之一。休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。 就绪意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。运行态的任务是指该任务掌握了CPU的控制权,正在运行中。挂起状态也可以叫做等待事件态,指该任务在等待,等待某一事件的发生,(例如等待某外设的I/o操作,等待某共享资源由暂不能使用变成能使用状态,等待定时脉冲的到来或等待超时信号的到来以结束目前的等待,等等)。最后,发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被中断状态。图5.1表示/oS.II中一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。 30

在这里值得分析的是寻找最高优先级的部分。它的算法是基于一个就绪表,每个任 务的就绪态标志都放在就绪表中,如图5.2。 表中有两个变量,OSRdyGrp和OSRdyTbl[]。在OSRdyGrp中,任务按优先级分组,8个任务为一组。OSRdyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表OSRdyTbl[]@的相应元素的相应位也置位。就绪表OSRdyTbl[]数组的大小取决 31


59基于ARM内核的智能小车 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 59基于ARM内核的智能小车 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219