基于嵌入式系統(tǒng)的遠(yuǎn)程參數(shù)測(cè)量的方法和實(shí)現(xiàn)
本文引用地址:http://2s4d.com/article/264712.htm
值。功率因數(shù)為 cosφ=P/UI。系統(tǒng)的采樣時(shí)間間隔由用戶確定。采樣時(shí),在 1 個(gè)信號(hào)周期內(nèi)等時(shí)間間隔準(zhǔn)確采樣 16 點(diǎn)并存儲(chǔ)結(jié)果,采集完后,對(duì)采集的數(shù)據(jù)進(jìn)行數(shù)字濾波并計(jì)算得到相應(yīng)的值。
交直流電流的采集采用霍爾器件 ACS752SCA-050 和 ACS706ELC-20A,其工作原理相同,支持的最大電流分別為-50A 到+50A 和-20A 到+20A。它將流過(guò)該器件的電流通過(guò)霍爾感應(yīng)后再處理放大輸出相應(yīng)的電壓值,該電壓值和流過(guò)的電流值成正比,其比例關(guān)系如圖3a 所示。當(dāng)流過(guò)電流為 0 時(shí),輸出電壓為 2.5V(5V 供電),當(dāng)流過(guò)電流為 50A 時(shí),輸出電壓為 4.5V,當(dāng)流過(guò)電流為-50A 時(shí),輸出電壓為 0.5V,其間為線性變化,由此按照測(cè)出的電壓值可以計(jì)算出電流為 I=25×(V-2.5)A,由于電流可以正反方向,因此用同樣的方法可以測(cè)試交流和直流電流。
系統(tǒng)中溫度測(cè)量采用 DS18B20 分辨率可編程單線數(shù)字溫度計(jì),并可結(jié)聯(lián)使用,其應(yīng)用原理如圖 2 所示。測(cè)量溫度范圍為-55 度至+125 度,精度可達(dá) 0.5 度,數(shù)字精度可編程為9 至12bit。該芯片僅單線輸出,可連接 CPU 的 IO 管腳,需進(jìn)行編程控制。本系統(tǒng)采用Linux 操作系統(tǒng)下的 IO 輸入輸出設(shè)備驅(qū)動(dòng)控制進(jìn)行讀寫(xiě)操作,進(jìn)而實(shí)現(xiàn)溫度數(shù)據(jù)的采集,具體的程序流程如下節(jié)所述。
圖 3a 電流感應(yīng)輸出電壓關(guān)系圖 圖 3b 光照度頻率關(guān)系圖
系統(tǒng)中光照度測(cè)量采用光敏傳感器 TSL235 電路,該電路是光照度到頻率的轉(zhuǎn)換電路,內(nèi)置一個(gè)硅光敏二極管和電流到頻率的轉(zhuǎn)換器,輸出為 50%占空比的不同頻率的方波,管腳只有電源、地和輸出,輸出可直接和 CPU 的 IO 相連,CPU 通過(guò) TIMER 控制或中斷檢測(cè)即可測(cè)得該方波的頻率,從而可計(jì)算出相應(yīng)的光照度。其光照度和頻率的關(guān)系曲線如圖 3b 所示。
5. 軟件模塊
本系統(tǒng)軟件在 linux 操作系統(tǒng)下實(shí)現(xiàn),其軟件結(jié)構(gòu)如圖 4 所示。按照需求定義,需實(shí)現(xiàn)多種軟件協(xié)議,有 EIA232, IEEE802.3, IPv4, ICMP, ARP, TCP, UDP, SNMP V2,3 Agent, NTP Client, DNS Client, TFTP Server, HTTP Server, TELNET Server 等。系統(tǒng)啟動(dòng)時(shí)需對(duì)硬件和軟件模塊進(jìn)行初始化和診斷,并將診斷結(jié)果實(shí)時(shí)輸出到串口。然后將控制權(quán)交給操作系統(tǒng)。 操作系統(tǒng)和應(yīng)用程序存儲(chǔ)于 flash 中, 當(dāng)具體運(yùn)行時(shí)裝載到 sdram 中。啟動(dòng)時(shí)讀取用戶配置文件(或默認(rèn)配置)并進(jìn)行各種參數(shù)的配置,如通信速率、IP 地址等,然后開(kāi)始測(cè)量、收集、存儲(chǔ)數(shù)據(jù)在sdram 和 flash 的 MIB 數(shù)據(jù)庫(kù)中。當(dāng)有網(wǎng)絡(luò)或串口用戶進(jìn)行通信時(shí)完成數(shù)據(jù)交換和命令的實(shí)現(xiàn)。
系統(tǒng)中 ADC、IO 等操作均采用設(shè)備驅(qū)動(dòng)方法實(shí)現(xiàn),先編寫(xiě)設(shè)備驅(qū)動(dòng)程序,將驅(qū)動(dòng)加入到操作系統(tǒng)中,然后在應(yīng)用中調(diào)用驅(qū)動(dòng)程序。如 DS18B20 溫度采集采用 IO 操作的方法。先建立 IO 驅(qū)動(dòng), module_init(DS18B20_init), 主要實(shí)現(xiàn)設(shè)備注冊(cè) register_chrdev(240, "ds18b20", &DS18B20_fops)。DS18B20_fops 文件操作主要包括 ioctl,通過(guò) ioctl 中WriteOneChar,ReadOneChar 等 IO 的控制實(shí)現(xiàn)溫度的采集。
6.結(jié)語(yǔ)
本文介紹了基于 S3C2410X ARM 的參數(shù)測(cè)量系統(tǒng),該系統(tǒng)可針對(duì)電力設(shè)備的電壓、電流、溫度、光敏度等進(jìn)行測(cè)量、采集,存儲(chǔ)于系統(tǒng)內(nèi)部基于 SNMP 的 MIB 數(shù)據(jù)庫(kù)中,并通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行遠(yuǎn)程訪問(wèn)。系統(tǒng)采用 ARM 嵌入式實(shí)現(xiàn),性價(jià)比高,功能強(qiáng),在實(shí)際中得到了很好的應(yīng)用。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)互感器相關(guān)文章:互感器原理
評(píng)論