1、基于 ARM9 和 Linux 的电磁流量计设计基于 ARM9 和 Linux 的电磁流量计设计更新于 2011-01-31 13:41:28 文章出处: 与非网 关键字: Atmel AT91RM9200 Linux 电磁流量计 0 引 言电磁流量计是一种测量导电介质体积流量的计量仪表,具有测量精度高、稳定性好、可靠性高等特点。电磁流量计除可测量一般导电液体的流量外,还可测量液固两相液体、高粘度液体及盐类、强酸、强碱液体的体积流量,可广泛应用于水泥、化工、轻纺、冶金、矿山、造纸、医药、给排水、食品饮料、环保等工业技术部门,其产品的性能、质量和可靠性对上述企业的经济效益有着重要的影响。嵌入式系
2、统( Embedded Sy stem)是以应用为中心和以计算机技术为基础的,并且软硬件是可以裁减的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。它是面向用户、面向产品、面向应用的专用系统,与通用的计算机系统相比具有如下特点:嵌入式 CPU 通常具有低功耗、体积小、集成度高、成本低等优点,能够把通用的 CPU 中许多由板卡完成的功能集成到芯片内部;嵌入式系统的开发和应用不容易在市场上形成垄断; 嵌入式系统产品一旦进入市场,一般具有较长的生命周期;嵌入式系统的硬件和软件都必须高效率地设计; 嵌入式系统必须有一套交叉开发工具和环境才能进行开发。检测仪表是实现参数
3、检测过程的重要一环,一般都具有变换、测量装置和显示装置三部分。针对于检测仪表的要求,合理剪裁软硬件实现高集成度、小型化,使得检测仪表不仅具有传感测量、补偿计算、显示的功能,还具有更加强大的信息处理、比较推理、故障诊断、自学习自适应等智能化功能。应用嵌入式系统的网络接入技术,还能使仪表完成远程维护、远程控制、故障报警、信息发布与共享等以前无法实现的功能。嵌入式系统技术的高度发展,给检测与仪表技术带来了前所未有的发展空间和机遇,为检测仪表的智能化、网络化和微型化铺平了道路,为仪表行业的发展带来了广阔的前景。传统电磁流量计一般采用 8 位或 16 位的单片机,由于单片机性能较弱和外围接口少,无法完成
4、复杂算法或者多项并行任务;在显示方式上一般采用 LED 或段式 LCD,只能显示数字、字母、汉字和一些粗糙的图案;在数据存储方面一般采用小容量的 EPROM 存储器,流量数据存储一般以二进制方式存储,不具有通用性;在通信方式上,一般采用 RS 232 或 RS 485,其开放性不高,组网距离短。为了提高性能和功能,有些电磁流量计甚至采用了多个单片机协同工作的方式,增加了电磁流量计设计与实现的复杂度。因此有必要采用高性能的 32 位处理器来设计电磁流量计。基于 32 位 ARM 处理器和嵌入式 Linux 操作系统构建嵌入式系统开发平台,并将其应用于电磁流量计的设计和开发中,将有利于提高高端电磁
5、流量计产品的质量,更好地满足用户需求,而且对我国电磁流量计检测技术水平的发展也具有重要的现实意义。由于嵌入式系统的设计与开发的复杂性和高难度,本文所构建的高性能 32 位嵌入式系统开发平台,也可推广应用于其他高端仪器仪表的设计中,缩短新产品的设计开发周期,增强企业对客户需求的响应能力和产品的更新换代能力。1 总体设计1. 1 ARM 处理器的选择结合电磁流量计的应用背景,选择 32 位的嵌入式 ARM 处理器。根据 ARM 处理器的应用选型,并考虑到 ARM 处理器价格、性能、集成度和功能、设计支持及开发工具的支持等因素,以及应用中对于以太网和 USB 接口功能的要求,选择了 Atmel 公司
6、的 AT91RM9200 工业级芯片。1. 2 嵌入式操作系统的选择对于一种嵌入式操作系统通常有这样一些*估选择标准:实用性、需要消耗的资源数( 包括 SDRAM,FLASH MEMORY 等) 、支持软件的丰富程度、可靠性以及其执行性能等。Linux 已经被移植到了很多平台,包括 ARM,MIPS,SH3,Alpha,X86,Pow erPC 等,由成千上万的爱好者开发的应用软件、协议栈以及丰富的设备驱动程序; 更重要的是这些驱动很多都以 OpenSour ce 的形式发布出来,使得大家都从中受益。1. 3 总体设计框架通过对电磁流量计的方案选择,并综合国内外电磁流量仪表产品的智能化、集成化
7、、网络化的发展趋势,系统总体结构如图 1 所示。系统主要由硬件子系统和软件子系统组成。图 1 系统总体框架电磁流量计的硬件子系统主要由电源模块、信号输入模块、CPU 核心模块、励磁输出模块、人机交互模块、通信接口模块和调试接口模块组成。各模块的功能描述如下:电源模块:为整个硬件子系统提供稳定可靠的电源。CPU 核心模块:由 ARM 处理器、SDRAM,FLASH 以及辅助电路构成最小系统,同时也是运行嵌入式 Linux 的基本硬件平台。信号输入模块:将传感器输出的小电压或电流信号进行放大、滤波以及转换为数字量,以便进行软件处理。励磁输出模块:通过 D/ A 转换器输出低频三值矩形方波,并通过功
8、率放大输出给传感器。人机交互模块:由键盘接口和 TFT 液晶显示接口组成,通过键盘和菜单界面进行系统参数设定,并由液晶屏实时显示瞬时流量、累积流量和流量曲线等。通信接口模块:包括以太网接口、U SB 接口以及 RS 232 接口,完成数据通讯和流量传输功能。调试接口模块:由 JT AG 调试接口和 DBCOM 调试串口组成。软件子系统由引导加载程序( Boot Loader) 、嵌入式 Linux 操作系统和应用软件组成。嵌入式 Linux 的启动需要引导加载程序来辅助完成,Linux、内核主要由进程管理、内存管理、文件系统管理、设备控制及网络协议等几个部分,为应用软件提供了运行环境。图中的硬
9、件设备控制提供了硬件平台中相关的设备驱动程序,实现了操作系统与硬件之间的信息交互和控制,而系统函数调用为Linux 内核和应用软件之间的信息交互提供了接口。2 硬件系统设计基于低频三值矩形波励磁的电磁流量计的硬件结构图如图 2 所示。其中,CPU 核心模块是系统软件的运行基础,FLASH 存储器用于存储可执行程序的二进制映像文件,供系统启动时加载到 SDRAM 内存空间运行;由于硬件系统的复杂性,调试模块加强了硬件系统的调试功能; 流量传感器由一对励磁线圈和一对对称分布的检测电极构成。图 2 系统硬件结构图ARM9 处理器通过与其相连的 D/ A 芯片产生低频三值矩形波,励磁线圈接受该低频三值
10、矩形波经功率放大后的励磁信号而产生感应磁场,在电极上产生因流体切割磁力线而产生的感应电动势(即测量信号) ,并将之送入信号输入模块进行处理,信号输入模块对流量传感器输入的信号进行放大、滤波及 A/ D 采样后输入 ARM9 处理器。系统由 TFT 液晶显示屏提供人性化的菜单显示操作界面,结合键盘进行人机交互; 同时具有以太网、USB 和 RS 232 通信接口可输出瞬时流量、累积流量和系统参数。3 软件系统设计一个嵌入式 Linux 系统从软件的角度来看,通常可以分为四个层次,如图 3 所示。系统软件总体结构图 3 系统软件总体结构引导加载程序:包括固化在固件中的 Boo t 代码( 可选)
11、,和 Boo t Loader 两大部分。Linux 内核:特定于嵌入式硬件平台的定制内核以及内核的启动参数。文件系统:包括根文件系统和建立于 FLASH 内存设备之上文件系统,通常采用 ramdisk 作为根文件系统。用户应用程序:特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。其中,引导加载程序是嵌入式系统软件开发的第一个环节,它是操作系统和硬件的枢纽,为操作系统内核的启动提供了必要的条件和参数;引导加载程序的工作是初始化内存以及必要的硬件设备,调用内核加载器。从 FLASH 中加载操作系统映像到 SDRAM 中,并把控制权交给 Linux ; 由
12、Linux 对硬件系统做进一步的初始化并控制应用程序。基于系统软件结构,在系统的启动过程中有 3 个主要软件组件参与其中:引导加载程序、Linux 内核和 Init 进程。其启动过程如下:( 1) 系统在上电或 Reset 之后,A T91RM9200 开始执行存放在 NOR FLASH( 系统将 0x10000000 映射到 0x 00000000,即 ARM 的复位向量) 中的引导加载程序。( 2) 引导加载程序初始化 CPU 和内存控制器,对系统外设做最小程度的初始化,如初始化 LED 和串口等,检测内存并汇报启动中的诊断信息,然后将 Linux 内核映像解压到 SDRAM 中的某个位置
13、并跳转到这个地址,把控制权交给 Linux 内核。( 3) Linux 的内核接管执行权后完成一系列的系统初始化和设置,包括设置中断向量,启动内存管理,初始化各个硬件设备,初始化网络协议等,最后建立根文件系统并生成系统进程之父 Init 进程。( 4) Init 进程负责启动所有必要的服务和用户应用程序,并进入嵌入式系统的工作状态。在嵌入式 Linux 系统中,必须有固态存储设备来存储可执行的代码,本系统中采用了 FLASH 存储器。在该系统中,系统的存储设备空间分配结构如表 1 所示。表 1 系统存储空间分配结构系统存储空间分配结构电磁流量计的应用软件设计是根据系统需求,以嵌入式 Linux
14、 内核为基础,通过 Linux 内核的系统调用接口函数并按照模块化结构实现的。该系统的最大特色在于提供了人性化的彩色液晶显示操作界面和以太网功能,因此在应用软件中是基于 MiniGU 1 进行设计的,同时基于 Modbus 协议实现以太网功能。电磁流量计的应用软件整体构架需要考虑多任务和实时性两个方面问题。首先是 A/ D 采样和励磁信号输出必须要保证实时性和同步性,这一点可通过 AT91RM9200 的两个定时器来保证,其中一个定时器用于控制 D/ A 输出三值矩形方波,另一个定时器用于控制 A/ D 采样; 考虑到硬件电路的干扰,在应用中首先启动 D/ A 定时器,然后延迟 1/ 8 励磁
15、周期再启动 A/ D 定时器。对于嵌入式Linux 下应用软件的多任务,可以采用多进程或多线程的方式来实现。应用软件的主程序流程图如图 4 所示。应用软件的主程序流程图图 4 应用软件的主程序流程图4 系统测试由于采用了嵌入式系统的新技术,特别是引入了 32 位高性能ARM 处理器和嵌入式 Linux 操作系统,系统除了具备电磁流量计的基本功能外,还具有更强大的功能如流量数据文件存储、TFT 彩屏显示以及以太网通讯等传统仪表无法完成的功能。它可以显示实时流量曲线和年、月、日、时、分、秒的实时时间; 采用 FLASH 存储器,测量和运行数据存储保护安全可靠;使用 Modbus 通讯协议和 TCP
16、/ IP 协议,提高系统的网络化程度。分别对系统的图形用户显示操作界面、大容量的数据存储以及基于 Modbus/ TCP 协议网络数据传输等部分进行功能测试。对嵌入式电磁流量计进行了系统测试和实验。结果表明嵌入式电磁流量计不仅具有传统电磁流量计的功能,而且具有流量曲线显示的 TFT 彩屏显示操作界面、流量数据文件断电存储和管理以及基于 Internet 的远程数据采集和远程控制功能。5 结 语仪器仪表的发展建立在新型检测系统软硬件平台性能提高基础之上。在传统检领域应用很广的 8 位单片机系统由于其性能和资源的局限性,只能完成仪器仪表的基本功能。随着微电子技术的发展及集成电路制造工艺的大幅提高,
17、以高性能、低功耗、低成本等诸多优点的 32 位 ARM 处理器的出现及其在仪器仪表中的应用,使得仪器仪表更具智能化、人性化和网络化。流量检测仪表的显示方式、通讯方式和数据存储是仪表的重要组成部分。传统电磁流量计在显示方式上一般采用 LED 或段式LCD,只能显示数字、字母、汉字和一些粗糙的图案; 在数据存储方面,信息存储一般以二进制方式存储,不具有通用性且存储容量小;在通讯方式上,一般采用 RS 232 或 RS 485,其开放性不高。为了解决了上述不足,本文采用 32 位的 ARM 处理器和嵌入式Linux 操作系统研制出了具有信息化、图形化和网络化的电磁流量计。它采用 T FT 彩色液晶屏
18、显示方式,不仅可以显示流量数据还可以显示流量曲线,提高了显示的质量和内容; 通过 JFFS2 文件系统采用文件的方式进行数据存储,且存储容量可达 1 MB。同时可以使用 U 盘导出数据文件,增强了用户的信息存储和管理功能; 采用以 T CP/ IP 协议为基础的工业以太网通讯方式,使得电磁流量计成为 Internet 网络中的独立节点,可实现基于Internet 的远程数据采集和远程控制。上一篇 下一篇 相关文章 AT91RM9200 开发笔记(7):machine ID问题解决 AT91RM9200 开发笔记(9):为 Linux-2.6.20 添加 MTD驱动 基于 AT91RM9200 的嵌入式 ARM 开发平台的实现 基于 ATMEL AT91RM9200 的嵌入式 Linux 移植笔记 AT91RM9200 开发笔记(1):准备工作 基于 AT91RM9200 的 USB 主机端 Linux 驱动 AT91RM9200开发笔记(3):U-boot-1.3.0 移植成功 基于 ARM9 的嵌入式 LINUX地震数据采集系统设计