基于嵌入式的数字兆欧表开发

时间:2022-06-16 06:44:34

基于嵌入式的数字兆欧表开发

摘要: 本文设计了一款基于S3C2440、ARM目标板、Linux和QT/Embedded的智能型数字兆欧表,它与触摸屏结合取代了原有的机械开关,具有测量精度高、测量范围宽、数据处理能力强、显示直观等优点。

Abstract: This paper introduces the design of a based on the S3C2440, ARM、Linux and QT/Embedded intelligent digital megohm meter, It combines with touch screen to replace the original mechanical switch, has the advantages of high measurement precision, wide measurement range, strong data processing ability, visual display etc.

关键词: Qt/Embedded;ARM目标板;智能型数字兆欧表

Key words: Qt/Embedded;ARM target board;intelligent digital megohm meter

中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2013)04-0205-02

0 引言

随着计算机技术、信息通讯技术以及互联网技术在各个领域的广泛应用,嵌入式系统进入了日益快速发展的阶段,其智能化、高可靠性、低功耗、功能强、微体积的特点符合计算机技术的发展趋势。

1 数字兆欧表原理

数字兆欧表主要用来测量绝缘材料的绝缘性能,被广泛的应用于电力设备的安装调试中。系统原理框图如图1,工作流程为:12V直流电源通过倍压生成模块产生所需的直流负高压,再经模拟开关加到采样电阻两端,采样电阻的电信号经过12位高速AD转换器转换为数字信号,再经微处理器计算将数字信号转化为绝缘阻值,在ARM目标板上显示出来。通过应用程序控制使其能根据不同的绝缘阻值自动切换采样电阻[1],提高测量精度。ARM目标板通过GPG1端口和继电器相连,通过应用程序控制继电器,再由继电器控制开关电源集成控制器芯片TL594来控制倍压生成模块,达到控制兆欧表测量档位的功能。由图1看出在整个系统中S3C2440微处理器需要对LCD、触摸屏、蜂鸣器、打印机模块进行读写操作,因此在嵌入式Linux操作系统的定制时要加入相应的的驱动程序来控制相应设备。

2 创建数字兆欧表GUI

在QT中进行主窗口的设计,设计的主窗口界面如图2,最顶层是菜单栏,下面是工具栏和操作界面,最底层是工具栏。下面简单介绍实现方法:

工具栏下面的第一个标签(项目名time)我们用来显示系统时间(当到5秒后显示测量阻值),在mainwindow.h中添加槽函数声明:private slots:void timeUpDate()切换到mainwindow.cpp编写实现代码。为使系统时间实时显示,首先建立一个QTimer类定时器对象并以秒为启动单位发送信号,然后将定时器信号与前面声明的槽函数关联起来:Connect (timer1,SIGNAL(timeout()),this,SLOT(timeUpDate()))[2];

通过一个Push Button的clicked()响应函数来实现档位切换,在切换档位之前先判断系统状态,对于档位的判断,设有一个在头文件中已声明的int dangwei变量,每点击一次按钮dangwei加1,计满4次后重至为0。状态栏的设计采用代码方式,首先建立QStatusBa类指针,再依次获取状态栏、新建标签、设置标签大小形状显示和初始化等。然后创建开始、复位和关闭3个按钮,开始按钮主要是用来启动和停止前面提到的定时器timer,同时改变状态栏的一些显示信息;复位按钮用来初始化一些参数,关闭按钮实现系统的软关闭,调用系统函数system("shutdown-s\n")。最后创建一个新的对话框,使它和主窗口中的定时器相关联,触摸主窗口工具栏中的第三个图标可以切换到此对话框显示吸收比和极化系数。

3 系统整体电路的设计

系统整体电路图如图3,开关S1-2接通12V直流电压源后向继电器1和继电器 2提供电源,同时经过电压转换器7805向模拟开关4662 及运算放大器提供+5V电源。S1-2是控制是否开始测量,进而使L端产生负高压,S2是控制直流负高压电源电路(直流负高压电源产生电路可参考相关文献[3])选择哪个倍压档位。GPF0至GPF5 6个I/O口控制六路模拟开关,R1至R6是六路切换内阻。R0是限流电阻,R7和R8是分压电阻。G、E、L三点与直流负高压电源和测量回路相连接,G点电压确定在4.096V,L是直流负高压电源(-500V/-1000V、)。从G点经模拟开关4662接通切换电阻R1-R6、被测电阻RX、限流电阻R0到L端构成测量电压采集回路。从G点经R7、R8到L端构成基准电压采集回路。把U1和基准电压U2经模拟输入通道AIN1和AIN2传送到ARM目标板中转化为测量阻值。

