嵌入式系统的远程参数测量的设计
此时采集到的电压值实际上是交流电压的瞬时值,其实时性好,相位失真小,本文用软件代替硬件实现交流电压采集可以使得硬件投资减小,实践证明,采用该方法并通过算法计算后获得的电压、电流、有功功率、功率因数等电力参数有着较好的精确度和稳定性。
电压有效值公式为
将其离散化,以一个周期内有限个采样电压数字量来代替一个周期内连续变化的电压函数值,则

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

周期内等时间间隔准确采样 16 点并存储结果,采集完后,对采集的数据进行数字滤波并计算得到相应的值。
系统中温度测量采用 DS18B20 分辨率可编程单线数字温度计,并可结联使用。测量温度范围为-55 度至+125 度,精度可达 0.5 度,数字精度可编程为9 至12bit。该芯片仅单线输出,可连接 CPU 的 IO 管脚,需进行编程控制。本系统采用Linux 操作系统下的 IO 输入输出设备驱动控制进行读写操作,进而实现温度数据的采集,具体的程序流程如下节所述。

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

系统中 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 嵌入式实现,性价比高,功能强,在实际中得到了很好的应用。
接地电阻相关文章:接地电阻测试方法
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论