APP下载

基于STM32和μC/OS2的工程车辆显示终端设计

2014-03-14

电视技术 2014年9期
关键词:摄像头总线处理器

孙 波

(江苏自动化研究所,江苏连云港222061)

工程车辆显示终端是诸如挖掘机、起重机等工程机械车辆上的核心单元之一,可以通过柱状图、虚拟开关、虚拟仪表盘等可视化界面,实现对车辆水温、油位、转速、开关、电磁阀、通信端口等工作状态的实时显示。近年来,随着我国基础设施建设的深入开展,工程车辆的种类与功能不断丰富,对工程车辆显示终端的性能水平、安全可靠性也提出了更高的要求。常见的车辆显示终端往往采用ARM+Linux的软硬件架构[1-2],性能较强,但价格较高且开发难度大、开发周期长。本文针对工程机械车辆显示终端的安全可靠性、显示实时性等方面的实际需求,提出基于STM32(基于ARM Cortex-M3内核)处理器和μC/OS2操作系统架构的设计思路,以STM32处理器为核心,通过扩展电源管理模块、通信端口适配模块以及显示控制模块等,实现对车辆上所有传感器、通信端口、摄像头视频、设备工作状态等信息实时显示。

1 系统总体结构

工程车辆显示终端的系统总体框图如图1如示,处理器STM32F207为显示终端的核心,通过FSMC(Flexible Static Memory Controller)机制扩展了SRAM和Flash,分别作为处理器运行时的数据缓存与可视化图形元素的存储空间。显示控制芯片采用EPSON公司的S1D13513,并扩展一片专用的SDRAM作为显示缓存。STM32处理器与S1D13513之间通过FSMC机制实现数据通信。摄像头视频输入信号经过ADV7180芯片采样处理后转换为YUV信号并接入S1D13513,由S1D13513负责LCD液晶屏所有显示内容的输出控制。另外,为了适应车辆上电源输入动态范围大、干扰多等特点,电源管理模块利用外部输入的电压,输出多种稳定的工作电平,保证显示终端稳定工作。

图1 显示终端的系统总体框图

2 系统硬件设计

2.1 电源管理模块

显示终端需要12 V,5 V,3.3 V和1.8 V 共4种工作电压,而只能使用来自工程车辆上标称为24 V的蓄电池作为输入电源。由于储电量等因素的不同,蓄电池输出电压并不固定,范围有可能在9~36 V左右缓慢变化。本设计采用Linear公司的LT3980产生12 V与5 V电压。LT3980可以在3.6~58 V输入电压的范围内工作,具有过压闭锁保护,可承受高达80 V的瞬态电压,该器件非常适用于汽车应用中常见的负载突变和冷车启动等情况。3.3 V和1.8 V采用LT1117芯片从5 V电压变换获得。另外,考虑到车辆上其他设备在启动、工作时在电源上产生的干扰脉冲,甚至在现场可能产生人为失误造成的电源正负极反接等情况,在LT3980的前端,需要采取必要的防过压、抗瞬间干扰、防反接的措施。如图2所示,二极管D1可以为蓄电池BAT上的瞬间高压提供一条快速释放通道,并可保证在电源反接时电压无法加至后级电路,电感L1与电容C1可以有效抑制电源的瞬态干扰,防止瞬态干扰影响显示终端的正常工作。

图2 电源管理模块

2.2 STM32F207与S1D13513的连接

本设计采用ST公司的STM32F207ZE作为主处理器,采用S1D13513作为显示控制芯片。S1D13513是EPSON公司推出的一款高性能、低功耗的液晶控制器,带有大容量SDRAM接口,支持片外扩展SDRAM作为显存,支持单屏RGB接口,最高支持1 024×768的分辨率,支持多种流行CPU的直接或间接访问,适合移动通信、手持设备及车辆等领域的应用。处理器通过FSMC机制与S1D13513进行通信,相当于将S1D13513映射为一种片外存储器。本设计中S1D13513采用直接Intel 80模式1。模式选择依赖CNF[8:0]引脚的上电复位时的配置,其中CNF[8:7]决定了芯片的工作时钟源,CNF[6]决定了CNF[5:0]的配置对象,CN[5:0]决定了具体的总线接口配置内容。通过配置CNF[8:0]引脚的复位电平,将引脚上电输入状态设置为0x144,表明使用OSC1作为时钟源、工作方式为直接Intel80模式1。S1D13513采用了哈佛架构,在与处理器连接时,地址与数据分开,其与处理器的接口部分包含16位数据线、21位地址线、片选信号、中断信号及读写控制信号等,可以将STM32的FSMC地址、数据总线、片选信号直接与S1D13513连接,如图3所示。

STM32F207ZE的片外Flash、SRAM扩展电路,以及S1D13513的片外SDRAM扩展电路、摄像头输入电路、LCD液晶屏显示电路等,参考芯片手册中推荐的电路直接连接即可。

图3 STM32F207与S1D13513的连接示意图

2.3 CAN总线接口适配电路

由于STM32芯片内部集成了CAN总线协议控制器,因此只需要在外部为其增加CAN总线收发器,实现TTL电平到CAN总线电平的转换适配[3]。本设计中采用的CAN总线收发器采用了NXP公司的TJA1040T,是一款针对汽车电子行业使用的高性能CAN收发器,其最主要的特点是芯片上有一个SPLIT的平衡电压输出端,用于输出芯片自身的2.5 V电压,用于抑制由于各节点地电平不同而造成的信号共模电压差,或者抑制由于其他没有上电节点造成的反向电流,可以使共模干扰的影响降低到最小,保证正常通信。总线终端节点R1、R2可以分别使用60 Ω的分裂端接电阻,若是总线中间节点使用1.3~2.7 Ω的分裂电阻,C1的典型值可以取47 nF。另外为了防止CAN总线上的瞬间高压的干扰,二极管V1采用NXP公司的PESD1CAN,L1采用EPCOS公司的B82789作为扼流圈,防止瞬态干扰串入,防止CAN总线数据的错误接收(见图4)。

