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

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

3天内不再提示

基于ARM9芯片S3C2410实现测量监控系统的应用方案

牵手一起梦 来源:上海电力学院计算机与信 作者:袁三男,王绍徐 2020-10-04 17:29 次阅读

1. 概述

目前嵌入式系统发展非常迅速,各类基于 ARM 处理器的应用开发更是如火如荼,这主要是由于嵌入式系统的高性价比和较短的开发周期短,并且可以实现于多种多样的应用系统中。本文介绍了基于三星公司的 ARM9 嵌入式芯片 S3C2410 构建的测量监控系统,以该 ARM 芯片为主 CPU,实现了交流、直流电压、电流的测量,本地及附近温度的测量以及光敏度的测量,将测量的结果存储于本地 MIB 数据库中,并通过 IP 网络协议实现远程访问监控。系统设计方案先进,集成度较高,在实践中得到了广泛的应用。

2. 嵌入式 ARM9 S3C2410X 简介

S3C2410X 是三星公司提供的基于 ARM920T 内核的 32 位 RISC 处理器,它的低功耗、低价格、高性能设计特别适合于手持设备和通用嵌入式应用场合,为降低整个系统的成本,它提供了丰富的内部设备,包括分开的 16KB 指令 Cache 和 16KB 数据 Cache,MMU 虚拟存储器管理,24bbp 模式下最大 16M 色 TFT LCD 控制器,支持 NAND Flash 系统引导,片选逻辑和dram 控制器的系统管理器,3 通道 UART,4 通道 DMA,4 通道 PWM 定时器,117个通用 IO 端口和 24 通道外部中断源,具有日历功能的 RTC,8 通道 10 位 ADC 和触摸屏接口,IIC、IIS 接口,USB 主从设备,SD&MMC 卡接口,2 通道的 SPI 以及 PLL 时钟倍频器。它采用了 AMBA 新型微控制器总线结构,极大地提高了数据及指令的传输速度。其加强的ARM体系结构MMU可用于WinCE和Linux操作系统的移植, 并支持各种低价格、大容量的 NOR/NAND Flash 或 EEPROM 启动。最高工作频率达到 266MHz,并基于小封装272FBGA。ARM 内核具有标准 JTAG 结构,为应用系统开发提供了方便的调试工具。目前市场上具有很多通用的开发工具可以用于 S3C2410X 的调试开发。

由于 S3C2410X 具有丰富的接口和内嵌硬件控制器,因此使用其最简系统即可实现大部分应用系统的功能。其最简系统如图 1 所示,仅包括 S3C2410X ARM9 芯片、32 位 sdram,价格低廉的大容量 Nand Flash。为了实现串口和网口通信,需增加串口电平转换芯片MAX232 和网络 MAC 和 PHY 芯片 DM9000(或 LAN9115) 。系统中其他模块均用于实现各种参数的测量传感等功能。

3. 嵌入式测量监控系统设计

本系统需对被测设备如电力设备或太阳能的电压、电流或温度、光照度等进行测量、参数采集、存储,并实现远程监控。数据存储格式为 SNMP 的 MIB 数据库方式,数据库能够通过系统的NMP 代理被远方操作员的 SNMP 控制平台所访问存取。传输协议为以太网的 IP 协议。信息同时能够被本地操作显示,因此本地附有串行接口,基于以上应用需求,实现系统框图如下图 1 所示。

基于ARM9芯片S3C2410实现测量监控系统的应用方案

图 1 系统原理框图(Fig1 System Diagram)

本系统需采集远端、本地两个温度检测,一个光照度检测,三个直流 DC 8-130V 电压检测,三个直流 DC 0-20A@12VDC 电流检测,一个交流 AC 105-280V 电压检测,一个交流AC 0-20A@120VAC 电流检测。测量使用原理及所用传感器件下节叙述。系统硬件平台采用3C2410X 标准硬件平台,主 CPU 带 sdram 作为主存,NAND Flash 作为程序存储空间,并从 NAND Flash 进行启动,其临时数据库存放于 sdram 中,当到一定时间间隔,或者接收到命令时,将sdram 中的数据库备份到 Flash 中。测量时通过 ARM9 的 IO 端口测量温度和光照度, 通过片内ADC将交直流电压电流通过传感器转变后的输出电压进行采样,然后通过 CPU 计算后存入数据库。

4. 参数测量实现

各参数测量是本系统的前端电路,也是最终目的。由于 ARM 系统 3.3V 供电,具有通用IO 接口和内置 ADC 电路,因此只要将各测量参数通过相应的传感设备转换为 IO 数据或0-3.3V 的模拟电压量,就可通过 ARM 处理器采集,从而转换为数字信号进而数字存储或通过网络传输。各参数的测量采集电路见图 2 所示。

