新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 單網絡節點在WinCE系統下的程序設計

        單網絡節點在WinCE系統下的程序設計

        作者: 時間:2014-02-16 來源:網絡 收藏

        1.系統

        所謂節點簡單而言就是指的具有收發數據功能的電腦或其他設備。一個好的節點既需要選擇好的硬件的支持,也需要選擇適合的軟件控制[1],本文選擇S3C6410的Arm11芯片作為節點CPU,選擇WindowsCE 6.0作為運行在ARM上的嵌入式操作系統,通過網口,串口,SD卡完成相應的數據通信功能。本文研究的節點硬件結構框圖如圖1所示。

        單網絡節點在WinCE系統下的程序設計

        2.WinCE下網口數據傳輸程序設計

        2.1 網口服務器程序設計

        在利用套接字進行網絡通信的實際應用中,一般采用的是服務器/客戶端[2]

        的模式,在本文的設計中,既研究了以PC機作為服務器端,以ARM作為客戶端,又研究了以ARM作為服務器端,以PC機作為客戶端。本文服務器設計的基本流程為:

        利用函數socket()創建一個套接字,然后利用函數bind()將該套接字與本地(PC機)的IP地址和端口號綁定,接著利用函數listen()使該套接字處于監聽狀態,然后當等待到客戶端的連接信號后,利用函數accept()與客戶端連接,最后利用函數send()和函數recv()進行通信工作。當結束通信后,再利用函數closesocket()將套接字關閉。

        2.2 本文的服務器端程序設計思想

        本文的服務器端程序設計思想如圖2所示。

        單網絡節點在WinCE系統下的程序設計
        3.WinCE下AD數據采集程序設計
        3.1 ARM板AD采集器驅動程序設計
        流接口驅動就是通過調用動態連接庫的方式來加載硬件的功能,它由設備管理器直接調用。下的流接口驅動編寫,有著固定的接口入口點,其接口點是一系列的類似于XXX_Open()結構的函數集。由這些函數集來調用系統的文件API函數和相應的組件。本文設計的是AD采集器的流接口驅動,接口入口點(即函數集)和用途如下所描述:
        (1)函數ADC_Init(),該函數用于初始化AD采集器設備,為系統的設備管理器所調用。
        (2)函數ADC_Denit(),該函數用于卸載AD采集器設備,為系統的設備管理器所調用。
        (3)函數ADC_Open(),該函數用于打開AD采集器設備,被系統的文件API函數CreateFile()調用。
        (4)函數ADC_Close(),該函數用于關閉AD采集器設備,被系統的文件API函數CloseHandle()調用。
        (5)函數ADC_Read(),該函數用于從AD采集器讀取數據,被系統的文件API函數ReadFile()調用。
        (6)函數ADC_Write(),該函數用于向AD采集器寫入數據,被系統的文件API函數WriteFile()調用。
        (7)函數ADC_IOControl(),該函數用于對AD采集器進行I/O操作,被系統的文件API函數DeviceIOControl()調用。
        需要提出來的是本文研究的A D采集器不涉及到電源管理和設備指針的操作。
        而需要用到這兩個方面操作的流接口設備驅動程序,還需要添加函數XXX_Seek(),函數X X X _ P o w e r D o w n ( ) 和函數X X X _PowerUp()。其作用分別是對XXX設備進行移動數據指針,休眠和恢復電源。
        3.2 WinCE下四通道AD采集應用程序設計
        本研究采用的ARM提供了四個外部的AD通道,可以利用這些通道實現四路對模擬數據的采集功能。通過EVC++編寫應用軟件調用AD流接口驅動程序,實現對模擬信號的采集,將采集的數據通過網口發送到PC機端。該設計采用多線程方式,使AD采集,數據處理,網口通信模塊化,并采用雙buff采集和發送的交互方式,保證了數據的不丟失性。網口通信模塊直接運用前面設計的網口通信流程,數據處理模塊主要是對采集得到的數字信號數據由分線程向外部buff傳輸,便于通信模塊的使用。AD采集模塊在線程內調用驅動程序,實現AD采集器的讀取數據功能。
        3.3 四通道AD數據采集實驗實現及調試
        利用以上的設計思路,本文實現了下AD數據采集的系統設計,其調試過程和實驗結果如下:
        首先將編寫好的驅動程序加載到Win-CE6.0系統的內核中,重新編譯系統,啟動新編譯成功的,可以在Windows文件夾下看到已經加載進去的驅動程序生成的動態鏈接庫。
        然后將編寫好的對采集數據進行波形處理的網絡程序在PC端啟動,再將編寫好的四通道采集程序下載到ARM板中并啟動,設置好采樣率和采樣通道,輸入通道選擇0,采樣頻率設置為400000hz(該AD采集器最大采樣頻率為500khz)。調好信號源,選擇正弦波,將信號電壓幅度設為1.5v,最低電壓為0v,信號頻率為3000hz,輸出信號線連接到ARM板的AD第0號通道接口,啟動信號輸入,在ARM端得到如圖3的調試截圖。
        單網絡節點在WinCE系統下的程序設計
        這是本文設計的運行在ARM板上的AD采集應用程序,可以通過啟動,停止,關閉按鈕來啟動AD采集,暫停AD采集,關閉AD采集器的功能,還可以通過輸入通道號碼來選擇采樣的通道,輸入采樣率來選擇采樣頻率。而上方控件顯示的是一次采集的字節數目,在這里是2048字節,與程序實際設計的一致。通過AD采集器的正確工作,不僅說明了應用程序設計的正確性,同時也體現了AD采集器驅動程序設計的正確性。
        4.結束語
        本文通過研究WinCE下的網口通信,串口通信,SD卡數據存取和AD數據采集程序設計,系統地提供了Wince嵌入式系統下數據通信的一般編程方法。本論文實現了水下通信網絡單節點內部數據的交互,主要包含以下內容:完成了ARM板通過網口與DSP通信的程序設計;完成了ARM板通過串口同時與PC機和姿態方位儀的數據通信的程序設計;完成了ARM板對SD卡的操作,實現了將DSP通過網口傳輸來的數據自動的儲存在SD卡中,并能讀取SD卡中的數據;完成了ARM11流接口AD驅動程序的設計和AD采集應用程序的設計。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 大连市| 禹州市| 招远市| 湟源县| 乌拉特中旗| 永泰县| 洪雅县| 马公市| 河北省| 尉犁县| 神木县| 沅江市| 靖安县| 视频| 庆阳市| 宜兰市| 盐山县| 华宁县| 阳谷县| 改则县| 马鞍山市| 万安县| 曲靖市| 土默特右旗| 元阳县| 勃利县| 红河县| 额敏县| 浮梁县| 丹棱县| 台南县| 呼伦贝尔市| 扎兰屯市| 绍兴市| 宁化县| 颍上县| 沂源县| 宁德市| 蒙阴县| 容城县| 康平县|