日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]隨著網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,嵌入式系統(tǒng)現(xiàn)已進(jìn)入高速發(fā)展階段。并在社會(huì)各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。本文介紹了一種采用ARM+uCLinux作為開(kāi)發(fā)平臺(tái)。實(shí)現(xiàn)基于TCP/IP的遠(yuǎn)程系統(tǒng)監(jiān)控.從而取代傳統(tǒng)單片機(jī)來(lái)實(shí)現(xiàn)數(shù)據(jù)采集、預(yù)處理和通信功能;并依靠互聯(lián)網(wǎng)將數(shù)據(jù)向上位機(jī)傳送,同時(shí)支持遠(yuǎn)端客戶對(duì)設(shè)備進(jìn)行遠(yuǎn)程控制,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能的具體方法。

隨著網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,嵌入式系統(tǒng)現(xiàn)已進(jìn)入高速發(fā)展階段。并在社會(huì)各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。本文介紹了一種采用ARM+uCLinux作為開(kāi)發(fā)平臺(tái)。實(shí)現(xiàn)基于TCP/IP的遠(yuǎn)程系統(tǒng)監(jiān)控.從而取代傳統(tǒng)單片機(jī)來(lái)實(shí)現(xiàn)數(shù)據(jù)采集、預(yù)處理和通信功能;并依靠互聯(lián)網(wǎng)將數(shù)據(jù)向上位機(jī)傳送,同時(shí)支持遠(yuǎn)端客戶對(duì)設(shè)備進(jìn)行遠(yuǎn)程控制,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能的具體方法。

1 系統(tǒng)平臺(tái)的構(gòu)建

本系統(tǒng)由嵌入式平臺(tái)服務(wù)器、前端控制器、前端傳感器、客戶端和配置PC組成。開(kāi)發(fā)時(shí)可通過(guò)配置PC來(lái)下載系統(tǒng)和應(yīng)用軟件。嵌入式系統(tǒng)平臺(tái)能夠收集現(xiàn)場(chǎng)數(shù)據(jù)。并傳送到遠(yuǎn)端客戶機(jī),之后由遠(yuǎn)端客戶機(jī)對(duì)數(shù)據(jù)進(jìn)行處理,接著發(fā)送控制信號(hào)給系統(tǒng)服務(wù)器,以便通過(guò)前端控制器對(duì)設(shè)備進(jìn)行遠(yuǎn)程控制。其系統(tǒng)結(jié)構(gòu)如圖1所示。

1.1 硬件開(kāi)發(fā)平臺(tái)

該系統(tǒng)的硬件開(kāi)發(fā)平臺(tái)可選擇SmartARM2200。該嵌入式設(shè)備的核心是ARM7TDMI的LPC2210.開(kāi)發(fā)板自身具有A/D轉(zhuǎn)換器和多個(gè)GPIO(通用I/O)口,可對(duì)工業(yè)現(xiàn)場(chǎng)的各種設(shè)備、儀表進(jìn)行數(shù)據(jù)采集和監(jiān)控。使用時(shí),只要將相應(yīng)的傳感器信號(hào)接入控制器的端口即可。其開(kāi)發(fā)板系統(tǒng)的硬件配置如圖2所示。

1.2 uCLinux操作系統(tǒng)

操作系統(tǒng)是嵌入式設(shè)備軟件的核心部分。本系統(tǒng)采用uCLinux系統(tǒng)平臺(tái)來(lái)完成對(duì)硬件系統(tǒng)的管理和維護(hù)。uCLinux是廣泛應(yīng)用于微控制領(lǐng)域的一種嵌入式Linux操作系統(tǒng)。它通過(guò)對(duì)標(biāo)準(zhǔn)Linux內(nèi)核的裁減,可去除虛擬內(nèi)存管理部分代碼,以對(duì)內(nèi)存分配進(jìn)行優(yōu)化。從而達(dá)到提高系統(tǒng)運(yùn)行效率的目的。uCLinux則可經(jīng)過(guò)各方面的小型化改造形成一個(gè)高度優(yōu)化、代碼緊湊的嵌入式Linux,它保留了Linux的大多數(shù)優(yōu)點(diǎn),包括穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、完備的文件系統(tǒng)支持、豐富的API等。

1.3 uCLinux在ARM平臺(tái)上的移植

若將uCLinux移植到SmartARM2200上,需要進(jìn)行以下四個(gè)步驟:
(1)下載源碼,建立交叉編譯環(huán)境

uCLinux是自由軟件(完全開(kāi)放代碼)。用戶可以直接從http://www.uclinux.org/pub/uclinux處下載源代碼并安裝到Red Hat9.0系統(tǒng)下,以便正常在Red Hat9.0建立起交叉編譯環(huán)境。

(2)配置和編譯內(nèi)核

進(jìn)入到安裝好的uCLinux目錄,依次執(zhí)行下面的命令:

make menuconfig;進(jìn)入配置菜單后,選擇Vendor/Product(廠商/產(chǎn)品)下的PHILIPS/lpc2200;用Kernel Version(內(nèi)核版本)選擇Linux-2.4.x,Libc Version(函數(shù)庫(kù)版本)選擇uClibc:其余內(nèi)核和應(yīng)用程序選項(xiàng)可根據(jù)情況選擇。
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)閉。

