您的位置首页>企业动态>

采用Linux系统的嵌入式工控量热仪设计方案

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解采用Linux系统的嵌入式工控量热仪设计方案问题。基于Linux系统的嵌入式工控量热仪设

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解采用Linux系统的嵌入式工控量热仪设计方案问题。

基于Linux系统的嵌入式工控量热仪设计方案。

目前各种规模的电厂、煤矿、实验室使用的工控量热计大多是这样一个框架:完成仪表测试和控制的下位机控制模块;上位机模块,用于提供人机交互,发送和接收命令和数据;以及两个模块之间的连接通信设备。在该系统中,下位机通常使用单片机来控制测试仪器,负责接收来自通讯设备usb68013的数据,并提取相应的测试控制命令来控制仪器测试。本文主要讨论系统上位机的构建和实现,对下位机不做进一步讨论。那么,系统上位机的常用方式就是使用pc机。当然,通用pc拥有丰富的资源,无论是它的cup时钟频率、内存资源,还是管理系统各种软硬件的能力,都有着其他替代品无法比拟的优势。然而,当pc用作设备的上位机时,其缺点之一是体积庞大且不便携。同时,为了降低生产成本,由于仪器制造商可以完成仪器的整体功能,他们尽最大努力寻找一种使仪器小巧、便携、类似pc功能的上位机系统。因此,将基于arm的嵌入式系统应用到这类仪器中是一个非常好的解决方案。

2.系统设计方案嵌入式工控量热仪必须在追求设备体积小、便携性的基础上,努力实现原有量热仪设备的相应功能。因此,得到以下设计方案:(1)尽可能使用频率最高的微处理器芯片,并具有良好的内存管理功能;扩展片上资源和各种外设的接口。考虑系统中数据存储、内核、文件系统、图形库和应用程序占用的资源,选择合适的Flash内存和SDRAM;同时,一个USB主机接口,一个RJ45网口,一个标准串口等。被扩展用于与外围设备的连接和通信。为了实现仪器的人机交互和便携性,系统设计了触摸屏高级用户交互图形操作界面。

2.1系统硬件框架图。

如上图,系统上位机使用的微处理器芯片为三星公司的arm 920 s3c 2410 a;闪存采用三星公司的K9F1208U0M Nand闪存,存储容量为64MB。这种非易失性存储器是高数据存储密度的理想解决方案,可擦除次数超过一百万次,使用寿命长。SDRAM内存采用HY57V561620CT,这里使用两个块,每个块大小32MB;为了实现人机交互,考虑到系统的便携性,系统采用了触摸屏,当然还扩展了串口、网口等。这些就是整个系统上位机的硬件框架。EZ-USB68013作为上位机和下位机之间的通讯设备,负责接收上位机的数据和命令,并将下位机的实验数据和各种状态返回给上位机。但是,它在linux下的驱动编写和移植将在后面讨论。2.2系统上位机的软件组成鉴于以上讨论的系统硬件组成和系统要完成的功能,下面讨论系统上位机的软件组成。以下是系统上位机的软件组成:

2.2.1嵌入式操作系统内核配置和移植的设计和移植在整个系统的设计和实现中非常重要。本系统采用韩国米子公司免费提供的嵌入式linux操作系统。这种操作系统体积小,易于切割,并且还包含了目前使用的大多数外围设备的驱动程序。因此,使用这种操作系统可以降低开发成本,加快系统的开发速度。Arm-linux嵌入式操作系统的移植主要包括以下步骤:建立交叉编译环境。交叉编译环境的建立是arm嵌入式项目开发的基础,主要需要三个软件包:binuTIls、gcc和glibc。BinuTIls主要用于生成一些辅助工具,如objdump、as、ld等。Gcc用于生成交叉编译器arm-Linux-gcc;Glibc主要提供用户程序使用的一些基本函数库。当然,跨环境的构建比较复杂,很多步骤都涉及到硬件平台的选择。因此,本系统采用成都博瑞公司提供的交叉编译器,交叉环境的具体构建在此不再赘述。修改配置文件,配置内核。修改配置文件以在系统启动时自动挂载devfs文件系统,并将内核配置为支持yaffs文件系统。根据系统要求添加相应的外设驱动。在该系统中,使用EZ-usb68013实现上位机和下位机之间的数据通信,因此需要在上位机中加入该通信设备的驱动程序。在嵌入式linux操作系统中添加EZ-usb68013设备驱动采取以下步骤:首先通过修改内核中/driver/usb下的us B- skeleon . c文件,在us B- skeleon . c中添加EZ-usb68013设备的PID和VID,并修改该目录中的config.in和Makefile,每个文件增加一行。它们是:“dep _ tristate‘USB 68013驱动程序支持‘config _ USB 68013 $ config _ USB’”和“obj-$(config _ USB 68013)=USB 68013。o”,从而将EZ-USB68013设备驱动编译成Linux内核(当)。然后,选择内核对应的配置选项,编译生成内核的移植镜像文件。

