基于ARM和Linux通用工控平台设计与实现

发布者:stampie最新更新时间:2012-04-10 来源: 21IC中国电子网 关键字:ARM  Linux  工控平台 手机看文章 扫描二维码
随时随地手机看文章

随着工控技术的进步和市场竞争的加剧,开发人员通常需要在尽可能短的时间内设计出满足用户要求的测控系统。本文针对嵌入式系统的特点,以高性价比的32位ARM嵌入式处理器AT91RM9200为硬件核心,搭建了通用工控硬件平台,在此平台上移植嵌入式Linux操作系统和图形界面开发环境MiniGUI。以此通用工控平台为基础,可以方便地构建工程应用所需的绝大部分自动测控系统。其应用无论是在性能还是在成本方面都极具竞争力,这预示着本平台具有较好的应用前景。

本工控平台在硬件上,选择ATMEL公司的AT91RM9200微处理器,并对其最小系统及外围部件进行设计,以适应当前工控现场更加丰富的技术要求,并结合工业测控Modbus协议,扩展多种通信接口,满足用户的通信需求。与此同时,选择嵌入式Linux操作系统为测控软件的开发提供了性能优良软件平台。

通用工控硬件平台设计

1 AT91RM9200微处理器最小系统构成

最小系统是保证微处理器可靠工作所必需的基本电路。基于AT91RM9200微处理器的最小嵌入式系统由微处理器AT91RM9200、电源电路、晶体振荡器电路、复位电路、JTAG接口、存储器模块、串行调试接口等电路组成。至此就具备了设计开发一款基于ARM微处理器的通用工控平台的硬件基础。

基于ARM和Linux通用工控平台设计与实现

2 硬件平台外围接口电路

利用AT91RM9200丰富的内置外设,可以方便的扩展外围接口,如表2所示。

基于ARM和Linux通用工控平台设计与实现

3 硬件平台用户接口

系统对外提供一个2*32针的标准3U插槽,共64针。3U插槽专门设计用于便携式应用,特别适合作为一体化的移动控制器用于工业测控、产品线、运输系统和交通控制系统的应用。[page]

4 硬件平台结构

根据上述对AT91RM9200最小系统及各外围部件的设计,最终构成以AT91RM9200微处理器为硬件核心的通用工控硬件平台,如图1所示。

基于ARM和Linux通用工控平台设计与实现
图1 通用工控平台硬件结构

通用工控软件平台设计

1 基于ARM硬件平台搭建Linux操作系统

ARM-Linux开发环境搭建

建立以嵌入式Linux为操作系统的工控平台的开发环境和在Windows下安装虚拟机Linux环境的软件的开发环境,嵌入式Linux内核编译、应用程序编译都在该虚拟机完成。为了提高开发效率,以虚拟机中安装的Linux为服务器,通过Windows客户端使用Telnet或SSH登录服务器,服务器可自由在客户端中下载必需的开发工具及软件,调试应用程序时,可以先在PC的Linux环境下进行模拟,然后通过DEBUG调试串口下载在目标平台下。这种开发环境的优点是只需要一台计算机就可以真实的模拟Linux,具体过程如图2所示。

基于ARM和Linux通用工控平台设计与实现
图2 开发环境

交叉编译

交叉编译就是在一个平台上生成另一个平台上的可执行代码。所谓平台,实际上包含两个概念:体系结构及操作系统。根据上述建立的开发环境,目标平台是基于ARM体系结构的运行嵌入式Linux操作系统,而开发编译环境是基于PC中虚拟机上的Linux操作系统。若在目标平台上运行程序,则须在PC开发环境下对代码进行交叉编译以适应目标平台。[page]

依据环境变量PREFIX,将编译好的工具链安装到指定文件夹就可以使用了。

例如,修改arm-Linux-gcc-2.95.3的环境变量为:

PATH=$PATH:$HOME/bin:$PREFIX/bin:/usr/local/arm/2.95.3/bin:/sbin:/usr/sbin:/

usr/local/sbin,同时编写hello.c程序进行验证
     $arm-Linux-gcc hello.c -o hello-arm
     $file hello-arm
     hello-arm: ELF 32-bit LSB executable, ARM, version1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs),not stripped

这表明生成的hello-arm可以在ARM平台上运行,也证明交叉编译工具链是有效并且可用的。

Linux内核编译下载

具体步骤如下:

(1) 解压Linux-2.6.21-2009-04 -10.bz2:tar  xjvf Linux-2.6.21 -2009-04-10.bz2;
     (2)  进入Linux-2.6.21目录,内核编译:make uImage;
     (3) 编译完成后,通过SSH把uImage文件拷贝到Windows环境下;
     (4)  配置U-Boot环境变量;
     (5)  配置tftp服务器:运行Linux系统下的tftp服务器,复制Linux内核的uImage文件到tftp下载工作目录下,启动tftp服务,确保PC和AT91RM9200接入同一网段;
     (6) 下载内核映像文件,并在U-Boot提示符下擦除Flash;
     (7) 下载内核映像文件到Flash中;

