基于嵌入式Linux的风力发电监控系统开发平台的构建

发布者:SereneGardener最新更新时间:2010-03-08 来源: 电子元器件应用关键字:嵌入式系统  Linux  监控  风力发电 手机看文章 扫描二维码
随时随地手机看文章

    为了适应不同的应用场合,同时考虑到计算机系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪的嵌入式操作系统随之诞生。这种嵌入式系统能适用于对功能、可靠性、成本、体积、功耗要求严格的应用系统。而在众多嵌入式操作系统中,Linux以其体积小、可裁减、运行速度快、网络性能优良、源码公开等优点而被广泛采用。特别是2.6内核版本的Linux更是在实时性能方面有了很大的提高,因此在工业控制场合得到了越来越多的重视和应用。

    本文正是在这一背景下,为基于S3C2410的嵌入式平台(扩充了多种外围设备,包括:LCD、A/D、网络芯片等等)构建出一个基于Linux2.6.16内核的嵌入式系统开发平台,以满足风力发电监控系统开发的需求。

1系统构架

    本系统的硬件平台是以32位高性能嵌入式处理器S3C2410A作为系统的CPU,其工作频率最高为203 MHz,具有强大的处理能力。另外,还扩展有多种外围设备,如:分辨率为640×480的26万色TFT液晶显示屏、串口、USB口、网口、64MB Flash、64MB SDRAM等等。可以充分满足风力发电监控系统开发的需求。

    本硬件平台的软件构架主要分为以下几个部分:BSP层、操作系统层以及应用层,图1所示是其软件构架图。本系统的硬件平台是由嵌入式微处理器及其外围设备所构成的。硬件抽象层(BSP)是存储在硬件平台ROM或Flash上的负责与硬件底层交流的硬件驱动程序,主要负责对系统进行初始化,并将收集的硬件信息传递到接下来运行的操作系统内核中去。操作系统内核通过BSP来管理系统硬件资源,并为上层软件提供进程调度、内存管理、文件系统、设备驱动等服务。应用层主要负责与用户进行交流。

    在完成系统的构架设计以后,就可以针对硬件平台进行具体的构建了,其工作主要包括以下几个部分:BootLoader移植、内核移植以及文件系统的建立等,其中内核移植包括网络设备、LCD和USB等驱动的移植。文中针对本系统的设计给出了相关程序的移植。

2 BootLoader移植

    BootLoader (引导加载程序)是系统加电后运行的第一段代码。这段小程序用于初始化硬件设备和建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

    目前,较流行的BootLoader主要有U-boot和Vivi等。本设计主要是以S3C2410为控制器的硬件平台,因此可以选用带有网络功能的Vivi作为系统的BootLoader。作为引导程序的Vivi一般分为stage1和stage2两大部分。stage1主要是根据CPU的体系结构进行设备初始化等工作,通常都用短小精悍的汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现更加复杂的功能,且代码会具有更好的可读性和可移植性。为了使Vivi更适合本系统的硬件平台,设计时需要对其进行部分修改。

    (1)修改编译器

    首先要把Vivi中Makefile的有关编译的选项指向安装好的3.4.1版本的交叉编译工具链,将编译所需的Linux文件夹“UNUX-INCLUDE-DIR=”指向交叉编译器所在的文件夹“LINUX-INCLUDE-DIR=/usr/local/arm/3.4.1/include”,并将“CROSS-COMPILE=”项修改为“CROSS-COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-”。

    (2)修改启动参数

    接着根据硬件平台的实际情况要修改Vivi中Flash分块情况。本系统将Flash划分成四个部分:第一部分用来存放系统的Vivi:第二部分用来存放Vivi以及Linux操作系统的启动参数;第三部分用来存放嵌入式Linux操作系统;最后一部分用来存放文件系统。具体的地址及块大小分配如表1所列。

    修改完以上两项就可以对Vivi进行编译了,之后通过JTAG将生成的二进制代码烧写到Flash的第一部分,即完成了Vivi的移植。