此外,这里还简要介绍了系统的文件系统。这个系统使用的文件系统是busybox,它有一些linux的基本指令。同时,其主要特点是占用空间小,是嵌入式文件系统的理想选择。2.2.2图形库qte的配置和移植Qte是荷兰的Trolletch公司。

的图形化界面开发工具 Qt的嵌入式版本,它通过Qt API与Linux I/O直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,它采用 framebuffer作为底层的图形接口,并使用 c++进行封装,具有良好的移植性,同时,我们可以把用 Qt的Designer开发出来的GUI应用程序,通过交叉编译后可直接移植到Qte嵌入式平台。本系统使用的是Qt-embedded-3.3.2作为系统的基础图形库,在进行图形库编译之前,为了能使移植后的图形库支持触摸屏,则需对图形库源码进行如下修改:①在源文件包的 /src/embedded下的qmouselinuxtp_qws.h中添加两行代码 #define QT_QWS_IPAQ和#define QT_QWS_IPAQ_RAW;②对 qmouselinuxtp_qws.cpp做如下的修改,即把源文件中打开的触摸屏设备节点要改成自己所用触摸屏设备节点,如本系统中改成为:/dev/touchscreen/0raw。通过如上的修改后就可以对图形库进行配置了,即如下: ./configure -embedded arm -qt-mouse-linuxtp -qt-kbd-usb,配置、编译成功后,将 /lib下的库文件移植到目标板上的 /lib目录下,这样就完成了图形库Qte及触摸屏支持的配置和移植。3 Qte平台上用户应用程序模块的实现 3.1 本系统应用程序模块分析 本系统的用户应用程序用qt跨平台语言编写,通过交叉编译后移植到目标板上,而应用程序主要包括如图3所示的几个模块:实验显示模块、 usb通信模块、仪器实验控制模块、数据库模块,另外还有数据打印模块等。

⑴实验显示模块它包括系统的主界面、实验数据输入和结果显示界面。其中主界面通过菜单控件按钮来调用其它的模块,试验数据输入界面是在仪器试验当中输入时间和试验样品的质量数等,而结果显示界面是把由 usb通信设备返送回来的下位机试验所得结果及下位机的状态显示出来。⑵仪器试验控制模块。仪器试验模块是本系统昀重要的程序模块,系统要完成的各项功能都是在此模块中来设计和实现的,在本嵌入式工控量热仪中,它具体要完成的任务是以下一些:往下位机发送命令,控制下位机试验的开始和停止;采集下位机试验温度;控制下位机内、外桶水位平衡;同时,当试验结束后,控制 usb通信设备把下位机的试验结果采集回来等。 ⑶usb通信模块。 usb通信模块在前面也已经简单的介绍过它主要的功能是负责把从上位机接受来的输入数据和控制命令发送到下位机,同时又把下位机的试验结果返送回上位机。因此为了能使数据的准确传输,在应用程序中定义了两个用以接受和传输数据的结构体 struct DOWN_DATA、UP_DATA,每个结构体是 64字节。而在程序中对 usb68013通信设备的操作是利用Linux下的设备文件的 I/O操作,打开 usb68013通信设备是: open("/dev/usb/skel0", O_RDWR | O_NOCTTY | O_NDELAY ),其中 skel0是usb68013设备在系统中的设备节点。成功打开通信设备后就可以进行上、下位机的数据通信了,即往设备上发送数据和从设备上读取数据,这分别为: write(m_hDev,(UCHAR*)writeBuffer,64)、 read(m_hDev,(UCHAR*)readBuffer,64),这样就成功的实现系统中数据的通信。⑷数据库模块。本工控量热仪由于是用来测量某种样品的发热量的,那么,通常要对此样品进行多次的试验,再来取平均值,因此,利用数据库对试验结果的保存是非常必要的。在本系统中使用的是sqlite-3.3.6这一零配置的数据库,这种数据库它主要的特点就是体积小、封装了一些基本的数据库API接口函数、操作简单、易于移植,是嵌入式系统中昀理想的数据库。

