微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM的电磁流量计设计

基于ARM的电磁流量计设计

时间:01-24 来源:互联网 点击:


电磁流量计的硬件子系统主要由电源模块、信号输入模块、CPU核心模块、励磁输出模块、人机交互模块、通信接口模块和调试接口模块组成。各模块的功能描述如下:
电源模块:为整个硬件子系统提供稳定可靠的电源。
CPU核心模块:由ARM处理器、SDRAM, FLASH以及辅助电路构成最小系统,同时也是运行嵌入式Linux的基本硬件平台。
信号输入模块:将传感器输出的小电压或电流信号进行放大、滤波以及转换为数字量,以便进行软件处理。
励磁输出模块:通过D/A转换器输出低频三值矩形方波,并通过功率放大输出给传感器。
人机交互模块:由键盘接口和TFT液晶显示接口组成,通过键盘和菜单界面进行系统参数设定,并由液晶屏实时显示瞬时流量、累积流量和流量曲线等。
通信接口模块:包括以太网接口、USB接口以及 RS232接口,完成数据通讯和流量传输功能。
调试接口模块:由JTAG调试接口和DBCOM调试串口组成。
软件子系统由引导加载程序(Boot Loader)、嵌入式Linux操作系统和应用软件组成。嵌入式Linux的启动需要引导加载程序来辅助完成,Linux、内核主要由进程管理、内存管理、文件系统管理、设备控制及网络协议等几个部分,为应用软件提供了运行环境。图中的硬件设备控制提供了硬件平台中相关的设备驱动程序,实现了操作系统与硬件之间的信息交互和控制,而系统函数调用为Linux内核和应用软件之间的信息交互提供了接口。

2 硬件系统设计
基于低频三值矩形波励磁的电磁流量计的硬件结构图如图2所示。其中,CPU核心模块是系统软件的运行基础,FLASH存储器用于存储可执行程序的二进制映像文件,供系统启动时加载到SDRAM内存空间运行;由于硬件系统的复杂性,调试模块加强了硬件系统的调试功能;流量传感器由一对励磁线圈和一对对称分布的检测电极构成。


ARM9处理器通过与其相连的D/A芯片产生低频三值矩形波,励磁线圈接受该低频三值矩形波经功率放大后的励磁信号而产生感应磁场,在电极上产生因流体切割磁力线而产生的感应电动势(即测量信号),并将之送人信号输入模块进行处理,信号输入模块对流量传感器输入的信号进行放大、滤波及A/D采样后输入ARM9处理器。系统由TFT液晶显示屏提供人性化的菜单显示操作界面,结合键盘进行人机交互;同时具有以太网、USB和RS 232通信接口可输出瞬时流量、累积流量和系统参数。

3 软件系统设计
一个嵌入式Linux系统从软件的角度来看,通常可以分为四个层次,如图3所示。


引导加载程序:包括固化在固件中的Boot代码(可选),和Boot Loader两大部分。
Linux内核:特定于嵌入式硬件平台的定制内核以及内核的启动参数。
文件系统:包括根文件系统和建立于FLASH内存设备之上文件系统,通常采用ramdisk作为根文件系统。
用户应用程序:特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。
其中,引导加载程序是嵌入式系统软件开发的第一个环节,它是操作系统和硬件的枢纽,为操作系统内核的启动提供了必要的条件和参数;引导加载程序的工作是初始化内存以及必要的硬件设备,调用内核加载器。从FLASH中加载操作系统映像到SDRAM中,并把控制权交给Li-nux;由Linux对硬件系统做进一步的初始化并控制应用程序。
基于系统软件结构,在系统的启动过程中有3个主要软件组件参与其中:引导加载程序、Linux内核和Init进程。其启动过程如下:
(1)系统在上电或Reset之后,AT91RM9200开始执行存放在NOR FLASH(系统将0x10000000映射到0x00000000,即ARM的复位向量)中的引导加载程序。
(2)引导加载程序初始化CPU和内存控制器,对系统外设做最小程度的初始化,如初始化LED和串口等,检测内存并汇报启动中的诊断信息,然后将Linux内核映像解压到SDRAM中的某个位置并跳转到这个地址,把控制权交给Linux内核。
(3)Linux的内核接管执行权后完成一系列的系统初始化和设置,包括设置中断向量,启动内存管理,初始化各个硬件设备,初始化网络协议等,最后建立根文件系统并生成系统进程之父Init进程。
(4)Init进程负责启动所有必要的服务和用户应用程序,并进入嵌入式系统的工作状态。
在嵌入式Linux系统中,必须有固态存储设备来存储可执行的代码,本系统中采用了FLASH存储器。
在该系统中,系统的存储设备空间分配结构如表1所示。


电磁流量计的应用软件设计是根据系统需求,以嵌入式Linux内核为基础,通过Linux内核的系统调用接口函数并按照模块化结构实现的。该系统的最大特色在于提供了人性化的彩色液晶显示操作界面和以太网功能,因此在应用软件中是基于MiniGU1进行设计的,同时基于Modbus协议实现以太网功能。
电磁流量计的应用软件整体构架需要考虑多任务和实时性两个方面问题。首先是A/D采样和励磁信号输出必须要保证实时性和同步性,这一点可通过AT91RM9200的两个定时器来保证,其中一个定时器用于控制D/A输出三值矩形方波,另一个定时器用于控制A/D采样;考虑到硬件电路的干扰,在应用中首先启动D/A定时器,然后延迟1/8励磁周期再启动A/D定时器。对于嵌入式Linux下应用软件的多任务,可以采用多进程或多线程的方式来实现。应用软件的主程序流程图如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top