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

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

3天内不再提示

基于S3C4510B微处理器和μC/OSII实现数据采集系统的应用方案

电子设计 来源:现代电子技术 作者:谭勋琼 2021-03-23 09:04 次阅读

在一些工业现场中,设备长时间运行容易出现故障,为了监控这些设备,通常利用数据采集装置采集他们运行时的数据并送给PC机,通过运行在PC机上的特定软件对这些数据进行分析,以此判断当前运行设备的状况,进而采取相应措施。当前常用的数据采集装置,在其系统软件设计中,多采用单任务顺序机制。这样就存在系统安全性差的问题。这对于稳定性、实时性要求很高的数据采集装置来说是不允许的,因此有必要引入嵌入式操作系统。以μC/OSII为操作系统平台,基于ARM7系列处理器,对一种高性能的数据采集系统开发进行了探索。

1μC/OSII嵌入式操作系统简介

嵌入式操作系统μC/OSII(microcontroller operating system)是专为微控制器系统和软件开发而设计的公开源代码的抢占式实时多任务操作系统内核,是一段微控制器启动后首先执行的背景程序,作为整个系统的框架贯穿系统运行的始终。对于对实时性和稳定性要求很高的数据采集系统来说,引入μC/OSII无疑将大大改善其性能。

μC/OSII的特点可以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。μC/OSII自1992年的第一版(μC/OS)以来已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对μC/OSII的研究和应用都很多。

2系统基本工作原理

应用时,数据采集系统置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送入A/D转换器变成数字信号,然后将该信号送到FIFO中。当FIFO中存放的数据到了一定数目时,由ARM7从FIFO中读出,然后通过ARM7的以太网接口或者RS232送给上位机。考虑到要监控的设备可能会很多,所以设计了多路采集通道,他们经过模拟开关后再进入A/D转换器。CPLD是整个系统的控制核心,他控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM7读取存放在FIFO中的数据等。

基于S3C4510B微处理器和μC/OSII实现数据采集系统的应用方案

3系统硬件结构

系统的基本结构框图如图1所示。该系统采用了Samsung公司的S3C4510B作为系统与上位机沟通的桥梁,S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器,他有如下几个主要特点:

硬件方面内含一个由ARM公司设计的16/32位ARM7TDMI RISC处理器核,ARM7TDMI为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。S3C4510B通过在ARM 7TDMI核内容基础上扩展一系列完整地通用外围器件。

片上资源包括2个带缓冲描述符(buffer descriptor)的HDLC通道;2个UART通道;2个GD M A通道;2个32位定时器;18个可编程的I/O口。还有中断控制器DRAM/SDRAM控制器;ROM/S RAM和FLASH控制器;系统管理器;1个内部32位系统总线仲裁器;1个外部存储器控制器等片内的逻辑控制电路

这些为μC/OSII的移植提供了优良的物理资源。

软件支持方面他有配套的代码编辑调试环境ADS12和JTAG在线调试功能,使S3C4510B芯片软件可以直接用C编写,这就使μC/OSII的植入成为可能。

12位高速A/D转换电路采用Analog Devices的AD574,该电路输出具有三态锁存功能。预处理电路包括了电流电压互感器、隔离电路和同步采样电路,他可以将信号转换成与AD574相匹配的量值,供后续处理。通讯电路采用常用的以太网接口与上位机相连,而232接口可作为备用,这样该装置既可作为便携式系统使用,也可通过网络来对设备实施实时监控。

4软件设计部分

软件部分要分别编写S3C4510B部分的程序和CPLD控制程序。前者可分为μC/OSII的移植和各个应用程序的编写,后者用VHDL语言实现。

对于S3C4510B部分,根据整个装置实现的功能和对他的要求进行系统任务分割,并根据实际需要为各个任务分配优先级。系统大致可分为如下几个任务:初始化CPLD控制参数;对FI FO的读取;与上位机的TCP/IP通讯;与上位机的串口通讯。对应每个任务,需要编写相应的应用程序,软件设计部分的关键技术有:

(1)μC/OSII内核向S3C4510B中的移植,要根据处理器的特点合理地修改μC/OS II的3个与处理器相关的文件:OS_CPUH,OS_CPU_AASM,OS_CPU_C.C。主要是将文件中的汇编指令,改为ARM7的汇编指令,并根据CPU的特点对文件中寄存器的初值进行改写。

(2)内存配置问题。对于存储器容量的设计,要综合考虑μC/OSII内核代码和应用程序代码的大小。每个任务是独立运行的,必须给每个任务提供单独的栈空间(RAM),RAM总量的计算公式为:

RAM总量=应用程序的RAM需求+内核数据区的RAM需求+各任务栈需求之总和+最多中断嵌套所需堆栈

(3)TCP/IP协议在μC/OSII中的实现。为了满足嵌入式设备与Internet网络直接交换信息的要求,在μC/OSII中又移植了LwIP协议栈。

LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TC P/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般他只需要几十k的RAM和40 k左右的ROM就可以运行,这使LwIP协议栈适合在低端嵌入式系统中使用。

LwIP的特性有:支持多网络接口下的IP转发;支持ICMP协议;包括实验性扩展的的UDP(用户数据 报协议);包括阻塞控制、RTT估算、快速恢复和快速转发的TCP(传输控制协议);提供专门的内部回调接口(raw API)用于提高应用程序性能。