3.2 系统实现及测试通过上面的讨论,本系统的各模块都已经成功的设计出并得以实现。由于系统基于 QTE设计出图形用户界面,则提供良好的人机交互,使系统更易于操作和管理。经过试验测试,本系统上位机各模块能够很好的达到设计的目标,整个上位机系统控制下位机试验,并把结果正确显示出。如图4所示为系统图形用户界面的试验控制模块。

4 结论 本文根据需要对嵌入式工控量热仪的上位机软、硬件平台设计和构建进行了深入的讨论,并得出了方案的详细实现过程,昀终还给出了系统试验测试框图,从而验证了嵌入式工控量热仪的可行性、实用性。本系统的创新点有以下几点:①系统上位机利用arm嵌入式平台来代替原来的pc机,这样使成本降低了,昀重要就是嵌入式平台相比于 pc机体积更小,这样设备就越便携、实用;②系统使用QT跨平台语言来编写系统的应用程序,这样程序具有良好的移植性,同时,系统设计开发出用户界面,并用触摸屏代替传统的鼠标和键盘,具有友好的人机交互。

采用Linux系统的嵌入式工控量热仪设计方案

现在大多数的发电厂、煤炭矿厂以及各大小级别实验室中所使用的工控量热仪都是这样的一个框架:完成仪器试验测试控制的下位机控制模块;提供人机交互,传输和接收命令、数据的上位机模块;以及两模块间的连接通信设备。在此系统中下位机通常使用的是单片机来完成对试验仪器的控制,并负责从通信设备 usb68013接收到数据,提取相应的试验控制命令来控制仪器试验。这里主要讨论的是系统上位机的构建和实现,对下位机不做进一步的讨论了。那么对于系统的上位机通常的做法就是使用 pc机,当然,通用 pc机有着丰富的资源,不管是它的 cup时钟频率、内存资源、以及对系统各种软硬件管理的能力等,都有着其它替代品不可比拟的优势。但是,使用 pc作为设备的上位机,一个昀大的缺点就是它体积大、不便携等,同时,随着仪器生产商为了能降低生产成本,因此,在能完成仪器整体功能的同时,极力的去寻找使仪器体积小、便携、近似 pc机功能的上位机系统。因此,基于 arm嵌入式系统应用于这样的仪器上就是个非常好的方案。

2 系统设计方案 嵌入式工控量热仪必须要在追求仪器设备体积小、便携的基础上,力求实现原来量热仪设备相应的功能,因此,得到下面几点设计方案:①使用主频尽可能高的微处理芯片,同时具有很好的内存管理功能;②对于片上资源和各种外设的接口的扩展。考虑到数据存储、内核、文件系统、图形库及应用程序在系统中所占资源,选用合适的 Flash闪存和 SDRAM;同时,与外围仪器的连接通信扩展出一个 USB Host接口、一个网口 RJ45、一个标准串口等;③为了实现人机交互和仪器的便携,系统中设计出触摸屏式高级用户交互图形操作界面;

2.1系统硬件框架图

