基于ARM開(kāi)發(fā)板+uCLinux的網(wǎng)絡(luò)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
make dep
make clean
make lib_only
make user_only
make romfs
make image
make
編譯結(jié)束后會(huì)在uCLinux安裝目錄下生成romfs.img文件,利用它可以制作RAM Disk,然后在linux-2.4.X目錄下生成elf格式的Linux內(nèi)核文件,并以下列方式將其轉(zhuǎn)換成bin格式:
#arm-elf-objcopy-O binary linux linux.bin
從而生成下載用的uCLinux內(nèi)核鏡像文件linux.bin。
(3)制作Ram Disk掛栽根文件系統(tǒng)
首先創(chuàng)建一個(gè)512 kB的虛擬磁盤(pán),并將虛擬磁盤(pán)文件格式轉(zhuǎn)化成ext2格式:
dd if/dev/zero of=initrd.img bs=1024 count=512
mkfs.ext2-c init.img
然后將init.img和romfs.img加載到主機(jī)文件系統(tǒng)上,并在RAM中建立需要的目錄:/bin,/dev,/etc,/var,進(jìn)而拷貝ROM中的文件到ram目錄中。
下來(lái)在RAM盤(pán)dev目錄下創(chuàng)建設(shè)備節(jié)點(diǎn):
#mknod ram/dev/ttyS0 c 4 64
#mknod ram/dev/console c 5 1
最后卸載init.img和romfs.img,并應(yīng)確保init.img修改已保存,至此,RAM DISK便創(chuàng)建完成。
(4)下載內(nèi)核和文件系統(tǒng)
正確設(shè)置主板啟動(dòng)選擇跳線。主板加電后,在超級(jí)終端上便可以看到BootLoader引導(dǎo)信息,可選擇默認(rèn)的FTP連接,并使用BootLoader默認(rèn)的IP進(jìn)行下載,然后啟動(dòng)gftp,輸入主板默認(rèn)的IP和端口號(hào)。這樣,linux主機(jī)就可以和主機(jī)連接,最后選擇需要下載的Linux內(nèi)核文件和RAM盤(pán)及相關(guān)的配置文件即可。
2 監(jiān)控系統(tǒng)功能的實(shí)現(xiàn)
監(jiān)控系統(tǒng)主要由3個(gè)部分組成:數(shù)據(jù)采集部分,設(shè)備控制部分,數(shù)據(jù)傳輸部分。數(shù)據(jù)采集部分可對(duì)傳感器信號(hào)進(jìn)行A/D轉(zhuǎn)換,并對(duì)采集到的數(shù)據(jù)進(jìn)行簡(jiǎn)單的處理,同時(shí)提供調(diào)整運(yùn)行參數(shù)的接口。數(shù)據(jù)傳輸部分可將采集的數(shù)據(jù)傳送到遠(yuǎn)端的主機(jī),并接收遠(yuǎn)端主機(jī)的控制信息。遠(yuǎn)端主機(jī)則對(duì)傳輸過(guò)來(lái)的遠(yuǎn)程數(shù)據(jù)進(jìn)行處理、存儲(chǔ)和顯示,并可以修改數(shù)據(jù)采集部分的參數(shù)以控制數(shù)據(jù)采集,同時(shí)依據(jù)采集到的數(shù)據(jù)對(duì)設(shè)備發(fā)出操作指令,或?qū)h(yuǎn)端的設(shè)備進(jìn)行控制,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能。
2.1 數(shù)據(jù)采集
使用A/D轉(zhuǎn)換設(shè)備前,首先要?jiǎng)?chuàng)建設(shè)備節(jié)點(diǎn),并加載ADC驅(qū)動(dòng),然后通過(guò)open()和close()將其打開(kāi)和關(guān)閉.主要的數(shù)據(jù)采集程序如下:
……
ioctl(fd,ADC_SET_CLKDIV,(Fpclk+fadc1)/fadc-1);//設(shè)置A/D轉(zhuǎn)換速度;
ioctl(fd,ADC_SET_BITS,10);//設(shè)置A/D轉(zhuǎn)換精度;
while(1) {
ad_data=0;
read(fd,ad_data,sizeof(ad_data));//讀取A/D轉(zhuǎn)換的值;
……
2.2 GPIO設(shè)備控制
同A/D轉(zhuǎn)換設(shè)備類(lèi)似,使用GPIO也需先創(chuàng)建設(shè)備節(jié)點(diǎn)并加載驅(qū)動(dòng)。對(duì)GPIO操作前,應(yīng)通過(guò)open()打開(kāi),使用后應(yīng)通過(guò)close()關(guān)閉。
評(píng)論