一种基于LPC2119和μC/OS-Ⅱ的斜井防跑车装置控制器
eeskill 2021-10-21

1 引言

煤炭作为我国的基础能源,占到国内能源消费的近四分之三,在我国经济与社会发展中起着重要的作用。煤炭生产安全事关国计民生,安徽省1966~2003年煤矿事故中,运输事故死亡750人,占17%。运输是煤矿生产的重要环节,从运输巷道的布置情况来分,有立井、斜井、平巷3种运输形式。在斜井运输中,由于超载、失修、误操作等原因,发生提升车辆断绳、脱钩现象,使运行的车辆沿斜井轨道向下的加速运动,即所谓的斜井跑车。煤矿安全规程规定:在斜井串车提升井巷中,必须安设能够将运行中断绳、脱钩的车辆阻止住的跑车防护装置。

斜井提升跑车防护装置一般有传感器、控制器、执行机构和挡车器等几部分组成。其中正确灵敏地拾取跑车信号并发出控制指令是跑车防护装置发挥作用的关键;现有的斜井跑车防护装置中有机械联锁原理的、PLC作为控制器的,电子电路作为控制器的,存在着寿命短、维修量大、算法不灵活、抗干扰能力差等缺陷。本设计提出了一种基于32位ARM 7微处理器LPC2119和实时操作系统μC/OS-Ⅱ的斜井防跑车装置控制器实现方法。

2 系统硬件设计

2.1 装置组成

该防护装置是一种常闭型装置,由控制器、执行结构、挡车装置和测速与到位传感器构成。如图1所示。

传感器A,B完成矿车速度测定及方向识别,传感器C完成机车下行时发出放下挡车装置信号或机车上行时发出提起挡车装置信号,传感器E,F分别用于检测挡车装置提升和下放到位信号。

当矿车以正常速度行车时,挡车装置自动开启让矿车通过,然后自动关闭挡车装置。当发生跑车或脱车等情况,由于速度异常挡车装置闭合,将矿车挡住。

2.2 控制器设计

控制器通过传感器A,B获得机车速度,通过传感器C获得机车运行位置,并实时提升或放下挡车装置,通过传感器E,F获得挡车装置位置信号。同时通过键盘设定防护速度,一般情况运行速度不大于4 m/s。本控制器以LPC2119为核心,由最小系统、输入通道和输出通道等构成,其硬件结构图如图2所示。

(1)最小工作系统:最小工作系统以Philips公司的LPC2000系列ARM 7微控制器LPC2119为核心,采用11.059 2 MHz晶振,并利用MAX708SD组成复位电路,它包含一个看门狗定时器、一个微处理器复位模块、一个供电失败比较器及一个手动复位输入模块。系统电源采用78M05,LM1117-3.3,LM1117-1.8三种电路产生所需的工作电压。

(2)输出通道设计:本系统输出通道输出的信号为编码信号,符合MC145026编码规范,用于对执行机构的控制,为了隔离被控对象对系统的干扰,采用光耦4N33进行隔离。输出通道如图3所示。

(3)输入通道设计:输入通道主要传输传感器信号,采用TLP521-4光电器件进行隔离,同时采用三极管限流防止外部接线短路。输入通道如图4所示。

3控制器软件设计

控制器采用μC/OS-Ⅱ操作系统作为应用软件的平台,可以避免传统的前后台程序设计时伴随系统功能增加而造成程序编写量呈指数增加以及资源调度不当发生的死锁现象,同时也提高了系统的实时性和可靠性。

3.1μC/OS-Ⅱ的移植

μC/OS-Ⅱ是一个源码开放的嵌入式多任务实时操作系统内核。其核心代码结构简洁精练,具有足够的稳定性和安全性。μC/OS-Ⅱ的移植对处理器有一定的要求,比如必须具有响应中断的能力,并同时具有开关中断的指令,处理器必须可支持一定数量的硬件堆栈,并且应该有对堆栈指令进行读/写操作的指令等。同时在移植时编译器应该具有产生可重入代码的能力。本设计所选用的处理器LPC2119以及开发工具ADS1.2能满足移植要求。μC/OS-Ⅱ的文件系统结构包括核心代码部分、配置代码部分、处理器相关代码部分。其中处理器相关代码部分是移植时需要修改的部分,它包括OS CPU.H,OS CPU C.C,OS CPU A.S三个文件,OC CPU.H包括数据类型定义、堆栈单位定义、堆栈增长方向定义、关中断和开中断宏定义等。OSCPU C.C它包含6个函数,其中,OSInetEnter()是任务堆栈初始化函数是必须的,其他5个函数都是钩子函数可以为空。OS_CPU_A.S这部分需要对处理器和寄存器进行操作,用汇编语言编写,包括四个函数:

OSStartHighRdy()函数被OSStart()调用,使就绪的最高优先级任务运行;OSCtwSw()在任务级切换函数中调用,保存任务环境变量、将当前SP存入TCB中、载入就绪最高优先级任务的SP、中断返回等、OSIntCtxSw()在退出中断服务函数OSIntExit()中调用,实现中断级任务的切换。OSTickISR()是系统时钟节拍中断服务函数,它为内核提供时钟节拍,频率越高系统负荷越重;使用硬件定时器作为时钟中断源,定时中断频率一般为10~100 Hz。

3.2 用户任务设计

