基于S3C2410的傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)工業(yè)控制中數(shù)據(jù)采集的需求,設(shè)計(jì)開發(fā)了基于S3C2410的傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),給出了系統(tǒng)的整體設(shè)計(jì)方案、蛄構(gòu)框圖。整個(gè)系統(tǒng)硬件體積小、運(yùn)行穩(wěn)定、維護(hù)和升級(jí)方便。實(shí)現(xiàn)了數(shù)據(jù)采集、傳輸、處理、量示及控制功能。
關(guān)鍵詞:數(shù)據(jù)采集;嵌入式系統(tǒng);ARM
O 引言
隨著嵌入式系統(tǒng)與通信技術(shù)的不斷發(fā)展,各種嵌入式設(shè)備正在以不同形式改變著人們的日常生活,ARM技術(shù)作為嵌入式系統(tǒng)的主流技術(shù),它己逐漸取代了單片機(jī)控制技術(shù),使用ARM處理器對(duì)工業(yè)現(xiàn)場(chǎng)傳感器傳出的電流電壓信號(hào)以及一些熱工參數(shù)進(jìn)行數(shù)據(jù)采集已經(jīng)成為主流。
本設(shè)計(jì)在基于嵌入式Linux系統(tǒng)平臺(tái)上。實(shí)現(xiàn)一個(gè)基于ARM、Linux平臺(tái)的傳感器網(wǎng)絡(luò)系統(tǒng),完成數(shù)據(jù)的采集、處理、通訊、存儲(chǔ)、查詢和圖形顯示功能。
1 系統(tǒng)總體組成
本設(shè)計(jì)采用將數(shù)據(jù)采集節(jié)點(diǎn)作為客戶端,將采集得來數(shù)據(jù)通過TCP/IP協(xié)議傳輸?shù)骄W(wǎng)關(guān)節(jié)點(diǎn),由網(wǎng)關(guān)服務(wù)器存儲(chǔ)數(shù)據(jù),并轉(zhuǎn)發(fā)。主控機(jī)可以通過CGI查詢?nèi)?mdash;個(gè)客戶端傳感器數(shù)據(jù),并對(duì)傳感器進(jìn)行控制。如圖l所示。
1.1 節(jié)點(diǎn)的硬件組成
考慮到各采集節(jié)點(diǎn)的完全獨(dú)立性,前端設(shè)備采用嵌入式設(shè)計(jì)方法,其硬件組成結(jié)構(gòu)如圖2所示。
傳感器節(jié)點(diǎn)作為客戶端負(fù)責(zé)對(duì)數(shù)據(jù)采集,并通過模數(shù)轉(zhuǎn)化將數(shù)據(jù)傳輸給網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)接受到數(shù)據(jù)后存入數(shù)據(jù)庫。通過CGI響應(yīng)PC機(jī)上的查詢、控制。
1.2 數(shù)據(jù)的預(yù)處理
節(jié)點(diǎn)數(shù)據(jù)的預(yù)處理,主要是檢測(cè)采集的數(shù)據(jù),對(duì)其進(jìn)行合法過濾。按照既定協(xié)議,為數(shù)據(jù)分配數(shù)據(jù)頭、間隔符、校驗(yàn)碼,重新封裝成數(shù)據(jù)流,采用TCP/IP協(xié)議,通過網(wǎng)絡(luò)發(fā)送到主機(jī)。
1.3 數(shù)據(jù)的存儲(chǔ)及傳輸
存儲(chǔ)器系統(tǒng)負(fù)責(zé)系統(tǒng)的靜態(tài)存儲(chǔ)與動(dòng)態(tài)存儲(chǔ)。其中flash用于靜態(tài)存儲(chǔ),SDRAM用于動(dòng)態(tài)存儲(chǔ)。flash又分為norflash和nandflash。no-rflash支持直接啟動(dòng)用于存儲(chǔ)程序代碼,nandflash用于存儲(chǔ)數(shù)據(jù)信息。SDRAM存儲(chǔ)器速度快,主要作為程序的運(yùn)行空間。
采集節(jié)點(diǎn)作為客戶端,將數(shù)據(jù)打包傳輸給網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)作為服務(wù)器,校驗(yàn)數(shù)據(jù)有效后,存入flash數(shù)據(jù)庫中。通過CGI程序響應(yīng)PC查詢。[!--empirenews.page--]
2 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)的軟件構(gòu)成分為引導(dǎo)驅(qū)動(dòng)程序、操作系統(tǒng)、文件系統(tǒng)和應(yīng)用程序4部分,如圖3所示,引導(dǎo)驅(qū)動(dòng)程序在系統(tǒng)啟動(dòng)時(shí)進(jìn)行內(nèi)存重映射,將保存在Flash中的操作系統(tǒng)和應(yīng)用程序重新映射到SDRAM中,為方便起見也可以配置好啟動(dòng)腳本。Linux內(nèi)核版本為L(zhǎng)inuX2.6。文件系統(tǒng)為Yaffs。包括模塊、配置文件和庫等。系統(tǒng)的應(yīng)用程序建立在Linux內(nèi)核、ADC字符驅(qū)動(dòng)和文件系統(tǒng)之上,可動(dòng)態(tài)加載。
3 節(jié)點(diǎn)配置
3.1 采集節(jié)點(diǎn)配置
(1)配置S3C2410開發(fā)板的NFS Root啟動(dòng)方式。先把rootfs/目錄下的srv目錄刪除,再把采集端發(fā)布包中的srv與node兩個(gè)目錄都拷貝到rootfs目錄下。
(2)以NFS方式啟動(dòng)S3C2410開發(fā)板,配置YAFFS文件系統(tǒng)。
(3)在配置YAFFS文件系統(tǒng)的過程中,在mount-t yaffs/dev/mtdblock3/mnt這一步之后,增加以下步驟:
cd/mnt
rm-r srv
cp-r/srv/node/mnt
然后繼續(xù)繼續(xù)完成剩下的yaffs文件系統(tǒng)的配置步驟,最后注意一定要
mount/mnt
(4)配置采集端啟動(dòng)腳本
vi/etc/init.d/rcS
在里面httpd-h/srv/www一句之前增加以下內(nèi)容:
Ifconfig eth0 up
Ifconfig eth0 192.168.0.25(注意:這里192.168.0.25是采集端開發(fā)板IP,各采集端IP不同,而且需要都在同一個(gè)網(wǎng)段上,我們統(tǒng)一選擇網(wǎng)段192.168.0.*)。
Ifconfig lo up
mknod/dev/adc_char c 240 0
cd/node
Insmod ado.ko
(5)重啟S3C2410采集端開發(fā)板,進(jìn)入vivi,配置paraset linux_cmd_line啟動(dòng)參數(shù)為從YAFFS啟動(dòng)。para save之后鍵入boot,啟動(dòng)開發(fā)板,把開發(fā)板接入網(wǎng)絡(luò)中,從PC機(jī)上運(yùn)行瀏覽器,在地址欄上輸入http://192.168.0.25/,(注意,這里192.168.0.25是采集端IP地址,應(yīng)根據(jù)實(shí)際IP地址輸入),打開設(shè)置網(wǎng)關(guān)IP地址的網(wǎng)頁,設(shè)置網(wǎng)關(guān)IP地址為192.168.0.100。
在采集端串口終端下執(zhí)行如下內(nèi)容:
#cd/node
#./app
3.2 網(wǎng)關(guān)節(jié)點(diǎn)配置
(1)配置S3C2A10開發(fā)板的NFS Root啟動(dòng)方式。先把rootfs/目錄下的srv目錄刪除,再把采集端發(fā)布包中的www文件夾與app可執(zhí)行文件拷貝到rootfs/srv/目錄下和rootfs/srv/www 下。
(2)以NFS方式啟動(dòng)S3C2410開發(fā)板,配置YAFFS文件系統(tǒng)。
(3)在配置YAFFS文件系統(tǒng)的過程中,在mount-t ysffs/dev/mtdblock3/mnt這一步之后,增加以下步驟:
cd/mnt
rm-r srv
cp-r/srv/mnt
然后繼續(xù)繼續(xù)完成剩下的yaffs文件系統(tǒng)的配置步驟,最后注意一定要
umount/mnt
(4)配置采集端啟動(dòng)腳本
vi/etc/init.d/rcS
在里面httpd-h/srv/www一句之前增加以下內(nèi)容:
Ifconfig eth0 up
Ifconfig eth0 192.168.0.100
Ifconfig lo up
(5)重啟S3C2410采集端開發(fā)板,進(jìn)入vivi,配置paraset linux_cmd_line啟動(dòng)參數(shù)為從YAFFS啟動(dòng)。para save之后鍵入boot,啟動(dòng)開發(fā)板,到/srv/www下執(zhí)行app,把開發(fā)板接入網(wǎng)絡(luò)中,從PC機(jī)上運(yùn)行瀏覽器,在地址欄上輸入http://192.168.0.100/,輸入IP地址就可以找剄相應(yīng)節(jié)點(diǎn)所采集到的數(shù)值。
4 總結(jié)
嵌入式Linux因其源碼開放、內(nèi)核穩(wěn)定高效及支持多種體系結(jié)構(gòu)等優(yōu)點(diǎn)在嵌入式系統(tǒng)中應(yīng)用廣泛,本文在陸眥操作系統(tǒng)上,通過交叉編譯環(huán)境編譯后生成可執(zhí)行代碼,可以成功移植到目標(biāo)平臺(tái)上,經(jīng)測(cè)試發(fā)現(xiàn),本系統(tǒng)穩(wěn)定,易維護(hù)。可實(shí)現(xiàn)包括數(shù)據(jù)采集、處理、通訊、存儲(chǔ)、查詢等功能。