Linux文件系统

软件平台使用cramfs文件系统,其特点是:系统访问某个位置的数据时,立即计算出该数据在cramfs中的位置,解压到RAM中,然后通过内存访问来获取数据,cramfs中的解压缩之后的内存中的数据存放位置都是由cramfs文件系统本身来管理,用户并不需要实现过程,因此增加了透明度,给开发人员节约了时间。

2 Linux操作系统下设备驱动开发

Linux上的设备驱动非常丰富,支持各种主流硬件设备和最新的硬件技术。设备驱动程序在Linux内核中,是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐藏设备的工作细节。通过一组标准化的调用,把这些调用映射到设备特定的操作上,则是设备驱动程序的任务。而在Linux系统里,每一个设备都被看作一个文件,打开的设备在内核中由一个File结构标志,内核使用File_operations结构访问驱动程序的函数。每个设备与一组标准函数集关联。

3 Linux操作系统下应用程序开发

采取在PC上编译应用程序,运行测试通过后,再通过网络或串口等方法下载到目标平台/usr目录下,对于较小的程序,使用串口下载比较方便,具体的步骤为

(1)  PC模拟环境下开发程序,交叉编译;
     (2)  待ARM平台下Linux正常运行后,进入usr目录,然后选择下载的程序;
     (3)  下载完成后,chmod +x filenam修改文件属性为可执行命令;
     (4)  执行刚下载的文件命令为./filename。

通用工控平台人机交互通信机制实现

嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人机交互接口。新一代嵌入式GUI的主要特征有:以用户为中心、多通道、智能化、高带宽。嵌入式Linux 系统中,几乎所有的GUI 都建立在FrameBuffer设备上。

MiniGUI 是一个根据嵌入式系统应用特点量身定做的完整的图形支持系统。将现代窗口和图形技术带入到嵌入式设备,是一个非常适合于嵌入式设备的高效、可靠、可定制、小巧灵活的图形用户界面支持系统,主要优点可总结为支持多种嵌入式操作系统,具备优秀的可移植性;可伸缩的系统架构,易于扩展;功能丰富,可灵活剪裁;得到小体积高性能间的最佳平衡且具有广泛的应用领域。

基于ARM和Linux通用工控平台设计与实现

1 移植MiniGUI前准备

MiniGUI 1.3.3是MiniGUI的开源版本,并且资源丰富,性能稳定,因此选用MiniGUI 1.3.3作为GUI的开发环境。进行MiniGUI移植需要准备表3所列的文件,它们可在互联网上获得。[page]

2 PC模拟器开发环境搭建

建立自己的开发目录,解压文件libminigui-1.3.3.tar.gz和minigui-res-1.3.3.tar.gz;编译安装MiniGUI运行所需库文件libminigui;安装资源文件minigui-res-1.3.3;修改/etc/ld.so.conf 文件,加入一行/usr/local/lib,然后执行[root]# ldconfig 按照硬件平台配置与开发环境的设置修改minigui配置文件,包括修改路径,屏幕分辨率等。

PC模拟器开发环境搭建完毕后,就可在 PC上开发应用程序,在 qvfb中执行,验证程序的正确后,就可以进行交叉编译下载运行。

3 交叉编译Minigui1.3.3

解压arm-Linux-2.95.3.bz2文件安装交叉编译工具?cross-2.95.3,安装之后修改.bashrc脚本,设置环境变量:PATH="$PATH:/sbin:/usr/local/arm/2.95.3/bin:/usr/local/bin:/usr/local"。

接下来依次安装 zlib库,png库、libttf库,它们的作用分别是:其他的库的编译基础、显示PNG图形、显示文字。完成以上附加库的交叉编译工作后就可以编译libminigui了。把/usr/local/arm/2.95.3/arm-Linux/lib中相应的库拷到目标板/usr/lib目录下,拷贝时先对库文件执行arm-Linux-strip命令,去除文件中的调试信息。同时把资源文件复制到目标平台的/usr/local/lib目录下。这样就完成了交叉编译工作,可以将PC上调试好的应用程序下载到目标硬件平台下进行应用了。

通用工控平台人机界面开发

1 人机交互界面需求分析及总体设计

通用工控平台通信人机交互界面是集功能演示、信息采集、设备状态、通信交互等功能于一身的人机交互平台,可以高效、直观的显示通用工控平台的基本信息,同时有效的指导用户的操作,提高使用效率,是用户和通用工控平台交互的主要方式。

