系統(tǒng)軟件設(shè)計(jì)_第1頁
系統(tǒng)軟件設(shè)計(jì)_第2頁
系統(tǒng)軟件設(shè)計(jì)_第3頁
系統(tǒng)軟件設(shè)計(jì)_第4頁
系統(tǒng)軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

經(jīng)典word整理文檔,僅參考,雙擊此處可刪除頁眉頁腳。本資料屬于網(wǎng)絡(luò)整理,如有侵權(quán),請聯(lián)系刪除,謝謝!系統(tǒng)軟件設(shè)計(jì)5.1單片機(jī)C語言單片機(jī)以體積小、重量輕、靈活性強(qiáng)、價(jià)格低等優(yōu)點(diǎn),被廣泛應(yīng)用于智能儀表、電氣設(shè)備、家用電器等的研制開發(fā),其中又以8位機(jī)更為普遍。在80年代中期,公司將8051內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)給世界許多著名的IC制造廠商如:PHILPS,西門子,AMD,,NEC,Atmel等,使得8051成為具有眾多廠商支持的、發(fā)展出上百個(gè)品種的大家族,推出的80C251也是與8051在機(jī)器代碼級兼容的,保證了51系列用戶在21世紀(jì)的技術(shù)領(lǐng)先性。另外,很多廠商為8051開發(fā)了大量的配套接口芯片,極大地方便了用戶。因此,盡管16位機(jī)開始流行,但51系列的8位機(jī)在將來很長一段時(shí)間內(nèi)還是研發(fā)控制設(shè)備的主流機(jī)。隨著硬件的發(fā)展,8051軟件工具已有C編譯器及實(shí)時(shí)多任務(wù)操作系統(tǒng)RTOS(Real2TimeOperatingSystem),在RTOS支持下,程序設(shè)計(jì)調(diào)試更容易、更可靠、實(shí)時(shí)性更強(qiáng),并且縮短了研發(fā)周期。5.2C51語言編程簡介C語言是源于編寫UNIX操作系統(tǒng)的一種語言,是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,產(chǎn)生的代碼緊湊,可以深入到機(jī)器內(nèi)部編程,具備若干匯編語言所具有的特點(diǎn),又優(yōu)于匯編語言。C程序本身并不依賴于機(jī)器的硬件系統(tǒng),基本上不作修改就可以根據(jù)單片機(jī)的不同較快地移植過來。早在1985年就開始出現(xiàn)了8051單片機(jī)的C語言編譯器,將C語言代碼編譯成51單片機(jī)的機(jī)器代碼。常見的產(chǎn)品有AmericanAutomation,Archimedes,Avocet,Bso/Tasking,Franklin,Intermetrics,MCC,Dunfields等,它們各具特點(diǎn),但用的比較多的還是Archimedes和Franklin。Franklin產(chǎn)生的代碼緊湊,使用也方便;Archimedes的性能完善,資料完善。51C程序結(jié)構(gòu)與一般語言程序結(jié)構(gòu)并沒有本質(zhì)上的差別,也是只有一個(gè)主函數(shù)和若干函數(shù)組成。在51C的頭文件中有其庫函數(shù)的說明,可以通過include預(yù)處理指令將頭文件包含在自己的文件中即可調(diào)用。每個(gè)函數(shù)的定義及調(diào)用規(guī)則基本上與一般的C一樣,實(shí)際上51C程序的設(shè)計(jì)過程也就是一系列函數(shù)的定義過程,熟悉C語言程序設(shè)計(jì)的人很容易掌握。盡管51C與一般C程序設(shè)計(jì)方法基本相同,但畢竟是針對單片機(jī)及其硬件系統(tǒng)所進(jìn)行的程序設(shè)計(jì),與常規(guī)意義上的C編程有所區(qū)別。在進(jìn)行程序設(shè)計(jì)時(shí),必需注意以下幾個(gè)問題。存儲區(qū)的定位及訪問。必須了解編譯器的數(shù)據(jù)類型以及與51單片機(jī)存儲器結(jié)構(gòu)的對應(yīng)關(guān)系,編譯器定義的任何數(shù)據(jù)類型必須以一定的存儲類型方式定位在單片機(jī)的某一存儲區(qū)中,否則沒有任何實(shí)際意義。比如,F(xiàn)ranklin51C編譯器所支持的存儲類型中,類型可以直接尋址片內(nèi)數(shù)據(jù)存儲區(qū),訪問速度也比較快;Bdata類型能夠?qū)ζ瑑?nèi)數(shù)據(jù)存儲區(qū)進(jìn)行位尋址,并且允許位與字節(jié)混合訪問;idata類型就只能間接尋址片內(nèi)數(shù)據(jù)存儲區(qū),它可以訪問片內(nèi)全部RAM地址空間;而在使用Code存儲類型時(shí),編譯器就會自動(dòng)將其定義在代碼空間(ROM或EPROM)中。特殊功能寄存器的訪問。對于片內(nèi)特殊功能寄存器SFR的訪問,編譯器都提供了專門的方法,這些方法與一般C語言是不兼容的,只適用于單片機(jī)C編程。比如,F(xiàn)ranklin51C編譯器是通過引入關(guān)鍵字“”來實(shí)現(xiàn)的,其語法結(jié)構(gòu)為:sfrSFR_‘’intconstant‘;’,例如:sfrSCON=0x80,就定義了串口控制寄存器的地址為80H。并行接口的定義。51單片機(jī)有4個(gè)8位并行口,共32條線,這是大家熟知的,這4個(gè)口原則上都可以作為使用,只是在需要外部總線擴(kuò)展時(shí),才將P0用作數(shù)據(jù)低地址總線,P2用作高地址總線。除此之外,還可以在片外擴(kuò)展硬件口。51單片機(jī)沒有專用的指令,所有口地址與數(shù)據(jù)存儲器地址時(shí)是統(tǒng)一編址的。在使用51C對單片機(jī)進(jìn)行編程時(shí),對這些口的訪問也是通過關(guān)鍵字“”定義的,可以在頭文件中定義,也可以在程序的開始部分進(jìn)行定義。例如:sfrP0=0x90,就定義了P090H。位變量的定義。51C除了支持一般C語言所具有的數(shù)據(jù)類型外,還支持“位”數(shù)據(jù)類型。它是通過關(guān)鍵字“Bit”來實(shí)現(xiàn)的。比如:Bitdisp_in,就定義了變量disp_in為位變量。但是,不能將位變量定義成指針,也不能定義位數(shù)組。目前支持51系列單片機(jī)的語言除了匯編、51C以外,還有BASIC和PL/M。BASIC是一種初學(xué)編程的語言,現(xiàn)在已很少有人去用了。PL/M是從8080微處理器開始為其系列產(chǎn)品開發(fā)的編程語言,它很像Pascal,也是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,使用關(guān)鍵字定義結(jié)構(gòu),用其開發(fā)的程序通過PL/M編譯器編譯后也能生成緊湊的代碼。但是,它的運(yùn)算能力較差,沒有豐富的庫函數(shù)支持,學(xué)習(xí)PL/M無異于學(xué)習(xí)一種新語言。因此,比較而言用51C對單片機(jī)編程是最方便、快捷的方法,如果熟悉,TurboC,只要在此基礎(chǔ)上遵從它的一些特殊規(guī)定就能開發(fā)出較優(yōu)化的程序,開發(fā)周期則比用匯編語言短得多。5.3倒車?yán)走_(dá)處理流程本裝置的控制軟件要完成系統(tǒng)的初始化,控制觸發(fā)脈沖信號的發(fā)射與接收,根據(jù)定時(shí)時(shí)間計(jì)算障礙物的距離,根據(jù)計(jì)數(shù)頻率計(jì)算汽車車速,判斷所測距離是否在車速所對應(yīng)的安全范圍內(nèi),并根據(jù)計(jì)算和判斷結(jié)果產(chǎn)生碼和相應(yīng)頻率的脈沖信號,以驅(qū)動(dòng)語音報(bào)警和發(fā)聲電路。實(shí)現(xiàn)整個(gè)系統(tǒng)功能的主流程圖如圖5-1所示。否是圖Fig.5-1flowreversing圖5-2倒車?yán)走_(dá)測距子程序流程圖5.4倒車?yán)走_(dá)的模擬測試方法通過模擬的方法,可以對倒車?yán)走_(dá)的性能測試。測試中,需要用到的道具為模擬障礙物、皮卷尺。模擬障礙物:高度45厘米的雪糕桶一組之所以選取高度為45厘米的雪糕桶作為模擬障礙物,是因?yàn)檫@一高度幾乎是所有轎車后保險(xiǎn)桿所處的高度,如果車后有這個(gè)高度的障礙物,倒車時(shí)碰到就會損傷后保險(xiǎn)桿,倒車?yán)走_(dá)對此具有報(bào)警提示能力。測量距離工具:皮卷尺。由于測試距離范圍在0.2米到1.5米之間,選用皮卷尺可以滿足這一要求。測試場地:一塊水平無障礙鋪裝路面,可以避免了外界物體對倒車?yán)走_(dá)工作的干擾。測評程序如下:1)預(yù)警距離測試:將一個(gè)雪糕桶擺在探頭的正后方,由遠(yuǎn)到近緩慢靠近倒車?yán)走_(dá),分別在遠(yuǎn)、近兩端測量雪糕桶到倒車?yán)走_(dá)的實(shí)際距離。2)分級報(bào)警測試:將雪糕桶分別放置于三級報(bào)警的范圍內(nèi),緩緩移動(dòng),觀察倒車?yán)走_(dá)的報(bào)警是否在級別距離界限時(shí)實(shí)現(xiàn)。3)探測死角測試:將雪糕桶中心頂偏離探頭中心,測試倒車?yán)走_(dá)是否能發(fā)現(xiàn)。根據(jù)資料分析,倒車?yán)走_(dá)常見的問題是存在探測死角。倒車?yán)走_(dá)經(jīng)常對高度在50厘米以下的障礙物視而不見,其原因是探測聲波波束太窄,當(dāng)障礙物偏離探頭的正對角度時(shí),存在較大的探測盲區(qū),對管錐狀障礙物探測存在較多的死角[9]。5.5提高倒車?yán)走_(dá)性能與精度的方法5.5.1換能器選擇與安裝根據(jù)所需要的精度、距離和系統(tǒng)成本,有幾種不同的實(shí)施方案可供選擇。換能器的頻率和功率越大,精度就越高。換能器頻率越高,其體積越小,也就使得系統(tǒng)可以更簡便地安裝到汽車上。頻率低的換能器也有好處,其探測范圍更大,更容易探測到換能器周圍的物體。一種可降低干擾的廉價(jià)技術(shù)是,在接收換能器周圍加一根3厘米的管子,這樣就可以集中接收有效信號,并增加方向性。影響系統(tǒng)性能下降的一個(gè)重要因素是,在發(fā)射器和揚(yáng)聲器之間的串?dāng)_。只有發(fā)射脈沖在接收換能器中的作用徹底消失,接收信號才能被探測到。在這兩個(gè)組件之間盡可能減少機(jī)械耦合很重要??刹捎玫募夹g(shù)是,將每個(gè)換能器安裝在不同的PCB上。如果它們共用一個(gè)基板,可以在換能器后面放一塊薄的泡沫塑料。如果發(fā)射接收運(yùn)用單換能器解決方案,那么應(yīng)該通過軟件在發(fā)射之后和啟用接收部分之前設(shè)置一個(gè)足夠長的延遲。應(yīng)該避免給換能器增加任何保護(hù)涂層。所有這些技術(shù)都能改進(jìn)超聲系統(tǒng)的性能。5.5.2關(guān)于系統(tǒng)精度的提高1)溫度傳感器消除該項(xiàng)誤差由于當(dāng)環(huán)境溫度發(fā)生變化時(shí)超聲波的傳播速度也隨之改變,這將會引起測距誤差。利用溫度傳感器測量空氣溫度再送主控器中的A/D轉(zhuǎn)換器進(jìn)行溫度補(bǔ)償,即可消除該項(xiàng)誤差。2)改善接收器LC帶通濾波器效果,可以增加信號保真度和系統(tǒng)精度。反射信號的額外增益級對增加探測范圍和提高精度也有幫助。5.6抗干擾數(shù)字濾波隨著高性能價(jià)格比單片機(jī)的不斷問世,其應(yīng)用更加廣泛深入,單片機(jī)系統(tǒng)的可靠性也變得越來越突出。決定單片機(jī)系統(tǒng)可靠性的因素很多,有系統(tǒng)本身的原因,也有外在的原因。如靜電干擾和各種電磁干擾造成單片機(jī)系統(tǒng)可靠性下降。外在因素是以某種電信號的形式,通過一定的途徑侵入單片機(jī)系統(tǒng)而發(fā)生作用的。這種信號對單片機(jī)系統(tǒng)來說是無用信號,它往往混在有用信號之中,造成系統(tǒng)工作不穩(wěn)定。在電子學(xué)中,把外來的無用信號統(tǒng)稱為干擾。抗干擾的方法有硬件和軟件兩種。硬件抗干擾發(fā)展的歷史較長,理論和實(shí)踐比較成熟。而軟件抗干擾發(fā)展較晚,還沒有形成較完善的理論。事實(shí)已經(jīng)證明:軟件抗干擾和硬件抗干擾一樣,已成為單片機(jī)系統(tǒng)可靠工作的重要手段。5.6.1軟件抗干擾的原理軟件抗干擾最早源于數(shù)字系統(tǒng)的故障診斷技術(shù)。1953年,Dagget和Rich在Whirl2Wind計(jì)算機(jī)上采用了循環(huán)程序控制技術(shù),通過控制啟停開關(guān)來重復(fù)執(zhí)行預(yù)選的程序,并在一些主要的檢驗(yàn)點(diǎn)觀察響應(yīng),以診斷系統(tǒng)內(nèi)的故障。1959年,Eldred提出了第一篇關(guān)于組合電路的測試報(bào)告,并實(shí)際應(yīng)用于第一代的電子管計(jì)算機(jī)Datamatic2100的診斷中。軟件抗干擾與數(shù)字系統(tǒng)的故障診斷有聯(lián)系,但又有區(qū)別。故障診斷著眼于系統(tǒng)內(nèi)部故障的檢測與定位。而軟件抗干擾則側(cè)重于對干擾信號的克服。當(dāng)然,也包含對系統(tǒng)內(nèi)部故障的檢測,但這種故障不是系統(tǒng)內(nèi)部元件所致,而是由于外部干擾所致。因?yàn)榻M成單片機(jī)系統(tǒng)的硬件是軟件的載體,只有硬件完好,軟件才能正常發(fā)揮作用,如果硬件有故障,軟件也就失去了基礎(chǔ),抗干擾也就無從談起了。軟件抗干擾的本質(zhì)是,在有干擾存在的情況下利用編程技術(shù)來抵消其影響。即當(dāng)干擾使單片機(jī)系統(tǒng)出現(xiàn)一定的運(yùn)行性故障時(shí),能夠依靠系統(tǒng)內(nèi)駐的能力程序保持系統(tǒng)連續(xù)正確地執(zhí)行其程序和輸入輸出的功能。因此,軟件抗干擾過程實(shí)質(zhì)是一個(gè)干擾容錯(cuò)過程,是容錯(cuò)技術(shù)在軟件設(shè)計(jì)中的具體體現(xiàn)。對侵入單片機(jī)系統(tǒng)的干擾,用軟件來消除不僅是必要的,而且,也是最經(jīng)濟(jì)、最可行的。高性能單片機(jī)以其豐富的指令功能和極高的運(yùn)行速度,為軟件抗干擾提供了良好的條件。一般來說,單片機(jī)執(zhí)行指令的速度為幾微秒,甚至更低,而系統(tǒng)的輸入信號如開關(guān)觸點(diǎn)、溫度、壓力、流量等和輸出執(zhí)行機(jī)構(gòu)如機(jī)電裝置)變化速度相對要慢得多。一旦干擾使系統(tǒng)的正常運(yùn)行遭到破壞,單片機(jī)便利用其速度上的優(yōu)勢,通過執(zhí)行抗干擾軟件程序)來克服干擾的影響,使系統(tǒng)仍能保持正常工作。由此可知,單片機(jī)是以執(zhí)行抗干擾軟件程序所花的時(shí)間為代價(jià),換來了系統(tǒng)的可靠。5.6.2軟件抗干擾的方法需要指出的是:這里所謂的軟件抗干擾是針對以單片機(jī)為核心的應(yīng)用系統(tǒng)而言的。根據(jù)單片機(jī)系統(tǒng)的特點(diǎn),采用下面介紹的方法,可以有效地防止干擾對系統(tǒng)造成的各種不良影響。數(shù)字濾波在單片機(jī)系統(tǒng)中,輸入模擬量中不可避免地含有隨機(jī)干擾,使輸入模擬量產(chǎn)生誤差。測量理論告訴我們:對真值的最佳估計(jì)就是N次檢測結(jié)果X,X??,X的算術(shù)平均12N值,可用下式表示:NXN)6XnXXXn1N)(...)(5-1)12N由(5-1)式可知,X的精度取決于檢測次數(shù)N,N值越大精度越高。但誤差理論進(jìn)一步指:如果標(biāo)準(zhǔn)誤差為R,平均誤差值為S則有關(guān)系:,S=RN(5-2)式告訴我們,當(dāng)N從1開始增大時(shí),平均誤差值S下降較快,隨著N值的進(jìn)一步增大,S值下降變得緩慢。而檢測次數(shù)N的增加則給測量工作帶來很多困難。所以綜合需要和可能,在單片機(jī)系統(tǒng),N值一般取4~20。在實(shí)際使用中,為了加快存取數(shù)據(jù)的速度,節(jié)省單片機(jī)內(nèi)存資源,可采用遞推或迭代法來計(jì)算。這種方法并不需要存放N個(gè)測量,而是每測得一個(gè)值就采用下列公式計(jì)算一次:X0(XX111XXXX)(XX)/221(5-2112XX(XX)/iii1i1i(XXX)/i(1iN)12i3)其中X——第i次測量值;i——i次測量的平均值。Xi對一些要求不高的簡單應(yīng)用系統(tǒng),可采用類似體操比賽中的評分辦法,在算平均值之前,先對N一般取4)個(gè)值進(jìn)行比較,去掉其中的最大值和最小值,然后計(jì)算余下的N-2(=個(gè)數(shù)據(jù)的平均值。它具有計(jì)算方便、速度快、占用內(nèi)存容量小等優(yōu)點(diǎn)。結(jié)論本文的成果在于設(shè)計(jì)了一個(gè)以AT90S4414為主要芯片,配以超聲波收發(fā)電路,語音播放電路,溫度補(bǔ)償電路(DS1629),復(fù)位及監(jiān)視電路(MAX705)等電路及元器件設(shè)計(jì)組成的語音式倒車?yán)走_(dá)。并介紹了倒車?yán)走_(dá)的概念,組成及發(fā)展歷史,并詳細(xì)介紹了語音式倒車?yán)走_(dá)的設(shè)計(jì)。其意義在于設(shè)計(jì)出了一款成本較低但性能較高的倒車?yán)走_(dá),其成本僅占市面上較高檔倒車?yán)走_(dá)的1/6,非常適合中低檔車安裝使用。另外通過本次設(shè)計(jì),使我對單片機(jī)有了更深入更直觀的了解。另外對超聲波測距技術(shù)以及超聲波收發(fā)技術(shù)也有一定的涉及。在設(shè)計(jì)中,為了準(zhǔn)確的測距,我們使用了渡越時(shí)間檢測法,為了提高測量精度加入了溫度補(bǔ)償電路。在使用溫度補(bǔ)償芯片的時(shí)候,DS1629的接口方式為IC

溫馨提示

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

最新文檔

評論

0/150

提交評論