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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的高速數(shù)據(jù)采集卡

          基于ARM的高速數(shù)據(jù)采集卡

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

          在手動(dòng)采集方式下,TRIENO為低電平,TRIEN1高電平,當(dāng)緩存器為空即FWr_FUL為高電平,通過(guò)LabVIEW制作的界面控制QSTART為高電平時(shí),F(xiàn)Wr_EN被拉高進(jìn)行。當(dāng)緩存器滿時(shí)FWr_FUL被拉低,停止采集數(shù)據(jù)。

          在輸入信號(hào)觸發(fā)方式下,TRIEN0和QSTART為低電平,當(dāng)緩存器為空即FWr_FUL為高電平,輸入信號(hào)電壓高于比較器的參考電壓時(shí), TOUT被拉高,F(xiàn)Wr_EN被拉高進(jìn)行。當(dāng)緩存器滿時(shí)FWr_FUL被拉低,停止采集數(shù)據(jù)。拉高TRIEN1后讀取緩存數(shù)據(jù)。

          采集周期信號(hào)和輸入信號(hào)觸發(fā)方式相似,只是保持TRIEN1為高電平。在讀取緩存數(shù)據(jù)時(shí).觸發(fā)信號(hào)到來(lái)后采集數(shù)據(jù)。

          4 卡的軟件設(shè)計(jì)

          4.1 μC/OS-II的USB驅(qū)動(dòng)編程

          μC/OS-II提供了多任務(wù)實(shí)時(shí)操作系統(tǒng)的內(nèi)核。在應(yīng)用該操作系統(tǒng)時(shí),通常需要用戶自己編寫μC/OS-II的外圍器件驅(qū)動(dòng)程序,以使外圍器件能在操作系統(tǒng)的協(xié)調(diào)下更好地為用戶服務(wù)。為了使軟件可移植性強(qiáng)、易維護(hù),筆者在編寫LPC2142 USB固件時(shí)綜合考慮USB協(xié)議、LPC2142 USB硬件條件,把驅(qū)動(dòng)程序分為5層,如圖3所示。圖中的雙向線表示用戶軟件與USB固件之間存在著數(shù)據(jù)交換,單向線表示上層軟件對(duì)下層軟件的調(diào)用,這樣使得固件結(jié)構(gòu)分明。

          54.jpg

          擁有了USB驅(qū)動(dòng)程序,用戶可在此平臺(tái)上完成用戶軟件所要實(shí)現(xiàn)的任務(wù),如圖4所示。單向線表示主任務(wù)對(duì)讀寫任務(wù)的控制。主任務(wù)通過(guò)信號(hào)量控制讀/寫任務(wù)的運(yùn)行狀態(tài),從而實(shí)現(xiàn)對(duì)FIFO緩存器的讀和寫;雙向線表示各個(gè)模塊之間存在著數(shù)據(jù)交換。為了加快大量數(shù)據(jù)的收發(fā),本程序把LPC2142USB的邏輯端點(diǎn)1作為控制命令的傳輸通道,把端點(diǎn)2作為數(shù)據(jù)的傳輸通道。

          55.jpg



          評(píng)論


          相關(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); })();