图4 CAN总线接口电路

3 软件设计

显示终端的软件设计全部采用C语言编程,在STM32处理器的基础上移植构建了μC/OS2操作系统,利用UCGUI图形开发环境,完成CAN接收FIFO中数据的接收与解析、按键输入处理、显示控制等功能,并将功能模块划分为子任务中断处理的方式运行,提高了软件运行的实时性。软件运行总流程图如图5所示。

图5 软件运行总流程图

3.1 μC/OS2的移植

μC/OS2是一种源码开放的实时操作系统,此操作系统内核空间小,包括了多种操作系统特性,如任务调度、任务通信、内存管理、中断管理等。μC/OS2总共包括3个部分:核心代码部分,该部分代码与处理器无关;设置代码部分,该部分可以配置时间控制块的数据及消息管理相关的配置;与处理器相关的移植代码部分。针对STM32处理器的μC/OS2移植主要集中在对以下几个文件的修改[4]:

1)os_cpu_c.c,主要是修改 OSTaskStkInit()函数,用来完成初始化任务堆栈结构。

2)os_cpu_a.s,对STM32处理器的寄存器进行操作,包括 OSSrartHighRdy(),OSCtxSw(),OSInitCtxSw()和 OSTickISR()这4个函数。

3)os_cpu.h,定义和STM32处理器相关的数据结构,定义开关中断的方式及指令实现,对堆栈的增长方向进行定义。

4)中断向量表:对启动文件中的中断向量表进行修改,主要将PendSV_Handler和SysTick_Handler替换为STM32处理器匹配的中断向量表。

3.2 CAN总线接口软件的设计

CAN总线接口软件的设计主要包括STM32处理器中CAN总线协议控制器的初始化、CAN总线数据的收发、CAN总线数据的解析等方面。CAN总线初始化主要包括CAN功能的使能、波特率的设置、FIFO的指定等内容。在完成CAN总线的初始化后,即可开始CAN总线数据的收发[5]。由于采用了中断申请的工作方式,在接收到FIFO数据达到阈值后,首先判断数据的有效性,如果数据有效,再对数据进行拆包解析,根据数据不同的标志位,解析出数据代表的含义,如油位、水位、开关量的状态等,再将数据提交给显示控制子任务进行显示处理。

3.3 显示控制软件设计

由于采用了UCGUI的图形化界面开发环境,显示控制软件的设计可以大大简化,但需要实现对S1D13513的控制,LCD液晶屏的显示内容实际由S1D13513完成具体操作。LCD显示屏对于主处理器STM32来说,可以认为是“透明”的。显示控制软件的设计,主要包括S1D13513的初始化及控制两方面。初始化主要包括芯片工作模式配置、摄像头输入配置、显示控件元素库调入等内容。在显示控制方面,软件接收到CAN总线接口子任务发送来的数据后,由STM32解析出需要显示的数据,并将数据传送给各个状态量显示函数,由S1D13513调用相应的元素库来刷新LCD液晶屏上的显示内容。摄像头输入视频的处理,S1D13513直接接收来自ADV7180处理后的YUV信号,由STM32使能S1D13513的该功能,即可实现摄像头视频的同步显示。由于本显示终端没有采用Linux操作系统,无启动等待时间,实现了开机即显示的功能,提高了系统的工作效率。

4 试验与验证

经实际测试验证,本显示终端启动时间小于1 s,可达到开机即使用的要求,明显优于基于ARM+Linux系统15 s左右的启动时间,CAN总线的可稳定达到1 Mbit/s的波特率,工作温度范围可达到-30℃~+70℃,能够适应工程机械在恶劣环境下的作业需求。本显示终端的实际运行效果如图6所示。

图6 显示终端实际运行效果(照片)

5 结束语

本设计实现了一种基于STM32和μC/OS2架构的显示终端,利用CAN总线接收并实时显示工程车辆上多种设备状态信息,与常见的ARM+Linux的显示终端相比,本设计具有启动时间快、环境适应性强、性价比高、开发周期短的特点,可满足多种工程车辆的应用需求,具有较好的市场前景。

[1]李顶根,陈军,吴朝辉.基于Arm-Linux的车载信息平台的研制[J].浙江大学学报:工学版,2006,40(9):1531-1535.

[2]杨秋萍,李疆.基于ARM-Linux智能车载信息终端的设计[J].科技信息,2012(30):29-30.

[3]佟鸣宇,彭开香.基于ARM芯片的CAN总线接口设计与实现[J].计算机工程与设计,2009,36(7):1574-1576.

[4]任哲.嵌入式实时操作系统μC/OS-II原理及应用[M].2版.北京:北京航空航天大学出版社,2009.

[5]龙志强,李小龙.CAN总线技术与应用系统设计[M].北京:机械工业出版社,2013.

猜你喜欢

摄像头总线处理器
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
CAN总线并发通信时下位机应用软件设计
奔驰360°摄像头系统介绍
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
多通道ARINC429总线检查仪
ADI推出新一代SigmaDSP处理器
找出摄像头花屏的“罪魁祸首”