新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)實現(xiàn)遠(yuǎn)程監(jiān)測控制和管理技術(shù)設(shè)計開發(fā)

以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)實現(xiàn)遠(yuǎn)程監(jiān)測控制和管理技術(shù)設(shè)計開發(fā)

作者: 時間:2009-12-25 來源:網(wǎng)絡(luò) 收藏

隨著通信的發(fā)展,在工業(yè)領(lǐng)域的應(yīng)用日趨廣泛,基于、的有效集成[2]。使用通過對工業(yè)生產(chǎn)過程進(jìn)行,及時了解現(xiàn)場信息,快速進(jìn)行決策。

本文引用地址:http://2s4d.com/article/157702.htm

  遠(yuǎn)程的關(guān)鍵在于如何解決工業(yè)現(xiàn)場設(shè)備的接入問題。目前,主要有兩種方法:一種是使用PC機通過PC機端口(如RS232、USB接口)或數(shù)據(jù)采集卡來采集數(shù)據(jù)同時提供網(wǎng)絡(luò)接口[3],這種方法利用強大的PC機軟件支持,容易網(wǎng)絡(luò)通信功能,但是PC機端口資源有限,專用采集卡成本較高,難以推廣;另一種就是在現(xiàn)場使用嵌入式系統(tǒng)網(wǎng)絡(luò)接入,嵌入式系統(tǒng)具有功耗低、體積小、成本低、可靠性高、實時性強等特點,使用在工業(yè)控制現(xiàn)場比較合適。

  本文將嵌入式和網(wǎng)絡(luò)技術(shù)相結(jié)合,在現(xiàn)場利用嵌入式系統(tǒng)實現(xiàn)網(wǎng)絡(luò)通信功能以實時傳輸液位信號和控制信號,在客戶端PC機上通過套接字編程實現(xiàn)與現(xiàn)場嵌入式系統(tǒng)的遠(yuǎn)程通信,從而達(dá)到對遠(yuǎn)程液位的監(jiān)控。

  1 遠(yuǎn)程液位結(jié)構(gòu)

  本文設(shè)計的遠(yuǎn)程液位監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示:其中,處理器芯片采用ARM微處理器S3C44B0X;S3C44B0X自帶8路10位ADC進(jìn)行A/D轉(zhuǎn)換來采集液位數(shù)據(jù),通過擴展DAC0832實現(xiàn)D/A轉(zhuǎn)換以輸出控制量;S3C44B0X連接10M卡RTL8019AS,提供網(wǎng)絡(luò)功能的硬件接口;μC/OS-Ⅱ移植到S3C44B0X上,提供操作系統(tǒng)的支持,方便了應(yīng)用程序的開發(fā)和對整個系統(tǒng)的;嵌入式TCP/IP協(xié)議棧LwIP移植到μC/OS-Ⅱ平臺上,實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的軟件處理,從而為嵌入式系統(tǒng)提供網(wǎng)絡(luò)通信功能;遠(yuǎn)程PC機客戶端登錄到嵌入式系統(tǒng)服務(wù)器上,通過以太網(wǎng)實現(xiàn)兩端數(shù)據(jù)的實時交互。

圖片點擊可在新窗口打開查看