如上图,系统上位机中使用的微处理芯片是三星公司的 arm920T S3C2410A;Flash存储器采用 Samsung公司的 K9F1208U0M Nand Flash存储器,存储容量为 64MB,这种非易失性存储器是高数据存储密度的理想解决方案,它能擦写一百多万次,具有很长的使用寿命; SDRAM存储器采用 HY57V561620CT,在此使用两块,每块大小为 32MB;为了实现人机交互,以及从系统便携等方面考虑,系统使用了触摸屏,当然还扩展出串口、网口等,以上就是整个系统上位机的硬件框架。上位机和下位机间的通信设备使用的是 EZ-USB68013,它负责从上位机接受数据和命令,并把下位机实验数据以及各种状态返回到上位机,而它在 linux下驱动编写和移植留到下面再讨论。 2.2系统上位机软件组成针对上面所讨论的系统硬件构成,以及系统所要完成的功能,下面对系统上位机的软件组成进行讨论。如下是系统上位机的软件组成:

2.2.1嵌入式操作系统设计与移植在整个系统的设计与实现中内核的配置和移植是非常重要的,本系统使用的是韩国 mizi公司免费提供的嵌入式 linux操作系统,本操作系统体积小、方便剪裁,同时它又包含了现有使用的大部分外围设备的驱动,因此,使用此操作系统可以降低开发成本、加快系统的开发。Arm-linux嵌入式操作系统的移植主要包括如下几步:①建立交叉编译环境。交叉编译环境的建立是进行 arm嵌入式项目开发的基础,它的搭建主要需要三个软件包:binuTIls、 gcc、glibc。其中 binuTIls主要用于生成一些辅助工具,如 objdump、as、ld等;gcc是用来生成交叉编译器 arm-linux-gcc;glibc主要提供用户程序所使用的一些基本的函数库。当然,交叉环境的搭建是比较复杂的,很多步骤都涉及到硬件平台的选择,因此,本系统使用的是成都博睿公司所提供的交叉编译器,而对交叉环境的具体搭建这里就不作进一步的讨论了。②修改配置文件,配置内核。修改配置文件使系统启动时自动挂载 devfs文件系统,配置内核使内核支持 yaffs文件系统。③根据系统需求添加相应的外围设备的驱动。本系统中使用了 EZ-usb68013来实现上、下位机的数据通信,那么就必须要在上位机中添加该通信设备的驱动。如下是在嵌入式 linux操作系统中 EZ-usb68013设备驱动添加的步骤:首先,通过修改内核中/driver/usb下的 usb-skelon.c文件,在 usb-skelon.c中添加 EZ-usb68013设备的 PID和 VID,并修改该目录下的 config.in和 Makefile文件,各添加一行内容,分别为:“dep_tristate ' USB 68013 driver support' CONFIG_USB_68013 $CONFIG_USB”和 “obj-$(CONFIG_USB_68013)+= usb68013.o”,这样就把 EZ-USB68013设备驱动编译进 Linux内核(当昀后系统启动后,在/dev/usb下出现 EZ-usb68013的设备节点 skel0);然后,选中内核对应的配置选项,编译后生成内核的移植镜像文件。

另外,在这里还简单介绍下系统的文件系统。本系统使用的文件系统是busybox,busybox它具备了linux中一些昀基本的指令,同时它昀主要的一个特点就是占用空间小,是 embedded文件系统中昀理想的选择。 2.2.2图形库 qte的配置和移植 Qte是荷兰 Trolletch公司的图形化界面开发工具 Qt的嵌入式版本,它通过Qt API与Linux I/O直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,它采用 framebuffer作为底层的图形接口,并使用 c++进行封装,具有良好的移植性,同时,我们可以把用 Qt的Designer开发出来的GUI应用程序,通过交叉编译后可直接移植到Qte嵌入式平台。本系统使用的是Qt-embedded-3.3.2作为系统的基础图形库,在进行图形库编译之前,为了能使移植后的图形库支持触摸屏,则需对图形库源码进行如下修改:①在源文件包的 /src/embedded下的qmouselinuxtp_qws.h中添加两行代码 #define QT_QWS_IPAQ和#define QT_QWS_IPAQ_RAW;②对 qmouselinuxtp_qws.cpp做如下的修改,即把源文件中打开的触摸屏设备节点要改成自己所用触摸屏设备节点,如本系统中改成为:/dev/touchscreen/0raw。通过如上的修改后就可以对图形库进行配置了,即如下: ./configure -embedded arm -qt-mouse-linuxtp -qt-kbd-usb,配置、编译成功后,将 /lib下的库文件移植到目标板上的 /lib目录下,这样就完成了图形库Qte及触摸屏支持的配置和移植。3 Qte平台上用户应用程序模块的实现 3.1 本系统应用程序模块分析 本系统的用户应用程序用qt跨平台语言编写,通过交叉编译后移植到目标板上,而应用程序主要包括如图3所示的几个模块:实验显示模块、 usb通信模块、仪器实验控制模块、数据库模块,另外还有数据打印模块等。