直流电压的采集可以直接通过电阻分压取得,因为已知需要采集的直流电压的范围,将最大电压值映射为 3.3V,即可获得图 2 中的两个分压电阻的值。测量时,将 ARM 采集得到的 ADC 值乘以已知的系数即可得到当前的直流电压值。为了对 CPU IO 的保护,电路中加了BAV99双二极管进行保护。 设分压电阻分别是12KΩ和470KΩ, 则Uo = 12/(12+470)×Ui = Ui/40,按照 ARM 10 位 ADC 采样结果,如 ADC 采样值为 Uadc,则采集到的输入电压值为:Ui = [ Uadc/1024] ×3.3×40(V)。

交流电压的采集采用 TV19G_E 系列精密电压互感器,该器件采用坡膜合金铁芯,线性度优于 0.1%。体积小,直接焊接在电路板。全封闭,抗电强度高。它是一种电流型电压互感器,不同的输入电压通过限流电阻使一次侧流过不同的电流,二次得到一个与一次相同的电流。经运算放大器或电阻直接取样,得到不同的输出电压,如图 2 所示。

此时采集到的电压值实际上是交流电压的瞬时值,其实时性好,相位失真小,本文用软件代替硬件实现交流电压采集可以使得硬件投资减小,实践证明,采用该方法并通过算法计算后获得的电压、电流、有功功率、功率因数等电力参数有着较好的精确度和稳定性。

电压有效值公式为

将其离散化,以一个周期内有限个采样电压数字量来代替一个周期内连续变化的电压函数值,则

式中 ΔTm为相邻两次采样的时间间隔;um 为第 m-1 个时间间隔的电压采样瞬时值;N 为 1 个周期的采样点数。若相邻两采样的时间间隔相等,即 ΔTm 为常数 ΔT,考虑到 N=(T/ΔT)+1,则有

值。功率因数为 cosφ=P/UI。系统的采样时间间隔由用户确定。采样时,在 1 个信号周期内等时间间隔准确采样 16 点并存储结果,采集完后,对采集的数据进行数字滤波并计算得到相应的值。

交直流电流的采集采用霍尔器件 ACS752SCA-050 和 ACS706ELC-20A,其工作原理相同,支持的最大电流分别为-50A 到+50A 和-20A 到+20A。它将流过该器件的电流通过霍尔感应后再处理放大输出相应的电压值,该电压值和流过的电流值成正比,其比例关系如图3a 所示。当流过电流为 0 时,输出电压为 2.5V(5V 供电),当流过电流为 50A 时,输出电压为 4.5V,当流过电流为-50A 时,输出电压为 0.5V,其间为线性变化,由此按照测出的电压值可以计算出电流为 I=25×(V-2.5)A,由于电流可以正反方向,因此用同样的方法可以测试交流和直流电流。

系统中温度测量采用 DS18B20 分辨率可编程单线数字温度计,并可结联使用,其应用原理如图 2 所示。测量温度范围为-55 度至+125 度,精度可达 0.5 度,数字精度可编程为9 至12bit。该芯片仅单线输出,可连接 CPU 的 IO 管脚,需进行编程控制。本系统采用Linux 操作系统下的 IO 输入输出设备驱动控制进行读写操作,进而实现温度数据的采集,具体的程序流程如下节所述。

图 3a 电流感应输出电压关系图 图 3b 光照度频率关系图

系统中光照度测量采用光敏传感器 TSL235 电路,该电路是光照度到频率的转换电路,内置一个硅光敏二极管和电流到频率的转换器,输出为 50%占空比的不同频率的方波,管脚只有电源、地和输出,输出可直接和 CPU 的 IO 相连,CPU 通过 TIMER 控制或中断检测即可测得该方波的频率,从而可计算出相应的光照度。其光照度和频率的关系曲线如图 3b 所示。

5. 软件模块

本系统软件在 linux 操作系统下实现,其软件结构如图 4 所示。按照需求定义,需实现多种软件协议,有 EIA232, IEEE802.3, IPv4, ICMP, ARP, TCP, UDP, SNMP V2,3 Agent, NTP Client, DNS Client, TFTP Server, HTTP Server, TELNET Server 等。系统启动时需对硬件和软件模块进行初始化和诊断,并将诊断结果实时输出到串口。然后将控制权交给操作系统。 操作系统和应用程序存储于 flash 中, 当具体运行时装载到 sdram 中。启动时读取用户配置文件(或默认配置)并进行各种参数的配置,如通信速率、IP 地址等,然后开始测量、收集、存储数据在sdram 和 flash 的 MIB 数据库中。当有网络或串口用户进行通信时完成数据交换和命令的实现。

系统中 ADC、IO 等操作均采用设备驱动方法实现,先编写设备驱动程序,将驱动加入到操作系统中,然后在应用中调用驱动程序。如 DS18B20 温度采集采用 IO 操作的方法。先建立 IO 驱动, module_init(DS18B20_init), 主要实现设备注册 register_chrdev(240, “ds18b20”, &DS18B20_fops)。DS18B20_fops 文件操作主要包括 ioctl,通过 ioctl 中WriteOneChar,ReadOneChar 等 IO 的控制实现温度的采集。

