车载显示单元诊断维护系统优化设计与实现
2017-11-01龚娟
龚 娟
(1.武汉大学,武汉 430072; 2.湖南铁道职业技术学院, 湖南 株洲 412000 )
车载显示单元诊断维护系统优化设计与实现
龚 娟1,2
(1.武汉大学,武汉 430072; 2.湖南铁道职业技术学院, 湖南 株洲 412000 )
针对目前车载显示单元监测、诊断及维护方式的局限性,通过分析研究,提出了一种新型的车载显示单元诊断维护方案,并通过设计进行了软件实现;新实现的系统软件可以自动对底层程序及应用程序进行监控及故障记录,并实现故障信息的提取,为设计和维护人员进行故障分析和故障处理提供便利;系统通过以太网进行固件及软件的升级和备份,且支持一键升级,能够极大地提升工作效率;同时,系统开发过程中融入人机工程理念,充分考虑界面美观和交互的便利性;尽量降低软件的耦合度,提高软件的可移植性。
显示单元;监测;诊断;维护
0 引言
随着轨道交通行业不断发展,列车需求不断攀升。车载显示单元的装车数量也在不停的增长,作为列车运行控制与显示的终端设备,担负着车载系统人机接口功能,因而显示系统的监测、诊断及维护相当重要。
车载显示单元操作系统为嵌入式Linux系统,传统的诊断维护方式主要是采用串口和USB接口进行维护,不具备操作的可视化和工具化。同时,维护过程为考虑U盘的安全性,必须采用专用U盘,且一旦刷写失败将导致系统崩溃;另外,串口通信传输速率低,耗费时间长,影响现场维护的效率。以往的故障诊断方式多针对于底层系统,对于上层应用故障主要采用日志文件进行记录,但是系统日志文件对非设计人员来说晦涩难懂,无法基于日志文件及时的开展故障分析。因而,传统的人机接口单元诊断维护方式在如今的行业趋势下显得越来越局限。
针对以上情况,本文提出了一种车载显示单元诊断维护系统的优化方案,并通过开发设计,进行了软件实现,系统采用C/S架构构建通信环境,设计交互功能实现嵌入式Linux系统与Windows PC之间的可视化通信,利用后台监视进程对单元进行自动监视和故障诊断,利用以太网进行固件及软件的升级备份,提高效率,同时整个通信过程采用加密技术保障信息传输的安全性。
1 系统设计
系统设计从充分解决原有系统效率低、交互可视不友好等问题出发,采用高带宽的以太网通信接口,通信速率达到100 Mbps,建立友好的可视化交互操作界面,构建快捷操作和批量处理功能,从根本上解决原有系统的弊端,提升系统易用性和可用性。
1.1 拓扑结构
诊断维护系统关联关系如图1所示,PC上运行前端软件通过以太网与显示单元连接,通过以太网与诊断维护进程进行交互,实现二者间的数据传输和控制。
图1 诊断维护系统连接结构
1.2 通信架构
本系统采用C/S(客户端/服务器端)的模型来实现,利用基于TCP协议的流式套接字(socket)来提供可靠的、面向连接的通信方式,在该模型中,服务器端使用Linux提供的接口,而客户端使用.NET提供的AsyncCallBack(异步回调)的委托方式构建跨平台的异步通信,如图2所示。
图2 诊断维护系统通信架构
服务器端部署于显示单元文件系统中,主要包含应用监视诊断和固件维护两大功能模块,客户端软件配置于PC机上,具有良好的可视化交互界面。服务器端在显示单元应用进程启动时开启服务,监视进程,并等待客户端的连接。客户端通过以太网接入,并向服务器端请求连接,连接成功后,根据需求向服务器发送故障信息提取、固件更新、文件备份等设计的功能请求,服务器端根据请求类型执行相应的操作,并将结果反馈到客户端。
2 优化方案与设计
显示单元诊断维护系统的优化主要包含5个方面:监视诊断功能优化、固件维护功能优化、通信交互的可靠性优化、文件传输的安全加密性以及软件设计模式优化。同时从功能和性能的角度对整个系统进行全面的优化设计,确保系统在相关领域应用的可行性。
2.1 通信交互方案
客户端与服务器端连接采用TCP协议,通过三次握手确保连接的可靠性和稳定性。如图3所示,建立连接时,客户端发送连接请求到服务器端,并进入发送等待状态,等待服务器端确认;服务器端接收请求,并发送ACK给客户端进行确认,服务器端进入接收等待状态;客户端收到服务器端的ACK包,再向服务器端发送确认包ACK,此包发送完毕,客户端和服务器进入连接成功状态。此时,客户端与服务器端才可以开始传送数据。
图3 通信流程图
2.2 诊断优化方案
监视诊断功能主要是针对显示单元应用层,处于应用层的所有进程都可以被监视和记录。判断应用程序能否正常运行的指标主要有:CPU负荷值、内存占用值、生命信号和异常退出情况。当应用程序的CPU占用值和内存占用值超出正常值时,会影响CPU处理能力,造成系统卡顿,无法操作。应用程序需要通过以太网等通信接口接收来自其他各个控制系统传输的数据,在显示单元上实时的显示,当应用程序异常退出,会导致显示单元蓝屏或白屏,对列车运用造成影响。
针对相关可能影响显示单元正常运行的情况,系统采用后台监视的方式对应用程序的各项指标进行实时监测,并对监测数据进行实时分析,形成诊断结果并反馈,总体方案如图4所示。
图4 监视诊断实现方案框图
系统设计对监视到的所有异常情况,均进行以下三个步骤的处理:1)对异常信息进行记录,记录文件的路径可以根据需求进行设置;2)对于突发异常采取正确合适的策略来应对。对于普通应用程序,当异常退出时可直接对其进行进程重启操作,但对于一些关键的应用程序,应对策略要更加全面,要根据不同的退出等级进行应对处理,对启动策略进行全面的分析,必要时采用图形库进行提示;3)利用客户端软件可以向服务端请求异常信息,服务器端提取文件中的故障代码通过解析后发送回客户端,用户获取显示单元故障情况。
2.3 维护优化方案
显示单元在应用开发过程中,由于实际应用需求的变更,为了更好的满足需求,显示单元系统也需要同步进行必要的更新和配置,一般情况下,需要进行维护的固件包括:底层软件、应用程序和系统配置文件。其中底层软件包括U_boot、内核和文件系统。针对固件的维护主要分为固件升级和文件备份两个部分,以下分别固件升级和文件备份的方案实现进行详细说明。
固件升级:客户端与服务器端连接成功后,用户将固件升级指令发送给服务器端,服务器端根据指令主动从客户端获取固件升级包、固件名及固件大小。固件升级包通过FTP协议从客户端上传到服务器端,服务器端接收完固件升级包后,将其存放在指定目录下,通过对比固件名和大小确保接收的完整性和一致性,若接受完整,则服务器端擦除系统底层软件及应用程序所在的FLASH分区,将固件更新包刷写到对应的分区上,并计算该分区的CRC校验值发送回客户端,客户端将接收到的CRC值与本地固件包的CRC值进行比较,若一致,则说明固件更新成功,为简化用户的操作,系统设计有一键更新所有固件的功能,通过一键更新,简化用户操作步骤,提高系统效率。固件升级方案如图5所示。
图5 固件升级实现流程图
文件备份:文件备份是固件更新的逆过程,往往在进行故障分析时,设计人员需要获取故障显示单元的系统配置文件和底层软件,通过FTP协议将文件从显示单元服务端上传到客户端本地路径。
固件维护软件设计为一个后台进程,为了更好地响应用户交互的实时性,同时降低对系统性能的影响,固件维护功能采用多线程的编程方式来实现,避免引起程序阻塞。程序流程如图6所示,1)服务器端创建socket 并绑定IP地址和端口,打开监听,等待客户端接入;2)客户端发送连接请求,服务器端接受连接,并获取到PC机的IP地址,两端正式建立连接;3)服务器端设置接收超时时间,防止程序阻塞;4)客户端发送指令,根据指令类型确认要更新的固件类型,并匹配文件名称及大小;5)若匹配结果一致,擦除固件所在的flash 区域,将新的更新包写入flash,计算CRC校验值;6)返回CRC值到客户端进行匹配,若匹配结果一致,则更新成功;7)此时服务器端程序继续等待下一次更新请求,若超时,则等待下一次接入,避免处于阻塞状态。
图6 固件维护程序流程图
2.4 安全加密方案
为了避免由于人为操作引起的固件更新失败和通信交互时信息泄露导致系统异常的问题,文件的安全完整性和交互信息的加密在诊断维护系统设计过程中需要重点关注并进行有效的设计和实现。
2.4.1 文件的安全完整性
通过对比客户端与服务端的文件名和文件大小,确认接收到的文件是否正确,对比客户端与服务端文件的CRC校验值,可以判断刷写到FLASH的文件内容是否一致,只有二者都一致,才能判定更新成功。
2.4.2 信息加密
在客户端与服务端进行消息传递时,采用安全隧道的方式对信息进行加密处理。安全隧道可以有效的防止通信交互式的信息泄漏问题,系统采用一套完整的密钥机制,可以很好地运用在LINUX系统上,通过两把不一样的公钥与私钥来进行加密解密,来达到安全传输的效果。
2.5 软件设计模式
在软件设计、开发阶段,尽量分离与系统平台有关的代码,通过简洁的接口与平台交互,减少软件与系统平台的耦合性,实现在多个显示单元平台上的兼容,使该系统具有良好的可移植性。在编码时,采用一个主线程和动态生成子线程的分工模式,动态满足各种配置需求,做到好的功能扩展性,在后期需求增加时,能方便的进行扩展,提升开发效率。
采用面向对象的设计思路,划分功能单元,提高代码的重用率。功能单元划分遵循两个原则:1)分离原则:策略同机制分离,每一层只做自己份内的事情,不交叉进行,提高代码的可维护性;2)紧凑性与正交性:每个单元既是单一完整的功能代码,又不存在副作用,不对其他功能模块产生影响。
3 优化对比与实现
3.1 监视诊断功能
较之以往采用日志文件来记录并判断故障的方式,优化后的诊断方式更加智能,可配置性强,监视的内容可按需求裁剪,可以单独开启多个线程对不同应用进程同时进行监视,对故障记录和提取。
以应用程序为例, 监视诊断功能的实现步骤为:
1)监视软件在后台开启一个进程,等待应用程序启动,待应用进程开启,监视软件在记录文件中记录此次启动事件。
2)在监视过程中,若监测到应用程序的CPU负荷值、内存占用值超出预设值,则会在记录文件中进行记录,并对应用程序采取相应策略。
3) 在监视过程中,若监测到应用程序异常退出,应用程序无法查找到所监视的进程时,会将信息记录在文件中,并会根据不同的退出等级和机制执行相对应的重启操作。
4) 在监视过程中,若监测到应用程序生命信号丢失,处于超时状态,监视软件会记录相关信息,并采取策略。
5) 在监视过程中,当用户需要提取相关的故障记录时,开启客户端软件,与显示单元服务器端连接,一键读取所需日期的所有故障信息。
值得一提的是,所有的应对策略都可以针对不同功能的应用进行定制和扩展,而不仅仅局限于单一的一种解决方式。
3.2 固件维护功能
与传统的固件维护方式相比,无论是固件维护涉及的固件更新还是文件备份,优化后的固件维护方式更加注重操作的简洁性,不需要繁复的命令、脚本,也不需要借助其他的存储工具,无论车载显示单元处于何种状态下,都可以对它进行固件维护操作,而且系统支持一键更新所有固件。
以kernel更新为例,固件更新的实现步骤为:
1)客户端与显示单元服务器端连接,发送更新kernel的请求。
2)服务器端解析请求,并获取客户端IP、kernel文件名及大小。
3)打开FTP服务,并建立连接,对比两端kernel文件名和大小,若一致,则从FTP服务器下载kernel文件到显示单元内存区。
4)对kernel文件进行CRC校验。
5)校验成功后,刷写到FLASH,更新成功。
以配置文件为例,文件备份的实现步骤为:
1)客户端与显示单元服务器端连接,发送配置文件备份请求。
2)服务器端解析请求,并获取客户端IP、配置文件的文件名及大小。
3)打开FTP服务,并建立连接。
4)在文件系统中搜索配置文件,并将该文件通过FTP服务器上传到本地路径下。
3.3 交互界面
Windows PC端的客户端交互界面软件采用C# winform框架实现,C#是一种面向对象的编程语言,C#语法简化了C++的诸多复杂性,提供很强的网络编程功能,基于c#的socket开发已经非常成熟,C#应用由.NET平台提供安全机制确保安全性,语言表现力强,适用于可视化开发。客户端软件界面如图7所示,与服务器端进行连接之前,首先要将PC机的IP与显示单元的IP设置为同一网段,并确保通信端口没有被占用,否则会导致连接失败。
图7 客户端软件界面
固件维护界面如图8所示,除了可以对底层软件进行单点更新单点外,还支持一键批量下载,并且有更新进度提醒。
图8 固件维护界面
4 结束语
通过对既有系统的分析,从优化设计与实现的角度对系统进行了重新的设计和优化,经过方案分析、设计实现和实际测试和验证,文章所设计的车载显示单元诊断维护系统能够实现监视应用程序、诊断故障信息、更新固件和配置文件的功能。与过去传统的诊断维护方式相比,新的系统从架构层面和实现手段上引入了高速以太网通信,和基于以太网的套接字通信机制,提高通信速率的同时保证了系统信息的安全性,界面实现方面借用PC端友好的可视化开发,提高了用户操作的友好型,系统充分结合实际应用需求,提出并实现了一键操作和批量操作功能,提高了用户应用的便利性和高效性,系统设计充分考虑了软件的低耦合,功能的强可配置性,相比以往的系统在功能和性能上都有了极大的提升,是一套较为完善的显示单元平台诊断维护解决方案和系统。鉴于系统架构和设计的通用性,相关方案和功能通过简单的配置或修改能够兼容不同型号的显示单元,同时通过适当的变更能够快速的移植到其他类似功能需求的系统中。
[1] 王业流, 王 强. 嵌入式软件可移植性设计技术[J]. 机车电传动, 2013(2):81-84.
[2] 邹 捷. 基于异步委托方式的Socket通信研究[J]. 现代计算机:专业版, 2012(27):50-52.
[3] 徐克宝, 武 慧, 文艺成. 基于Socket的Windows与Linux平台异步通信[J]. 计算机系统应用, 2015, 24(7):232-235.
Optimization Design and Implementation of Vehicle Mounted Display Diagnosis and Maintenance System
Gong Juan1,2
(1.Wuhan University, Wuhan 430072,China; 2.Hunan Rilway Professional Technology College, Zhuzhou 412000,China)
The current maintenance mode of the display unit has definite limitation. Aiming at solving this problem, a new diagnosis and maintenance scheme for display unit is presented in this paper.Software realization has also been carried out .The monitoring software can monitor the application program and record the fault automatically. The fault information is extracted at the same time, so that this program can provide convenience to follow-up designers to analyze and deal with the fault. Firmware maintenance tool supports firmware upgrade ,backup and a key upgrade through the connection between Ethernet and monitor. In conclusion ,this tool greatly enhances the efficiency. Software has a good interface, and can been used easily. At the same time, the design process of software minimizes the coupling degree and portability of software has been improved greatly.
display unit; monitor;diagnosis;maintain
2017-05-12;
2017-05-25。
2017湖南省教育厅科学研究项目(17C1041)。
龚 娟(1978-),女,湖南汩罗人,硕士研究生,副教授/高级工程师,主要从事列车网络控制方向的研究。
1671-4598(2017)08-0283-03
10.16526/j.cnki.11-4762/tp.2017.08.073
TN873
A