首先。選定開(kāi)發(fā)板上沒(méi)有使用過(guò)的GPIO端口,設(shè)定其輸入/輸入狀態(tài),然后根據(jù)客戶端返回的信息對(duì)端口進(jìn)行操作,輸出0/1的電平,以使其外部連接的繼電器動(dòng)作。從而控制設(shè)備的運(yùn)轉(zhuǎn)。程序主要通過(guò)函數(shù)ioctl來(lái)實(shí)現(xiàn)。ioctl是設(shè)備驅(qū)動(dòng)程序中對(duì)設(shè)備的I/O通道進(jìn)行管理的函數(shù),通過(guò)它可對(duì)設(shè)備的一些特性進(jìn)行控制.其函數(shù)原形為:
int ioctl(int fd,ind cmd,…);

其中,fd是用程序打開(kāi)設(shè)備時(shí),使用open函數(shù)返回的文件標(biāo)示符;cmd是用戶程序?qū)υO(shè)備的控制命令;至于后面的省略號(hào),則是一些補(bǔ)充參數(shù)(一般最多一個(gè),有或沒(méi)有是和cmd的意義相關(guān)的)。在這里,可通過(guò)如下一組函數(shù)來(lái)實(shí)現(xiàn):

ioctl(fd1,GPIO_SET_PIN_IN,devicel);
//設(shè)置管角為輸出狀態(tài);
ioctl( fd2, GPIO_SET_PIN_OUT, devicel_state);
//設(shè)置管角為輸入狀態(tài);
ioctl(fd2,GPIO_READ_PIN,&devicel_state);
//讀取設(shè)備狀態(tài)管角;
ioctl(fd1,GPIO_CLR_PIN,device);
//清除設(shè)備管角控制信號(hào);

2.3 網(wǎng)絡(luò)通信程序

網(wǎng)絡(luò)通信程序可使用TCP/IP協(xié)議下標(biāo)準(zhǔn)的socket套接字編寫(xiě)。套接字(socket)是網(wǎng)絡(luò)通信的基本操作單元。它提供了不同主機(jī)間進(jìn)程雙向通信的端點(diǎn)。這些進(jìn)程在通信前應(yīng)各自建立一個(gè)socket,并通過(guò)對(duì)socket的讀/寫(xiě)操作實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。常用的套接字有兩種:流式套接字(Stream Socket)和數(shù)據(jù)報(bào)套接字(Datagram Socket)。其中,流式套接字是可靠的面向連接的通信數(shù)據(jù)流,是無(wú)錯(cuò)誤的傳輸;而數(shù)據(jù)報(bào)套接字則使用UDP來(lái)傳送數(shù)據(jù)包,數(shù)據(jù)包的順序是沒(méi)有保障的。本系統(tǒng)采用流式套接字進(jìn)行程序設(shè)計(jì)。

流式套接字的服務(wù)進(jìn)程和客戶進(jìn)程建立連接及通信的程序流程如圖3所示?,F(xiàn)具體說(shuō)明如下:

(1)服務(wù)進(jìn)程首先調(diào)用socket()創(chuàng)建一個(gè)流式套接字,并調(diào)用bind()將服務(wù)器地址捆扎在該套接字上,接著調(diào)用listen()監(jiān)聽(tīng)連接請(qǐng)求,隨后調(diào)用accept()做好與客戶進(jìn)程建立連接的準(zhǔn)備。無(wú)連接請(qǐng)求時(shí),服務(wù)進(jìn)程被阻塞;

(2)客戶進(jìn)程先調(diào)用socket()創(chuàng)建流式套接字,然后調(diào)用connect()向服務(wù)進(jìn)程發(fā)出連接請(qǐng)求;

(3)當(dāng)連接請(qǐng)求到來(lái)后,服務(wù)進(jìn)程被喚醒,并生成一個(gè)新的流式套接字。同時(shí)用新套接字同客戶進(jìn)程的套接字建立連接,而服務(wù)進(jìn)程最早生成的套接字則繼續(xù)用于監(jiān)聽(tīng)網(wǎng)絡(luò)上的服務(wù)請(qǐng)求;

(4)服務(wù)進(jìn)程和客戶進(jìn)程通過(guò)調(diào)用send()和recv()來(lái)交換數(shù)據(jù),服務(wù)器可向客戶端傳送所收集的數(shù)據(jù)??蛻舳藙t向服務(wù)器反饋控制信息和參數(shù)調(diào)整信息;

(5)服務(wù)進(jìn)程或客戶進(jìn)程可通過(guò)調(diào)用close()來(lái)撤消套接字并中斷連接。

服務(wù)器端的程序通過(guò)交叉編譯環(huán)境編譯后??赏ㄟ^(guò)NFS(網(wǎng)絡(luò)文件系統(tǒng))下載到開(kāi)發(fā)板中,然后手動(dòng)加入到rc引導(dǎo)文件中。即可實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)運(yùn)行。

