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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于ARM11的電梯綜合檢測系統(tǒng)的研究

          基于ARM11的電梯綜合檢測系統(tǒng)的研究

          作者: 時間:2013-05-17 來源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)軟件設(shè)計
          3.1 上位機主控系統(tǒng)程序設(shè)計
          3.1.1 平臺構(gòu)建
          本系統(tǒng)采用的是Windows CE 6.0嵌入式操作系統(tǒng),使用的開發(fā)工具是Embedded Visual C++,基于MFC的開發(fā)方式,在S3C6410這一硬件平臺上進行開發(fā)。
          3.1.2 驅(qū)動程序設(shè)計
          對于Windows CE系統(tǒng)而言,驅(qū)動主要分為兩種:本地設(shè)備驅(qū)動和流接口驅(qū)動。這兩者之間最大的區(qū)別在于流接口驅(qū)動只提供一組通用的接口。
          本地設(shè)備驅(qū)動,主要是常用設(shè)備的驅(qū)動,例如無線網(wǎng)卡驅(qū)動、LCD驅(qū)動、觸摸屏驅(qū)動等,這些都是已經(jīng)內(nèi)置好了的,微軟提供了專門的定制接口,使用的時候只需要通過這些接口就可以調(diào)用驅(qū)動程序了。系統(tǒng)啟動時由GWES來加載實現(xiàn)啟動這些本地設(shè)備驅(qū)動。
          流接口驅(qū)動,它的主要功能是使得Windows CE系統(tǒng)和外圍設(shè)備能夠進行連接和通信。相對于本機驅(qū)動程序來說,所有的流驅(qū)動程序都使用同一個流接口函數(shù)集。本系統(tǒng)中的信號采集板模塊的驅(qū)動程序就屬于流接口的驅(qū)動程序。
          下面是信號采集模塊的流驅(qū)動設(shè)計,將信號采集模塊命名為SCM(Signal collection module),首先要編寫SCMDriver.cpp文件,該文件除了具備上述所需的接口外,還要添加AD轉(zhuǎn)換部分,下面是AD轉(zhuǎn)換的部分代碼清單。
          f.JPG
          g.JPG
          到此,驅(qū)動程序的所有工作都己完成,主控系統(tǒng)可以工作了。
          3.2 下位機微控制系統(tǒng)程序設(shè)計
          微控制系統(tǒng)的開發(fā)環(huán)境是Microchip MPLABIDE V8.0。系統(tǒng)上電進行初始化后,進入主程序中等待串口的中斷。上位機發(fā)送命令后,串口中斷子程序接收命令并存儲在command中,主程序判斷接收標志receive flag是否置位,然后解析command中的命令類型,進而執(zhí)行相應(yīng)的操作。等整個檢測完成之后,上位機會發(fā)來一個結(jié)束命令,此時下位機進入休眠模式。

          霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


          霍爾傳感器相關(guān)文章:霍爾傳感器原理


          評論


          相關(guān)推薦

          技術(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); })();