www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于以太網(wǎng)的遠(yuǎn)程液位監(jiān)控系統(tǒng)設(shè)計(jì)與開發(fā)

引言

  在工業(yè)過程控制系統(tǒng)中液位對象是一種十分普遍的對象,對液位對象的監(jiān)測與控制是系統(tǒng)實(shí)現(xiàn)其功能必不可少的環(huán)節(jié)。在過去,液位的監(jiān)控裝置多數(shù)是使用單片機(jī)實(shí)現(xiàn)點(diǎn)對點(diǎn)控制和顯示[1],工作人員必須到工業(yè)現(xiàn)場操作這些儀器,且單片機(jī)功能十分有限,只能完成一些相對簡單的操作。

  隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,以太網(wǎng)在工業(yè)控制領(lǐng)域的應(yīng)用日趨廣泛,基于以太網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程監(jiān)測、控制和管理的有效集成[2]。使用遠(yuǎn)程監(jiān)控系統(tǒng)通過網(wǎng)絡(luò)對工業(yè)生產(chǎn)過程進(jìn)行監(jiān)測,及時(shí)了解現(xiàn)場信息,快速進(jìn)行決策。

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

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

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

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

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

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

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

  3 軟件設(shè)計(jì)

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

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

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

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

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

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

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

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

LwIP(Light-weight IP)是瑞典計(jì)算機(jī)科學(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ì)時(shí)已經(jīng)把所有與硬件、操作系統(tǒng)、編譯器等移植相關(guān)的部分獨(dú)立出來,放在/src/arch目錄下。因此LwIP在μC/OS-Ⅱ上的實(shí)現(xiàn)就是修改這個(gè)目錄下的文件[6]。

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

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

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

  LwIP中需要使用信號(hào)量通信,所以在sys_arch.h、sys_arch.c中應(yīng)實(shí)現(xiàn)信號(hào)量結(jié)構(gòu)體sys_sem_t,和相關(guān)的信號(hào)量處理函數(shù):包括創(chuàng)建一個(gè)信號(hào)量結(jié)構(gòu)sys_sem_new(),釋放一個(gè)信號(hào)量結(jié)構(gòu)sys_sem_free(),發(fā)送信號(hào)量sys_sem_signal(),請求信號(hào)量sys_arch_sem_wait()。

  LwIP使用消息隊(duì)列來緩沖、傳遞數(shù)據(jù)報(bào)文,因此要在sys_arch.h、sys_arch.c中實(shí)現(xiàn)消息隊(duì)列結(jié)構(gòu)體sys_mbox_t,以及相應(yīng)的操作函數(shù):包括創(chuàng)建一個(gè)消息隊(duì)列sys_mbox_new(),釋放一個(gè)消息隊(duì)列sys_mbox_free(),向消息隊(duì)列發(fā)送消息sys_mbox_post(),從消息隊(duì)列中獲取消息sys_arch_mbox_fetch()。

  LwIP中每個(gè)與外界網(wǎng)絡(luò)連接的線程都有自己的timeout屬性,即等待超時(shí)時(shí)間,移植工作需要實(shí)現(xiàn)sys_arch_timeouts()函數(shù),返回當(dāng)前正處于運(yùn)行態(tài)的線程所對應(yīng)的timeout隊(duì)列指針。

  LwIP中網(wǎng)絡(luò)數(shù)據(jù)的處理需要線程來操作,所以需要實(shí)現(xiàn)創(chuàng)建新線程函數(shù)sys_thread_new()。而在μC/OS-Ⅱ中,沒有線程的概念,只有任務(wù)。因此必須要把創(chuàng)建新任務(wù)的函數(shù)OSTaskCreate()封裝一下,才可以實(shí)現(xiàn)sys_thread_new()。

 ?。?) 相關(guān)庫函數(shù)的實(shí)現(xiàn)[!--empirenews.page--]

  LwIP協(xié)議棧中用到了8個(gè)外部函數(shù),主要是來完成16位數(shù)據(jù)的高低字節(jié)交換、32位數(shù)據(jù)的大小頭對調(diào)、返回字符串長度、字符串比較、內(nèi)存數(shù)據(jù)塊拷貝、指定長度的數(shù)據(jù)塊清零等功能,與系統(tǒng)或編譯器有關(guān),需要用戶實(shí)現(xiàn)。

  (4) 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序

  在LwIP中可以有多個(gè)網(wǎng)絡(luò)接口,每個(gè)網(wǎng)絡(luò)接口都對應(yīng)了一個(gè)netif結(jié)構(gòu),這個(gè)netif包含了相應(yīng)網(wǎng)絡(luò)接口的屬性、收發(fā)函數(shù)。在網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序中主要就是實(shí)現(xiàn)四個(gè)網(wǎng)絡(luò)接口函數(shù):網(wǎng)卡初始化、網(wǎng)卡接收數(shù)據(jù)、網(wǎng)卡發(fā)送數(shù)據(jù)以及網(wǎng)卡中斷處理函數(shù)。

  3.2 PC機(jī)上客戶端程序的設(shè)計(jì)

  VC++6.0環(huán)境下客戶端程序?qū)崿F(xiàn)包括以下幾個(gè)部分:

  (1) 建立客戶端的Socket:客戶端應(yīng)用程序首先構(gòu)造一個(gè)CAsyncSocket[7]對象CltSock,然后調(diào)用CltSock.Create()函數(shù)來建立CltSock實(shí)體。

 ?。?) 提出連接請求:客戶端套接字CltSock通過調(diào)用CltSock.Connect(strAddr,nPort)函數(shù)向服務(wù)器套接字提出連接請求。

 ?。?) 傳輸數(shù)據(jù):在客戶端應(yīng)用程序中重載消息處理函數(shù)OnReceive()和OnSend()。在OnReceive()中通過調(diào)用CltSock.Receive()函數(shù)從服務(wù)器端接收數(shù)據(jù);在OnSend()中通過調(diào)用CltSock.Send()函數(shù)向服務(wù)器端發(fā)送數(shù)據(jù)。

  (4) 關(guān)閉連接:客戶端套接字CltSock通過調(diào)用CltSock.Close()函數(shù)來關(guān)閉連接。

