工控网首页
>

应用设计

>

一种基于嵌入式系统的虚拟仪器的研究与设计 (2)

一种基于嵌入式系统的虚拟仪器的研究与设计 (2)

2010/4/2 9:28:00
3 软件系统设计

  我们采用嵌入式linux作为操作系统,在linux平台下编写仪器的驱动程序。利用Tiny X 和GTK+作为图形界面解决方案实现仪器软面板。系统的软件结构如图2所示:

系统软件件组成图

  图2. 系统软件件组成图

  3.1. 嵌入式linux系统

  采用开源的linux系统,并通过编译选项裁减不需要的功能模块,得到大小为500K左右的内核模块。用busybox取代shell,在系统中加入glibc.o等库构建一个4M的Linux运行系统。关于嵌入式Linux系统的构建文献【1】有详细的介绍和指导。

  3.2. linux下的io编程

  仪器卡的驱动程序采用端口读写来实现。Linux下对端口的操作方法在usr/include/asm/io.h中。由于端口读写函数是一些inline宏,所以在编写端口读写程序时只需要加入:#include 不需要包含任何附加的库文件。另外由于gcc编译器的一个限制,在编写包含端口读写代码的程序时,要么打开编译器优化选项(使用gcc −O1 或更高选项),要么在#include 之前加上:#define extern static

  在读写端口之前,必须首先通过ioperm()函数取得对该端口读写的权限。该函数的使用如下:

  ioperm(from, num, turn_on)

  如果turn_on=1,则表示要获取从from开始的共num个端口的读写权限。如ioperm(0x300, 5, 1)就表示获取从端口0x300到0x304共5个端口的读写权。最后一个参数turn_on表示是否获取读写权(turn_on=1表示获取,turn_on=0表示释放)。一般在程序的硬件初始化阶段调用ioperm()函数。

  ioperm()函数需要以root身份运行或使用seuid赋予该程序root权限。

  端口的读取使用inb(port)和inw(port)函数来完成,其中inb(port)读取8位端口,inw(port) 读取16位端口。

  对8位和16位端口的写操作分别用函数outb(value,port)和outw(value,port)来完成。其中各函数的第一个参数表示要写的数值,第二个参数表示端口地址。

  宏inb_p(),outb_p(),inw_p()和outw_p()的作用与对应的上述四个端口读写函数一样,只是在端口操作后附加一定时间的延时以保证读写可靠。可以通过在#include前加上:#define REALLY_SLOW_IO获得约4微秒的延时。

  3.3. 基于TinyX和Gtk+的软面板编程

  仪器软面板的设计涉及linux下GUI的选择和编程,考虑到XWindows的成熟性和与桌面系统的一致性,我们选用精简的XWindows系统TinyX作为底层GUI解决方案。使用Gtk+1.2库作为控件集来开发仪器软面板程序。

  基于TinyX和Gtk+库的图形界面开发方案使得软面板的开发与桌面环境下基于Gnome的开发比较接近,很多的桌面环境下的linux工具可以直接使用。

  Gtk+图形库是GNOME桌面系统的底层基础,它包含比较完整的GUI控件集合(GtkWidgets)。基于面向对象的方法,GTK+用C语言实现了一套对象系统和消息及回调机制,并将整个图形控件集纳于对象框架中,使得控件集的扩充比较方便。

  针对虚拟仪器领域的应用需求,可以构建常见的GUI单元的控件集。我们以GtkWidgets的形式开发了示波器,信号源等仪器的面板控件和一些关键的GUI单元控件。这些都有利于用户的二次开发和软件单元的重用。

4 结论

  基于嵌入式主板和嵌入式软件环境,我们给出一个构造虚拟仪器的通用解决方案。同时,通过构建基于TinyX和Gtk+库的GUI环境,再加上我们自主开发的一系列面板单元控件,我们提供了对虚拟仪器软面板开发的支持。

  基于以上的方案,我们开发了集示波器、万用表和微波信号源等仪器功能于一体的雷达故障检测仪。如图3所示:

基于本文方案实现的一个多功能虚拟仪器

  图3. 基于本文方案实现的一个多功能虚拟仪器

  部队野战环境下的实践表明该系统机械结构牢固、可靠性高,携带使用方便。

  参考文献:

  [1] 邹思轶. 嵌入式linux设计与应用:清华大学出版社,2002.01
  [2] Kurt Wall. GNU/Linux编程指南:清华大学出版社,2002.06
  [3] Riku Saikkonen. Linux I/O port programming mini−HOWTO:

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机