基于嵌入式系統的遠程參數測量的方法和實現
本文引用地址:http://www.j9360.com/article/264712.htm

值。功率因數為 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 嵌入式實現,性價比高,功能強,在實際中得到了很好的應用。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)互感器相關文章:互感器原理
評論