




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
摘要在全國大學生飛思卡爾“智能汽車”競賽中,對智能車前輪傾角的調整是一個十分重要的過程,它關系到車模在高速行進過程中的直線行駛性能,轉彎的性能等許多方面。為了提高傾角調整的準確性、一致性,本畢業設計旨在開發一種運用于前輪小傾角的高精度的傾角測量儀。首先設計硬件電路,主要包括SCA100T傾角傳感器硬件SPI接口電路、ATmega16單片機及外圍電路和LCM046模塊信息顯示硬件電路設計。完成硬件電路部分后是對傾角測量儀軟件程序的開發,主要包括傾角傳感器驅動模塊和信息顯示模塊的程序兩方面。實驗證明此設計可以完成精確度為0.2°的小傾角測量,但仍有需要改進之處,有待優化。關鍵字:傾角測量SCA100T—D01ATmega16AbstractInNationalUndergraduateFreescale"smartcar"contest,adjustingtheangleofthefrontwheelofthesmartcarisaveryimportantprocess.Itisrelatedtomanyaspectslikethestraight-linedrivingandtheturnperformancesofthecarmodelsintheprocessofhigh-speedtravel.Inordertoimprovetheaccuracyandconsistencyoftheinclinationadjustment,thisgraduationprojectaimstodevelopasmallanglehigh-precisioninclinometertomeasureinclinationofthefrontwheel.First,buildthehardwarecircuit,includingthedesignofSCA100TtiltsensorhardwareSPIinterfacecircuit,ATmega16microcontrollerandperipheralcircuitsandLCM046moduleinformationdisplayhardwarecircuit.Aftercompletingthepartofhardwarecircuit,thefollowingistodevelopthesoftwareprogramoftheinclinometer,mainlyincludingthetiltsensordrivemoduleandtheinformationdisplaymoduleoftheprogram.Theexperimentsshowthatthisdesigncanbedonewithanaccuracyof0.2°inclinationmeasurement,butitstillneedstobeimproved,needstobeoptimized.Keywords:DipAngleMeasurementSCA100T—D01ATmega16目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要IAbstractII\o"CurrentDocument"引言1\o"CurrentDocument"概述2\o"CurrentDocument"1.1基于AVR單片機的傾角測量儀開發的意義2\o"CurrentDocument"1.2四輪定位2\o"CurrentDocument"傾角測量儀硬件設計4\o"CurrentDocument"2.1主要元器件介紹42.1.1傳感器的選型42.1.2單片機的選型62.1.3顯示屏的選型8\o"CurrentDocument"2.2硬件的總體設計方案92.2.1傾角傳感器模塊設計102.2.2單片機電路模塊11\o"CurrentDocument"2.2.3LCM046的顯示模塊122.2.4傾角測量儀硬件設計整體電路圖13\o"CurrentDocument"2.3裝置樣機13\o"CurrentDocument"傾角測量儀的軟件設計14\o"CurrentDocument"3.1軟件開發環境14\o"CurrentDocument"3.2軟件設計的總體方案153.2.1傳感器模塊153.2.2顯示屏模塊20\o"CurrentDocument"4.實驗23\o"CurrentDocument"4.1傾角測量實驗23\o"CurrentDocument"4.2溫度測量實驗24結論25\o"CurrentDocument"致謝26\o"CurrentDocument"參考文獻27引言在智能車比賽中,存在許多影響車子的穩定行駛以及各項性能的機械結構,因此,對前輪傾斜角度的調整成為了至關重要的一個步驟。為了讓智能車能夠在比賽中有好的表現,主要有以下四種定位方式:主銷后傾、主銷內傾、前輪外傾、前輪前束,但目前市場上在專用于智能車輪胎的低成本、高精度傾角測量儀這個方面依舊是一塊空白。經過調查,我發現大多數的選手在準備階段還主要是用目測對小車前輪傾斜角度進行調整,這樣就大大的降低了精確度,進而影響到小車性能的發揮。因此,本設計的主要目的就是開發一款適用于智能車輪胎小傾角的高精度測量儀。設計和實現一個基于AVR單片機傾角測量儀,主要有以下兩個方面的內容:一是基于AVR單片機傾角測量儀硬件電路設計,其中主要包括傾角傳感器硬件接口電路、單片機及外圍電路和信息顯示硬件電路設計;二是傾角測量儀軟件程序的開發,主要包括傾角傳感器驅動模塊、信息顯示模塊、按鍵模塊以及傳感器內部溫度補償模塊程序的開發。概述1.1基于AVR單片機的傾角測量儀開發的意義全國大學生飛思卡爾“智能汽車”競賽是教育部倡導的大學生科技競賽之一。該競賽旨在培養大學生的綜合知識運用能力、基本工程實踐能力和創新意識,激發大學生從事科學研究與探索的興趣和潛能。對于智能車而言,要保持車輛直線行駛的穩定性,使之轉彎自動回正、轉向輕便,必須確定車輪定位參數。而在目前的智能車比賽中,調整智能車輪胎的傾角一般都采用目測,用人眼來觀察左右前輪的傾角存在誤差大,難以調整等問題。1.2四輪定位車輪定位角度是存在于懸架系統和各活動機件間的相對角度,保持正確的車輪定位角度可確保智能車直線行駛,改善車輛的轉向性能,確保轉向系統自動回正,避免軸承因受力不當而受損失去精度,還可以保證輪胎與地面緊密接合,減少輪胎磨損、懸架系統磨損以及降低油耗等。汽車懸架系統主要定位角度包括:車輪外傾、車輪前束、主銷后傾、主銷內傾等。1、車輪外傾車輪外傾角是指車輪中心平面與汽車垂直平面的夾角。當車輪頂部向汽車外部傾斜時角度為正,反之為負。車輪外傾角主要作用是使車輪與地面的動態承載中心得到合理的分配,從而達到提高機械零件的使用壽命,減少輪胎的磨損等效果。若車輪外傾角不正確,輪胎會出現異常的磨損,智能車在行駛時也會發生偏駛的現象。一般前輪外傾角為1°左右如圖1-1所示。乍輪外傾圖1-1車輪外傾2、車輪前束車輪的水平直徑與車輛縱向對稱平面之間的夾角為前束角。由于車輪外傾及路面阻力使前輪有向兩側張開做滾錐運動的趨勢但受車軸約束,不能向外滾動,導致車輪邊滾邊滑,增加了磨損,通過前束可使車輪在每瞬間的滾動方向都接近
于正前方,減輕了輪轂外軸承的壓力和輪胎的磨損。前輪前束一般為0?12mm。如圖1-2所示。3、主銷后傾圖3、主銷后傾圖1-2車輪前束過車輪中心的鉛垂線和真實或假想的轉向主銷軸線在車輛縱向對稱平面的投影線所夾銳角為主銷后傾角,向前為負,向后為正。主銷后傾角的存在可使車輪轉向軸線與地面的交點在輪胎接地點的前方,可利用地面對輪胎的阻力產生繞主銷軸線的回正力矩,該力矩的方向正好與車輪偏轉方向相反,使車輛保持直線行駛。通常后傾角為1°?3°。如圖1-3所示。圖1-3圖1-3王銷后傾4、主銷內傾主銷內傾定義為在同時垂直于車輛縱向對稱平面和車輛支承平面的平面內,由真實的或假想的轉向主銷的軸線在該平面上的投影與車輛支承平面的垂線所構成的銳角。主銷內傾角的作用,是使車輪在受外力偏離直線行駛時,前輪會在重力作用下自動回正。另外,主銷內傾角還可減少前輪傳至轉向機構上的沖擊,并使轉向輕便,但內傾角不宜過大,否則在轉向時,會使輪胎磨損加快。通常主銷內傾角不大于8°。如圖1-4所示。傾角測量儀硬件設計2.1主要元器件介紹2.1.1傳感器的選型1、SCA60C:N1000060SCA60C:N1000060加速度計是由硅體微機傳感元件芯片和一個信號調節ASIC組成的。封裝過程中是標準的半導體傳輸成型工藝。該傳感器具有8個SMD管腳(鷗翼式)。測量傾角范圍為±90。,由于測量范圍大,所以精度也就相對降低許多。另外,由于它是單軸傾角傳感器,對于測量多方向的四輪定位的傾角是不能夠滿足要求的。2、SCA100T-D01SCA100T系列是一個基于3D測量的雙重軸傾角測量儀。傳感單元的2條測量軸與安裝平面平行,且相互垂直。它有低溫度依賴性,高精度和低噪聲,以及一個高效的傳感單元設計,這使得SCA100T成為大多傾角測量儀的理想的選擇。該傳感器主要應用于:平臺水準和穩定性測量、水準儀、360°垂直定向測量及容積率測量等。經過多次的對比,一開始我考慮選用的是角度傳感器,但經過考察實際情況以及查閱大量的資料,我發現在本設計中需要用到的是傾角傳感器。最終,我選用SCA100T—D01傾角傳感器來獲取傾角信號,它精度高,且為雙軸傳感器,非常適合智能車輪胎傾角測量時所需的小角度、多方向等要求。1)特性雙軸傾角測量(X軸和Y軸);SCA100T-D01的測量范圍為±30°;精度為0.0025°(10HzBW,模擬輸出);傳感單元控制過阻尼頻率響應(-3dB18Hz);過溫度的高穩定性;數字SPI傾斜及溫度輸出;通過靜電力的偏轉傳感單元的檢測質量的自檢功能;連續傳感單元互連錯誤檢查。2)實物圖與引腳圖實物圖與引腳圖如圖2-1所示。圖2-1SCA100T-D01實物圖與引腳圖3)SCA100T-D01的SPI串行接口一個串行外圍接口(SPI)系統包括一個主設備和一個或多個的從屬設備。主機設備為一個單片機提供SPI時鐘以及從屬設備從主機設備處接收任何集成電路SPI時鐘。VTI的ASIC科技產品總是作為一個從屬設備來使用。SPI有4線程同步串行接口。數據通信是通過低電平活動的附屬選擇或是片選線程(CSB)使能的。數據是由一個3線程接口來傳送的,其中包括串行數據輸入(MOSI)、串行數據輸出(MISO)以及串行時鐘(SCK)。該傳感器可以用軟件或是硬件進行SPI通信,其中在硬件條件下接受的加速度數據是11位的。每一次傳輸始于CSB的下降沿,止于CSB的上升沿。在傳輸過程中,命令和數據是由SCK和CSB依據以下規則控制的:命令和數據轉移時,MSB先,LSB最后;每個輸出數據/狀態流在SCK下降沿時輸出(MISO線),在SCK上升沿時進行抽樣(MOSI線);?在CSB下降沿選擇設備后,開始接收一個8位的命令并執行命令定義的操作;如果收到無效命令,將不會有數據傳輸入片中并且MISO將保持在高阻狀態,直到下一次CSB的下降沿,重新初始化串行通信;數據從MISO傳出開始于SCK的下降沿,在SPI命令最后一位結束后SCK立即變為上升沿;SPI時鐘頻率的最大值為500kHz;SPI命令可以是單獨命令或是數據與命令的結合。在數據與命令結合的情況下,輸入數據遵循不間斷的SPI命令,輸出數據時與輸入數據平行。4)自檢及錯誤檢測模式為了保證可靠的測量結果,SCA100T有連續互連錯誤校準記憶正確度檢測。若檢測出錯誤,將強制使輸出信號接近0V或VDD電壓。校準記憶正確度是通過不斷運行的奇偶校驗檢查控制寄存器記憶內容來驗證的。一旦檢測到奇偶校驗誤差,控制寄存器就會自動從EEPROM重載。如果重載數據后檢測到一個新的奇偶校驗誤差,所有模擬輸出電壓都會強制接近0V。SCA100T也包括一個分離的自檢模式。它是利用靜電力模擬加速或是減速狀態來實現自檢的。自檢功能可通過SPI接口并由STX或是STY命令來激活的,可由MEAS命令來停止。自檢模式同時也能由ST管腳(管腳9和10)的高電平激活。自檢模式不能同時為所有通道激活。自檢包括以下幾個檢測方面:傳感元件運動檢測;ASIC信號路徑檢測、PCB信號路徑檢測、微控制器模數轉換以及信號路徑檢測。
2.1.2單片機的選型1、MC9S12XS128MC9S12XS128是一個16位的單片機,由128KB程序Flash、8KB隨機存儲器、8KB數據Flash組成片內存儲器。同時還包括2個異步串行通信接口、1個串行外設接口、1個8通道輸入捕捉/輸出比較定時器模塊、16通道12位A/D轉換器和一個8通道脈沖寬度調制模塊。端口引腳大多為復用引腳,具有多重功能。但因為XS128價格較高,并且其中許多的功能在本設計中都不需要使用,性價比不高,因此不選用XS128作為本設計的傳感器。2、ATmega16ATmega16是基于增強的AVRRISC結構的低功耗8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達1MIPS/MHz,可以緩減系統在功耗和處理速度之間的矛盾。16K字節的系統內可編程Flash,512字節EEPROM,32個通用I/O口線,32個通用工作寄存器,用于邊界掃描的JTAG接口,支持片內調試與編程,三個具有比較模式的靈活的定時器/計數器(T/C),片內/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益(TQFP封裝)的ADC,具有片內振蕩器的可編程看門狗定時器,一個SPI串行端口,以及六個可以通過軟件進行選擇的省電模式。其實物圖與引腳圖如圖2-2所示:=09圖2-2ATmega16實物圖與引腳圖=091)產品特性ATmega16的外設特點:它有兩個8位、一個16位的具有獨立預分頻器和比較器功能的定時器/計數器,它的實時計數器RTC具有獨立振蕩器以及可工作于主機/從機模式的SPI串行接口。?特殊的處理器特點:上電復位以及可編的掉電檢測、經過標定的片內RC振蕩器以及五種睡眠模式。ATmega16的工作電壓為4.5-5.5V,正常模式下工作電流為1.1mA。2)引腳說明ATmega16的引腳功能如表2-1所示。
表2-1ATmega16引腳說明表引腳名稱功能說明VCC數字供電電源GND地PORTA(PA7..PA0)A端口作為模擬輸入傳輸給模/數轉換器。在沒有使用模/數轉換器的情況下,A端口也作為一個八位的雙向輸入/輸出端口。端口管腳能提供內部上拉電阻(選定每一位)。A端口輸出緩存器有著對稱的驅動特性,可以輸入和輸出大電流。當管腳PA0至PA7被用作輸出并外部置低,內部上拉電阻被激活的情況下,它們將輸出電流。當在重置的條件下A端口管腳處在高阻狀態,即使系統時鐘還未工作。PORTB(PB7..PB0)B端口作為一個八位的雙向輸入/輸出端口并且端口管腳能提供內部上拉電阻(選定每一位)。B端口輸出緩存器有著對稱的驅動特性,可以輸入和輸出大電流。作為輸入端,B端口管腳在外部置低,內部上拉電阻被激活的情況下,它們將輸出電流。當在重置的條件下B端口管腳處在高阻狀態,即使系統時鐘還未工作。B端口也能用作ATmega16多種特殊功能。PORTC(PC7..PC0)與B端口類同。PORTD(PD7..PD0)與B端口類同。RESET重置輸入。持續時間超過最小脈沖長度的低電平將產生系統復位,即使系統時鐘不在工作狀態。過短的脈沖將不保證能產生重置。XTAL1作為反向振蕩放大器與和內部時鐘操作電路的輸入。XTAL2作為反向振蕩放大器的輸出。AVCCAVCC為A端口以及模/數轉換器提供電壓。即使沒有使用模數裝換器,也必須外連至Vcc。如果使用模數轉換器,必須通過一個低通濾波器連至Vcc。AREFAREF是模/數轉換器的模擬參考管腳。3)ATmega16的SPI接口ATmega16集成了一個串行外設SPI接口,允許ATmega16和外設之間進行高速的同步數據傳輸。它的主要特點有:全雙工,3線同步數據傳輸;主機或從機操作;LSB首先發送或MSB首先發送;7種可編程的波特率;傳輸結束中斷標志;寫沖突標志檢測;可以從閑置模式喚醒。主機和從機系統包括兩個移位寄存器和一個主機時鐘發生器。主機拉低SS引腳來啟動一次數據傳輸。其中,SPI接口不自動控制SS引腳,而必須通過用戶的程序來處理。主機和從機將需要發送的數據放入相應的移位寄存器。對SPI數據寄存器(SPDR)寫入數據即可啟動時鐘脈沖,雙方以此為基準進行8位數據交換。傳輸結束后,SPI時鐘停止,傳輸結束標志位SPIF置1。如果此時SPCR中的SPIE位置1就會產生中斷。MOSI情況下,主機移出數據,從機接受數據;MISO情況下,主機接受數據,從機移出數據。每次數據傳輸完成,主機都可以通過拉高SS實現與從機的同步。SPI模塊使用的外部引腳有4個:MOSI(與PB5復用)、MISO(與PB6復用)、SCK(與PB7復用)和CSB(與PB4復用)引腳。2.1.3顯示屏的選型1、LCM046顯示屏的特點及功用LCM046可與任何單片機相連,功耗非常低,數據傳輸方式是串口傳輸。顯示狀態50pA(典型值),省電模式<1pA,工作電壓2.4?5.2V,視角對比度可調顯示清晰,穩定可靠,使用編程簡單,是儀器儀表、手持便攜儀器、電話系列、家用電器、運動器材、醫療保健儀器、智能充電器等的最佳通用型顯示模塊。2、LCM046顯示屏引腳說明由于LCM046內部有上拉電阻,為保證低功耗,每次送數之后,/CS、/RD、/WR、DATA必須接高電平或懸浮。根據采用的MCU不同,采用不同方式接口,不必使用分壓電阻若MCU與LCM046工作電壓相同可直接相接。/RD、/IRQ、BZ可不用,用三線接口即可:/CS、/WR、DATA。LCM046引腳說明見表2-2。表2-2LCM046引腳說明引腳符號說明輸入/輸出1/CS模塊片選,內部上拉,必須接!輸入2/RD模塊數據讀出控制線,內部上拉輸入3/WR模塊數據/指令寫入控制線,內部上拉,必須接!輸入4DA數據輸入/輸出,內部上拉,必須接!輸入/輸出5GND地線,必須接!輸入6VLCDLCD屏工作電壓調整,可調整視角對比度,必須接!輸入7VDD正電源,必須接!輸入8IRQWDT/定時器輸出,集電極開路輸出,不用可不接輸出9BZ壓電陶瓷蜂鳴片驅動+極輸出10/BZ壓電陶瓷蜂鳴片驅動-極輸出
3、LCM046顯示屏的相關時序1)寫命令/數據時序WP-EHI3EZHDATAleaeaes瀕幽撅魂WP-EHI3EZHDATAleaeaes瀕幽撅魂[XJXXCommand_orAddr2orData2Command_orAddr2orData2DataModeCommandorAddi3orDataJDataModeCSIDATAn0I1IA5-4A3#AlA。[DODID2D3]DODI以D3|DODI。2D3[DODIDWD3[DOMemoryAddjess(MA)DataCN'IA)Data(MA+l)Data(MA+2)Data(MA+3)注A5=0,MA為寫入的第一位數據地址此后連續送數地址自動加1.4、使用模塊注意事項RAM表數據位為1則顯示,為0則滅。當模塊工作電壓為3.3V以下時,VLCD腳與VDD直接相接,當模塊工作電壓>3.3V時,VLCD腳與VDD間接一個電位器50K調節,參考值為5V/36K。2.2硬件的總體設計方案硬件設計主要包括傾角傳感器模塊、單片機模塊、按鍵模塊、顯示屏模塊以及電源供電模塊。系統的整體硬件設計原理框圖如圖2-3所示。圖2-3硬件設計原理框圖傾角傳感器模塊的設計:系統采用SCA100—D01的SPI接口來讀取輸出信息,可避免額外的A/D采樣,由于ATmega16具有SPI中斷,可直接將傳感器作為從器件接到單片機的SPI接口上。單片機模塊的設計:單片機電路設計主要是單片機外圍電路的連接,以保證單片機可以正常工作。此外,還有單片機與傾角傳感器之間的SPI接口、顯示屏LCM046相關引腳以及按鍵的連接,以確保信號能夠正常傳輸。按鍵模塊的設計:主要是與單片機的連接,讓用戶可以根據需要通過外部按鍵來切換顯示屏上顯示的數據。顯示屏LCM046應用電路的設計:主要是顯示屏本身供電等自身外圍電路的連接,以及顯示屏與單片機相關引腳的連接。電源適配器供電模塊的設計:傾角測量儀的電源可由電源適配器或者電池提供的,因為各模塊所需的工作電壓都有所不同,同時設計了一個穩壓模塊,將適配器提供的6V電源穩定為5V,供給單片機與傳感器工作。2.2.1傾角傳感器模塊設計根據相關資料顯示,該傳感器通過SPI接口傳出的數據會比通過模擬信號傳出后進行模數轉換得出的傾角數據精度更高,因此傾角測量模塊主要是傾角傳感器SCA100T—D01與ATmega16單片機之間的SPI接口,包括MISO、MOSI、SCK、CSB四個引腳。另外,還有傳感器電源VDD與地VSS。共6個引腳需接出。12引腳與地之間必須接一個0.1uF的濾波電容,用在電源整流電路中,用來濾除交流成分,使輸出的直流更平滑。引腳5和11為輸出模擬信號時的連接引腳。引腳9和10為自檢模塊的驅動引腳。根據該傳感器說明書中的引腳說明表,如表2-3所示,該模塊原理圖如圖2-4所示。表2-3引腳說明節點輸入/輸出描述SCK輸入串行時鐘NC輸入不連接,懸起MISO輸出輸出;輸出數據MOSI輸入輸入;輸入數據OUT-2輸出Y軸輸出(CH2)GND補充接地CSB輸入片選(低電平有效)NC輸入不連接,懸起
ST-2輸入CH2自測輸入ST-1輸入CH1自測輸入OUT-1輸出X軸輸出(CH1)VDD補充電源電壓(+5VDC)圖2-4傳感器模塊原理圖2.2.2單片機電路模塊單片機電路設計主要是ATmega16單片機小車開發板與JTAG仿真器、傳感器以及LCD相關引腳的連接以確保信號傳輸正常。該模塊中ATmega16單片機原理圖如圖2-5所示。其中,因為不需使用模數轉換器,引腳27可直接接電源。圖2-5單片機模塊原理圖JTAG仿真器接口原理圖如圖2-6所示。其中,TCK為時鐘信號引腳與單片機引腳21相連,TMS為模式選擇引腳,與單片機引腳22相連。TDI與TDO分別為數據輸入與輸出引腳,分別與單片機引腳24、23相連。引腳4與7都需要接電源。引腳6為復位腳,接單片機引腳4。引腳2與10接地。引腳8留作后續設備時候,此處懸空不接。圖2-6JTAG仿真器接口原理圖2.2.3LCM046的顯示模塊LCM046顯示電路設計主要是顯示屏本身供電等外圍電路的連接,以及顯示屏與單片機相關引腳的連接。其中,BZ與/BZ引腳是驅動蜂鳴器的,此設計中沒有使用蜂鳴器,所以BZ與/BZ引腳懸空不接。IRQ為定時器輸出,RD為模塊數據讀出控制線,也懸空。CS為片選引腳,與單片機引腳35相連。WR為數據/指令寫入控制線,與單片機引腳36相連。DA為數據輸入/輸出,與單片機引腳37相連。VLCD必須接電源。該模塊原理圖如圖2-7所示。
2.2.4傾角測量儀硬件設計整體電路圖采用ProtelDXP2004軟件繪制傾角測量儀的原理圖及PCB電路板。該傾角測量儀的硬件設計總體原理圖如圖2-8所示。圖2-8硬件設計總體原理圖2.3裝置樣機本裝置樣機組成分為三部分:SCA100T—D01傳感器測量模塊、單片機及外圍電路模塊、LCM046顯示屏模塊。本裝置制作的原則是測量模塊盡可能小,與輪胎的貼合面進可能的平整,最小程度影響傾角測量。傾角測量儀實驗樣機實物圖如圖2-9所示。圖2-9實驗樣機實物圖傾角測量儀的軟件設計3.1軟件開發環境本次畢業設計中的軟件設計我選擇的開發環境是AVRStudio4,它是極大多數AVR開發者必選的工具。其編譯界面如圖3-1所示。圖3-1AVRStudio4編譯界面ATMELAVRStudio集成開發環境(IDE),包括AVRAssembler編譯、AVRStudio調試功能、AVRProg串行、并行下載功能和JTAGICE仿真等功能。它為功能強大的AVR8位RISC指令集單片機提供了工程管理工具、源文件編輯器、芯片模擬器和在線仿真調試(In-circuitemulator)接口。它有一個全新的模塊結構,此結構允許第三方軟件共同合作開發,而且GUI插件和其它模塊也可以寫或掛到該系統上。因為AVRStudio4默認的語言是匯編語言,自身不帶有C語言編譯器,因此在安裝該軟件時同時需要安裝一個C編譯器,此編譯器我選擇的是WINAVRO在正確安裝這兩個軟件后,打開AVRStudio4,在創建新工程的時候就會多出來一個AVRGCC的選項,選擇該項即可使用C語言進行編譯。3.2軟件設計的總體方案本系統軟件部分采用模塊化結構,各模塊均編成子程序,便于函數之間相互調用和對問題的調試。本系統軟件主要分為3大模塊,分別為傳感器模塊、傾角信息顯示模塊、以及按鍵模塊。傾角測量儀的軟件流程圖如圖3-2所示。圖3-2軟件流程圖系統以ATmega16單片機作為中央控制芯片。首先對單片機和LCM046顯示屏進行初始化設置;然后將傳感器得到的傾角信息以及溫度信息經過計算處理后由SPI接口輸入單片機,最終通過LCM046顯示出來,可通過按鍵進行各種數據顯示之間的切換。3.2.1傳感器模塊1、SPI接口初始化首先,根據ATmega16單片機中的SPI控制寄存器——SPCR以及SPI狀態寄存器——SPSR的說明表,使能SPI接口。1)SPI控制寄存器——SPCRBit76543210SPIESPEDORDMSTRCPOLCPHASPR1SPR0其中:
SPIE:置1時,引發SPI中斷。SPE:置1時,使能SPI。DORD:為1時,先發送數據的地位;為0時,先發送數據的高位。MSTR:為1時選擇主機模式,為0時選擇從機模式。CPOL:時鐘極性。CPHA:時鐘相位。SPR1...0:SPI時鐘頻率選擇。2)SPI狀態寄存器——SPSRBit76543210SPIFWCOL—————SPI2X其中,本設計使用到的有:SPIF:在串行發送結束后置1。WCOL:若SPI在數據傳輸中對SPDR寫入數據,WCOL會置1。Bit5.1:保留位,讀操作返回值為0。SPI2X:該位置1將加倍SPI時鐘頻率。程序如下://MOSI和SCK引腳輸出,低電平voidSca100t_Init(void){DDRB=0xa0;SCA_CS_PIN_d;SCA_CS_high;SPCR=0x51;SPSR=0x00;〃主機模式、模式0、使能SPI//MSB在前,SPI時鐘頻率:8M/16=500kHZ2、傾角讀取與轉換1)根據ATmega16的SPI數據寄存器——SPDR的說明表以及SCA100T—D01的命令寄存器的命令列表,進行傾角數據的讀取。//MOSI和SCK引腳輸出,低電平SPCR=0x51;SPSR=0x00;SPDR為讀/寫寄存器,用來在通用寄存器組和SPI移位寄存器之間傳輸數據。其說明表為:Bit76543210MSBLSB其中:MSB為數據的最高位,LSB為數據的最低位。SCA100T—D01的命令寄存器的命令列表如表2-3所示。
表2-3SCA100T-D01命令列表圖3-4SPI圖圖3-4SPI圖3-3RWTR命令時序圖OCXXXXXXXXXXXXXXXXXXXXX^命令名稱命令格式描述MEAS00000000測量模式,是啟動后默認的操作模式。在正常操作情況下,MEAS命令是自檢模式的退出命令。RWTR00001000在不影響正常操作的情況下能夠讀取溫度數據寄存器。溫度數據寄存器每150us更新一次。只要CSB為低電平,即可終止加載操作,8位溫度數據傳輸如圖3-3所示。MSB數據最先傳輸。在正常操作中,是否在RWTR命令下將數據寫入溫度數據寄存器不會產生影響,因此建議全部寫入0。RDSR00001010讀取狀態寄存器。RLOAD00001011重載NV數據至存儲輸出寄存器。STX00001110為激活X軸(通道1)的自檢功能。X軸加速傳感兀件電極被置為高電平,這將導致靜電力轉換傳感元件產生電波并刺激正方向的加速。當輸入MEAS命令時,自檢模式將關閉。自檢模式將不能同時為雙通道激活。STY00001111激活Y軸(通道2)的自檢功能。Y軸加速傳感元件電極置高電平。RDAX00010000訪問模數轉換后的X通道(通道1)中存儲在加速度數據寄存器X的加速度信號。通過SPI接口傳輸命令與11位加速度數據如圖3-4所示。RDAY00010001訪問模數轉換后的Y通道(通道2)中存儲在加速度數據寄存器Y的加速度信號。程序如下:uint16_tSca100tReadX(void){SCA_CS_low;//首先將CSB置低,選擇該設備SPDR=CMD_RDAX;〃發送讀取X軸數據命令while(!(SPSR&_BV(SPIF)));〃等待SPDR=0x00;〃任意發送一數據,準備開始讀取傾角數據while(!(SPSR&_BV(SPIF)));temp=SPDR;〃將讀取的高8位數據賦給tempSPDR=0x00;while(!(SPSR&_BV(SPIF)));temp=(temp<<3)|(SPDR>>5);〃移位SCA_CS_high;〃將CSB置高,結束傳輸returntemp;〃返回數據}其中,需要注意的是,通過SPI接口輸出的數據為11位,而每次讀取僅能讀取8位,并且先輸出高位后輸出低位,因此,在讀取完高8位數據后需要將變量左移3位,而將下一次讀取的數據寄存器中的數據右移5位,將剩下的3位寫入變量中,這樣才能完整的讀取11位數據。讀取Y軸數據與上述類似,在此就不重復介紹。2)數字輸出與角度換算直接從寄存器讀取出的數據是范圍為0至2048的數據,此數據需要經過換算才能最終在顯示屏上顯示出實際角度,參考說明書,可根據下列公式進行換算:a=arcsin[(Dout-Dout@0°)/sens]。其中:Dout為數字輸出(RDAX或是RDAY);Dout@0°為數字偏移值,RDAX和RDAY數據寄存器在0角度位置處的標準內容為:二進制:10000000000;十進制:1024;a為角度;sens為設備敏感度,取值1638。程序如下:uint16_treadSca100tAngelX(void)temp=(double)Sca100tReadX();temp=(temp-1024)/1638;〃根據公式計算出函數自變量if(temp>1)〃判斷函數自變量是否在定義域范圍內{temp=1;}if(temp<-1){temp=-1;}tempangel=asin(temp)/3.1415926*180;〃將弧度值轉換為角度值if(tempangel>0)〃判斷角度值的正負{一angel=(uint16_t)(tempangel*10);〃若為正則乘以10以顯示小數點后一位}else{angel=(uint16_t)(-tempangel*10)+1000;〃若為負則顯示屏第一位顯示“1”}returnangel;}換算Y軸數據與上述類似,在此就不重復介紹。3、溫度測量SCA100T有內部溫度傳感器,這是用來作內部溫度自補償。這些溫度信息對于附加的外部補償也是可用的。溫度傳感器能夠通過SPI接口進行存取,讀取的溫度數據為8位字符(0???255)。根據此公式進行溫度數據的轉換:T=(counts—197)/-1.083。其中,counts為讀取的溫度,T為攝氏度下的溫度。為了保證獲得正確的數據,CSB必須至少提前RWTR命令150us保持在高電平狀態。程序如下:uint8_tSca100tReadT(void){SCA_CS_low;_delay_ms(150);〃延時150ms以上再送命令SPDR=CMD_RWTR;〃發送測量溫度命令while(!(SPSR&_BV(SPIF)));SPDR=0x00;while(!(SPSR&_BV(SPIF)));count=SPDR;temperature=(count-197)/(-1.083);〃溫度數據換算SCA_CS_high;returntemperature;}3.2.2顯示屏模塊使用LCM046顯示屏設置的主要子函數包括:LCM046的初始化、寫入命令代碼函數、寫入數據函數、顯示數據函數。同時還設有延時函數,以便調節數據傳送過程中時序時間。1、顯示屏初始化在初始化過程中應注意的是:模塊上電后,軟件初始化模塊,應延時200ms以上再送命令。第一寫入模塊專用初始化命令定義模塊。第二定義內部RC振蕩方式或定義外部晶體振蕩方式,第三開振蕩器。第四開顯示器。以上四步完成后再送其它命令或顯示數據。程序如下:voidLCM046_Init(void){_delay_ms(200);〃延時200ms以上再送命令LCM046_PortInit();〃向LCM046發送初始化命令:LCM046_WriteCMD(LCM_COMMAND_INIT);//LCM046模塊專用初始化定義LCM046_WriteCMD(LCM_COMMAND_RC);〃定義模塊內部RC振蕩器工作LCM046_WriteCMD(LCM_COMMAND_RC_ON);〃開振蕩器LCM046_WriteCMD(LCM_COMMAND_LCD_ON);〃開LCD顯示}2、顯示屏寫命令函數LCM046的寫入命令代碼函數主要是供LCM046的初始化函數調用,用于傳輸命令代碼°LCM046寫入命令格式為100C7C6C5C4C3C2C1C00。其中,100是設定為寫入命令模式、C7到C0是寫入的命令代碼,在寫入命令代碼函數中需要按照該格式一位一位的將數據傳送到DATA引腳。程序如下:staticvoidLCM046_WriteCMD(uint8_tcmd){uint8_ti;//CS=0CS_LOW;//CSB置低,選擇設備_delay_us(1);〃延時1秒〃寫100——寫命令的模式位LCM_WR_BIT_1;LCM_WR_BIT_0;LCM_WR_BIT_0;〃寫8bit的命令
3、顯示屏連續寫數據函數LCM046的讀入數據函數主要是供LCM046顯示數據函數調用,用于連續寫入數據。LCM046連續寫數據格式為1010A4A3A2A1A0D0D1D2D3。其中,1010是設定為連續寫數據模式、A4A3A2A1A0是寄存器地址、D0D1D2D3是向該地址中傳入的數據。在寫數據函數中需要按照該格式一位一位的將數據傳送到DATA引腳。傳入數據方法與寫命令函數中的傳數據方法相同,這里就不再進行詳細介紹。4、顯示屏顯示數據LCM046顯示數據函數用于直接將數據顯示在LCM046的四個七段管中。程序如下:voidLCM046_Display10(uint16_tnum){uint8_ti;uint8_tsegmentCode;//num的個位//num的十位//num的百位//num的千位uint8_tdata[4];data[3]=num%10;data[2]=num/10%10;data[1]=num/100%10;//num的個位//num的十位//num的百位//num的千位}
5、顯示屏數據保持功能因為該傳感器的精度高,稍微一點的角度變化都會影響到傾角的測量。可能有時調整很久才調整到一個最適合的測量角度,剛顯示出角度,因為一些原因產生了移動,還沒有讀取的數據馬上就消失了,這樣一來就十分影響測量效率以及工作進度。因此,我設計了一個“保持”模式,通過按鍵就可以讓用戶輕松的記錄下所需時刻的數據。//hold初始值為//hold初始值為0uint8_thold=0;〃判斷是否按下按鍵2〃取反為1,不顯示數據while(1){if(key==2){hold=!hold;}if(hold==0){LCM046_Display10(g_Counter);〃值為0時顯示數據}〃判斷是否按下按鍵2〃取反為1,不顯示數據實驗該傳感器默認0°位置為水平位置,因此,在將傳感器焊在板子上的時候應放在平整的桌面上進行焊接,保證所有引腳都平貼在板子上,盡量減少因為焊接而引起的誤差。實驗數據如圖4-1所示。K軸:max38.1值:K軸:mas2047minO.2minl016角度:1詰由:max35.2渤:ID3K1966min?min846圖4-1實驗數據1從實驗數據中能夠看出,X軸所測出的傾角數據要比Y軸測出的精確許多,因此,在以后的實驗中,都以X軸的數據為準。并且,傳感器在0-38。范圍內放置時具有較好分辨率,超出此范圍外,傳感器變得不靈敏,因為此時arcsin函數逐漸接近水平。在完成整個樣機后,為了測量出該傾角傳感器的精度,我進行了兩部分的實驗,一是傾角測量部分,二是溫度測量部分。4.1傾角測量實驗因為智能車輪胎的傾角都是10°以下的小角度,因此我先用量角器在白紙上分別畫出3°、5°以及10°的角度,然后將傳感器所在的板子分別根據白紙上的痕跡,傾斜三個角度,讀出顯示屏上的數據并記錄。本試驗數據中單點重復測量3次,取平均。以減小實驗誤差。實驗數據如圖4-2所示。第一次第二次第三次平均值10°時魂10.2°10.3°10.2°10.2°Y軸13.2°13.5°12.9°13.3°5°時魂5.T5.2°4.9°5.T丫軸8.5°8.7°8.7°8.6°3^■時魂3.3°3.2°3.0°3.2°Y軸5.4°5.5°5.2°5.3°圖4-2實驗數據2從這些數據中可以看出,通過X軸測量的數據能夠達到0.2°的精度,完全能夠滿足小角度高精度測量的要求。
4.2溫度測量實驗該傾角傳感器有一個溫度傳感器,用來進行內部溫度自補償。因為該傳感器對外界溫度十分敏感,為了保證周圍溫度變化不影響傳感器傾角測量,我做了如下實驗。分別將傳感器放在陽光下,室內常溫,空調前三個不同溫度的位置,先讀取溫度,再讀取同一智能車輪胎的傾角。根據前面的經驗,這次實驗我只讀取X軸的數據進行對比。實驗數據如圖4-3所示。度rrr
溫302620第一次第二次度rrr
溫302620第一次第二次第三次平均值6.2°6.3°6.3°6.3°6.0°6.2°6.T6.1°6.0°6.0°6.T6.0°從這些數據可以看出,因為傳感器內部可以進行溫度自補償,所以在外界溫度變化不大的情況下,由傳感器采集的傾角數據是基本相同的。因此,采集的數據時可靠的。結論實驗樣機基本達到了最初的設計目的:能夠用傾角傳感器檢測到傾角信號以及溫度信號,經過公式換算,通過按鍵控制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園白露教案反思學習小故事
- 建筑施工特種作業-建筑焊工真題庫-3
- 2025屆湖北省八市高三下學期3月聯考語文試題(解析版)
- 2024-2025學年浙江省嘉興市高一上學期期末考試語文試題(解析版)
- 新疆日新恒力橡塑有限公司年處理6萬噸廢舊輪胎熱解項目報告書報告書簡寫本
- 江蘇勃晟包裝有限公司年產2300噸日用塑料制品(焊絲盤、包裝盒、灑水壺、花盆)及300噸流延膜項目環評資料環境影響
- 話劇熱泉心得體會
- 環境工程實驗課件下載
- 環境工程專題課件
- 腦出血患者營養治療講課件
- 2025年中考物理復習難題速遞之壓強與浮力綜合
- 鼓脹中醫護理
- 高中家長會 高三上學期迎戰首考家長會課件
- 四川省第二地質大隊招聘考試真題2024
- 學習解讀公平競爭審查條例實施辦法課件
- 基于物聯網的智能家居安全監控系統建設方案
- 2024年中國農業銀行深圳市分行招聘筆試真題
- 技能培訓學校的部門設置與職責劃分
- 大數據分析在運維中的應用-第1篇-深度研究
- 七年級道法下冊 第二學期 期末綜合測試卷(人教河北版 2025年春)
- 2025年中國鱈魚行業市場全景評估及發展戰略規劃報告
評論
0/150
提交評論