0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C2410A嵌入式处理器实现风力发电监控系统的应用设计

电子设计 来源:电子元器件应用 作者:房若民 , 陈国定 2021-03-19 14:57 次阅读

为了适应不同的应用场合,同时考虑到计算机系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪的嵌入式操作系统随之诞生。这种嵌入式系统能适用于对功能、可靠性、成本、体积、功耗要求严格的应用系统。而在众多嵌入式操作系统中,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来管理系统硬件资源,并为上层软件提供进程调度、内存管理、文件系统、设备驱动等服务。应用层主要负责与用户进行交流。

基于S3C2410A嵌入式处理器实现风力发电监控系统的应用设计

在完成系统的构架设计以后,就可以针对硬件平台进行具体的构建了,其工作主要包括以下几个部分: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一般采用或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应用系统十分重要,同时对于开发其它类型的嵌入式系统也具有一定的参考意义。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19275

    浏览量

    229756
  • 嵌入式
    +关注

    关注

    5082

    文章

    19117

    浏览量

    305002
  • 监控系统
    +关注

    关注

    21

    文章

    3912

    浏览量

    174622
收藏 人收藏

    评论

    相关推荐

    一个基于Linux2.6.16的嵌入式风力发电监控系统开发平台构建

    。特别是2.6内核版本的Linux更是在实时性能方面有了很大的提高,因此在工业控制场合得到了越来越多的重视和应用。本文正是在这一背景下,为基于S3C2410嵌入式平台(扩充了多种外围设备,包括:LCD、A
    发表于 07-25 06:56

    一种嵌入式视频交通监控系统的设计与实现

    设计和实现了一种嵌人视频交通监控系统,用于高速公路交通信息的收集及路面信息的实时监控,从而实现
    发表于 07-16 11:45 17次下载

    基于S3C2410嵌入式无线监控系统的设计

    为了对无人职守的监控现场进行有效监控,我们设计实现了基于三星的S3C2410 嵌入式处理器
    发表于 09-09 16:25 31次下载

    基于S3C2410嵌入式串口通信设计

    本文通过基于S3C2410嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串行通信的硬件威廉希尔官方网站 和软件
    发表于 12-23 16:11 120次下载

    基于S3C2410嵌入式车载定位系统设计

    本文从实际应用出发,为嵌入式Linux在车载GPS导航定位系统中的应用研究提供了一种新的设计思路。以ARM处理器S3C2410为硬件核心,在嵌入式
    发表于 07-14 17:18 77次下载

    嵌入式远程视频监控系统的设计

    S3C2410嵌入式处理器为核心,通过嵌入式多任务操作系统Linux采集摄像头视频数据,视频数据经JPEG算法压缩后通过网络
    发表于 01-04 16:06 85次下载

    嵌入式系统的VGA接口设计 (包含各种VGA接口的设计)

    嵌入式系统的VGA接口设计 (包含各种VGA接口的设计) 目前越来越多的嵌入式处理器上集成了LCD控制。典型的如三星的
    发表于 03-30 12:14 1255次阅读

    基于S3C2410A嵌入式系统的U-Boot移植

    基于S3C2410A嵌入式系统的U-Boot移植 0 引 言    ARM嵌入式处理器已被广泛应用于消费电
    发表于 12-24 17:08 1301次阅读
    基于<b class='flag-5'>S3C2410A</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的U-Boot移植

    基于S3C2410A设计的工程地震仪方案

    摘要:阐述基于三星ARM处理器S3C2410A嵌入式操作系统Windows CE.net构造微型工程地震仪的设计原理和实现方法。在现有
    发表于 07-21 16:40 1168次阅读
    基于<b class='flag-5'>S3C2410A</b>设计的工程地震仪方案

    嵌入式会议系统终端控制的设计

    提出了一种嵌入式会议系统终端控制的设计,具体实现了以S3C2410A处理器为核心的硬件威廉希尔官方网站
    发表于 05-25 17:25 33次下载
    <b class='flag-5'>嵌入式</b>会议<b class='flag-5'>系统</b>终端控制<b class='flag-5'>器</b>的设计

    S3C2410A USER'S MANUAL

    S3C2410A USER'S MANUAL
    发表于 10-25 14:59 15次下载
    <b class='flag-5'>S3C2410A</b> USER'<b class='flag-5'>S</b> MANUAL

    基于S3C2410A微控制嵌入式数字示波器的应用设计方案

    结构设计的嵌入式数字示波器,由于时钟频率和并行处理能力较低.因此通常用于通道数较少的设计中,无法满足对系统实时性要求较高的多通道嵌人数字示波器的设计。本文提出了一种基于
    发表于 08-14 15:53 1329次阅读
    基于<b class='flag-5'>S3C2410A</b>微控制<b class='flag-5'>器</b>的<b class='flag-5'>嵌入式</b>数字示波器的应用设计方案

    基于S3C2410处理器和Linux实现嵌入式网关的设计

    介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制芯片RTL8019AS的性能以及与
    的头像 发表于 06-22 14:28 2630次阅读
    基于<b class='flag-5'>S3C2410</b>微<b class='flag-5'>处理器</b>和Linux<b class='flag-5'>实现</b><b class='flag-5'>嵌入式</b>网关的设计

    基于S3C2410A嵌入式织物密度检测装置研究

    电子发烧友网站提供《基于S3C2410A嵌入式织物密度检测装置研究.pdf》资料免费下载
    发表于 10-19 10:36 1次下载
    基于<b class='flag-5'>S3C2410A</b>的<b class='flag-5'>嵌入式</b>织物密度检测装置研究

    S3C2410A存储控制中文数据手册

    S3C2410A的存储控制提供访问外部存储所需要的存储控制信号。S3C2410A的存储
    发表于 10-20 16:12 2次下载
    <b class='flag-5'>S3C2410A</b>存储控制<b class='flag-5'>器</b>中文数据手册