LwIP可以很容易地在μC/OSII的调度下,为系统增加网络通信和网络管理功能。LwIP协议栈在设计时就考虑到了将来的移植问题,他把所有与硬件,OS,编译器相关的部份独立出来,放在/src/arch目录下。因此LwIP在μC/OSII上的实现就是修改这个目录下的文件,其他的文件一般不应该修改。在驱动中主要是根据S3C4510B内的以太网控制特殊功能寄存器,编写网络接口的处发送包、接收包函数,初始化以及用于以太网控制器的外部中断服务程序。

责任编辑:gt

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

    关注

    5057

    文章

    18964

    浏览量

    301814
  • 数据采集
    +关注

    关注

    38

    文章

    5800

    浏览量

    113411
  • 操作系统
    +关注

    关注

    37

    文章

    6672

    浏览量

    123125
收藏 人收藏

    评论

    相关推荐

    基于S3C4510B微处理器和uClinux实现存储系统的设计

    、FLASH、Normal DRAM和Sync.DRAM等。本文所采用的存储包括有SDRAM和FLASH。S3C4510B(以下简称4510微处理器是构建在ARM核ARM7TDMI
    发表于 06-28 08:28 848次阅读
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微处理器</b>和uClinux<b class='flag-5'>实现存储系统</b>的设计

    μClinux在S3C4510B上的移植

    Linux是一种支持多种体系结构处理器的操作系统.有很强的移植性。描述了将UClinux移植到基于S3C4510B处理器目标板上的方法与过程。首先介绍了
    发表于 03-28 13:18

    s3c4510b pdf datasheet (16/32-

    s3c4510b p
    发表于 10-14 10:43 36次下载

    s3c4510b中文手册,s3c4510b用户手册

    s3c4510b中文手册,s3c4510b用户手册:ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立
    发表于 10-14 10:54 421次下载

    s3c4510b中文资料

    本书所讨论的S3C4510B即为一款不带MMU的ARM微处理器,可在其上运行uCLinux操作系统系统的工作频率系统的工作频率在很大程度上
    发表于 10-14 11:11 8次下载

    μClinux在S3C4510B上的移植

    Linux是一种支持多种体系结构处理器的操作系统.有很强的移植性。描述了将UClinux移植到基于S3C4510B处理器目标板上的方法与过程。首先介绍了
    发表于 03-28 09:51 16次下载

    S3C4510B系统中对触摸屏控制的研究与实现

    S3C4510B系统中对触摸屏控制的研究与实现
    发表于 03-28 09:51 17次下载

    基于uCLinux 和S3C4510B 的网络通信设计

    结合工程实例, 基于S3C4510B 微处理器, 构建以DM9161 为以太网物理层接口的低功耗、高速硬件电路;在嵌入式操作系统uCLinux 上实现网络通信的程序编写,对于网络通信在
    发表于 05-16 13:29 16次下载

    基于S3C4510B的存储系统原理与设计

             S3C4510B是三星公司生产的基于ARM核的16/32位RISC微处理器,因其很高的性价比而得到广泛的应用。然而基于该芯片的存储系统
    发表于 09-11 10:15 21次下载

    基于S3C4510B的HDLC协议实现

    使用嵌入式微处理器S3C4510B内部包含的HDLC控制封装和解析HDLC协议,微处理器既可实现系统
    发表于 07-08 15:26 46次下载

    基于S3C4510B系统设计

    基于S3C4510B系统设计   arm开发详解全集 1991 年ARM 公司成立于英
    发表于 02-09 14:22 843次阅读

    S3C4510B型ARM微处理器最小系统构建

    本文介绍S3C4510B型ARM微处理器最小系统的构建,并给出系统外围相关器件的选型。
    发表于 08-19 14:33 3032次阅读
    <b class='flag-5'>S3C4510B</b>型ARM<b class='flag-5'>微处理器</b>最小<b class='flag-5'>系统</b>构建

    三星ARM处理器S3C4510B的HDLC通道使用及编程

    三星16/32位ARM处理器S3C4510B是目前在国内应用非常广泛的一种性价比很高的ARM处理器,本文在介绍S3C4510B中HDLC通道结构特点的基础上,详细说明了
    发表于 04-05 11:44 1292次阅读
    三星ARM<b class='flag-5'>处理器</b><b class='flag-5'>S3C4510B</b>的HDLC通道使用及编程

    基于S3C4510B微处理器和操作系统实现网络通信工程的编写设计

    Micro,是“小”的意思;C表示Control,是“控制”的意思,所以uCLinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。它也是针对无MMU(内存管理单元模块)的微处理器
    的头像 发表于 10-04 17:37 1938次阅读
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微处理器</b>和操作<b class='flag-5'>系统</b><b class='flag-5'>实现</b>网络通信工程的编写设计

    基于S3C4510B微处理器的最小系统设计

    介绍S3C4510B型ARM微处理器和基于该处理器设计的最小系统,概述该系统外围应用电路的选型,以便使用者自行设计开发。
    的头像 发表于 07-23 15:17 786次阅读
    基于<b class='flag-5'>S3C4510B</b>型<b class='flag-5'>微处理器</b>的最小<b class='flag-5'>系统</b>设计