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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于LabVIEW串口通信的數據采集串口收錄系統(tǒng)設計

          基于LabVIEW串口通信的數據采集串口收錄系統(tǒng)設計

          作者: 時間:2013-10-14 來源:網絡 收藏


          收錄系統(tǒng)程序流程圖如圖3所示。按下開始讀取按鈕后,程序進行串口配置,串口配置好后通信分兩路實現,分別用于數據讀取和數據存儲:讀取的數據顯示在波形圖標中;數據以二進制格式.dat文件存儲在硬盤中。存儲之前程序彈出對話框讓用戶指定存儲路徑。波形顯示采集數據的同時,還可以回放之前已存儲的數據文件,實現采集和回放同時進行。

          3.2.1 上位機軟件實現過程

          軟件編寫要用到VISA Configure Serial Port.vi、VISA Property Node.vi、VISA read.vi、VISA Close.vi、Write To Binary File.vi及Graph Chart.vi[1]。其功能分別是:
          (1)VISA Configure Serial Port.vi用于串口配置,如串口資源名、波特率、數據位數、停止位、校驗位等的設置。
          (2)VISA Property Node.vi用于讀取屬性,將接收到的數據全部讀出來。
          (3)VISA Read.vi用于讀取串口接收來的數據。
          (4)VISA Close.vi釋放串口資源,關閉函數。
          (5)Write To Binary File.vi將接收數據以二進制形式保存起來。
          (6)Graph Chart.vi用于顯示采集波形。

          3.2.2 系統(tǒng)界面和程序

          根據上位機軟件設計流程圖,利用NI公司的可視化編程軟件編寫完成的系統(tǒng)界面如圖4所示。運行前,用戶只需設置串口資源,選擇串口號、波特率大小、傳輸數據位數、停止位、校驗位等。串口工作在方式1,傳輸1幀信息為10 bit,其中1 bit起始位、8 bit數據位(先低位后高位)、1 bit停止位[4]。

          圖4上面部分為開始讀數據、停止讀取、回放、停止回放和退出系統(tǒng)5個控制按鍵。兩個圖形控件分別顯示讀取波形和回放波形,讀取值以數字形式顯示在讀取值窗口。系統(tǒng)界面還可以利用LabVIEW自身強大的數據處理能力,借助內部處理函數進行波形調理、波形測量、FFT變換和濾波等。


          4 測試與結論

          將下位機程序下載到單片機,打開電源,按下采集獨立按鍵,給MAX306某通道加上2 V左右的電壓信號,測得結果如圖4所示。借助信號發(fā)生器給單片機輸入-10 V~+10 V范圍內的任意波形,在上位機均可得到相應波形。

          本文利用單片機采集數據,使用LabVIEW編寫串口接收數據界面,將結果以二進制.dat格式存儲起來,帶查看回放功能,較好地實現了的實時顯示和存儲,達到了系統(tǒng)的設計要求和預期目標。該LabVIEW顯示界面可應用于其他具有串口接口的系統(tǒng),目前已應用于航空物探部分數據的收錄。

          雙控開關相關文章:雙控開關原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();