当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于Qt/Embedded的蓄电池状态检测控制软件设计

1  引言
             
蓄电池生产过程中的状态参数检测是保证蓄电池出场质量的关键。然而目前,国内蓄电池的状态检测主要依靠蓄电池电压巡检仪、蓄电池电导测试仪和内阻容量测试仪等仪器,这些仪器只是能够实现单一的检测蓄电池状态,而且操作灵活度有限,数据的存储、传输以及实时分析都需要额外的pc的辅助来实现, 已经不能很好的满足当前许多要求较高的工业现场控制的应用。为了使蓄电池生产线上的蓄电池性能参数测量更加灵活,本文提出一种基于qt/embedded的便携式蓄电池状态检测系统,实现了对蓄电池的多路数据采集,控制软件界面友善、检测仪器轻巧方便。
          
2  系统总体设计与实现
             
本检测系统由数据采集部分、a/d转换、arm微控制器和数据存储等几部分组成,总体架构设计图如图1所示。其中,数据采集部分主要完成对蓄电池性能参数的采集,a/d转换部分主要完成采集信号的模/数转化,arm微控制器是整个系统的关键部分,主要负责与基于qt/embedded的连接,接受第三方用户的命令信息并进行相应的处理。数据存储部分主要负责将处理后的数据存放到usb设备中,为以后数据分析提供依据。
          
3  控制软件的设计
          
3.1 qt/embedded简介
             
qt/embedded是一个和完整的自包含gui和基于linux的嵌入式平台工具,是qt在嵌入式平台的版本。它通过qt api与linux i/o以及framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式。通过qt/embedded可以直接构建工作在嵌入式设备上的控制软件,为便携式设备提供良好的人机交互界面,使设备的操作更加灵活。

         
                              
             图1 测量系统的组成

3.2 qt/embedded的移植
             
本文采用宿主机-目标板的移植方式,先在宿主机上调试通过后,再将调试通过的程序移植到目标板上。
          
3.2.1宿主机上的移植
             
qt/embedded直接写入帧缓冲,在宿主机上则是通过qvfb(vituralframe buffer)来模拟帧缓冲。宿主机上的移植需要的工具及环境变量见表1。其中环境变量的设置可以直接用export来声明,配置qt-embedded-3.3.2时,/configure–qconfig–qvfb–depths4,8,16,32,就是指定qt/embedded开发包生成虚拟缓冲帧工具qvfb。

3.2.2目标板上的移植
             
将qt/embeded程序应用到arm开发板,在configure配置时配置linux-arm-g++配置选项[6]。最后将交叉编译好的应用程序烧写到开发板的根文件系统的/opt目录中。
          
3.3应用程序的框架结构
             
基于qt/embedded的蓄电池状态检测控制软件包括以下4个主要模块,如图2所示。

    

            图2 软件框架结构

3.3.1用户界面(user interface)模块
             
用户界面如图3所示,主要包括工作人员信息(图3①部分)、蓄电池信息(图3②部分)、需要显示的数据(图3③部分)(理想数据、数据上下限、实际检测数据及其当前蓄电池的状态)和数据存储(图3④部分)几部分组成。其中,检测人员工作前,需要手动的输入员工信息和设备信息等内容,便于数据分类,最后将这些数据共同存储。

          

                  图3 人机界面运行图

3.3.2数据处理模块
             
采集数据处理模块的基本结构流程图如图4所示。系统启动之后,首先进行arm微处理器芯片的初始化工作,完成初始化之后,系统启动qt上位机软件,然后整个程序进入监听状态,不停检测是否有控制命令事件触发,一旦触发则进行a/d转化,将数据采集模块采集到的信息进行数/模转化,最后将完成处理的数据送至显示模块显示。

         

                   图4 软件流程图

在ad模块的驱动程序设计中采用中断采集的方式完成数据采集。ad驱动函数主要代码如下:
            
(1)设备初始化,驱动设备的注册。为防止设备号的冲突,这里设备注册采用的是自动分配设备号。
          
 devfs_handle=devfs_register

  (null,device_name,devfs_fl_auto_devnum,0,0,s_ifchr|s_irusr|s_iwusr,&s3c2410_fops,null)。
            
