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