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

2.WinCE下網口數據傳輸程序設計
2.1 網口服務器程序設計
在利用套接字進行網絡通信的實際應用中,一般采用的是服務器/客戶端[2]
的模式,在本文的設計中,既研究了以PC機作為服務器端,以ARM作為客戶端,又研究了以ARM作為服務器端,以PC機作為客戶端。本文服務器設計的基本流程為:
利用函數socket()創建一個套接字,然后利用函數bind()將該套接字與本地(PC機)的IP地址和端口號綁定,接著利用函數listen()使該套接字處于監聽狀態,然后當等待到客戶端的連接信號后,利用函數accept()與客戶端連接,最后利用函數send()和函數recv()進行通信工作。當結束通信后,再利用函數closesocket()將套接字關閉。
2.2 本文的服務器端程序設計思想
本文的服務器端程序設計思想如圖2所示。

3.WinCE下AD數據采集程序設計
3.1 ARM板AD采集器驅動程序設計
流接口驅動就是通過調用動態連接庫的方式來加載硬件的功能,它由設備管理器直接調用。WinCE系統下的流接口驅動編寫,有著固定的接口入口點,其接口點是一系列的類似于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數據采集實驗實現及調試
利用以上的設計思路,本文實現了WinCE系統下AD數據采集的系統設計,其調試過程和實驗結果如下:
首先將編寫好的驅動程序加載到Win-CE6.0系統的內核中,重新編譯系統,啟動新編譯成功的WinCE系統,可以在Windows文件夾下看到已經加載進去的驅動程序生成的動態鏈接庫。
然后將編寫好的對采集數據進行波形處理的網絡程序在PC端啟動,再將編寫好的四通道采集程序下載到ARM板中并啟動,設置好采樣率和采樣通道,輸入通道選擇0,采樣頻率設置為400000hz(該AD采集器最大采樣頻率為500khz)。調好信號源,選擇正弦波,將信號電壓幅度設為1.5v,最低電壓為0v,信號頻率為3000hz,輸出信號線連接到ARM板的AD第0號通道接口,啟動信號輸入,在ARM端得到如圖3的調試截圖。

這是本文設計的運行在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采集應用程序的設計。
評論