圖1 遠(yuǎn)程液位監(jiān)控系統(tǒng)結(jié)構(gòu)圖

  2 硬件介紹與設(shè)計

  三星的S3C44B0X微處理器芯片采用ARM公司16/32位ARM7TDMI RISC結(jié)構(gòu)的CPU核,主頻為66MHz,通過擴展一系列通用外圍部件,提供豐富的外設(shè)功能。它的存儲系統(tǒng)具有8個存儲體,每個有32MB的存儲空間,通過nGCS0-7這8個片選來分配。本文使用的設(shè)計方案中nGCS0接Flash芯片AM29LV160DB,起始地址0x00000000,大小為2MB,nGCS6接SDRAM芯片HY57V641620ET-7,起始地址為0x0c000000,大小為8MB,nGCS3接RTL8019AS,起始地址為0x06000000。

  RTL8019AS是一款高度集成的全雙工以太網(wǎng)控制器,收發(fā)可同時達(dá)到10Mbps的速度;支持8位、16位數(shù)據(jù)總線,8個中斷請求線可供選擇;支持UTP、AUI和BNC的自動檢測;內(nèi)置16K的SRAM,用于數(shù)據(jù)緩沖,以256B為單位的分頁結(jié)構(gòu),可以自行分配用于收發(fā)的分頁的大小和位置,一般前12頁用于發(fā)送緩沖,后52頁用于接收緩沖;硬件自帶收發(fā)CRC校驗、FIFO邏輯隊列等,減少了主CPU處理網(wǎng)絡(luò)數(shù)據(jù)的工作量。S3C44B0X對RTL8019AS的操作主要集中在對網(wǎng)卡寄存器的讀寫和網(wǎng)卡內(nèi)SRAM的處理。

  3 軟件設(shè)計

  3.1 基于嵌入式系統(tǒng)的服務(wù)器端程序設(shè)計

  3.1.1 S3C44B0X上μC/OS-Ⅱ的移植

  嵌入式操作系統(tǒng)μC/OS-Ⅱ可以運行于各種不同類型的微處理器上,其內(nèi)核小、效率高,并且具有高度的模塊化和可移植性,支持多任務(wù)實時調(diào)度,擴展后可支持網(wǎng)絡(luò)功能、圖形界面等,使得應(yīng)用程序的開發(fā)更加簡單,功能更加豐富。

  在使用μC/OS-Ⅱ之前,要先將它移植到S3C44B0X上,移植工作主要包括三個方面[4]:

 ?。?) 設(shè)置與處理器和編譯器相關(guān)的代碼,包括一系列數(shù)據(jù)類型的定義,開中斷宏、關(guān)中斷宏的實現(xiàn),定義堆棧的生長方向;

 ?。?) 用C語言編寫6個操作系統(tǒng)相關(guān)的函數(shù):OSTaskStkInit()初始化任務(wù)的堆棧結(jié)構(gòu),和5個鉤子函數(shù)OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeHook()、OSTaskCreateHook();

  (3) 用匯編語言編寫4個與處理器相關(guān)的函數(shù):運行優(yōu)先級最高的就緒任務(wù)函數(shù)OSStartHighRdy(),任務(wù)級的任務(wù)切換函數(shù)OS_TASK_SW(),中斷級的任務(wù)切換函數(shù)OSIntCtxSw(),時鐘節(jié)拍服務(wù)函數(shù)OSTickISR()。

3.1.2 μC/OS-Ⅱ上TCP/IP協(xié)議棧的實現(xiàn)

LwIP(Light-weight IP)是瑞典計算機科學(xué)院(Swedish Institute of Computer Science)的Adam Dunkels等開發(fā)的一套開源的TCP/IP協(xié)議棧[5],LwIP在保持TCP/IP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,這使得它適合在低端嵌入式系統(tǒng)中使用。

  LwIP協(xié)議棧在設(shè)計時已經(jīng)把所有與硬件、操作系統(tǒng)、編譯器等移植相關(guān)的部分獨立出來,放在/src/arch目錄下。因此LwIP在μC/OS-Ⅱ上的實現(xiàn)就是修改這個目錄下的文件[6]。

 ?。?) 與CPU、編譯器相關(guān)的部分

  主要是cc.h、cpu.h、peRF.h文件中有關(guān)數(shù)據(jù)長度、字的高低位順序等的定義,這些應(yīng)該與實現(xiàn)μC/OS-Ⅱ時參數(shù)的定義保持一致。另外,一般情況下C語言的結(jié)構(gòu)體struct是4字節(jié)對齊的,但是在處理數(shù)據(jù)包的時候,LwIP使用的是通過結(jié)構(gòu)體中不同數(shù)據(jù)的長度來讀取相應(yīng)的數(shù)據(jù),所以,一定要在定義struct的時候使用_packed關(guān)鍵字,讓編譯器放棄struct的字節(jié)對齊。

  (2) 與操作系統(tǒng)相關(guān)的部分


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