首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于嵌入式系统的远程参数测量的方法和实现(2)

基于嵌入式系统的远程参数测量的方法和实现(2)

值。功率因数为 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 嵌入式实现,性价比高,功能强,在实际中得到了很好的应用。
返回列表