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

正文內(nèi)容

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

2025-07-19 01:18 本頁(yè)面
 

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