6.结语

本文介绍了基于 S3C2410X ARM 的参数测量系统,该系统可针对电力设备的电压、电流、温度、光敏度等进行测量、采集,存储于系统内部基于 SNMP 的 MIB 数据库中,并通过网络协议进行远程访问。系统采用 ARM 嵌入式实现,性价比高,功能强,在实际中得到了很好的应用。

责任编辑:gt

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

    关注

    68

    文章

    18299

    浏览量

    222315
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8654

    浏览量

    361900
  • 监控系统
    +关注

    关注

    21

    文章

    3615

    浏览量

    169341
收藏 人收藏

    评论

    相关推荐

    基于ARM9核的S3C2410芯片和操作系统实现调色板显示系统的设计

    ARM9核的S3C2410芯片可通过内置的LCD控制器来实现对LCD显示的控制。以TFT LCD为例,S3C2410
    的头像 发表于 10-04 17:45 2515次阅读
    基于<b class='flag-5'>ARM9</b>核的<b class='flag-5'>S3C2410</b><b class='flag-5'>芯片</b>和操作<b class='flag-5'>系统</b><b class='flag-5'>实现</b>调色板显示<b class='flag-5'>系统</b>的设计

    s3c2410 datasheet 中文数据手册

    s3c2410 datasheet 中文数据手册 s3c2410采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储器单元。它的低功耗,精简和出色的全静态设计特别适用于对成本和功耗
    发表于 11-13 12:10

    [求助]关于ARM9 S3C2410和GPRS的疑问

    目前使用ARM9 S3C2410开发板在做实验想请问下S3C2410芯片和GPRS模块的工作过程,两者之间是如何进行访问以及控制的简单说就是想了解两者之间的关联和工作原理之类的,在线等
    发表于 03-04 18:02

    ARM9 S3C2410 串口通信

    基于ARM9 S3C2410 串口通信与外部中断实现查询方式串口的收发功能:接收来自PC机(dnw.exe)的字符,将所收小写字母转为大写,或将所收大写字母ASCII值向上偏移2(大写41~5A
    发表于 06-24 15:26

    ARM9 S3C2410

    求帮设计ARM9 S3C2410的小设计 价格可以谈~~~急
    发表于 07-06 12:24

    ARM9 S3C2410X参数测量系统怎么实现

    嵌入式系统由于性价比高开发周期短等优点目前得到了迅猛发展,各类基于 ARM 处理器的应用开发更是如火如荼。这里介绍基于 ARM9 嵌入式芯片 S3C
    发表于 08-14 07:30

    ARM9芯片S3C2410怎么驱动VGA接口?

    大多数嵌入式产品的显示终端都选择LCD,但在某些需要大屏幕显示的应用中,工业级LCD的价格比较昂贵,且现有的大屏幕显示器(包括CRT显示器和LCD显示器)一般都采用统一的15针VGA显示接口。三星公司ARM9芯片S3C2410
    发表于 08-16 06:36

    怎么设计一种基于ARM9 S3C2410A的智能车载系统

    本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心
    发表于 05-17 06:03

    基于S3C2410的黄金矿工游戏的设计资料分享

    系统整体描述(1) 系统开发及运行平台① 硬件平台:PC机,S3C2410 ARM9芯片② 软件平台:Linux环境,windows环境(2
    发表于 12-24 06:20

    怎样测试基于ARM9 s3c2410的SD卡驱动传输速度呢

    SD卡的传输速度 自己写了一个基于ARM9 s3c2410的SD卡驱动,现在想测试一下它的传输速度,应该怎么做?
    发表于 07-22 11:46

    基于ARM9 s3c2410的SD卡驱动它的传输速度如何测试呢

    SD卡的传输速度 自己写了一个基于ARM9 s3c2410的SD卡驱动,现在想测试一下它的传输速度,应该怎么做?
    发表于 11-16 14:16

    基于S3C2410嵌入式系统的网络接口设计

    本文介绍了一个基于三星ARM9 芯片S3C2410 嵌入式系统的网络接口电路设计方案,采用了工业级以太网控制器CS8900A 成功
    发表于 09-26 09:51 28次下载

    ARM9 S3C2410PCB设计指南

    ARM9 S3C2410PCB设计指南 高速数字电路PCB 设计考虑----以ARM9 S3C2410 系统为例随着现代数字
    发表于 03-01 15:37 0次下载

    ARM9系列嵌入式处理器S3C2410系统中LCD驱动开发

    本文以三星公司ARM9内核芯片S3C2410的LCD接口为基础,介绍了在Linux平台上开发嵌入式LCD驱动程序的一般方法。
    发表于 10-10 11:50 2876次阅读

    ARM9嵌入式系统设计课件-基于S3C2410与Linux-pp

    ARM9嵌入式系统设计课件-基于S3C2410与Linux,北京航空航天大学出版社,第二版课件。
    发表于 03-15 10:22 5次下载