⑴实验显示模块它包括系统的主界面、实验数据输入和结果显示界面。其中主界面通过菜单控件按钮来调用其它的模块,试验数据输入界面是在仪器试验当中输入时间和试验样品的质量数等,而结果显示界面是把由 usb通信设备返送回来的下位机试验所得结果及下位机的状态显示出来。⑵仪器试验控制模块。仪器试验模块是本系统昀重要的程序模块,系统要完成的各项功能都是在此模块中来设计和实现的,在本嵌入式工控量热仪中,它具体要完成的任务是以下一些:往下位机发送命令,控制下位机试验的开始和停止;采集下位机试验温度;控制下位机内、外桶水位平衡;同时,当试验结束后,控制 usb通信设备把下位机的试验结果采集回来等。 ⑶usb通信模块。 usb通信模块在前面也已经简单的介绍过它主要的功能是负责把从上位机接受来的输入数据和控制命令发送到下位机,同时又把下位机的试验结果返送回上位机。因此为了能使数据的准确传输,在应用程序中定义了两个用以接受和传输数据的结构体 struct DOWN_DATA、UP_DATA,每个结构体是 64字节。而在程序中对 usb68013通信设备的操作是利用Linux下的设备文件的 I/O操作,打开 usb68013通信设备是: open("/dev/usb/skel0", O_RDWR | O_NOCTTY | O_NDELAY ),其中 skel0是usb68013设备在系统中的设备节点。成功打开通信设备后就可以进行上、下位机的数据通信了,即往设备上发送数据和从设备上读取数据,这分别为: write(m_hDev,(UCHAR*)writeBuffer,64)、 read(m_hDev,(UCHAR*)readBuffer,64),这样就成功的实现系统中数据的通信。⑷数据库模块。本工控量热仪由于是用来测量某种样品的发热量的,那么,通常要对此样品进行多次的试验,再来取平均值,因此,利用数据库对试验结果的保存是非常必要的。在本系统中使用的是sqlite-3.3.6这一零配置的数据库,这种数据库它主要的特点就是体积小、封装了一些基本的数据库API接口函数、操作简单、易于移植,是嵌入式系统中昀理想的数据库。

3.2 系统实现及测试通过上面的讨论,本系统的各模块都已经成功的设计出并得以实现。由于系统基于 QTE设计出图形用户界面,则提供良好的人机交互,使系统更易于操作和管理。经过试验测试,本系统上位机各模块能够很好的达到设计的目标,整个上位机系统控制下位机试验,并把结果正确显示出。如图4所示为系统图形用户界面的试验控制模块。

4 结论 本文根据需要对嵌入式工控量热仪的上位机软、硬件平台设计和构建进行了深入的讨论,并得出了方案的详细实现过程,昀终还给出了系统试验测试框图,从而验证了嵌入式工控量热仪的可行性、实用性。本系统的创新点有以下几点:①系统上位机利用arm嵌入式平台来代替原来的pc机,这样使成本降低了,昀重要就是嵌入式平台相比于 pc机体积更小,这样设备就越便携、实用;②系统使用QT跨平台语言来编写系统的应用程序,这样程序具有良好的移植性,同时,系统设计开发出用户界面,并用触摸屏代替传统的鼠标和键盘,具有友好的人机交互。

技术专区 Alexa语音服务软件扩展STM32Cube结合DNN API驱动未来神经网络应用的解决方案针对于高端移动通信和汽车市场的四集群设计一款基于帧捕捉的开源图形调试器应用设计即将成为标准配置的最新安全技术:后视摄像系统
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。