結(jié)束語(yǔ)

基于ARM和CLinux嵌入式系統(tǒng)代表了目前嵌入式系統(tǒng)的發(fā)展方向。嵌入式系統(tǒng)與網(wǎng)絡(luò)技術(shù)和控制技術(shù)相結(jié)合.是嵌入式系統(tǒng)發(fā)展的必然趨勢(shì)。本文討論了基于ARM+uCLinux平臺(tái)的網(wǎng)絡(luò)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法。并對(duì)該平臺(tái)下應(yīng)用TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信進(jìn)行了探討。該方法對(duì)于自動(dòng)化樓宇、工業(yè)控制、智能家居等方面都有一定的借鑒意義。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在半導(dǎo)體產(chǎn)業(yè)的傳統(tǒng)認(rèn)知中,Arm 是構(gòu)建數(shù)字世界的“圖紙?zhí)峁┥獭?。然而,隨著代理式 AI(Agentic AI)對(duì)異構(gòu)計(jì)算需求的指數(shù)級(jí)增長(zhǎng),單純的 IP 和計(jì)算子系統(tǒng)授權(quán)已難以完全消納市場(chǎng)對(duì)于算力部署時(shí)效性的渴求。Arm...

關(guān)鍵字: ARM AGI CPU 數(shù)據(jù)中心 AI

展望未來(lái),當(dāng)摩根士丹利預(yù)測(cè)中 800 倍增長(zhǎng)的機(jī)器人半導(dǎo)體市場(chǎng)真正兌現(xiàn)時(shí),Arm 的物理 AI 平臺(tái)將作為底層基礎(chǔ)設(shè)施,支撐起從工廠到家庭、從道路到天空的智能物理世界。計(jì)算的邊界正在被重新定義,而 Arm 已在新邊界上筑...

關(guān)鍵字: ARM 物理 AI 自動(dòng)駕駛 機(jī)器人

3月25日消息,一直以來(lái),Arm都是一家對(duì)外提供IP授權(quán)的芯片企業(yè),包括CPU、GPU、NPU和各種系統(tǒng)IP。

關(guān)鍵字: ARM META

成立三十余年來(lái),Arm一直是芯片行業(yè)特殊的“幕后推手”——不生產(chǎn)一顆芯片,卻定義了全球99%智能手機(jī)的底層架構(gòu)。然而,這家長(zhǎng)期保持中立的IP授權(quán)巨頭,如今正打破自己一手建立的商業(yè)規(guī)則。

關(guān)鍵字: ARM CPU 芯片

Arm 首次將其平臺(tái)矩陣拓展至量產(chǎn)芯片產(chǎn)品,為業(yè)界提供覆蓋 IP、Arm計(jì)算子系統(tǒng) (CSS)及芯片的最廣泛的計(jì)算產(chǎn)品選擇。 發(fā)布首款由 Arm 設(shè)計(jì)的數(shù)據(jù)中心 CPU——Arm AGI CPU,專(zhuān)為代理式AI 基...

關(guān)鍵字: ARM CPU 數(shù)據(jù)中心 代理式AI

為下一代 AI 基礎(chǔ)設(shè)施實(shí)現(xiàn)突破性機(jī)架級(jí)性能、擴(kuò)展性和效率

關(guān)鍵字: ARM AGI CPU 代理式AI

在Zynq MPSoC開(kāi)發(fā)中,實(shí)現(xiàn)PS端Linux與PL端自定義IP核的AXI互聯(lián)是構(gòu)建高性能異構(gòu)系統(tǒng)的關(guān)鍵環(huán)節(jié)。這種互聯(lián)方式充分發(fā)揮了ARM處理器的軟件優(yōu)勢(shì)與FPGA的硬件加速能力,為復(fù)雜應(yīng)用提供了強(qiáng)大的計(jì)算平臺(tái)。

關(guān)鍵字: Zynq MPSoC Linux

在物聯(lián)網(wǎng)與智能設(shè)備飛速普及的當(dāng)下,嵌入式系統(tǒng)的安全性與穩(wěn)定性愈發(fā)關(guān)鍵。實(shí)時(shí)操作系統(tǒng)(RTOS)憑借其高確定性、低延遲的特性,成為工業(yè)控制、醫(yī)療設(shè)備、航空電子等安全敏感領(lǐng)域的核心支撐。而內(nèi)存保護(hù)單元(MPU)作為硬件級(jí)安全...

關(guān)鍵字: Linux Windows

在工業(yè)控制、汽車(chē)電子等實(shí)時(shí)性要求嚴(yán)苛的領(lǐng)域,中斷風(fēng)暴如同懸在系統(tǒng)頭頂?shù)倪_(dá)摩克利斯之劍——當(dāng)多個(gè)高優(yōu)先級(jí)中斷密集觸發(fā)時(shí),傳統(tǒng)MCU常因處理能力不足陷入癱瘓。ARM Cortex-M內(nèi)核通過(guò)NVIC(嵌套向量中斷控制器)的優(yōu)...

關(guān)鍵字: 中斷風(fēng)暴 ARM
關(guān)閉