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

正文內(nèi)容

畢業(yè)論文-基于cc1101通信模塊的簡單無線電遙控開關(guān)系統(tǒng)設(shè)計-資料下載頁

2025-06-03 22:05本頁面
  

【正文】 當 CSn 變低,在開始轉(zhuǎn)換頭字節(jié) 之前, MCU 必須等待,直到 SO 腳變低。這表明電壓調(diào)制器已經(jīng)穩(wěn)定,晶體正在運作中。除非芯片處在 SLEEP 或 XOFF 狀態(tài), SO腳在 CSn變低之后總會立即變低。讀寫時序圖如圖 所示, SPI 接口定時要求如表 43所示。 表 43 SPI接口定時要求 參數(shù) 描述 最小值 最大值 FSCLK SCLK頻率 100納秒延遲之間插入地址字節(jié)和數(shù)據(jù)字節(jié)(單一存?。? 或地址和數(shù)據(jù)之間,數(shù)據(jù)字節(jié)之間(突發(fā)存?。?。 單一接入,地址和數(shù)據(jù)字節(jié)地之間不延遲 突發(fā)存取,地址和數(shù)據(jù)之間,數(shù)據(jù)字節(jié)之間不延遲 — — — 10MHz 9 MHz MHz tsp,pd CSn低到 SCLK的正邊緣,功率降低模式下 150us — tsp CSn低到 SCLK的正邊緣,活動模式下 20ns — tch 時鐘高 50ns — tcl 時鐘低 50ns — trise 時鐘上升時間 — 5ns tfall 時鐘上升時間 — 5ns tsd 向 SCLK的正邊緣建立數(shù)據(jù) 單一存取 突發(fā)存取 55ns 76 ns — — thd 在 SCLK的正邊緣之后保持數(shù)據(jù) 20ns — tns SCLK到 CSn高時的負邊緣 20ns — 圖 配置寄存器讀寫時序圖 SPI 接口上所有的處理都包含一個讀 /寫位,一個突發(fā)訪問位和一個 6位地址的頭字節(jié)一起作用。 ( 1) CC1101 配置寄存器位于 SPI地址從 0x00 到 0x2F 之間。讀 /寫位控制寄存器是 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 25 頁 共 41 頁 25 讀或者寫。當對寄存器寫時,每當一個待寫入的數(shù)據(jù)字節(jié)傳輸?shù)?SI 腳時,狀態(tài)字節(jié)將被送至 SO 腳。通過在地址頭設(shè)置突發(fā)位,連續(xù)地址的寄存器能高效地被訪問。這個地址在內(nèi)部計數(shù)器內(nèi)設(shè)置起始地址。每增加一個新的字節(jié)(每 8 個時鐘脈沖),計數(shù)器值增加 1。突發(fā)訪問,不管是讀訪問還是寫訪問,必須通過設(shè)置 CSn為高來終止。 ( 2)對 0x300x3D 間的地址來說,突發(fā)位用以在狀態(tài)寄存器和命令濾波之間選擇。狀態(tài)寄存器只讀。突發(fā)讀取對狀態(tài)寄存器是不可取的,故它們每次只能被讀一個。命令濾波可被視為 CC1101 的單字節(jié)指令。通過命令濾波寄存器的選址,內(nèi)部序列被啟動。這些命令用來關(guān)閉晶體振蕩器,開啟傳輸模式和電磁波激活等。共有 14 個命令濾波。命令濾波寄存器的訪問和一個寄存器的寫操作一樣,但沒有數(shù)據(jù)被傳輸。就是說,只有R/W 位(置為 0),突發(fā)訪問(置為 0)和六個地址位( 0x30 和 0x3D 之間)被寫。一個命令濾波可能在任 何其他 SPI 訪問之后,而不需要將 CSn 拉至高電平。命令濾波立即被執(zhí)行,當 CSn 高時 SPWD 和 SXOFF 濾波是例外。 ( 3) 64字節(jié) TX FIFO和 64字節(jié) RX FIFO通過 0x3F被訪問。當讀 /寫位為 0時, TXFIFO被訪問,當讀 /寫位為 1時, RX FIFO 被訪問。 TX FIFO 是只寫的,而 RX FIFO 是只讀的。突發(fā)位用來決定 FIFO 訪問是單字節(jié)還是突發(fā)訪問。單字節(jié)訪問方式期望地址的突發(fā)位為 0及 1數(shù)據(jù)字節(jié)。在數(shù)據(jù)字節(jié)之后等待一個新的地址,因此, CSn 繼續(xù)保持低。突發(fā)訪問方式允許一地址字節(jié),然后是連續(xù)的數(shù)據(jù) 字節(jié),直到通過設(shè)置 CSn 為高來關(guān)斷訪問。 5 軟件設(shè)計 軟件設(shè)計相關(guān)技術(shù) 在單片機應(yīng)用系統(tǒng)的開發(fā)中,軟件的設(shè)計是最復(fù)雜和困難的,大部分情況下工作量都較大,特別是對那些控制系統(tǒng)比較復(fù)雜的情況。 對于 機電一體化的設(shè)計人員,往往需要同時考慮單片機的軟硬件資源分配。在考慮一個應(yīng)用工程項目時就需先分析該系統(tǒng)完成的任務(wù),明確軟硬件個承擔哪些工作,有時,實際上這種情況很多,就是一些任務(wù)可用軟件完成,也可以用硬件構(gòu)成,還需考慮采用軟件或硬件它們優(yōu)勢,一般均以最優(yōu)的方案為首選。象虛定義各輸入 /輸出( I/O)的功能、 數(shù)據(jù)的傳輸交換形式、與外部設(shè)備接口及它們的地址分配、程序存儲器和數(shù)據(jù)存儲器的使用區(qū)域、主程序子程序使用的空間、顯示(如有的話)等數(shù)據(jù)暫存區(qū)的選擇、堆棧區(qū)的開辟等等因素。 對于復(fù)雜的多任務(wù)實時控制系統(tǒng),要處理的數(shù)據(jù)就非常龐大,同時又要求對多個控制對象進行實時控制,要求對各控制對象的實時數(shù)據(jù)進行快速的處理和響應(yīng),這對系統(tǒng)的實時性、 “ 并行性 ” 提出了更高的要求。這種情況下一般要求采用實在時地任務(wù)操作系統(tǒng),并要求這個系統(tǒng)具備優(yōu)良的實時控制能力。 在單片機的軟件設(shè)計中,任務(wù)很多,程序量很大,一般都需把程序分成若干個功能獨立的模塊,這也是軟件設(shè)計中常用的方法,這也即俗稱的 “ 化整為零 ” 的方法。理論和實踐都證明,這種方法是行之有效的。這樣可以分階段地對單個模塊進行設(shè)計和調(diào)試, 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 26 頁 共 41 頁 26 一般情況下單個模塊利用仿真工具即可將它們調(diào)試好,最后再將它們有機的聯(lián)系起來,構(gòu)成一個完整的控制程序,并對它們進行聯(lián)合調(diào)試即可。 程序編寫時,首先需對用到的參數(shù)進行定義,和標號的定義一樣,使用的字符必須易于理解,可以使用英文單詞和漢語拼音的縮寫形式,這對今后自己的辨讀和排錯都是有好處的。然后初始化各特殊功能寄存器的狀態(tài),中斷口的地址區(qū)定義,數(shù)據(jù)存儲區(qū)的安排,根 據(jù)系統(tǒng)的具體情況,估算中斷、子程序的使用情況,預(yù)留出堆棧區(qū),和需要的數(shù)據(jù)緩存區(qū),接下來就開始編寫程序了。 CC1101 無線收發(fā)程序設(shè)計 通過對 CC1101 進行正確的參數(shù)配置,就能夠?qū)崿F(xiàn)數(shù)據(jù)的無線傳輸。無線通信模塊接收到無線反饋控制器的命令,然后根據(jù)這些命令 無線遙控開關(guān) 進行復(fù)位、打包和數(shù)據(jù)包傳輸?shù)炔僮?,其無線收發(fā)程序流程如圖 所示。 當 CC1101 狀態(tài)不正常時可以通過程序控制來復(fù)位芯片,復(fù)位的時序如圖 所示。 程序復(fù)位的操作順序如下: ( 1)設(shè)置 SCLK=1 和 SI=0,以避免引腳 控制模式造成潛在的問題; ( 2)設(shè)置 CSn 為低,然后再拉高; ( 3)保持 CSn 為高至少 40μ s; ( 4)將 CSn 拉低,等待 SO 變低( CHIP_RDYn); ( 5)在 SI 上發(fā)送 SRES 命令; ( 6)當 SO 再次變低后,復(fù)位工作完成, CC1101 處于 IDLE 狀態(tài)。 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 27 頁 共 41 頁 27 開 始C C 1 1 0 1 初 始 化是 否 有 數(shù)據(jù) 接 收 ?C C 1 1 0 1 設(shè) 置為 接 收 模 式是 否 是 配對 地 址 ?是 否 是 本機 地 址 ?是 否 是 復(fù)位 命 令 ?將 數(shù) 據(jù) 打 包C C 1 1 0 1 設(shè) 置為 發(fā) 送 模 式發(fā) 送 數(shù) 據(jù) 包M C U 復(fù) 位Y NYYYNN N返 回 待 機 狀 態(tài) 圖 無線數(shù)據(jù)收發(fā)流程圖 無線通信模塊的發(fā)射 部分程序 如下 // CC1101發(fā)送一組數(shù)據(jù) //***************************************************************************** void halRfSendPacket(unsigned char *txBuffer,unsigned char size) { halSpiWriteReg(CCxxx0_TXFIFO, size)。 halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size)。 //寫入要發(fā)送的數(shù)據(jù) halSpiStrobe(CCxxx0_STX)。 //進入發(fā)送模式發(fā)送數(shù)據(jù) } //***************************************************************************** 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 28 頁 共 41 頁 28 圖 程序復(fù)位時序圖 SPI 程序編寫的 的注意事項 進行 SPI 寄存器初始 化, 按照你要進行的方式進行設(shè)置(DMA ,中斷 ,查詢 ), 然后就可以進行讀寫數(shù)據(jù)了 ,但是 要注意 ,讀數(shù)據(jù)的時候寄存器SPSTA1 最低位是 0的時候讀完 , SPI 是主機的時 候 ,狀態(tài)積存器是 1,SPI 是從機的時候 ,狀態(tài)寄存器是 0, 而且 SPI 寄存器一次只能傳送 8位數(shù)據(jù) 。 以下是通信模塊接收數(shù)據(jù)的一部分 程序及注解 // CC1101接收一組數(shù)據(jù) ,并放入緩沖區(qū) //***************************************************************************** if ((halSpiReadStatus(CCxxx0_RXBYTES) amp。 BYTES_IN_RXFIFO)) { packetLength = halSpiReadReg(CCxxx0_RXFIFO)。 //讀出第一個字節(jié)為該幀 數(shù)據(jù)長度 if (packetLength == length) //所要的有效數(shù)據(jù)長度小于等于接收到的數(shù)據(jù)包的長度 { halSpiReadBurstReg(CCxxx0_RXFIFO, rxBuffer, packetLength)。//讀出 接收 的數(shù) 據(jù) halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2)。//讀出 CRC校驗位 if (status[1] amp。 CRC_OK) //如果校驗成功返回接收成功 { halSpiStrobe(CCxxx0_SFRX)。 //接收之后刷新緩沖區(qū) return 1。 } } } //***************************************************************************** 6 系統(tǒng)驗證 發(fā)射和 接收 要發(fā)射接收數(shù)據(jù) ,首先要通過 SPIO 接口對 CC1101 進行初始化,包括一些最基本的收發(fā)確認設(shè)置 、 頻段設(shè)置 、 地址設(shè)置等。 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 29 頁 共 41 頁 29 開 始進 入 睡 眠 狀 態(tài)打 包 數(shù) 據(jù)延 時發(fā) 送 按 數(shù) 據(jù) 包賦 初 值再 判 斷 是 否 真有 按 鍵 按 下 ?判 斷 是 否 有按 鍵 按 下 ?掃 描 鍵 盤讀 取 按 鍵 值Y初 始 化Y結(jié) 束NN 開始等待接收狀態(tài)對應(yīng)的開關(guān)斷開或閉合是否接收到數(shù)據(jù)?是否按鍵信號?初始化對信號解碼結(jié)束Y相應(yīng)的LED燈亮/滅NN接收數(shù)據(jù)包Y 圖 發(fā)射模塊 流程圖 圖 接收 模塊流程圖 在發(fā)射時,將 CC1101 設(shè)置在待機和 SPIO 編程狀態(tài),然后 在 進行射頻寄存器的初始 桂林電子科技大學信息科技學院畢業(yè)設(shè)計(論文)說明書 第 30 頁 共 41 頁 30 化設(shè)置后, 給鍵盤賦初值,鍵盤有健按下時,單片機通過掃描鍵盤讀出按鍵值,然后把該按鍵值打包等待發(fā)送,單片機發(fā)送數(shù)據(jù) 時, 單片機按照 SPIO 接口時序把要發(fā)送的數(shù)據(jù)寫入 CC1101,再初始化發(fā)射端的地址,且應(yīng)當與接收端的地址相互匹配,發(fā)射端發(fā)射的數(shù)據(jù)有效寬度 必須 與接收端設(shè)置一致。 然 后 把 單片機設(shè)置 為 發(fā)送模式, 并且 完成數(shù)據(jù)打包, 給數(shù)據(jù) 進行編碼 、 調(diào)制 以及 發(fā)送。發(fā)送完成后,相應(yīng)的引腳被置低, CC1101 回到待機模式。 在接收時,初始化的設(shè)置同發(fā)射時基本一致,然后 CC1101 被設(shè)置為接收模式,不斷地檢測載波,等待接收數(shù)據(jù),當檢測到同頻段的載波并且地址也匹配時, CC1101 進行數(shù)據(jù)包的接收,并完成校驗等相關(guān)工作。接著,將數(shù)據(jù)通過 SPIO 接口傳輸?shù)絾纹瑱C中,接收完成后 CC1101 繼續(xù)進入待機狀態(tài)。 電路 調(diào)試 單片機的程序設(shè)計調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1