该人机交互界面显示器选用PHILIPS公司的14英寸彩色显示屏,软件运行环境选用嵌入式操作系统Linux 2.6.21和GUI开发环境MiniGUI 1.3.3构成,整个软件的设计过程需要完成以下功能:

(1)  实时显示该平台具体信息,及本网内在线的其他工控设备的信息;
     (2)  以该平台为控制器实现对本网内在线的其他常见设备的多线程信息采集与控制;
     (3)  以UDP及RS485两种通信方式实时控制工控网络内部;
     (4)  对工控设备掉线自动断开连接,防止用户误操作;

通用工控平台通信人机交互界面主要是针对UDP和RS485两种组网方式基于Modbus协议完成工控系统中功能演示、信息采集、设备状态、通信交互的功能,设计上要求简单实用,操作方便,而复杂的界面会带来不必要的开销并影响性能。根据需求分析设定人机交互界面整体设计方案及效果图如图3、图4所示。

基于ARM和Linux通用工控平台设计与实现
图3 人机交互界面整体设计方案

基于ARM和Linux通用工控平台设计与实现
图4 总体效果图[page]

2 界面设计流程

利用MiniGUI进行界面设计流程如图5所示。

基于ARM和Linux通用工控平台设计与实现
图5 界面设计流程

基于工业测控Modbuss协议的通信实现方案

一个好的工控平台必须具备高效通信的功能,才能跟上工业发展的要求。本文所设计的通用工控平台,可以作为控制中心对通信网络内的其他设备进行数据采集和控制,包括工控现场典型意义上的数模转换设备,模数转换设备,数字量设备等,随时掌握各个工作现场的情况。由于Modbus协议是工业测控领域的标准通信协议,协议简单,应用广泛,因此本平台通信软件的设计就采用Modbus协议。

工业测控领域常见的组网方式主要有UDP方式和RS485方式,分别以自身独特的优势在工业组网占据着一定地位。为实现工控平台通用性的设计目标,本平台将两种组网方式融合在通信人机交互界面中,图6为本平台通信的拓扑结构图。

基于ARM和Linux通用工控平台设计与实现
图6 通信拓扑结构

结语

在基于ARM和Linux的通用工控平台的研制过程中,硬件平台选择合适的ARM微处理器AT91RM9200,并对其外围部件进行扩展,以适应当前工控现场更加丰富的技术要求,并结合现场总线技术,扩展多种通信接口,满足用户的通信需求;软件平台采用嵌入式领域应用最广的Linux为操作系统,同时构建交叉编译环境,并充分利用开源软件,基于图形界面开发的MiniGUI,针对工控领域的总线协议Modbus设计出基于UDP和RS485两种通信结构的工控人机交互界面,实现了以网络沟通能力强、接口丰富为技术指标的基于ARM和Linux的通用工控平台。

本通用工控平台的主要特色有:

(1)硬件接口丰富,适应工业测控领域各种需求;
(2)使用3U插槽,增强通用性及扩展性;
(3)基于Linux操作系统及MiniGUI图形界面开发环境,人机交互界面友好便捷;
(4)采用工业测控Modbus通信协议,基于串行RS485及网络UDP构建通信拓扑结构,应用范围广泛、性能可靠、实时性高。

关键字:ARM  Linux  工控平台 引用地址:基于ARM和Linux通用工控平台设计与实现

上一篇:基于ARM9的数控铣床系统设计方案
下一篇:基于ARM核的GPS接收机的设计与实现

推荐阅读最新更新时间:2024-03-16 12:57

SAM L21微控制器:ARM架构,5种不同模式
  艾特梅尔是美国加州圣何塞的微控制器厂商。近日,该公司展示了一种全新的产品,这款基于ARM架构的微控制器具备极低功耗,可望极大地延长小型低功耗设备的续航时间。该产品属于全新的SAM L21 32位ARM处理器系列,其处于活动状态时,每兆赫处理速度所需功耗小于35微安,而在深度睡眠模式下,其功耗更是降至200毫微安以下。   该芯片功耗如此之低,以至于仅靠捕获来自身体的能量即可为其供电。而在今年早些时候举办的CES上,艾特梅尔低功耗产品市场经理安德里亚斯·依兰(Andreas Eieland)就曾对此进行过演示。依据依兰的说法,大部分现存的低功耗微控制器单元每兆赫工作速率下所需功耗介于120至160微安之间。而根据嵌入式微处理
