【《單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例綜述》3000字】_第1頁(yè)
【《單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例綜述》3000字】_第2頁(yè)
【《單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例綜述》3000字】_第3頁(yè)
【《單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例綜述》3000字】_第4頁(yè)
【《單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例綜述》3000字】_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)非接觸式測(cè)溫系統(tǒng)的軟件設(shè)計(jì)和調(diào)試分析案例目錄TOC\o"1-3"\h\u299341.1IIC協(xié)議原理 1313121.2SMBus協(xié)議 211631.3CRC-8校驗(yàn)原理 44881.4MLX90614軟件流程 5133371.5程序流程 7254322系統(tǒng)測(cè)試及結(jié)果分析 8302242.1系統(tǒng)指標(biāo)參數(shù) 818107(1)STM32F103C8T6核心板 815285(2)MLX90614GY-906-DAA模塊 825479(3)OLED模塊 925796(4)有源蜂鳴器模塊 941282.2實(shí)物外觀 9300192.3測(cè)試內(nèi)容與方法 9294082.3.1采集溫度測(cè)試 927932.3.2超溫報(bào)警裝置測(cè)試 1121422.3.3溫度數(shù)據(jù)記錄測(cè)試 11本設(shè)計(jì)采用目前學(xué)習(xí)和設(shè)計(jì)中用得比較廣泛的開(kāi)發(fā)環(huán)境——KeiluVision5,KeiluVision5是一個(gè)功能多樣、庫(kù)函數(shù)齊全、設(shè)計(jì)版面合理的開(kāi)發(fā)軟件。[14]本設(shè)計(jì)中C語(yǔ)言程序的設(shè)計(jì)方案主要是在實(shí)現(xiàn)各個(gè)模塊功能的基礎(chǔ)上,進(jìn)行聯(lián)系操作,需要實(shí)現(xiàn)紅外傳感器讀取以及數(shù)據(jù)計(jì)算、控制OLED顯示實(shí)時(shí)溫度、達(dá)到預(yù)設(shè)溫度報(bào)警、使用微動(dòng)開(kāi)關(guān)暫時(shí)記錄數(shù)據(jù)等功能。1.1IIC協(xié)議原理IIC總線標(biāo)準(zhǔn)是一種雙線同步串行接口。新型單片機(jī)基本都具有IIC總線接口,通信時(shí)序和控制過(guò)程都是由單片機(jī)內(nèi)部IIC總線控制器實(shí)現(xiàn)。編程時(shí)將數(shù)據(jù)發(fā)送到相關(guān)的控制寄存器和緩沖器,并設(shè)計(jì)好相應(yīng)的控制寄存器即可實(shí)現(xiàn)IIC通信過(guò)程。[15]IIC總線結(jié)構(gòu)如圖1.1所示。圖1.1IIC總線結(jié)構(gòu)示意圖IIC在主從機(jī)之間的通訊步驟為:1、首先主機(jī)發(fā)送一個(gè)起始信號(hào)傳遞至從機(jī),通知各個(gè)從機(jī)準(zhǔn)備就緒;2、然后主機(jī)發(fā)送從機(jī)目標(biāo)地址和讀寫(xiě)標(biāo)志位。寫(xiě)入標(biāo)志位為0,讀寫(xiě)標(biāo)志位為1。從機(jī)地址和讀寫(xiě)標(biāo)志位一共占用8位,從機(jī)地址占用高7位,讀寫(xiě)標(biāo)志位占用最低位;3、寫(xiě)入地址后從機(jī)回復(fù)響應(yīng)主機(jī)(ACK);4、不同模式的流程不同:(1)寫(xiě)模式。主機(jī)發(fā)送一字節(jié)數(shù)據(jù)等待從機(jī)回復(fù)響應(yīng),主機(jī)收到響應(yīng)之后如果還有數(shù)據(jù)需要發(fā)送便繼續(xù)發(fā)送第二段數(shù)據(jù)等待響應(yīng),重復(fù)這個(gè)過(guò)程直到全部數(shù)據(jù)發(fā)送完成;(2)讀模式。主機(jī)STM32讀取從機(jī)送回的數(shù)據(jù),并且給從機(jī)回復(fù)響應(yīng),如果從機(jī)還有數(shù)據(jù)需要繼續(xù)匯報(bào),則主機(jī)接著讀取并發(fā)送響應(yīng)給從機(jī),重復(fù)這個(gè)過(guò)程直到全部數(shù)據(jù)發(fā)送完成;5、主機(jī)向從機(jī)發(fā)送停止信號(hào)結(jié)束通信。1.2SMBus協(xié)議STM32芯片通過(guò)SMBus協(xié)議對(duì)MLX90614器件進(jìn)行驅(qū)動(dòng)和讀寫(xiě)操作。[10]MLX90614的SMBus協(xié)議如圖1.2所示。圖1.2SMBus的數(shù)據(jù)包組成SMBus接口可以提供主機(jī)與從機(jī)之間的數(shù)據(jù)通信,但某一刻總線上只能有一個(gè)主機(jī)有效。數(shù)據(jù)傳輸方式分為MastertoSlave和SlavetoMaster兩種。寫(xiě)時(shí)序首先,主機(jī)發(fā)送一個(gè)起始位個(gè)從屬機(jī),然后再發(fā)送從機(jī)的地址0x00和寫(xiě)入標(biāo)志位0,總共8位。發(fā)送后,主機(jī)等待從機(jī)的響應(yīng),如果接收到從機(jī)發(fā)送的應(yīng)答信號(hào),主機(jī)繼續(xù)向從機(jī)發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。同理,再次等待從機(jī)的響應(yīng),在主機(jī)收到響應(yīng)之后,如果還有數(shù)據(jù)需要發(fā)松,主機(jī)將繼續(xù)發(fā)送第二段數(shù)據(jù)以等待響應(yīng),這個(gè)過(guò)程將重復(fù)進(jìn)行,直到發(fā)送完成。如圖1.3所示。圖1.3寫(xiě)入數(shù)據(jù)格式讀時(shí)序首先是主機(jī)發(fā)送一個(gè)起始位,然后發(fā)送從機(jī)地址0x00和讀取標(biāo)志位1,共8位。發(fā)送起始位后,主機(jī)等待從機(jī)的響應(yīng),如果接下來(lái)收到從機(jī)發(fā)送的是應(yīng)答信號(hào),則從機(jī)再發(fā)送一個(gè)字節(jié)的數(shù)據(jù)到主機(jī)。讀時(shí)序就是主機(jī)從從機(jī)讀數(shù)據(jù),也就是從機(jī)向主機(jī)發(fā)送數(shù)據(jù)。同理,從機(jī)在發(fā)送完一個(gè)字節(jié)的數(shù)據(jù)后,要向主機(jī)發(fā)送信號(hào)詢(xún)問(wèn)是否繼續(xù)發(fā)送,如果主機(jī)回復(fù)了應(yīng)答信號(hào),從機(jī)就繼續(xù)發(fā)送數(shù)據(jù),每次發(fā)送完之后,都要詢(xún)問(wèn)是否要繼續(xù)發(fā)送,直到主機(jī)回應(yīng),非應(yīng)答信號(hào),從機(jī)才停止發(fā)送數(shù)據(jù),最后主機(jī)發(fā)送停止信號(hào)結(jié)束。如圖1.4所示。圖1.4讀數(shù)數(shù)據(jù)格式MLX90614數(shù)據(jù)傳輸時(shí)序如圖1.5所示:圖1.5MLX90614的數(shù)據(jù)傳輸時(shí)序起始信號(hào):SCL高電平時(shí),SDA發(fā)生下降沿跳變產(chǎn)生起始信號(hào);應(yīng)答信號(hào):SCL高電平時(shí),SDA保持低電平為應(yīng)答信號(hào);非應(yīng)答信號(hào):SCL高電平時(shí),SDA保持高電平為非應(yīng)答信號(hào);結(jié)束信號(hào):SCL高電平時(shí),SDA發(fā)生上升沿跳變產(chǎn)生停止信號(hào);數(shù)據(jù)信號(hào):數(shù)據(jù)傳輸期間且SCL處于高電平時(shí),如果SDA為高電平則代表二進(jìn)制1。同理,SCL處于高電平時(shí),如果SDA為低電平則代表二進(jìn)制0;1號(hào)框是SDA數(shù)據(jù)有效期,2號(hào)框是數(shù)據(jù)改變期。1.3CRC-8校驗(yàn)原理循環(huán)冗余校驗(yàn)CRC(CyclicRedundancyCheck)是通過(guò)分組線性碼的分支而產(chǎn)生的循環(huán)冗余碼,是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,編碼簡(jiǎn)單且誤判概率很低。循環(huán)冗余校驗(yàn)碼是屬于分組碼中的一類(lèi)重要的循環(huán)碼,它不僅在理論上具有很好的代數(shù)結(jié)構(gòu),而且其編碼和譯碼可以通過(guò)線性移位寄存器很容易地實(shí)現(xiàn)。[16]CRC主要是對(duì)數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,將得到的計(jì)算結(jié)果放在幀后面,其接受設(shè)備同樣執(zhí)行類(lèi)似的算法,以此保證數(shù)據(jù)傳輸?shù)恼_性和完整性。CRC-8校驗(yàn)采用模2除法。模2除法每一位除的結(jié)果不影響其他位,即不需要向上一位借位,實(shí)際上是一個(gè)異或的過(guò)程。校驗(yàn)中有兩點(diǎn)很重要,第一是預(yù)先確定一個(gè)發(fā)送端和接收端用來(lái)作為除數(shù)的二進(jìn)制多項(xiàng)式,最高位最低位必須是1;第二是將原始幀和前面計(jì)算出的除數(shù)進(jìn)行模2除法運(yùn)算,計(jì)算出CRC碼。具體步驟如下:選擇合適多項(xiàng)式,確定除數(shù)。根據(jù)選定多項(xiàng)式的二進(jìn)制位數(shù),將要發(fā)送的數(shù)據(jù)上加上這個(gè)位數(shù)-1位的0,然后用得到的數(shù)用模2觸發(fā)除以確定的除數(shù),得到的余數(shù)就是這個(gè)數(shù)的CRC校驗(yàn)碼。余數(shù)的位數(shù)一定只比除數(shù)位數(shù)少一,也就是CRC校驗(yàn)碼位數(shù)比除數(shù)位數(shù)少一,即使前面位是0也不能省略。CRC-8在軟件上有兩種實(shí)現(xiàn)方法,一是循環(huán)計(jì)算法、二是查表法。本設(shè)計(jì)采用循環(huán)計(jì)算法。1.4MLX90614軟件流程MLX90614發(fā)送和接收的每個(gè)字讀寫(xiě)流程分別如圖1.6、圖1.7所示。ML90614系統(tǒng)數(shù)據(jù)操作程序流程圖如圖1.8所示。圖1.6寫(xiě)流程圖1.7讀流程圖1.8MLX90614系統(tǒng)數(shù)據(jù)操作程序流程圖1.5程序流程本次設(shè)計(jì)整體程序流程圖如圖1.9所示。圖1.9整體程序流程圖2系統(tǒng)測(cè)試及結(jié)果分析由于本次設(shè)計(jì)使用的MLX90614傳感器沒(méi)有仿真模塊,無(wú)法在仿真軟件中進(jìn)行仿真。因此直接將所選模塊使用杜邦線連接,之后再用jlink下載器進(jìn)行仿真測(cè)試。在KeiluVision5中仿真達(dá)到要求后進(jìn)行實(shí)物焊接,進(jìn)一步進(jìn)行系統(tǒng)測(cè)試。2.1系統(tǒng)指標(biāo)參數(shù)STM32F103C8T6核心板CPU頻率:72MHz工作電壓:2.0V-3.6VRAM:20KFLASH:64K12位同步ADC:2組10通道通用I/O:32個(gè)MLX90614GY-906-DAA模塊數(shù)字接口類(lèi)型:IIC/PWM工作電壓:3.3V-5V溫度測(cè)量范圍:-70℃-382.2℃使用環(huán)境溫度:-40℃-125℃溫度測(cè)量誤差:±0.5℃(室溫下)分辨率0.02℃(3)OLED模塊尺寸:0.91寸分辨率:128*64工作電壓:3.3V-5V控制芯片:SSD1306通信方式:IIC顯示顏色:白(4)有源蜂鳴器模塊工作電壓:3.3V-5V觸發(fā)方式:低電平觸發(fā)2.2實(shí)物外觀本設(shè)計(jì)最終制成實(shí)物外觀如圖2.1所示。上方是0.91寸OLED顯示模塊。左下是STM32最小系統(tǒng)核心板。右下是蜂鳴器模塊和紅外測(cè)溫模塊。測(cè)試時(shí)被測(cè)對(duì)象與紅外模塊保持2cm左右的距離即可讀取當(dāng)時(shí)的體溫。圖2.1實(shí)物外觀2.3測(cè)試內(nèi)容與方法2.3.1采集溫度測(cè)試采用水銀溫度計(jì)與本設(shè)計(jì)紅外測(cè)溫儀測(cè)量不同人體體溫溫度,進(jìn)行反復(fù)測(cè)試與矯正。在室溫26℃下第一次溫度采集結(jié)果見(jiàn)表2.1。表2.1第一次人體體溫溫度被測(cè)樣本編號(hào)12345本設(shè)計(jì)測(cè)溫儀(℃)36.7236.5336.6636.4736.75水銀溫度計(jì)(℃)36.436.336.336.136.4可見(jiàn)表內(nèi)本設(shè)計(jì)測(cè)溫儀比水銀溫度計(jì)測(cè)得的溫度偏高0.2℃。經(jīng)排查,出現(xiàn)誤差的原因并非紅外探頭周?chē)衅渌邷匚矬w影響,而是傳感器封裝內(nèi)部硬件精度存在偏差。為解決此問(wèn)題,通過(guò)軟件修改程序算法,在原本公式基礎(chǔ)上-0.2攝氏度,也就是即可實(shí)現(xiàn)誤差校準(zhǔn)。校準(zhǔn)后再一次測(cè)試,室溫26℃下第二次溫度采集結(jié)果見(jiàn)表2.2。表2.2第一次人體體溫溫度被測(cè)樣本編號(hào)12345本設(shè)計(jì)測(cè)溫儀(℃)36.3836.5036.2936.2136.68水銀溫度計(jì)(℃)36.436.536.336.236.7從上表可以看出測(cè)量數(shù)據(jù)準(zhǔn)確度已經(jīng)達(dá)到要求。測(cè)試實(shí)物圖如圖2.2所示。圖2.2測(cè)試實(shí)物圖2.3.2超溫報(bào)警裝置測(cè)試由于正常人體溫度不會(huì)超過(guò)37.3℃,因此沒(méi)有合適的溫度采集源,于是測(cè)試采用修改程序中的報(bào)警溫度這種方法來(lái)測(cè)試蜂鳴器工作。將程序判斷條件中的大于

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論