系統軟件設計_第1頁
系統軟件設計_第2頁
系統軟件設計_第3頁
系統軟件設計_第4頁
系統軟件設計_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論