[单片机]
SAM L21微控制器:<font color='red'>ARM</font>架构,5种不同模式
ARM研发超低电压处理器——物联网又近了一步
当高通、英伟达、三星和苹果都争相推出更强大的移动处理器时,ARM却把焦点转向了别处——研发超低电压处理器。 经过数年的研究和多种内部设计后,ARM正在开发一款新的超低电压微控制器核心,相比于现在的移动处理器它可谓是相当慢。 低电压 低性能 低电压芯片并不是什么新鲜事,有几家公司已经开发了低于2伏的微控制器芯片,不过为了更好地利用微电源,ARM把处理器电压要求降低到晶体管可以开关的程度。但超低电压带来的是超低性能。 处理器核心将运行在传统晶体管的最低电压水平,这意味着运行电压仅有0.3-0.6伏,而频率将低至kHz级别。 这种处理器不会用到智能手机上,而很可能用在微电源通讯设备和物联网上。它将用来处理和
[物联网]
<font color='red'>ARM</font>研发超低电压处理器——物联网又近了一步
ARM人工智能生态联盟落地上海,务虚还是务实?
在科技界,比这个夏天更火热的恐怕是这一年掀起的 人工智能 的技术浪潮,从微软、英特尔、谷歌到国内的BAT,科技大佬们无不把目光投向了这项将引领下一次技术革命的人工智能技术,在人工智能的战略地位和重要性被凿实之后,更让国内科技界兴奋的是在人工智能这个新战场,我们似乎有望打破一直以来技术跟随者的旧形象重建一个科技引领者的新标签。 随之而来的是我们看到很多地方政府开始大建人工智能产业园,各种卡位布局,抢占这块战略高地。近日,上海徐汇区联合 ARM 公司在上海举办ARM人工智能生态联盟的成立仪式,希望借势ARM将徐汇区打造成国内人工智能的一个产业示范区,以 汽车电子 、 服务机器人 为切入点,不断推进人工智能技术在各领域的应用进程。因为有
[嵌入式]
ARM7与FPGA在工控和故障检测中的应用
工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。 各部分功能简介   图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控制总线和故障检测总线相连。                  
[测试测量]
<font color='red'>ARM</font>7与FPGA在<font color='red'>工控</font>和故障检测中的应用
gcc、arm-Linux-gcc和arm-elf-gcc的组成及区别
一、GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器呢? 那是因为它不仅支持 C 语言编译,还支持 C++, Ada,Objective C 等许多语言。另外 GCC 对硬件平台的支持,可以所无所不在,它不仅支持 X86处理器架构, 还支持 ARM, Motorola 68000, Motorola 8800,AtmelAVR,MIPS 等处理器架构。 二、GCC的组成结构 GCC 内部结构主要由 Binutils、gcc-core、Glibc 等软件包组成。 1. Binutils:它是一组开发工具,包括连接器,汇编器
[单片机]
基于ARM2410的WLAN电子邮件移动终端
  电子邮件是Internet上使用最广泛的一种服务。随着无线通信技术的迅速发展,实现电子邮件的无线传输与转发已是大势所趋。同时为了适应不同的场合,对无线电子邮件终端的便携性提出了更高的要求。基于ARM内核的嵌入式系统具有高性能、低功耗、便携性等特点,并支持多种操作系统,因而应用广泛。   传统的无线数据终端一般是采用“单片机+无线网卡”的系统结构,这种结构硬件成本略低,但功能有限,在协议开发和支持上都有一定难度。以ARM为代表的32位微处理器技术得到飞速发展,无线数据终端系统以“高性能嵌入式微处理器+无线网卡”的系统架构取代了传统的无线数据终端设计方案,虽然该方案硬件成本稍高,需要高性能嵌入式微处理器来支持嵌入式操作系统,但可
[单片机]
ARM创办人荣获GSA最高荣誉
    全球半导体联盟 (GSA)宣布,「2012张忠谋博士模范领袖奖」将由ARM创办人之一暨前执行长Robin Saxby爵士获得此项殊荣。他将于2012年12月13日,在加州圣塔克拉拉市的圣塔克拉拉会议中心举办的GSA颁奖典礼晚宴领取这一终身成就奖。 创立于1999年的首届GSA「模范领导奖」得主是台湾积体电路制造公司 (TSMC)董事长兼首席执行长张忠谋博士。如今,「张忠谋博士模范领导奖」旨在表彰有杰出贡献的个人,他们的远见和全球领导力改变并提升了整个半导体产业,是业界的楷模。 Saxby爵士是ARM 1990年创办时期的创始人之一,带领ARM在1998年于那斯达克及伦敦证券交易所挂牌上市,于2007年9月底自ARM退休。他曾
[手机便携]
ARM-Linux驱动--MTD驱动分析(三)
主机:Gentoo Linux 11.2 with linux kernel 3.0.6 硬件平台:FL2440(S3C2440)with linux kernel 2.6.35 本文分析MTD设备的分区管理机制 分区管理实际上是将一个MTD设备分成几个分区,将其作为单独的MTD原始设备进行管理。 1、分区的结构体描述结构体mtd_part /* Our partition node structure */ //分区结构信息 struct mtd_part { struct mtd_info mtd;//mtd_info数据结构,会被加入mtd_table中 struct mtd_info
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved