【《單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例探析》2400字】_第1頁
【《單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例探析》2400字】_第2頁
【《單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例探析》2400字】_第3頁
【《單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例探析》2400字】_第4頁
【《單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例探析》2400字】_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例分析目錄TOC\o"1-3"\h\u3815單片機控制的靜力水準儀系統(tǒng)軟件設(shè)計及調(diào)試案例分析 1254891軟件設(shè)計 259381.1軟件總體設(shè)計 2171191.2CCD驅(qū)動程序的設(shè)計 366191.3ZigBee軟件部分的設(shè)計 6158271.4LabVIEW上位機的程序設(shè)計 8292682系統(tǒng)調(diào)試 10250942.1線陣CCD調(diào)試 1014382.2總體調(diào)試 10軟件設(shè)計軟件總體設(shè)計軟件的總體設(shè)計主要涉及到線陣CCD驅(qū)動程序、數(shù)據(jù)傳輸程序和LabVIEW上位機程序設(shè)計,通過串口進行各部分的連接。軟件的總體設(shè)計框圖如圖4.1所示:圖4.1系統(tǒng)軟件總體框圖本設(shè)計的系統(tǒng)程序主要涉及以下幾個部分CCD驅(qū)動程序的設(shè)計:主要是對TCD1304傳感器進行驅(qū)動,使之能夠正常運行,進行數(shù)據(jù)采集。Zigbee軟件部分的設(shè)計:主要主要講ZigBee協(xié)調(diào)器和終端組網(wǎng),是為了實現(xiàn)數(shù)據(jù)從處理單元到顯示單元的通訊。數(shù)據(jù)顯示程序的設(shè)計:為的是實現(xiàn)數(shù)據(jù)的對比分析和直觀顯示,并且設(shè)置了報警閾值,使得豎直沉降值更為清晰明了。CCD驅(qū)動程序的設(shè)計如圖4.2所示是TCD1304的整體時序要求(摘自TCD1304DGdatasheet)。從圖中可以看出,SH(shiftgate)脈沖用于控制積分時間,相鄰SH脈沖下降沿之間的間隔就是積分時間。ICG(積分清除門,integrationcleargate)負脈沖則控制開始clockout模擬輸出的時間,在idle狀態(tài)下,ICG為高電位,負脈沖發(fā)生時ICG電位被拉低。?M為時鐘輸入信號,OS為模擬輸出端,ICG負脈沖結(jié)束后,OS開始依次輸出各個像素上的值。比較?M的時序和OS的時序,可以看到每4個時鐘周期OS輸出一個像素上的值,即對于TCD1304來說完成一次像素間的電荷轉(zhuǎn)移需要的時間可以看作4個時鐘周期[16]。圖4.2TCD1304的整體時序要求圖4.3TCD1304的具體時序要求圖4.2未給出具體的時序要求。具體的時序要求如圖4.3所示(也摘自TCD1304APdatasheet)。從圖中我們知道如下的要求:在初始狀態(tài),ICG引腳為高電位,SH引腳為低電位,時鐘信號正常工作CCD的一個工作周期從ICG負脈沖的下降沿開始ICG負脈沖下降沿后推遲500ns為SH脈沖的上升沿SH脈沖至少持續(xù)1000nsSH脈沖結(jié)束后,ICG負脈沖再推遲5000ns后結(jié)束ICG負脈沖結(jié)束時,時鐘信號必須為高電位圖4.4TCD1304的驅(qū)動脈沖相位關(guān)系圖首先我們配置CCD所需的時鐘信號,該信號由MCU上第二個計時器TIM2的第一個頻道CH1輸出到PA0引腳。我們首先設(shè)置TIM2時鐘的ClockSource為InternalClock,Channel1的模式設(shè)置為PWMGenerationCH1。由于之前設(shè)置的工作主頻是72MHz而CCD時鐘需要的頻率是2MHz,因此,CCD時鐘的ARR值應設(shè)為ARR?=?72/2???1?=?35,時鐘信號的dutycycle為50%,故CCR的值應設(shè)為CCR?=?36/2???1?=?17[17]。SH信號由TIM3CH1輸出到PA6引腳,設(shè)置TIM1時鐘的ClockSource為InternalClock,Channel1的模式設(shè)置為PWMGenerationCH1,同時,由于線陣CCD的典型的積分時間是在ms量級,在72MHz頻率下,1ms=72000個周期。而STM32F103RCT6的計時器均為16bit計時器,其最大值為216???1?=?65535,如果直接使用計時器的PWM輸出,脈沖周期甚至不能達到1ms。因此,我們將這個計時器設(shè)置為One-PulseMode。SH脈沖的長度我們設(shè)置為4μs,即288個周期,延遲500ns+100周期,為36+100=136個周期,故設(shè)置CCR?=?136,?ARR?=?288?+?136?=?424即可[18]。ICG信號所需的負脈沖則由TIM1CH1輸出到PA8引腳,同樣設(shè)置TIM1時鐘的ClockSource為InternalClock,Channel1的模式設(shè)置為PWMGenerationCH1,同時設(shè)置One-PulseMode。脈沖長度為9μs,即648個周期,延遲100周期,故設(shè)置CCR=100,ARR=648+100=748即可[19]。ZigBee軟件部分的設(shè)計本設(shè)計中傳感器采集的數(shù)據(jù)發(fā)送至STM32,而STM32與ZigBee終端節(jié)點相連,ZigBee終端節(jié)點通過ZigBee遠程通信將數(shù)據(jù)傳給ZigBee協(xié)調(diào)器,以此將數(shù)據(jù)傳到上位機。本設(shè)計設(shè)置了四個終端節(jié)點,即可以同時對多點進行測量。本設(shè)計的重點在于協(xié)調(diào)器與多個終端組網(wǎng)。由網(wǎng)絡(luò)協(xié)調(diào)器啟動ZigBee網(wǎng)絡(luò)的初始化,首先,我們要組件網(wǎng)絡(luò)就要對網(wǎng)絡(luò)節(jié)點進行判定,該節(jié)點是都已經(jīng)連接了其他網(wǎng)絡(luò)系統(tǒng),若是已經(jīng)存在與其他網(wǎng)絡(luò)的連接,那么我們稱此節(jié)點為本網(wǎng)絡(luò)的子節(jié)點。圖4.5ZigBee網(wǎng)絡(luò)初始化流程圖ZigBee入網(wǎng)流程較為復雜,分為四個部分,入網(wǎng)前準備、Beacon、開始入網(wǎng)、Transportkey(NWKkey),需要注意的是,ZigBee信道為11~26,一般考慮效率和與WiFi信道干擾問題[20],會選擇幾條優(yōu)先信道(如11、15、20、25)進行掃網(wǎng),并且要看CSMA.CA信道訪問能否成功以及協(xié)調(diào)器向上層發(fā)送連接指示原語時,判斷資源能否足夠。圖4.6ZigBee入網(wǎng)流程圖作為一個兼容無線收發(fā)器,RF內(nèi)核的控制使得ZigBee的無線模塊能夠?qū)崿F(xiàn)較好的模擬。并且,ZigBee還給無線設(shè)備和MCU提供了一個接口,實現(xiàn)先發(fā)送命令,再對其狀態(tài)進行讀取,完成自動操作以及確保無線設(shè)備事件按序進行[21]。LabVIEW上位機的程序設(shè)計該上位機讀取協(xié)調(diào)器收到的多組數(shù)據(jù),并將這些數(shù)據(jù)進行整合顯示,實時顯示各個傳感器的數(shù)據(jù),并采用波形進行顯示。上位機界面的設(shè)計由四個數(shù)字波形圖來顯示波形,用I/O口和布爾燈來連接和顯示串口狀態(tài),實時顯示測點位置,和垂直沉降狀態(tài)。圖4.7上位機前面板設(shè)計圖后面板總體為平鋪順序結(jié)構(gòu),第一個框圖設(shè)置串口為默認值,并用布爾燈顯示狀態(tài)。主程序框圖以While循環(huán)不斷運行,其中四個局部變量連接四個屬性節(jié)點,對前面板上的開始采集、打開串口、退出三個控件進行讀寫操作。開始采集按鈕連接選擇結(jié)構(gòu),判斷串口正確繼續(xù)運行。掃描串口信息,創(chuàng)建了液位信息四個顯示控件,再串聯(lián)四個信號收集器,將數(shù)據(jù)實時顯示在波形圖控件上,使測量點1作為基準值,其余測量點的數(shù)值使用比較控件與其數(shù)值進行對比,使用邏輯并,當任何一個測量點與基準值相差大于等于1000時,警報指示燈亮。建筑物垂直沉降超過200mm則會有一定程度的坍塌風險,因此設(shè)置警報閾值為1000。串口選擇錯誤則不會有任何顯示。選擇結(jié)構(gòu)里面嵌套一個順序結(jié)構(gòu),執(zhí)行完前面的主程序,即完成數(shù)據(jù)的采集,會彈出是否保存數(shù)據(jù)的對話框,選擇是,則會保存在專門的文件夾。圖4.8整體流程圖系統(tǒng)調(diào)試線陣CCD調(diào)試線陣CCD的調(diào)試主要是其驅(qū)動和檢測的調(diào)試,首先將驅(qū)動程序燒錄至STM32單片機芯片內(nèi),使用線陣CCD驅(qū)動板通過USBTOTTL模塊連接到電腦端,使用XCOM2.0串口,發(fā)送@a0001#@[22],使用單條發(fā)送,波特率設(shè)置值為115200,打開串口,點擊發(fā)送,得到光強和液位邊界信息。圖5.1串口顯示總體調(diào)試總體調(diào)試是一個完整的項目必不可少的部分,部分調(diào)試正常說明部分設(shè)計能夠正常運行,總體調(diào)試再對各部分的連接傳輸進行測試,測試結(jié)果正常才能證明項目完成。該系統(tǒng)總體設(shè)計使用了3個CCD傳感器,對應兩個驅(qū)動板和一個完整的線陣CCD-TCD1304模塊,一個一字激光器,三段

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論