無線手柄報告_第1頁
無線手柄報告_第2頁
無線手柄報告_第3頁
無線手柄報告_第4頁
無線手柄報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

測控綜合實習(xí)成都理工大學(xué)2013-2014測控綜合實習(xí)論文無線手柄年級:2010級學(xué)號:201006010206姓名:曾紅林專業(yè):測控技術(shù)與儀器指導(dǎo)老師:成毅二零一四年一月無線手柄設(shè)計摘要:本次課程設(shè)計的主要任務(wù)是完成無線手柄的設(shè)計,將手柄變化的電壓量通過AD采集,通過MSP430F149進行數(shù)據(jù)處理,然后通過無線模塊CC2500發(fā)送給接受模塊,接受模塊將數(shù)據(jù)接收后,打包將數(shù)據(jù)通過串口傳給上位機,上位機完成相應(yīng)的顯示動畫效果。通過本次課程設(shè)計,完成了硬件原理圖,PCB的繪制,硬件電路的調(diào)試和程序的編寫,基本實現(xiàn)了題目要求。關(guān)鍵詞:無線手柄CC2500AbstrateThedesignofthemaintaskistocompletethedesignofthewirelesshandle,tocollectthevoltagechangeofthehandlethroughtheADsampling.TheMSP430F149processedata,andthenthroughthewirelessmoduleCC2500senttoreceivingmodule,receivingmodulepackagethedataviaaserialporttransportingtothePC,PCcompletethecorrespondingdisplayanimationeffects.Throughthedesign,wecompletethehardwareschematicdiagramandPCBdrawing,hardwarecircuitdebuggingandprogramwriting,basicallyachievetheprojectrequirments.keywords:wirelesshandleCC2500目錄無線手柄設(shè)計 2摘要: 2Abstrate 2一.系統(tǒng)方案設(shè)計 41.1基本設(shè)計思路 41.2設(shè)計框圖 4二.硬件電路設(shè)計 42.1供電系統(tǒng)設(shè)計: 42.2電源原理圖: 52.3手柄輸入信號采集與調(diào)理電路: 52.4手柄輸入信號采集與調(diào)理電路原理圖: 62.5單片機系統(tǒng)設(shè)計: 72.6單片機最小系統(tǒng)原理圖: 82.7無線模塊設(shè)計: 82.8無線模塊接口原理圖: 92.9SPI總線: 102.10串口通信: 11三.硬件調(diào)試與測試: 123.1電路的焊接: 123.2上電調(diào)試: 123.3測試手柄輸出電壓是否正常 12四.底層驅(qū)動程序設(shè)計 134.1程序設(shè)計框圖: 134.2單片機詳細功能: 13五.上位機程序設(shè)計 145.1程序總體框架: 145.2上位機軟件程序詳細功能 155.3軟件調(diào)試 175.4數(shù)據(jù)分析 18參考文獻: 22一.系統(tǒng)方案設(shè)計1.1基本設(shè)計思路手柄的功能有三組模擬量和一個開關(guān)量:左右移動,上下移動,和手柄自身的旋轉(zhuǎn)產(chǎn)生連續(xù)的電壓變化,以及一個按鈕產(chǎn)生一個開關(guān)量。設(shè)計采用最少的器件,和最低的功耗的思想出發(fā)。選用TI的MSP430F149作為主控芯片,內(nèi)部自帶12位AD,方便電壓的采集。無線收發(fā)模塊選擇TI的CC2500,它的發(fā)射功率編程,給設(shè)計的功耗更多的空間。整個系統(tǒng)采用兩個模塊,分別是發(fā)送和接收模塊,發(fā)送模塊完成手柄數(shù)據(jù)的采集,然后通過CC2500將數(shù)據(jù)傳給接收模塊。接收模塊將數(shù)據(jù)接收到后,以一定的數(shù)據(jù)格式將數(shù)據(jù)通過串口發(fā)送給上位機。1.2設(shè)計框圖無線發(fā)送無線發(fā)送發(fā)送模塊手柄模塊MSP430F149CC2500接收模塊CC2500MSP430F149PLL2302上位機圖1.1二.硬件電路設(shè)計2.1供電系統(tǒng)設(shè)計:在電路中,如果把模擬地和數(shù)字地大面積直接相連,會導(dǎo)致互相干擾。因此,正確處理好數(shù)字地和模擬地,使之相互不受干擾是PCB設(shè)計中的關(guān)鍵步驟。隔離數(shù)字地和模擬地的方法有多種。包括1、用磁珠連接;2、用電容連接;3、用電感連接;4、用0歐姆電阻連接。 磁珠的等效電路相當于帶阻限波器,只對某個頻點的噪聲有顯著抑制作用,使用時需要預(yù)先估計噪點頻率,以便選用適當型號。對于頻率不確定或無法預(yù)知的情況,磁珠不合。電容隔直通交,造成浮地。電感體積大,雜散參數(shù)多,不穩(wěn)定。0歐電阻相當于很窄的電流通路,能夠有效地限制環(huán)路電流,使噪聲得到抑制。電阻在所有頻帶上都有衰減作用(0歐電阻也有阻抗),這點比磁珠強。跨接時用于電流回路當分割電地平面后,造成信號最短回流路徑斷裂,此時,信號回路不得不繞道,形成很大的環(huán)路面積,電場和磁場的影響就變強了,容易干擾/被干擾。在分割區(qū)上跨接0歐電阻,可以提供較短的回流路徑,減小干擾。因此,在本設(shè)計中采用0歐電阻對地進行隔離。在PCB鋪地過程中也分別進行鋪地,這樣可以有效地避免相互之間的干擾。2.2電源原理圖:圖2.1電源設(shè)計圖2.3手柄輸入信號采集與調(diào)理電路: 無線手柄端設(shè)有3個電位器,當用戶移動無線手柄時,從電位器輸出的電壓隨之變化。豎立搖桿手柄,按鈕開關(guān)在上,紅、白、黑、兩藍共五根線在前方,其后方電位器標識為1個電位器,控制左右方向;左側(cè)面電位器標識為另一個電位器,控制前后方向;紅、白、黑三根線對應(yīng)搖桿上方的旋轉(zhuǎn)電位器;兩根藍色的線標識頂端的開關(guān)狀態(tài),開關(guān)按下時兩藍色的線導(dǎo)通。 電位器引腳說明:1、電位器正對看,左右兩引腳為兩端點,中間為抽頭,相對左端引腳而言,搖桿右轉(zhuǎn)時,電阻值由5K向10K變化,搖桿左轉(zhuǎn)時,電阻值由5k向0K變化;2、電位器正對看,相對左端引腳,搖桿前進時,電阻值由5k向0K變化,搖桿后退時,電阻值由5K向10K變化;3、電位器,紅黑為兩端點,白色為中間抽頭,相對黑色引腳而言,右轉(zhuǎn)時,電阻值由5k向10K變化,左轉(zhuǎn)時,電阻值由5k向0K變化。 電位器的供電電壓為2.5V模擬電壓,選擇芯片MC1403。輸出電壓為2.5V+/-25mV。輸入電壓范圍為4.5Vto40V。芯片引腳分配如圖3.1所示。 電壓跟隨器的輸入電壓與輸出電壓大小和相位一樣。跟隨器具有輸入電阻大,輸出電阻小的特點,電壓跟隨器一般做緩沖級及隔離級。因為,電壓放大器的輸出阻抗一般比較高,通常在幾千歐到幾十千歐,如果后級的輸入阻抗比較小,那么信號就會有相當?shù)牟糠謸p耗在前級的輸出電阻中。在這個時候,就需要電壓跟隨器來從中進行緩沖。起到承上啟下的作用,使前后級之間實現(xiàn)阻抗匹配,從手柄輸出的信號更加穩(wěn)定。 本次課程設(shè)計選用算放大器選擇OP07,其引腳分配如圖2.2所示。OP07芯片是一種低噪聲,非斬波穩(wěn)零的雙極性(雙電源供電)運算放大器集成電路。由于OP07具有非常低的輸入失調(diào)電壓(對于OP07A最大為25μV),所以O(shè)P07在很多應(yīng)用場合不需要額外的調(diào)零措施。OP07同時具有輸入偏置電流低(OP07A為±2nA)和開環(huán)增益高(對于OP07A為300V/mV)的特點,這種低失調(diào)、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放大傳感器的微弱信號等方面。圖2.22.4手柄輸入信號采集與調(diào)理電路原理圖:圖2.32.5單片機系統(tǒng)設(shè)計:單片機選型: 本次設(shè)計中選用MSP430F149,芯片引腳分配如圖3.3所示。MSP430F149是德州公司新開發(fā)的一類具有16位總線的帶FLASH的單片機,其性價比和集成度都很高,它最顯著的特點是低電壓、低功耗。它采用16位的總線,外設(shè)和內(nèi)存統(tǒng)一編址,尋址范圍可達64K,還可以外擴展存儲器.具有統(tǒng)一的中斷管理,具有豐富的片上外圍模塊,片內(nèi)有精密硬件乘法器、兩個16位定時器、一個14路的12位的模數(shù)轉(zhuǎn)換器、一個看門狗、6路P口、兩路USART通信端口、一個比較器、一個DCO內(nèi)部振蕩器和兩個外部時鐘,支持8M的時鐘.由于為FLASH型,則可以在線對單片機進行調(diào)試和下載,且JTAG口直接和FET(FLASHEMULATIONTOOL)的相連,不須另外的仿真工具,方便實用。圖2.42.6單片機最小系統(tǒng)原理圖:圖2.52.7無線模塊設(shè)計:CC2500: CC2500是一款2.4GHz高性能射頻收發(fā)器,設(shè)計旨在用于極低功耗RF應(yīng)用。其主要針對工業(yè)、科研和醫(yī)療(ISM)以及短距離無線通信設(shè)備(SRD)。CC2500體積小,幾乎集成了所有的無線射頻功能,靈敏度高,可編程設(shè)定主要工作參數(shù),高效的SPI接口,工作在1.8V~3.6V電壓范圍,功耗低,具有多種調(diào)制方式,能滿足不同應(yīng)用要求,糾錯能力強、誤碼率低。所需外圍器件很少,降低了設(shè)計難度;數(shù)字特征明顯,軟件設(shè)計難度降低,用戶操作也更加簡單;收發(fā)一體,可實現(xiàn)雙向通信。CC2500可提供對數(shù)據(jù)包處理、數(shù)據(jù)緩沖、突發(fā)傳輸、接收信號強度指示(RSSI)、空閑信道評估(CCA)、鏈路質(zhì)量指示以及無線喚醒(WOR)的廣泛硬件支持。主要特性如下所示:●2400.0MHz~2483.5MHz工作頻段?!窀哽`敏度(2.4kbps,2-FSK,1%誤碼率時為-104dBm)。●低電流消耗(接收模式,2.4kbps時僅17.0mA)?!褡罡呖稍O(shè)置為+1dBm的發(fā)射功率。●支持1.2kbps~500kbps的數(shù)據(jù)傳輸速率?!裰С侄喾N調(diào)制模式(OOK、GFSK、2-FSK和MSK)?!裉峁ν阶謾z測、地址校驗、靈活的數(shù)據(jù)包長度以及自動CRC處理的支持?!裰С諶SSI(接收信號強度指示)和LQI(鏈路質(zhì)量指示)。●通過4線SPI接口與MCU連接,同時提供2個可設(shè)定功能的通用數(shù)字輸出引腳?!癃毩⒌?4字節(jié)RXFIFO和TXFIFO?!窆ぷ麟妷悍秶?.8V~3.6V,待機模式下電流僅為400nA?!窆ぷ鳒囟确秶?40℃~+85℃。引腳功能介紹:表2.1引腳圖:圖2.62.8無線模塊接口原理圖:圖2.72.9SPI總線: SPI總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進行通信以交換信息。SPI有三個寄存器分別為:控制寄存器SPCR,狀態(tài)寄存器SPSR,數(shù)據(jù)寄存器SPDR。外圍設(shè)備包括FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU等。SPI以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時鐘),CS(片選)。其中,SDO--主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;SDO--主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;SCLK--時鐘信號,由主設(shè)備產(chǎn)生;CS--從設(shè)備使能信號,由主設(shè)備控制。CC2500通過4線SPI兼容接口對寄存器進行配置。這個接口同時用作寫和讀緩存數(shù)據(jù)。SPI接口上所有的地址和數(shù)據(jù)轉(zhuǎn)換被最先在重要的位上進行處理。SPI接口上所有的處理都同一個包含一個讀/寫位,一個突發(fā)訪問位和一個6位地址的頭字節(jié)一起作用。在地址和數(shù)據(jù)轉(zhuǎn)換期間,CSn腳(芯片選擇,低電平有效)必須保持為低電平,如果在過程中CSn變?yōu)楦唠娖?,則轉(zhuǎn)換取消。當CSn變低,在開始轉(zhuǎn)換頭字節(jié)之前,MCU必須等待,直到SO腳變低。這表明電壓調(diào)制器已經(jīng)穩(wěn)定,晶體正在運作中。除非芯片處在SLEEP或XOFF狀態(tài),SO腳在CSn變低之后總會立即變低。表2.2SPI的時序要求2.10串口通信:MAX3232:MAX3232收發(fā)器采用專有的低壓差發(fā)送器輸出級,利用雙電荷泵在3.0V至5.5V電源供電時能夠?qū)崿F(xiàn)真正的RS-232性能。器件僅需四個0.1μF的外部小尺寸電荷泵電容。MAX3222、MAX3232和MAX3241確保在120kbps數(shù)據(jù)速率下維持RS-232輸出電平。MAX3237在正常工作模式下可確保250kbps的數(shù)據(jù)速率,MegaBaudTM工作模式下保證1Mbps的速率,同時保持RS-232輸出電平。MAX3232具有2路接收器和2路驅(qū)動器。MAX3222提供1μA關(guān)斷模式,有效降低功耗并延長便攜式產(chǎn)品的電池使用壽命。關(guān)斷模式下,接收器保持有效狀態(tài),對外部設(shè)備(例如調(diào)制解調(diào)器)進行監(jiān)測,僅消耗1μA電源電流。MAX3222和MAX3232的引腳、封裝和功能分別與工業(yè)標準的MAX242和MAX232兼容。引腳圖:圖2.8原理圖:圖2.9三.硬件調(diào)試與測試:3.1電路的焊接:拿到PCB板后,按照先貼片后插件的順序?qū)⒃骷酪篮负?。焊接一點要仔細,盡量避免虛焊,錯焊等細節(jié)問題。焊接中有個小小的挑戰(zhàn)就是:MSP430149的焊接,它的管腳較多,焊接時一定要把管腳對齊,然后用助焊劑將管腳涂抹一遍,然后每個用焊錫將放好位置的管腳涂上焊錫,然后用平口電烙鐵沿著管腳的方向,將黏在一起的焊錫分開。3.2上電調(diào)試:元器件焊好后就需要上電調(diào)試,上電后檢查給個電源芯片輸出的電壓是否正常,檢查芯片的供電供電是否正常。供電沒問題后,可以先調(diào)試單片機,可以下載測試程序,看單片機能否工作。單片機檢查完后,檢查手柄采集電路是否正常。主要是電壓跟隨器能否正常工作。3.3測試手柄輸出電壓是否正??词直軌蜉敵霰容^正常的電壓范圍。手柄的滑動變阻器的阻值是10K,方案采用MC1403供電,輸出2.5V的精確電壓.所以手柄不滑動時,手柄滑動變阻器抽頭引線教輸出電壓在1.25左右。四.底層驅(qū)動程序設(shè)計4.1程序設(shè)計框圖:發(fā)送發(fā)送模塊接收模塊開始開始開始開始時鐘,AD時鐘,AD,CC2500初始化時鐘,AD,CC2500初始化接收AD接收AD轉(zhuǎn)換串口發(fā)送圖3.14.2單片機詳細功能:單片機程序設(shè)置了三個AD轉(zhuǎn)換通道A3,A4和A5,采集信號采用時序電路多通道多次轉(zhuǎn)換。分別采集手柄三個方向的電阻值,并依次進行AD轉(zhuǎn)換,轉(zhuǎn)換完畢之后同樣依次將數(shù)據(jù)存放在數(shù)組results中。#pragmavector=ADC_VECTOR__interruptvoidADC12ISR(void){results[0]=ADC12MEM3;results[1]=ADC12MEM4;results[2]=ADC12MEM5;}程序中設(shè)置的數(shù)據(jù)包為一個11字節(jié)的數(shù)據(jù)包,格式為|地址|有效數(shù)據(jù)長度|和校驗|有效數(shù)據(jù)|結(jié)束符|地址:接收端的地址,讓數(shù)據(jù)包能夠找到接收方在何處,長度為一個字節(jié),這里的地址為0x0A。有效數(shù)據(jù)長度:指有效數(shù)據(jù)部分的長度,以字節(jié)為單位。長度為一個字節(jié),此處設(shè)定有效數(shù)據(jù)為7個字節(jié),所以此字節(jié)為0x07。和校驗:此數(shù)據(jù)為把數(shù)據(jù)包11個字節(jié)全部加起來,長度為一個字節(jié)。有效數(shù)據(jù):此節(jié)長度為7個字節(jié)。頭6個字節(jié)為三個電阻值數(shù)據(jù),其中每個電阻值占兩個字節(jié)。最后一個字節(jié)是開關(guān)量的數(shù)據(jù)。結(jié)束符:結(jié)束符為0x0D,標志一個數(shù)據(jù)包的結(jié)束,長度為一個字節(jié)。while(1){INT8Usum=0x1E;uintk=3;for(uinti=0;i<3;i++){a=results[i]/256;b=results[i]%256;sum+=a+b;TxBuf[k++]=a;TxBuf[k++]=b;delay(600);}TxBuf[9]=P3IN&BIT1;sum=TxBuf[9]+sum;TxBuf[2]=sum;halRfSendPacket(TxBuf,leng); }以上代碼段的功能是將放在results數(shù)組中的三組數(shù)據(jù)依次先除以256得到高八位數(shù)據(jù),并賦值給變量a。接著將余數(shù),也就是低八位,賦值給變量b。接著把a和b的值賦給數(shù)據(jù)包的有效數(shù)據(jù)里,第一個XX存放高八位,第二個XX存放低八位。把11個字節(jié)的和放在數(shù)據(jù)包的第三個字節(jié)。開關(guān)量輸入給單片機的P3.1引腳。讀取此引腳數(shù)據(jù)并賦值給數(shù)據(jù)包的第十個字節(jié),最后加上結(jié)束符后并發(fā)送出去。五.上位機程序設(shè)計5.1程序總體框架:開始開始對話框控件擺放對話框控件擺放查詢注冊表的串口信息查詢注冊表的串口信息選擇串口,并配置串口信息并打開串口選擇串口,并配置串口信息并打開串口接收下位機傳送的數(shù)據(jù)接收下位機傳送的數(shù)據(jù)分析數(shù)據(jù)包信息分析數(shù)據(jù)包信息接收的數(shù)據(jù)是否為想要接收的數(shù)據(jù)包接收的數(shù)據(jù)是否為想要接收的數(shù)據(jù)包分析數(shù)據(jù)包數(shù)據(jù),并根據(jù)數(shù)據(jù)使圖形移動分析數(shù)據(jù)包數(shù)據(jù),并根據(jù)數(shù)據(jù)使圖形移動結(jié)束結(jié)束圖2.1.1上位機程序流程圖5.2上位機軟件程序詳細功能首先擺放對話框控件,同樣也是手柄測試軟件的主界面,如下圖所示:圖2.2.1上位機界面圖基本功能是能夠進行串口通信,并在此基礎(chǔ)上增加手柄演示功能。手柄以數(shù)據(jù)包為單位發(fā)送數(shù)據(jù),當手柄發(fā)送數(shù)據(jù)到上位機時,上位機提取一個數(shù)據(jù)包的大小的數(shù)據(jù)并進行分析,確定是數(shù)據(jù)包之后,便進行解析數(shù)據(jù)包中的數(shù)據(jù),將其反應(yīng)在演示區(qū)的小方塊的運動上。手柄數(shù)據(jù)包格式為11個字節(jié),為:|地址|有效數(shù)據(jù)長度|和校驗|有效數(shù)據(jù)|結(jié)束符|。確定為數(shù)據(jù)包之后,就分析有效數(shù)據(jù)的值,數(shù)值在某個特定的圍中就使小方塊往特定的方向運動。接收數(shù)據(jù)區(qū)域:接收串口數(shù)據(jù),并顯示在編輯欄中。自動檢測串口,并靈活選擇各種串口配置選項。具有十六進制顯示功能。串口:自動檢測并顯示在列表中。波特率:有110、300、600、1200、2400、4800、9600、14400、19200、38400、56000這11個選項。校驗位:有無校驗、奇校驗、偶校驗、標記校驗這4種選項。數(shù)據(jù)位:有5、6、7、8四種選項。停止位:有0、1.5、2這3種選項。發(fā)送數(shù)據(jù)區(qū)域:將編輯框中的數(shù)據(jù)發(fā)送出去,可手動發(fā)送也可設(shè)置自動發(fā)送,時間間隔也可根據(jù)用戶的需求設(shè)置。同時也可以將某個文件中的數(shù)據(jù)發(fā)送出去??梢允M制發(fā)送數(shù)據(jù)。狀態(tài)顯示區(qū)域:顯示當前串口開關(guān)狀態(tài),發(fā)送和接受了多少數(shù)據(jù),當前選擇的波特率、數(shù)據(jù)位、停止位、校驗位的狀態(tài)。演示區(qū):根據(jù)接收到的數(shù)據(jù)使小方塊上下、左右、旋轉(zhuǎn)起來,以測試手柄的性能。此程序最關(guān)鍵的部分就是串口通信部分。要進行串口通信首先要做的就是獲取串口號。這里我使用的方法是通過查詢注冊表來獲取串口號。獲取到串口號之后,就打開串口并獲取用戶配置的串口信息。一切準備工作做好之后,就開始接收數(shù)據(jù)。接收完數(shù)據(jù)之后,就分析數(shù)據(jù)包是否為想要的數(shù)據(jù)包。程序設(shè)計為一次提取一個數(shù)據(jù)包大小的數(shù)據(jù),即11個字節(jié)大小的數(shù)據(jù)。但是,需要注意的是,才開始接受數(shù)據(jù)時,數(shù)據(jù)是不穩(wěn)定的。也就是說,最開始接收的數(shù)據(jù)是不正確的。于是代碼中設(shè)定為先接收2組數(shù)據(jù),但是只接收不處理。等到從第三次數(shù)據(jù)開始才處理,這是數(shù)據(jù)基本穩(wěn)定了。還有一個最關(guān)鍵的問題是:從緩存區(qū)提取的數(shù)據(jù)可能是一半一半的。換句話說就是有可能一個數(shù)據(jù)包被分成兩半,數(shù)據(jù)包的前半部分提取在了數(shù)組的后半部分,而數(shù)據(jù)包的后半部分要等到下次提取才能提取出來并且放在數(shù)組的前半部分。為了解決這個問題,于是新建了個數(shù)組,目的是把分成兩半的數(shù)據(jù)包拼湊在新的數(shù)組中形成一個完整的數(shù)據(jù)包。之后,便可以開始處理數(shù)據(jù)了。首先看接收到的數(shù)據(jù)包的第一個字節(jié),即地址是否為0x0A,如果不是,則認定此數(shù)據(jù)包不是上位機等待接收的數(shù)據(jù),于是丟棄數(shù)據(jù)包。如果判定是,則開始分析數(shù)據(jù)(也就是第四到第九個字節(jié))。要進行分析,首先要提取他們。提取之后判斷數(shù)據(jù)的大小,每一組數(shù)據(jù)的大小范圍在0~4095之間。判斷出范圍之后就將之響應(yīng)在圖形的運動變化上,然后就這樣不斷循環(huán)。5.3軟件調(diào)試首先要保證下位機和上位機能夠正常的單獨運行。對于下位機,要準確的進行AD轉(zhuǎn)換,放在正確的緩存區(qū)中,并及時有序的不間斷的發(fā)送數(shù)據(jù)出去,接收部分也要正確及時的接收到數(shù)據(jù)。對于上位機來說,要及時接收到下位機發(fā)送的數(shù)據(jù),并分析和解析數(shù)據(jù),準確的反應(yīng)在圖形的運動上,讓用戶直觀的測試手柄的方向是否正確。最開始以為從緩存區(qū)提取的數(shù)據(jù)從一開始就是穩(wěn)定的。結(jié)果調(diào)試的時候發(fā)現(xiàn)最開始的兩組數(shù)據(jù)都是混亂的,要等第三組才開始穩(wěn)定。解決方法:等到第三組數(shù)據(jù)再處理。理論上來講,如果手柄不動,上位機上的圖形應(yīng)該不會動,但是實際上即使手柄不動,圖形也在動。這就說明接受的數(shù)據(jù)包有問題。經(jīng)過調(diào)試之后發(fā)現(xiàn),從緩存區(qū)提取的11個字節(jié)不一定是同一個數(shù)據(jù)包的,有可能是兩個數(shù)據(jù)包拼湊而成的。解決辦法:新建一個數(shù)據(jù),把數(shù)據(jù)拼接成一個完整的正確的數(shù)據(jù)包。在處理數(shù)據(jù)時,發(fā)現(xiàn)如果一個字節(jié)最高位為1,那它會被當成補碼,轉(zhuǎn)成十進制時,就會被當成是負數(shù)。當遇到這種情況時就需要轉(zhuǎn)換。5.4數(shù)據(jù)分析手柄不移動上位機接收數(shù)據(jù)如下:以其中一組數(shù)據(jù)為例,0A07B5062D062B062B020D。三組數(shù)據(jù)分別為062D,062B,062B。對于橫軸:062D,轉(zhuǎn)成十進制為:1581對于縱軸:062B,轉(zhuǎn)成十進制為:1579對于垂直軸:062B,轉(zhuǎn)成十進制為:1579手柄左移上位機接收數(shù)據(jù)如下:以其中一組數(shù)據(jù)為例,0A077005EB062A062A020D。三組數(shù)據(jù)分別為05EB,062A,062A。對于橫軸:05EB,轉(zhuǎn)成十進制為:1515對于縱軸:062A,轉(zhuǎn)成十進制

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論