3内核移植

    内核移植和BootLoader移植一样要根据设计的硬件平台来进行。根据本嵌入式系统硬件平台的设计,需修改内核Makefile文件、设置Flash分区、配置与编译内核等,并完成网络设备、LCD以及USB等驱动的移植,下面简单介绍一下针对本硬件平台的相关移植工作。

    (1)内核编译与移植

    在交叉编译内核之前,要先对编译选项进行配置。执行“make menuconfig”指令,进人Syetem Type选项,选择对S3C2410系统板的支持,然后配置File System和Block device,接下来使用“make dep”指令设置依赖关系,之后便可以使用“make zImage”指令进行编译。编译内核交叉编译时间相对较长。最终会生成一个文件zImage,这就是编译成功后的ARM Linux内核文件。将编译好的内核镜像文件写入到Flash中,即完成了内核的移植。

    (2)网络设备移植

    系统中采用CS8900A作为网络芯片,最高支持10 Mb/s的传输率,它使用S3C2410的nGCS3作为片选线,IRQ_EINT9作为外部中断信号线。其驱动移植方法如下:

    1)在linux/driver/net/arm目录下加入芯片的驱动程序文件cs8900.h和cs8900.c:

    2)在smdk2410_init函数中完成相应寄存器设置;在cs8900_probe()函数中对S3C2410的网络控制寄存器进行设置:加入_raw_writel(0x221ldll0,S3C2410_BWSCON);和_raw_writel(0x1f7c,S3C2410_BANKCON3);两个语句;

    3)将网卡的物理地址(0x19000000)映射到vSMDK2410_ETH_IO所指向的虚拟地址上去,即在/arch/arm/mach-s3c2410/mach-smdk2410.c文件中的smdk2410_iodesc []结构数组中添加如下内容:{vSMDK2410_ETH_IO,0x19000000,SZ_1M,MTl_DEVICE};

    4)配置网络设备驱动的Makefile、Kconfig文件,并对头文件做部分修改。

    (3) LCD移植

    在2.6.16内核中已经包含了S3C2410的LCD驱动程序,因此,移植的主要工作是要根据驱动程序及LCD屏的实际情况进行初始化。S3C2410自带5个LCD控制器,每个控制器有不同的功能,必需对每个控制器的参数进行相应的设置才能顺利地启动LCD,这些参数包括:液晶屏类型(TFT屏或CSTN屏)、颜色位数、垂直度、水平度、控制信号线的极性以及液晶屏的分辨率等等。

    本系统采用的是SHARP 8.0英寸的TFT液晶屏。参考该液晶屏手册,根据实际情况设置各个寄存器的参数如表2所列。

    设置好液晶屏的参数后,再在平台初始化函数smdk2410_devices[]_initdata中启动液晶屏。最后,修改drivers/video目录下的Kconfig和drivers/video目录下的Makefile文件。

4文件系统建立

    每种操作系统都有适合自己的文件系统,如:Windows一般采用FAT32或NTFS文件系统格式,Linux采用EXT2或EXT3文件系统格式,而嵌入式Linux操作系统是建立在一种称为YAFFS2(YAFF文件系统的改进版)的针对嵌入式Linux的文件系统之上。因此可根据本系统的硬件平台设计及所采用的Linux内核。构建出YAfTS2文件系统,步骤如下:

    (1)在内核中建立YAFFS2目录fs/yaffs2,并把下载的YAFFS2代码(可以从网上下载开源的YAFFS2的源码)复制到该目录下面;

    (2)修改Kconfig和Makefile,使其可以配置YAFFS2;

    (3)在YAFFS2目录中生成Makefile和Kconfig文件;

    (4)根据表1在内核中修改NAND分区;

    (5)配置内核时,应选中MTD支持和YAFFS2支持;

    (6)编译内核并将其下载到开发板的Flash中;

    (7)制作根文件系统下载到Flash的指定地址(地址如表1所示)。

    至此,就搭建好了风力发电监控系统开发所需要的软硬件平台。图2所示是基于搭建好的平台并使用Qt/Embeded开发的风力发电监控系统的截图。

5结束语

    本文根据一个特定的目标平台,介绍了如何构建基于Linux 2.6.16的嵌入式开发平台,介绍了移植的主要技术和整个流程,并在Qt/Embedd下开发了风力发电监控软件。掌握这些移植和开发技术,对于开发嵌入式Linux应用系统十分重要,同时对于开发其它类型的嵌入式系统也具有一定的参考意义。

关键字:嵌入式系统  Linux  监控  风力发电 引用地址:基于嵌入式Linux的风力发电监控系统开发平台的构建

上一篇:2010年十大热门技术 剑剑指向嵌入式技术
下一篇:嵌入式测控系统中数字滤波算法的实现

推荐阅读最新更新时间:2024-05-02 21:01

基于ARM9和Linux的电磁流量计设计
  0 引 言   电磁流量计是一种测量导电介质体积流量的计量仪表,具有测量精度高、稳定性好、可靠性高等特点。电磁流量计除可测量一般导电液体的流量外,还可 测量液固两相液体、高粘度液体及盐类、强酸、强碱液体的体积流量,可广泛应用于水泥、化工、轻纺、冶金、矿山、造纸、医药、给排水、食品饮料、环保等工业 技术部门,其产品的性能、质量和可靠性对上述企业的经济效益有着重要的影响。   嵌入式系统( Embedded Sy stem) 是以应用为中心和以计算机技术为基础的,并且软硬件是可以裁减的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。它 是面向用户、面向产品、面向应用的专用系统,与通用的计算机
[单片机]
基于ARM9和<font color='red'>Linux</font>的电磁流量计设计
DSP/ARM双核系统的通信接口设计
  嵌入式系统的核心是嵌入式微处理器和嵌入式操作系统。早期的嵌入式系统硬件核心是各种类型的8位和16位单片机;而近年来32位处理器以其高性能、低价格,得到了广泛的应用。近年来,又出现了另一类数据密集处理型芯片DSP。DSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。随着现代嵌入式系统的复杂度越来越高,操作系统已成为嵌入式系统不可缺少的部分。免费的嵌入式操作系统,如 Linux等,随着自身不断的改善,得到了飞速的发展。Linux是一个免费的、强大的、可信赖的、具有可伸缩性与扩充性的操作系统。Linux实现了许多现代化操作系统的理论,并且支持完整的硬件驱动程序、网络通信协议与多
