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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CAN總線的智能超聲液位變送器系統(tǒng)設(shè)計

          基于CAN總線的智能超聲液位變送器系統(tǒng)設(shè)計

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)軟件設(shè)計

          系統(tǒng)軟件設(shè)計主要包括測量程序和通信程序兩部分。其中,測量程序的關(guān)鍵是對超聲波回波信號的處理;通信程序的關(guān)鍵是CAN總線控制器的初始化,數(shù)據(jù)的發(fā)送和接收。

          3.1 回波信號處理程序的設(shè)計

          系統(tǒng)采用數(shù)字濾波方式對回波信號進(jìn)行處理,選用IIR帶通濾波器進(jìn)行數(shù)字濾波,然后進(jìn)行數(shù)值處理,識別接收波形的起始點。系統(tǒng)設(shè)計通帶頻率范圍為 [35 kHz,45 kHz],通帶波紋最大衰減為O.01 dB,阻帶波紋最小衰減為60 dB,采樣頻率為1 MHz??捎酶咄暗屯ǜ鳛?階的帶通橢圓型濾波器來實現(xiàn)。系數(shù)為:b=(O.001 O,-O.007 6,0.024 8,-0.047 4,O.058 4,-O.047 4,O.024 8,-0.007 6,0.001 O),a=(1.000 O,-7.579 2,25.370 1,-48.974 1,59.623 8,-46.877 5,23.244 5,-6.647 O,O.839 5)。此濾波器極點均在單位圓內(nèi),濾波器是穩(wěn)定的。圖3是IIR數(shù)字濾波器的幅度與相位特性曲線圖。

          3.jpg

          3.2 通信程序的設(shè)計

          通信程序的設(shè)計主要包括三部分:CAN控制器的初始化,CAN總線數(shù)據(jù)發(fā)送,CAN總線數(shù)據(jù)接收。通過編寫LPC2119芯片內(nèi)部CAN控制器寄存器來實現(xiàn)軟件通信功能。

          CAN總線控制器只需要進(jìn)行少量的配置就可以進(jìn)行通信,其基本初始化流程如圖4所示。其中,硬件使能和配置引腳連接、軟件復(fù)位、設(shè)定通信波特率、配置驗收過濾器、退出復(fù)位模式是必須的初始化部分。

          CAN控制器初始化程序如下:

          4.jpg

          CAN控制器初始化后,可以進(jìn)行數(shù)據(jù)發(fā)送或接收。LPC2119內(nèi)部每個CAN控制器配有3個獨立的發(fā)送緩沖寄存器,在發(fā)送時根據(jù)情況選擇3個緩沖之一,把數(shù)據(jù)寫入緩沖區(qū),啟動發(fā)送。若選擇第一緩沖,程序如下:

          5.jpg

          CAN控制器根據(jù)CAN2.0B規(guī)范來對發(fā)送和接收錯誤進(jìn)行計數(shù)、處理。

          4 結(jié)語

          基于CAN總線選用高性能、低功耗的ARM處理器芯片LPC2119;利用LPC2119芯片內(nèi)部的CAN控制器和CAN總線收發(fā)器PC-A82C250構(gòu)建性能優(yōu)異的CAN總線通信接口,信號傳輸可靠、實時、靈活;由一線式數(shù)字溫度傳感器DSl8B20芯片完成溫度補償功能。先進(jìn)的處理器加強了液位計的回波處理能力,采用數(shù)字濾波,提高了液位的測量精度


          上一頁 1 2 下一頁

          評論


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