4 遠(yuǎn)程液位監(jiān)控應(yīng)用程序的開發(fā)

  本文設(shè)計(jì)完成的基于以太網(wǎng)的遠(yuǎn)程液位繼電自整定PID控制系統(tǒng),其控制算法在遠(yuǎn)端主機(jī)(客戶機(jī))上實(shí)現(xiàn),兩端通過TCP協(xié)議通信,本地的嵌入式系統(tǒng) (服務(wù)器)上一方面實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的處理,一方面完成對液位高度的采集與控制;遠(yuǎn)端PC機(jī)上一方面處理網(wǎng)絡(luò)上的實(shí)時(shí)數(shù)據(jù),一方面通過PID計(jì)算出控制量,顯示相關(guān)參數(shù)。實(shí)時(shí)液位變化狀況如圖2所示,從圖中可以看出,實(shí)際液位(紅色曲線)能夠穩(wěn)定在液位設(shè)定值(藍(lán)色曲線)處。同時(shí),從用戶界面上既可以讀出液位高度值,PID自整定參數(shù)等,還可以改變液位高度設(shè)定值,從而真正實(shí)現(xiàn)了液位對象的遠(yuǎn)程監(jiān)控。

圖2 遠(yuǎn)程液位繼電自整定PID控制效果圖

  5 結(jié)語

  本文設(shè)計(jì)解決了在嵌入式系統(tǒng)中實(shí)現(xiàn)網(wǎng)絡(luò)功能的問題,引入并實(shí)現(xiàn)了一種新的設(shè)計(jì)方案,即采用三星ARM7處理器S3C44B0X+Realtek的10M網(wǎng)卡RTL8019AS硬件組合,通過在μC/OS-Ⅱ操作系統(tǒng)內(nèi)核的支持下,添加嵌入式TCP/IP協(xié)議棧LwIP,來實(shí)現(xiàn)網(wǎng)絡(luò)通信的功能,與PC機(jī)客戶端的Socket通信,在此基礎(chǔ)上開發(fā)了基于以太網(wǎng)的遠(yuǎn)程液位監(jiān)控系統(tǒng),達(dá)到了良好的控制效果??梢钥闯?,這類系統(tǒng)在遠(yuǎn)程監(jiān)控中的具有良好的應(yīng)用前景。

  本文作者創(chuàng)新點(diǎn):本文將嵌入式網(wǎng)絡(luò)技術(shù)引入到工業(yè)過程遠(yuǎn)程監(jiān)控領(lǐng)域,提出了自己的設(shè)計(jì)方案,并成功開發(fā)了一個(gè)遠(yuǎn)程液位監(jiān)控系統(tǒng)。

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