[单片机]
DSP/ARM双核系统的通信接口设计
Linux2.6.32移植到MINI2440(2)添加Nand Flash驱动,修改分区
开发环境: 主机:fedora 14 虚拟机:vmware workstation 10 交叉编译工具:arm-linux-gcc 4.3.2 开发板:mini2440(2m nor ,64m sdram,256m nand) 一、添加头文件 在/arch/arm/mach-s3c2440/mach-mini2440.c中 vim mach_mini2440.c 添加进去如下头文件: #include linux/mtd/partitions.h #include linux/mtd/nand_ecc.h #include linux/mtd/mt
[单片机]
多功能μP监控芯片IMP706及其应用
    近年来,微处理器在工业控制领域和智能化产品中得到了广泛的应用。在系统和产品的开发设计过程中,为了提高其抗干扰能力,应用监控μP监控芯片是首选技术措施之一。监控芯片可为系统提供上电、掉电复位功能,也可提供其它功能,如后备电池管理,存储器保护、低电压告警或看门狗等。美国IMP公司生产的系统μP监控芯片具有功能多、功耗低的特点,而且工作温度范围宽(-40~+80℃),使用简单、价格低廉,并可与MAXIM、AD等公司的μP监控产品完全兼容。我们曾在“IC卡电子电能表”、“气功凿岩机性能测试系统”等多个项目中使用IMP706芯片,效果良好。 1 内容结构和引脚功能     IMP706的内部结构框图如图1所示,它能在上电、掉
[应用]
基于s3c44b0微处理器和rtl8019as芯片实现远程温度监控系统设计
引言 当今社会已经进入数字信息技术和网络技术高速发展的后pc(post-pc)时代,嵌入式设备已经渗透到各个领域,逐渐向着网络化方向发展,如视频监控、网络摄像头、远程控制、信息家电等都离不开嵌入式设备与网络的结合。 目前,国内的远程温度监控系统主要是用单片机和pc终端完成,单片机将采集到数据的经串口发送到pc机,pc机将数据处理后,采用tcp/ip协议将数据发送到互联网上,实现数据的远程采集。这种方式依赖于pc机,不灵活、不稳定、功耗高,采用ARM架构的微处理器为核心的嵌入式单元作为独立的终端实现的远程温度监控系统,具有体积小、价格低、功耗低、稳定可靠的特点,可用于远程监控、教学实验等。 1.系统的硬件组成 本文描述的远程
[单片机]
基于s3c44b0微处理器和rtl8019as芯片实现远程温度<font color='red'>监控</font>系统设计
手机视频监控报警系统应用将大展身手
    随着经济的发展,我国大众家庭的安防意识也逐步加强。在治安形势依然严峻的现阶段,如何保护人身和财产安全,这对高科技智能安防、智能安防防盗系统提供了广阔的发展空间。对家庭安防报警系统而言,简便、安全、智能等功能是发展方向,智能安防报警系统在市场中备受青睐。     智能安防系统因为其技术水平要求高,所以其价格也是较为昂贵,让不少家庭望而兴叹。正因为此,不少企业开始着手开发新的民用领域智能安防系统。相对于其他的系统,手机视频监控报警系统价格比较低廉。     手机视频监控是通过用户的手机随时随地来观看远程监控点的视频。整套系统基于互联网而运行。目前手机视频监控有两种模式,一种是通过在安置在特定地点的监控摄像机拍摄,并将拍
[安防电子]
S5PV210开发 -- Linux dd命令
昨天群里有人询问,为什么破坏 BootLoader 破坏不掉。 出现错误:dd: writing '/dev/mtdblock0': Operation not permitted 我说需要插着 SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚) 然后我们来看一下它操作指令: busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync 为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。 进而引出了我们今天要讲的 dd命令。 参看:Linux dd命令
[单片机]
S5PV210开发 -- <font color='red'>Linux</font> dd命令
Seeing Machines与麦格纳合作开发驾驶员监控系统DMS演示器
据外媒报道,先进的计算机视觉技术公司Seeing Machines与汽车零部件供应商麦格纳(Magna)合作开发出一款具有完全集成的驾驶员监控系统(DMS)的演示器,且该系统结合了摄像头、电子设备,以及车内后视镜技术。 图片来源:Seeing Machines 该演示器结合了麦格纳行业领先的后视镜技术、摄像头设计、集成和封装技术,以及Seeing Machines的方法,可优化和共同设计光路、嵌入式处理和增强的DMS人工智能视觉算法。该技术可应对与管理车辆电子集成和成本相关的关键OEM挑战,以及满足跨各种车型的无缝摄像头封装的需求。 Seeing Machines的增强型FOVIO eDME(嵌入式驱动程序监控引
[汽车电子]
Seeing Machines与麦格纳合作开发驾驶员<font color='red'>监控</font>系统DMS演示器
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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