APP下载

基于μC/OS-II的矿用新能源电机车液晶显示系统

2014-05-31岳明臣常龙公栋梁翁峰

应用科技 2014年5期
关键词:电机车液晶显示液晶屏

岳明臣,常龙,公栋梁,翁峰

山东科技大学机械电子工程学院,山东青岛 266590

矿用新能源电机车以锂离子蓄电池为动力源,具有体积小、重量轻、容量大、寿命长、绿色环保、使用安全等优点[1],越来越受到各煤矿企业的重视[2]。但是锂离子蓄电池在使用的过程中各参数异常都会严重影响电池的寿命,进而影响电机车的性能。所以对矿用新能源电机车运行过程中能否全面、实时、准确地监测电池各项参数成为了矿用新能源电机车显示系统的核心技术。随着显示技术的发展,以液晶显示器为代表的平板显示技术迅速崛起[3]。与传统电机车的数码管显示相比,液晶显示具有显示信息量大、功耗低、寿命长、接口方便等优点[4-5],因此,矿用新能源电机车的显示系统在设计中采用了液晶显示技术。

μC/OS-II作为市场上最具代表性的嵌入式实时操作系统,以其源码公开、执行效率高、实时性优等优点,在世界范围内得到广泛的使用[6],并且μC/OS-II已经通过了美国航天管理局的安全认证,可用于飞机、航天器等人命攸关的控制系统中,因此μC/OS-II在对实时性需求比较高的领域中发挥着重要的作用[7]。在矿用新能源电机车液晶显示系统中嵌入μC/OS-II实时操作系统,使该液晶显示系统能够实时、准确地显示电机车运行参数,符合矿用新能源电机车对于参数显示的要求。

1 液晶显示系统硬件方案

1.1 ILI9481驱动芯片原理

本设计液晶屏选用的是由ILI9481液晶控制器驱动的 S8233型闪耀 35系列 3.5寸液晶屏。ILI9481控制器的主要特点在于:支持8、9、16、18位并口数据传输以及串口数据传输;能够进行睡眠模式和正常显示模式间转换;能够设置显示图像的位置和方向,减少软件设计困难;自带345 600 bytes RAM,采用 RGB色彩显示模式,显示色彩高达262K;内部设有DC/DC转换器,只要外接3.3 V电源就能提供LCD显示所需电压。

相比于普通的240×320点阵式3.5寸液晶屏,内置ILI9481控制器的液晶显示屏能够驱动480×320点阵,分辨率提高一倍。背光采用六颗正白高亮LED灯,并且使用增亮银底偏光片,亮度比普通3.2寸液晶屏高50%,功耗仅上升10%,显示更清晰,户外使用更方便。

1.2 液晶显示系统设计

文中以ST公司的基于Cortex-M3内核的STM32F103ZET6为控制器来进行液晶显示系统的设计。该控制器是基于ARM的32位微控制器,其内部的CAN接口兼容规范2.0A和2.0B协议,位速率高达1 MB/s;同时其内部具有灵活的静态存储器控制器——FSMC模块,它的主要作用是将AHB传输信号转换成适当的外部设备协议,同时能够满足访问外部设备的时序要求。

液晶显示器与微控制器的硬件连接如图1所示:RESX是液晶外部复位引脚,用于液晶显示器的复位;CSX是片选输入引脚,用于选中该液晶显示器;D/CX是数据/命令控制引脚,用于控制总线传输的是数据信息还是命令信息;WRX/SCL是写/时钟引脚;RDX是读控制引脚;DB[17∶0]是18条总线,用于传输数据信息或者命令信息。UART接口模块用于与上位机连接进行程序的调试,CAN模块接口用于接收并处理报文信息,处理后将显示在TFT液晶屏上。

图1 液晶显示系统硬件连接

