关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于 ARM 和 Linux 通用工控平台设计与实现

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

作者:时间:2011-07-01来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/161879.htm


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


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


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


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


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

图1 通用工控平台硬件结构

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

图2 开发环境


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


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

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