<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

以太網(wǎng)遠程監控系統實(shí)現遠程監測控制和管理技術(shù)設計開(kāi)發(fā)

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

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

  LwIP使用消息隊列來(lái)緩沖、傳遞數據報文,因此要在sys_arch.h、sys_arch.c中消息隊列結構體sys_mbox_t,以及相應的操作函數:包括創(chuàng )建一個(gè)消息隊列sys_mbox_new(),釋放一個(gè)消息隊列sys_mbox_free(),向消息隊列發(fā)送消息sys_mbox_post(),從消息隊列中獲取消息sys_arch_mbox_fetch()。

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

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

 ?。?) 相關(guān)庫函數的實(shí)現

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

 ?。?) 設備驅動(dòng)程序

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

  3.2 PC機上客戶(hù)端程序的設計

  VC++6.0環(huán)境下客戶(hù)端程序實(shí)現包括以下幾個(gè)部分:

 ?。?) 建立客戶(hù)端的Socket:客戶(hù)端應用程序首先構造一個(gè)CAsyncSocket[7]對象CltSock,然后調用CltSock.Create()函數來(lái)建立CltSock實(shí)體。

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

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

 ?。?) 關(guān)閉連接:客戶(hù)端套接字CltSock通過(guò)調用CltSock.Close()函數來(lái)關(guān)閉連接。

4 液位監控應用程序的開(kāi)發(fā)

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

圖片點(diǎn)擊可在新窗口打開(kāi)查看

圖2 遠程液位繼電自整定PID控制效果圖

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>