在本设计中,采用STM32控制器自带的FSMC模块与ILI9481控制器进行通信。FSMC数据宽度可以支持到8位、16位和32位,为了与ILI9481的位宽匹配,数据总线采用16位数据模式,数据信号D[15∶0]对应ILI9481控制器的低16位,即LCD液晶屏RGB色彩显示模式采用5∶6∶5分配形式[8](如表1所示)。选用 NE[1]信号、NOE信号和NEW信号分别作为ILI9481控制器的片选信号、读选通信号和写选通信号,ILI9481的命令字和数据分别对应到 STM32地址的 0x60000000和0x60020000。

表1 RGB色彩显示模式5∶6∶5形式分配表

2 系统软件设计

2.1 μC/OS-II系统移植

μC/OS-II的文件结构分为3部分,如图2所示。第1部分为与处理器无关的内核代码,如 OS_CORE.C、OS_TASK.C、OS_TIME.C 等;第 2 部分为与应用程序有关的配置文件,包括INCLUDES.H(内核需要的头文件)、OS_CFG.H(内核配置的头文件);第3部分为与移植有关的代码,包括OS_CPU.H、OS_CPU_A_ASM、OS_CPU_C.C。因此移植 μC/OS-II的关键就是修改与移植有关的这3个文件[9]。

1)OS_CPU.H的基本配置和定义。

a)与编译器相关的数据类型不可移植;

b)修改OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()两个宏定义;

(2)一段还原过程中氢气露点的提高能有效促进还原反应的迁移效果,得到形貌均匀、还原充分的二氧化钼颗粒。

c)通过OS_STK_GROWTH定义栈的增长方式;

d)定义宏OS_TASK_SW()。

图2 μC/OS-II文件结构

2)OS_CPU_A.ASM中移植4个与处理器有关的汇编函数。

a)OSStartHighRdy()被uC/OS-II启动函数OSStart()调用,主要完成运行任务就绪表中优先级最高的任务功能;

b)OSCtxSw()在任务调度函数OS_Sched()被调用,通过SWI或TRAP人为地制造中断来实现任务级的任务切换;

c)OSIntCtxSw()在退出中断服务函数OSIntExit()中被调用,用来实现中断级任务的切换;

d)OSTickISR()是时钟节拍服务函数,为μC/OS-II提供一个周期性的时钟源,用来实现时间的延迟和精确的中断功能。

3)OS_CPU_C.C中修改与操作系统相关的函数。

2.2 μC/OS-II系统的启动

在μC/OS-II运行应用程序前,必须对操作系统进行初始化和启动操作。主要包括:μC/OS-II运行环境的初始化、目标板初始化、任务(CAN模块任务和液晶显示模块任务)的创建和μC/OS-II启动,其流程图如图4所示。

μC/OS-II在启动前必须调用 OSInit()对 μC/OS-II的运行环境进行初始化。OSInit()主要负责建立空闲任务、初始化μC/OS-II中的变量及数据结构,包括信号量、邮箱、消息队列等。在操作系统完成初始化后,需要初始化目标板,包括系统时钟初始化、滴答定时器初始化、CAN控制器初始化、静态存储器控制器(FSMC)初始化、中断初始化等,将STM32系列微控制器独有的滴答定时器设置为μC/OS-II系统的时钟节拍,在滴答定时器中断服务函数中通过调用OSTimeTick()函数来实现任务的切换。目标板初始化完成之后,系统调用OSTaskCreate()函数来对本设计中的CAN模块任务和液晶显示任务进行创建,同时进行了任务优先级的设置。最后,系统调用启动函数OSStart(),选择任务就绪表中优先级最高的任务来启动多任务环境并运行任务。

图4 μC/OS-II系统启动流程

2.3 任务的设计

本矿用新能源电机车液晶显示系统的任务设计主要包括两类,分别是CAN模块任务的设计和液晶显示任务的设计。

CAN模块任务属于事件触发类任务,其任务函数的结构为:

