<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 單網(wǎng)絡(luò)節(jié)點(diǎn)在WinCE系統(tǒng)下的程序設(shè)計(jì)

          單網(wǎng)絡(luò)節(jié)點(diǎn)在WinCE系統(tǒng)下的程序設(shè)計(jì)

          作者: 時(shí)間:2014-02-16 來源:網(wǎng)絡(luò) 收藏

          1.系統(tǒng)

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

          單網(wǎng)絡(luò)節(jié)點(diǎn)在WinCE系統(tǒng)下的程序設(shè)計(jì)

          2.WinCE下網(wǎng)口數(shù)據(jù)傳輸程序設(shè)計(jì)

          2.1 網(wǎng)口服務(wù)器程序設(shè)計(jì)

          在利用套接字進(jìn)行網(wǎng)絡(luò)通信的實(shí)際應(yīng)用中,一般采用的是服務(wù)器/客戶端[2]

          的模式,在本文的設(shè)計(jì)中,既研究了以PC機(jī)作為服務(wù)器端,以ARM作為客戶端,又研究了以ARM作為服務(wù)器端,以PC機(jī)作為客戶端。本文服務(wù)器設(shè)計(jì)的基本流程為:

          利用函數(shù)socket()創(chuàng)建一個(gè)套接字,然后利用函數(shù)bind()將該套接字與本地(PC機(jī))的IP地址和端口號綁定,接著利用函數(shù)listen()使該套接字處于監(jiān)聽狀態(tài),然后當(dāng)?shù)却娇蛻舳说倪B接信號后,利用函數(shù)accept()與客戶端連接,最后利用函數(shù)send()和函數(shù)recv()進(jìn)行通信工作。當(dāng)結(jié)束通信后,再利用函數(shù)closesocket()將套接字關(guān)閉。

          2.2 本文的服務(wù)器端程序設(shè)計(jì)思想

          本文的服務(wù)器端程序設(shè)計(jì)思想如圖2所示。

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


          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();