Lua RTOS 是一個(gè)實(shí)時(shí)操作系統(tǒng),設(shè)計(jì)在嵌入式系統(tǒng)上運(yùn)行,對 FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺(tái),并可以輕松移植到其他32位...

關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時(shí)雙向通信,是嵌入式系統(tǒng)必不可少的d...

關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)

在下述的內(nèi)容中,小編將會(huì)對交換機(jī)的相關(guān)消息予以報(bào)道,如果交換機(jī)是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: 交換機(jī) 工業(yè)交換機(jī) 以太網(wǎng)

Flash Memory 是一種非易失性的存儲(chǔ)器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。

關(guān)鍵字: Flash 存儲(chǔ)器 嵌入式系統(tǒng)

W5500 芯片是一款集成全硬件 TCP/IP 協(xié)議棧的嵌入式以太網(wǎng)控制器,為單片機(jī)提供了更加簡單、快速、穩(wěn)定、安全的以太網(wǎng)接入方案。采用標(biāo)準(zhǔn)4線SPI接口,理論速率上可以達(dá)到 80MHz。

關(guān)鍵字: 嵌入式以太網(wǎng)控制器 以太網(wǎng)

近年來,隨著計(jì)算機(jī)技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。?嵌入式系統(tǒng)一般由嵌入式微處理器、外...

關(guān)鍵字: 嵌入式 嵌入式系統(tǒng) 計(jì)算機(jī)

(全球TMT2022年9月9日訊)2022年9月5日,中國上海工業(yè)通信及工業(yè)聯(lián)網(wǎng)領(lǐng)導(dǎo)廠商Moxa在2022臺(tái)北國際自動(dòng)化工業(yè)大展上揭曉時(shí)間敏感網(wǎng)絡(luò) (TSN) 解決方案最新研發(fā)成果,并展出 TSN 生態(tài)系統(tǒng)在促成統(tǒng)一網(wǎng)...

關(guān)鍵字: 自動(dòng)化 生態(tài)系統(tǒng) IEEE 以太網(wǎng)

本文將深入探討汽車應(yīng)用環(huán)境下以太網(wǎng)AVB/TSN的基本原理

關(guān)鍵字: Microchip 以太網(wǎng)

無線網(wǎng)絡(luò)的應(yīng)用正變得越來越廣泛,尤其在工業(yè)領(lǐng)域。在眾多應(yīng)用中,有些情況需要更可靠并且更安全的通信。使用智能傳感器,和具備高效調(diào)制與編碼技術(shù)的儀表可以建立工業(yè)無線傳感器網(wǎng)絡(luò)。此類網(wǎng)絡(luò)的傳播特性好,帶寬低,不過目前開發(fā)的大部...

關(guān)鍵字: 伍爾特電子 以太網(wǎng)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