由以上函数结构可知,在获得这个信息之前该任务处于等待状态,CPU将运行权转给就绪表中优先级最高的任务,当另一个任务(或ISR)发出相关信息时,OS就使该任务进入就绪状态,并且通过任务调度,使任务的实体代码获得运行权。在CAN模块任务的设计中,需要等待CAN接收中断事件,才能进行后续任务实体代码的运行,即CAN报文处理函数,此函数将接收到的报文数据解码成数据信息用于液晶屏的显示。由于CAN接收中断服务函数中需要对接收到的报文进行存储,为了减少系统的中断响应时间,CAN中断服务函数将只进行报文数据的缓存而不进行处理,并将返回的缓存地址指针发送给CAN任务模块,因此CAN中断服务函数发送的时间选择消息队列事件,此事件能在发送信号的同时携带数据,其任务流程如图5所示。液晶显示任务主要完成数据信息的刷新和显示界面的切换。数据信息的刷新设置成周期性任务,通过调用OSTimeDly()函数来设置数据的刷新周期;显示界面通过调用OSMboxAccept()函数来判断是否需要进行界面切换,然后调用显示界面函数Display_Interface_Select()对界面进行显示。液晶屏显示任务程序流程如图6所示。

图5 CAN模块任务流程

图6 液晶显示任务流程

3 液晶显示系统实验效果

对上述液晶显示系统进行实验测试,CAN总线波特率为400 Kb/s。单体电池显示界面如图7所示,用于显示各单体电池电压、温度、SOC以及温度传感器状态等信息,并通过灰白颜色交错的信息以区别各相邻单体的数据信息。

图7 单体电池显示界面

在此显示界面中,同时显示8节单体电池组成的模块的各种信息,如模块SOC、模块状态等以便总体掌握整个模块的信息。模块信息显示界面是针对各模块的信息进行显示,包括模块电压、电流、SOC以及模块状态等,显示效果如图8所示。

图8 模块信息显示界面

4 结束语

以矿用新能源电机车液晶显示系统为研究对象,将μC/OS-II移植到该液晶显示系统中,在此基础上编写了液晶显示系统的应用程序。对此系统进行实验,结果显示:当总线的波特率为400 Kb/s时,该液晶显示系统能够准确地完成各界面的显示功能。为使系统更加完善,下一步的工作包括:1)增加触摸屏功能,这样可以更加方便的进行界面的切换;2)系统低功耗处理,如延时背光灯自动关闭,警报时自动唤醒或者可通过按键唤醒等。

[1]ARMAND M,TARASCON J M.Building better batteries[J].Nature,2008,451:652-657.

[2]樊海军,丁学明,徐红平.锂电池组智能管理系统设计及实现[J].电源技术,2011,35(5):510-513.

[3]黄健.液晶屏控制系统的研制[D].西安:西安电子科技大学,2007:2-3.

[4]付先成,邹雪城,雷鑑铭.LCD控制器中央控制单元的设计[J].微电子学与计算机,2006,23(6):1-4.

[5]彭志红,袁野,林韵英,等.国内液晶显示技术的发展概况[J].电视技术,2013,37(S2):425-426.

[6]张小芳,李向华,陆起涌.uC/OS-Ⅱ在仪器仪表中的应用[J].仪器仪表学报,2003,24(4):131-133.

[7]刘明波,孙永灿,耿文建.基于uC/OS-II的嵌入式网络监控系统的设计与实现[J].计算机工程与设计,2010,31(24):5211-5215.

[8]周立功.深入浅出ARM7[M].北京:北京航空航天大学出版社,2008:79-139.

[9]刘红霞,印文达.一种火灾报警系统研究与实现[J].煤炭技术,2010,29(12):95-96.

[10]赵刘强,林永君,马良玉,等.基于uC/OS-II嵌入式系统的数据采集系统[J].微计算机信息,2010,26(2):65-66.

猜你喜欢

电机车液晶显示液晶屏
基于STM32F4的多通道串口驱动TFT液晶屏显示系统设计
FPGA的TFT-LCD真彩液晶屏显示控制
基于机器视觉的液晶屏字符缺陷检测系统设计
122×32 点阵液晶显示汉字原理实验
基于图像处理的电能表液晶屏质量检测方法
基于变频器的电机车定位控制原理及应用
煤矿电机车常见故障分析
矿用电机车的常见故障及处理方法
逞能险些出事故
界面致稳型柔性胆甾相液晶显示器件的制备与性能