4 由宿主机向ARM目标板的移植

4.1 定制Linux内核映像文件并向ARM目标板移植

首先在windows上安装VMware5.0版本虚拟机,然后在虚拟机上安装Fedora-9-i38版本的Linux系统,获取它的内核源代码,然后在终端中输入#cp config_mini2440_w35.config使用缺省配置文件config_w35,然后执行 #make menuconfig命令出现配置内核界面,对Linux 内核进行配置后,在终端中输入# make ZImage 命令,对linux 内核进行编译,生成linux内核映像文件,然后通过 DNW.exe 下载软件和超级终端将linux内核映像文件下载到开发板。

4.2 制作根文件系统映象文件并向ARM目标板移植

首先通过linux终端安装轻型的linux 命令工具集busybox-1.13.3 和目标文件系统映象制作工具mkyaffs2image,然后在linux系统中的超级终端中将qt-sdk-linux-x86-opensource-2010.05.1.bin软件包解压到linux系统中的/opt/mini2440目录下,在此目录下解压后包含有rootfs-qt4软件包,然后在终端中执行如下命令:

#cd /opt/mini2440

# mkyaffs2image-128M rootfs_qt4 rootfs_qt4.img

就生成qt4映像文件 rootfs_qt4.img

然后在超级终端中输入y,在DNW.exe软件中选择rootfs_qt4.img下载到开发板上即可。

4.3 把应用程序编译成ARM目标板上的可执行文件

先在Linux终端中安装交叉编译工具链arm-linux-gcc-4.4.3,能够对应用程序进行交叉编译。接下来把在QT中编辑好的应用程copy到linux系统的一个根目录下,这里copy到/opt/mini2440/digital-meter根目录下。然后在linux系统的超级终端中执行如下命令:

[root@tom~] # cd/opt/mini2440/ digital-meter

[root@tom digital-meter] #

/opt/mini2440/qt-everywhere-opensource-src-4.6.3/bin/qmake - project

[root@tom digital-meter]#

/opt/mini2440/qt-everywhere-opensource-src-4.6.3/bin/qmake

[root@tom digital-meter]# make

这样就能生成ARM目标板上的可执行文件digital-meter

4.4 QT4脚本的编写 本问介绍将应用程序copy到linux系统/opt目录下,将S3C2440开发板中开放的Qtopia脚本程序最后三行的程序内容改写为如下所示:

cd /opt

./digital-megger -qws

hotplug

然后进行保存,这样就生成能够运行QT4程序的QT4脚本。

4.5 应用程序在ARM目标板上的运行和功能实现

用U盘挂载具体做法如下:

首先将ARM目标板用串口线和宿主机相连,然后将编译好的digital-meter应用程序文件和QT4脚本copy到U盘,然后在终端中执行如下命令:

# cd /udisk # ls

# cp digital-meter /opt # cp qt4 /opt

# cd /opt # ls

# ./qt4

这样就能在ARM目标上运行digital-meter应用程序了,然后将ARM目标板和硬件设备以及生成的直流负高压电源连在一起,运行ARM目标板,运行之后进行整体功能调试和测量数据,实现嵌入式数字兆欧表的功能。

5 结束语

本文介绍了应用嵌入式开发的数字兆欧表的整个过程,对初学习嵌入式开发者了解嵌入式开发的一般方法和流程有一定的参考意义,而且设计出的嵌入式数字兆欧表经过一定的内核裁剪和组装加工,可以生产出用于工业应用的高性能的数字兆欧表产品。

参考文献:

[1]廖娇,虎恩典.电机绕组热态绝缘电阻在线检测系统的设计[J].自动化与仪表,2010(9): 56-60.

[2]Jasmin Blanchette,Mark Summerfield.C++ GUI QT4编程(第二版)[M].北京:电子工业出版社,2008.8.

[3]索强强,虎恩典.嵌入式控制的智能型数字兆欧表[J].现代仪器,2012,18(4):14-16.

[4]徐英慧,马忠梅.ARM9嵌入式系统设计-基于S3C2410与Linux[M].北京:航空航天大学出版社,2007.9.

上一篇:为自己工作 下一篇:试论加强电力企业电力营销管理的途径