freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于msp430的無線通信系統(tǒng)設(shè)計(編輯修改稿)

2025-07-19 01:18 本頁面
 

【文章內(nèi)容簡介】 尋址模式如下圖所示: DMA四種尋址模式DMA控制器模塊:3個獨立的傳輸通道:通道0、通道1和通道2。每個通道都有源地址寄存器、目的地址寄存器、傳送數(shù)據(jù)長度寄存器和控制寄存器。每個通道的觸發(fā)請求可以分別允許和禁止;可配置的通道優(yōu)先權(quán):優(yōu)先權(quán)裁決模塊,傳輸通道的優(yōu)先級可以調(diào)整,對同時有觸發(fā)請求的通道進(jìn)行優(yōu)先級裁決,確定哪個通道的優(yōu)先級最高。MSP430的DMA控制器可以采用固定優(yōu)先級,還可以采用循環(huán)優(yōu)先級。程序命令控制模塊,每個DMA通道開始傳輸之前,CPU要編程給定相關(guān)的命令和模式控制,以決定DMA通道傳輸?shù)念愋停豢膳渲玫膫魉陀|發(fā)器:觸發(fā)源選擇模塊,DMAREQ(軟件觸發(fā))、Timer_ACCR2輸出、Timer_BCCR2輸出、I2C 數(shù)據(jù)接收準(zhǔn)備好、I2C 數(shù)據(jù)發(fā)送準(zhǔn)備好、USART接收發(fā)送數(shù)據(jù)、DAC12模塊DAC12IFG、ADC12模塊的ADC12IFGx、DMAxIFG、DMAE0 外部觸發(fā)源。并且還具有觸發(fā)源擴充能力。DMA有六種傳輸模式:單字或者單字節(jié)傳輸;塊傳輸;突發(fā)塊傳輸;重復(fù)單字或者單字節(jié)傳輸;重復(fù)塊傳輸;重復(fù)突發(fā)塊傳輸。前三個,傳輸完成后DMAEN自動復(fù)位;再次傳輸時需要重新置位DMAEN位以使能DMA通道。后三個為重復(fù)模式,一次傳輸完成后,DMAEN不復(fù)位;再次出發(fā)時,可以再次啟動數(shù)據(jù)傳輸。六種傳輸模式通過DMADTx寄存器設(shè)置。1 單字或者單字節(jié)傳輸:DMA 通道被定義為單字或者單字節(jié)傳輸模式,每個字或者字節(jié)的傳輸都要觸發(fā)信號觸發(fā)。設(shè)置DMADTx=0 就定義了單字或者單字節(jié)傳輸模式,規(guī)定的傳輸完畢后DMAEN 位自動清除,如果需要再次傳輸,必須重新置位DMAEN。如果設(shè)置DMADTx=4 為重復(fù)單字或者單字節(jié)傳輸模式,DMAEN 位一直保持置位,每次觸發(fā)伴隨一次傳輸。DMAxSZ 寄存器保存?zhèn)鬏數(shù)膯卧獋€數(shù),如果該寄存器為0,則沒有傳輸。傳輸之前DMAxSZ 寄存器的值寫入到一個臨時的寄存器中,每次操作之后DMAxSZ 做減操作。當(dāng)DMAxSZ減為零的時候,它所對應(yīng)的臨時寄存器將原來的值重新置入DMAxSZ,同時相應(yīng)的DMAIFG標(biāo)志置位。2 塊傳輸模式:在塊傳輸模式,每次觸發(fā)可以傳輸一個數(shù)據(jù)塊。設(shè)置DMADTx=1 為塊傳輸模式,每個數(shù)據(jù)塊傳輸完畢,DMAEN 位自動清除,在觸發(fā)傳輸下一個數(shù)據(jù)塊之前,該位要被重新置位。在傳輸某個數(shù)據(jù)塊期間,其他的傳輸請求將被忽略。設(shè)置DMADTx=5 為重復(fù)塊傳輸模式,某個數(shù)據(jù)塊傳輸完畢,DMAEN 位仍然保持置位,之后,新的觸發(fā)可以引起又一次數(shù)據(jù)塊傳送。DMAxSZ 寄存器保存數(shù)據(jù)塊所包含的單元個數(shù)。DMASRCINCR 和DMADSTINCR 反映在數(shù)據(jù)塊傳輸過程中的目的地址和源地址的變化情況。在塊傳輸或者重復(fù)塊傳輸過程中,DMAxSA,DMAxDA,DMAxSZ 寄存器的值寫入到對應(yīng)的臨時寄存器中,DMAxSA,DMAxDA寄存器所對應(yīng)的臨時值在塊傳輸過程中增加或者減少,而DMAxSZ 在塊傳輸過程中減計數(shù),始終反映當(dāng)前數(shù)據(jù)塊還有多少單元沒有傳輸完畢,當(dāng)DMAxSZ 減為0,它所對應(yīng)的臨時寄存器將原來的值重新置入DMAxSZ,同時相應(yīng)的DMAIFG被置位。在塊傳輸過程中,CPU 暫停工作,不參與數(shù)據(jù)的傳輸。數(shù)據(jù)塊需要2MCLKDMAxSZ 個時鐘周期。當(dāng)每個數(shù)據(jù)塊傳輸完畢,CPU 按照暫停前的狀態(tài)重新開始執(zhí)行。3 突發(fā)塊傳輸模式:這個和塊傳輸模式類似,只不過每傳輸4個字或字節(jié),DMA釋放內(nèi)部總線,CPU運行2個MCLK周期;在傳輸過程中CPU有20%的執(zhí)行時間,而塊傳輸需要等DMA完全傳送完之后,CPU方能運行。DMA觸發(fā)源:每個通道的觸發(fā)源有DMAxTSELx位進(jìn)行控制的,這些位必須在DMAEN位為0是進(jìn)行設(shè)置,否則可能出現(xiàn)不可預(yù)料的DMA觸發(fā)。 4 軟件設(shè)計系統(tǒng)功能的實現(xiàn)是依靠硬件和軟件的相互結(jié)合,硬件決定了系統(tǒng)基本結(jié)構(gòu)和特性,而軟件則是驅(qū)動系統(tǒng)的靈魂,對硬件進(jìn)行控制,兩者缺一不可,相輔相成。本系統(tǒng)的軟件分為主程序和子程序。主程序控制整個系統(tǒng),控制和協(xié)調(diào)各個執(zhí)行模塊。子程序?qū)崿F(xiàn)具體的相關(guān)共能。本設(shè)計的軟件程序包括主程序、中斷子程序、數(shù)據(jù)處理子程序等等[18~20]。程序的功能有:1) 對所需要的模塊進(jìn)行初始化(如DCO初始化、端口初始化、SPI初始化、nRF24L01初始化、定時器初始化等)2)數(shù)據(jù)采集、存儲3)用無線的方式發(fā)送數(shù)據(jù)主流程圖: 開始配置nRF24L01為接收狀態(tài)是否接收到55?配置各模塊ADC采集數(shù)據(jù)N Y存儲到FLASH無線發(fā)送數(shù)據(jù) 主流程圖部分程序://數(shù)據(jù)處理部分void Data_Pro(unsigned char *rx_buf){ if(nRF24L01_RxPacket(rx_buf)==1) //判斷是否接收到數(shù)據(jù) { unsigned char *FLASHADD。 // FLASH地址指針 while(amp。FLASHADD!=0) //發(fā)送數(shù)據(jù) { TxBuf[0]=0xEB。 //寫第一個字節(jié)內(nèi)容 TACCTL0 = CCIE。 //開啟AD轉(zhuǎn)換定時器 _EINT()。 //允許中斷 } Delay(8000)。 //延時,等待系統(tǒng)穩(wěn)定 nRF2401_SetRXinit()。 //配置為接收狀態(tài),等待接收新的命令 Delay(8000)。 //等待系統(tǒng)穩(wěn)定,也為了和上位機速度匹配 } else //沒有接收到數(shù)據(jù) { nRF2401_SetRXinit()。//配置為接收狀態(tài),繼續(xù)等待,直到檢測到接收數(shù)據(jù)為止 Delay(8000)。 } }初始化流程圖:DCO初始化端口初始化SPI初始化擦除AD初始化nRF24L01初始化定時器初始化DMA初始化 關(guān)閉看門狗配置為接收狀態(tài) 初始化流程圖判斷是否接收到數(shù)據(jù): 開始Y 配置24L01為接收態(tài)讀取24L01狀態(tài)寄存器的值接收為55?通信正常配置24L01為發(fā)送態(tài)N 通信測試模塊采集存儲模塊流程圖:N Y 啟動ADC模塊啟動DMA模塊FLASH擦除寫FLASH開始判斷是否寫滿83K退出 采集存儲模塊m代計數(shù)器值,取值范圍為031。無線發(fā)送模塊程序:讀FLASHm=0,讀一位,計數(shù)器m+1m=31?發(fā)送數(shù)據(jù)YN通信是否正常退出開始 無線發(fā)送模塊流程圖5 總結(jié)通過查閱相關(guān)資料,學(xué)習(xí)了MSP430FG4618單片機以及nRF24L01無線收發(fā)芯片,以及MAX70LP2809芯片,最終完成了基于無線通信系統(tǒng)的設(shè)計。該系統(tǒng)主要的功能是完成對于外部模擬信號通過單片機處理,并通過nRF24L01芯片發(fā)送出去,接收芯片接收到信號后,把數(shù)據(jù)傳遞給終端機。終端機通過相關(guān)軟件進(jìn)行數(shù)據(jù)分析,以了解所接收信號的性質(zhì)。在本次系統(tǒng)設(shè)計過程中的方案選擇體會:對于AD的選擇:可選方案有外部AD與內(nèi)部ADC12為了滿足通信速度的匹配AD轉(zhuǎn)換后的數(shù)據(jù)緩存方案:用外加的FIFO進(jìn)行緩存或用內(nèi)部的FLASH模塊。在此系統(tǒng)設(shè)計中,在AD的選擇上我采用內(nèi)部的ADC12經(jīng)行AD轉(zhuǎn)換,用內(nèi)部的FLASH模塊經(jīng)行數(shù)據(jù)緩存。在外加上適當(dāng)?shù)碾娙輰DC12經(jīng)行減弱干擾處理后,ADC12的轉(zhuǎn)換可靠性可以和一般的外部AD相媲美,并且MSP430的內(nèi)部ADC12資源豐富,使其配置更加靈活,也能降低設(shè)計成本,符合電子設(shè)計的經(jīng)濟性原則。在數(shù)據(jù)緩存方案的選擇上,我選用了用MAP430單片機內(nèi)部FLASH,由于MSP430單片機的內(nèi)部FLASH資源豐富,容量達(dá)116KB,可以存儲較多的采樣轉(zhuǎn)換數(shù)據(jù),又ADC12的轉(zhuǎn)換結(jié)果存儲寄存器可以直接通過MDA方式傳遞到FLASH經(jīng)行存儲。此方案的選擇可以滿足數(shù)據(jù)傳輸速度不匹配的問題,還能加深對于MSP430單片機模塊功能的了解與應(yīng)用。如果采用FIFO進(jìn)行數(shù)據(jù)緩存,會讓設(shè)計成本大大提高,也讓電路設(shè)計變得繁瑣,不便于調(diào)試,檢修。所以我覺得選擇的內(nèi)部FLASH緩存更合適。在程序設(shè)計方面,通過查閱了關(guān)于MSP430應(yīng)用資料,以及學(xué)習(xí)MSP430的使用的相關(guān)視頻,再加上指導(dǎo)老師的指導(dǎo)下,采用由模塊到系統(tǒng)的突破方法。首先是學(xué)習(xí)一些基本的編程流程,思想。在逐個的了解MSP430的各個功能,當(dāng)對功能模塊掌握清楚之后在把模塊功能結(jié)合起來,經(jīng)行調(diào)試就變得簡單了。比當(dāng)初一開始就系統(tǒng)的學(xué)更有效多了。在四個多月的畢業(yè)設(shè)計期間,在指導(dǎo)老師的耐心指導(dǎo)下。順利的完成了本次課程設(shè)計。在這個過程中通過對于方案的反復(fù)更正,對各個模塊的優(yōu)化,了解了系統(tǒng)設(shè)計的基本方法。也讓以前學(xué)習(xí)的知識得到了應(yīng)用,對于網(wǎng)絡(luò)的應(yīng)用以及所需資料的如何獲取有了更多的認(rèn)識。但是畢業(yè)設(shè)計也暴露出自己專業(yè)基礎(chǔ)的很多不足之處。比如缺乏綜合應(yīng)用專業(yè)知識的能力,對英文材料的閱讀的困難,導(dǎo)致設(shè)計過程顯得比較艱難,對于設(shè)計理解不是很透徹,從而犯過很多低級的錯誤。對與無線終端的接收處理部分,限于時間和能力有限,不能完成。這次課程設(shè)計是對自己大學(xué)四年所學(xué)的一次大檢閱,使我明白自己知識還很淺薄,雖然大學(xué)四年學(xué)習(xí)了不少專業(yè)知識,但是自己的求學(xué)之路還很長,能力依舊十分欠缺,以后更應(yīng)該在工作中學(xué)習(xí),努力使自己的能力得到不斷的提升,完成更多的挑戰(zhàn)。附錄 一:整體電路圖附錄 二:系統(tǒng)程序include define IDLE 0x00 // 閑置,沒有中斷請求define TX_DS 0x20 // TX 數(shù)據(jù)發(fā)送define RX_DR 0x40 // RX 數(shù)據(jù)接收 define TX_ADR_WIDTH 5 // 5 字節(jié)發(fā)送地址寬度define RX_ADR_WIDTH 5 // 5 字節(jié)接收地址寬度define TX_PLOAD_WIDTH 32 // 32 字節(jié)發(fā)送寬度define RX_PLOAD_WIDTH 32 // 32 字節(jié)接收寬度define RD_RX_PLOAD 0x61 // 接收寄存器地址define WR_TX_PLOAD 0xA0 // 發(fā)送寄存器地址unsigned char const TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}。// 定義靜態(tài)發(fā)送地址unsigned char const RX_ADDRESS[RX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}。// 定義靜態(tài)接收地址//SPI(NRF24L01)命令//define WRITE_REG 0x20 //定義寫寄存器命令define CONFIG 0x00 // 定義配置寄存器地址define SETUP_AW 0x03 // 定義39。設(shè)置地址寬度39。 寄存器地址define RX_ADDR_P0 0x0A // 定義39。接收地址通道039。 寄存器地址define TX_ADDR 0x10 // 定義39。發(fā)送地址39。 寄存器地址define EN_AA 0x01 // 定義’使能自動應(yīng)答‘寄存器地址define EN_RXADDR 0x02 // 定義39。使能發(fā)送地址39。 寄存器地址define SETUP_RETR 0x04 // 定義39。設(shè)置自動重新傳送39。 寄存器地址define RF_CH 0x05 // 定義39。射頻通道39。 寄存器地址define RF_SETUP 0x06 // 定義39。射頻設(shè)置39。 寄存器地址define RX_PW_P0 0x11 // 定義39。接收數(shù)據(jù), 通道039。 寄存器地址 define FLUSH_RX 0xE2 //清除RXFIFOdefine FLUSH_TX 0xE1 //清除RXFIFOdefine R_RX_PAYLOAD 0x61 //讀RX有效數(shù)據(jù)define STATUS 0x07 //狀態(tài)寄存器//對MSP430的管腳定義//define CE_H (P7OUT |= BIT5)define CE_L (P7OUT amp。= ~BIT5)define IRQ (P7OUT |= BIT4)define SCK_H (P7OUT |= BIT3)define SCK_L (P7OUT amp。= ~BIT3)define MI
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1