在嵌入式系统中,合理的划分任务及优先级,不但能简化软件设计的复杂性、任务调度的正确性,而且还能增强系统的稳定性、健壮性以及实时性。

本系统软件主要功能有:

(1)矿车运行速度计算;

(2)矿车运行方向的识别;

(3)执行机构控制;

(4)挡车装置到位检测;

(5)矿车下行和上行时挡车装置关闭或打开。

基于μC/OS-Ⅱ实时操作系统,根据自动信号系统的功能要求,划分了,任务以及优先级,任务优先级取偶数,为以后系统升级留下空间。如表1所示

TaskStart()是μC/OS-Ⅱ初始化后运行的第一个任务,由它来创建自动信号系统的其他任务,该任务执行一次后删除,自身不再执行。Task_Control()任务对执行机构进行控制。Task_Speed_Check()对矿车速度进行计算,依据图1中A,B传感器的工作状况有两种速度计算方法,当A,B完好时,v=L/t,其中L为A,B二者之间的距离,当A,B有1台损坏时,v=l/t,其中L为矿车轮距;Task_Position_Check()完成挡车装置到位检测并即时发送信息给Task_Control()关断电机电源;Task_Up-down_Check()检测机车上行、下行位置,并即时发送信息给Task_Control()开启或关闭挡车装置;Task_Clock()系统实时时钟驱动Task_Up_down_Check(),Task_Position_Check()任务,各任务关系如图5所示。

在起始任务中,建立邮箱、信号量以及各个任务;邮箱及信号量如下:

软件流程框图如图6所示。

4 结 语

(1)ARM系列微处理器LPC2119及实时操作系统μC/OS-Ⅱ应用于应用于斜井防跑车控制器设计中,增加了系统的可靠性实时性以及灵活性;

(2)基于LPC2119和μC/OS-Ⅱ的斜井防跑车控制装置控制器各项功能已初步得到验证。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • ARM Cortex系列处理器知识点汇总

    最近因为要为芯片选定核,所以就在了解哪些核合适且性价比好,这是一个需要结合产品各类技术、市场分析的活,看似简单却还是需要一些储备的,今天选了一篇ARM Cortex系列的科普文章与大家分享。 众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。AR

    05-11
  • 你的CPU属于哈佛结构还是冯诺依曼结构?

    现代的CPU基本上归为冯诺伊曼结构(也称普林斯顿结构)和哈佛结构。 冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务器/工作站等),一个雄踞移动领域,我们的手持设备(平板\手机用的大多就是他了)。 01

    05-10
  • 如何批量修改MCU封装管脚定义

    在做产品开发时,为了缩短研发周期,我们一般都是直接找来参考设计做参考。这些参考资料要么是来自原厂的,要么是来自方案商的。  接触过这么多的参考设计资料,发现大部分的资料都有一个通病,就是不少MCU的PIN脚定义都只是标出IO口的定义,其它复用​​​​功能

    05-08
  • MCU为什么要消抖动

    简单的说,进入了电子,不管是学纯模拟,还是学单片机,DSP、ARM等处理器,或者是我们的FPGA,一般没有不用到按键的地方。按键:人机交互控制,主要用于对系统的控制,信号的释放等。因此在这里,FPGA上应用的按键消抖动,也不得不讲! 一、为什么要消抖动 在

    05-07
  • 51单片机的ISP下载知识

    本文详细介绍了串口、51单片机的ISP下载等基础知识,已经学过单片机的也可以看看,加强一下对这方面的了解。 串口 串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。 我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就

    05-06
  • 硬件开发如何选择合适的MCU

    点击上方关注我们! 我在做硬件开发时,如果遇到的是一个新产品,新项目,之前没有做过的,没有任何的经验,在选MCU时,我一般是这样操作的。 首先,根据产品的需求,整理出一份硬件规格。比如,电源管理,传感器接口,人机交互接口等。 然后,整理出整个原理

    05-06
  • 单片机的功耗怎么算的?

    单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。暂且把单片机的功耗按照下面的划分。 暂且把单片机的功耗按照下面的划分。 1.内部功耗(与频率有关) 2.数字输入输出口功耗 2.1输入口 2.2输出高 2.3输出低 3.模拟输入口功耗从

    05-07
  • 嵌入式工程师必备工具:I2C和SPI总线协议

    IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求

    04-30
  • 嵌入式面试注意事项

    找工作也是一门技能,有的人很快就找到自己喜欢的工作,有的人找了很久也没找到合适的工作。 下面给大家分享几点找工作过程中存在的“潜规则”内容。 1、面试的本质不是考试,而是告诉面试官你会做什么 经验不够的小伙伴特别容易犯的一个错误,不清楚面试官到

    04-29
  • 为什么需要RTOS?

    很多单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品,但作为一个嵌入式软件工程师,如果只能用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能

    04-28
  • 使用RTOS的8个理由

    嵌入式系统中,有很多方式实现任务调度。功能有限的小系统中,无限循环足够实现系统功能。当软件设计变得庞大且复杂时,设计师应该考虑使用实时操作系统。 下面给大家分享使用RTOS的8个理由: 1.硬实时响应 基于优先级抢占的RTOS,根据任务的实时需求,执行优

    04-26
  • 单片机延时程序,Keil C编译器实现

    应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而

    04-26
下载排行榜
更多
广告
X
广告