(2)open函数,用于设置ad通道,并进行比例因子初始化。
         
  init_waitqueue_head (&adcdev.wait);

    //等待队列,当数据到达的时候,进程被唤醒,并将数据返回调用者。

     adcdev.channel=0;

     adcdev.prescale= 0xff;

     //ad设置,说明对通道0进行采样。
            
(3)read函数,关键函数之一,在这个函数中需要配置ad器件的控制寄存器,并启动转换。使用copy_to_user函数把数据从内核传递到用户空间,功能函数主要代码如下:

     start_adc_ain(adcdev.channel, adcdev.prescale);

     interruptible_sleep_on(&adcdev.wait);

     copy_to_user (buffer, (char*)&ret, sizeof(ret))。
            
(4)最后,把所有功能函数写进file_operations。

  

             表1 宿主机上的移植需要的工具及环境变量

4  总结
             
在各种检测系统的研究和设计中,数据采集是必不可少的环节。本系统以s3c2410a微控制器为基础,利用图形化编程语言qt设计出可视化、友好的控制界面,能够显著提高人机界面的显示效果。该系统具有较高的稳定性、可靠性,特别适用于便携式检测装置。因此,该系统具有广阔的市场前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

通信电源蓄电池是通信系统中的重要组成部分,其性能直接影响到通信系统的稳定性和可靠性。温度是影响蓄电池性能和寿命的重要因素之一,因此对蓄电池的温度进行监测和控制在通信电源系统中具有重要意义。本文将介绍几种常见的通信电源蓄电...

关键字: 通信电源 蓄电池 通信系统

蓄电池充电机是一种广泛应用于电动汽车、电动自行车、UPS电源等领域的充电设备。它通过将交流电转化为直流电,为蓄电池提供电能,使其得以充满。本文将详细介绍蓄电池充电机的工作原理,帮助读者了解这种充电设备的性能和应用。

关键字: 蓄电池 充电机 电动汽车

实践证明,用万用表测量UPS电池的浮充端电压是无法判定旧电池是否已经失效。所以一般要离线或在线测量电池的端电压,被测电池的端电压为12V左右(对12V电池而言),最低不能低于10.5V。

关键字: UPS 蓄电池 电池

蓄电池检测仪 - RTBT-8630蓄电池检测仪采用本公司研发的最先进的交流放电测试方法,能够精确测量蓄电池两端电压和内阻,并以此来判断蓄电池电池容量和技术状态的优劣。

关键字: 蓄电池 测试仪 电压

电池综合测试仪是一种用于测试电池性能和质量的设备,对于保证电池的安全性和可靠性具有重要的作用。今天鑫达能小编将介绍电池综合测试仪的特点和功能,以帮助读者更好地了解和使用这种设备。

关键字: 蓄电池 测试仪 电池电压

太阳能逆变器是一种能够将太阳能 蓄电池 中的直流电改变为交流电的装置。“逆变”指的是将直流电改变电流性质转化为交流电的过程。而太阳能逆变器的工作电路必须是一个全桥电路,通过在全桥电路中的一系列的滤波、调制,改变了电流的负...

关键字: 太阳能逆变器 蓄电池

摘要:为了提高接地线工作的安全性,从接地线装拆安全检测告警出发,对基于机器视觉技术的接地线装拆安全检测告警技术进行研究,对安全检测告警软件进行了设计,利用手持终端与伺服电机实现接地线装拆安全检测的告警,通过MVC框架、以...

关键字: 接地线 软件设计 技术应用

21ic 近日获悉,昨天国产大飞机 C919 进行全球首次商业载客飞行,由上海虹桥机场起飞,顺利飞抵北京首都国际机场。据悉,长虹电源作为中国商飞供应商,为 C919 飞机研发了主蓄电池组和 APU 蓄电池组。

关键字: C919 蓄电池

为增进大家对电池的认识,本文将对各类电池的发展历史予以介绍。

关键字: 电池 指数 蓄电池

12 月 20 日消息,据共同社报道,PowerX(东京)计划建设日本国内最大规模蓄电池工厂,工厂计划 2023 年 10 月建成,2024 年春季前后正式投产。

关键字: 日本 蓄电池 工厂
关闭
关闭