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

正文內(nèi)容

基于單片機的簡易數(shù)字存儲示波器-學士論文-資料下載頁

2025-11-08 21:29本頁面
  

【正文】 而 MCU 實現(xiàn)對 CPLD 及至整個 DSO 的管理,如從鍵盤輸入采樣速率、選擇信號調(diào)理電路的增益;將存儲的數(shù)字信號進行數(shù)據(jù)處理并恢復為模擬信號進行顯示等。本系統(tǒng) MCU 選擇 MEGA128, CPLD 選用ALTERA 公司的 EP1C6T144 器件,可在系統(tǒng)編程。 CPLD 電路 控制器的 CPLD 部分包括四部分:時鐘產(chǎn)生電路、 ADC 控制器、數(shù)據(jù)鎖存、數(shù)據(jù)存儲。這四部分共同完成高速控制功能。圖 是本系統(tǒng)的 CPLD 的總體控制部分電路圖。 圖 CPLD 控制部分 ( 1) 時鐘產(chǎn)生電路 時鐘產(chǎn)生電路為 AD 轉(zhuǎn)換器提供一系列的采樣時鐘信號,分別為 250Hz、 25kHz、 250kHz、 、 25MHz 和 50MHz,共 7 種頻率,分別對應著不同的水平水平掃速,由 MCU 控制 ,控制關(guān)系見表 所示。 25 時鐘產(chǎn)生電路見圖 ,基準時鐘信號由一塊 50MHz 的溫度補償型有源晶體模塊提供,輸出的 50MHz 信號一路直接作為 50MHz 采樣時鐘送入多路選擇器 74F151,另一路被送入由 74F74 觸發(fā)器組成的 2 分頻器分頻,得到 25MHz 的信號分為兩路,一路送入多路選擇器 74F151,另一路送入由 10 計數(shù)器 74LS390組成的 10 分頻器進行分頻,得到 信號,再分為兩路,一路繼續(xù)分頻,另一路送入多路選擇器 74F151,后面幾級分頻與以上相同。對 50MHz 信號進行第一次二分頻沒有用 74LS390 中的 2 分頻器,而單獨使用了一片 74F74,是因為74LS390 中的二分頻器的最高輸入頻率為 40MHz,所以在其前面用了一級獨立的二分頻器。 7 種時鐘信號都被送入多路選擇器, MUC 通過對 74F151 的 S0、S S2 三根選通信號線進行控制來選擇所需的采樣頻率 。 圖 時鐘分頻電路 圖 為 CPLD 內(nèi)部實現(xiàn)的時鐘產(chǎn)生電路,其輸出時鐘的頻率由選擇輸入端。 MCU電路 本系統(tǒng)采用了兩片 MCU,一片從 MCU 用來控制程控電路和模擬部分的 DA輸出,其作用相當于一個譯碼器將主 MCU 發(fā)送來的 命令譯碼,然后執(zhí)行相應的控制命令。另外一塊主 MCU 的作用是將 CPLD 采集來的數(shù)據(jù)讀入 RAM 中,然后將數(shù)據(jù)處理后顯示出來,除次之外主 MCU 開控制鍵盤的輸入和各個控制信號的輸出。 26 主、從 MCU 分別選用 ATMEL公司的 AVR 單片機 Mega128L 和 Mega16L,與 51 單片機相比 AVR 單片機 具有更高的工作頻率與更高效率的硬件結(jié)構(gòu), 51單片機的指令周期是將晶體振蕩器的振蕩頻率進行 12 分頻后得到的,又有累加器 ACC 在高速執(zhí)行指令時的瓶頸因素,而 AVR 單片機則不同,它的指令周期就是晶體振蕩器的振蕩周期,有 32 個類似與累 加器 ACC 的寄存器直接和運算器相連,取址周期短,又可預取指令實現(xiàn)流水作業(yè),故可高速執(zhí)行指令。 Mega128L的 flash 容量為 128KB, RAM 為 4KB, 52 個輸入輸出口,官方給出的最高速度為 16MHz,但在實際使用中工作在 18~20MHz 也很穩(wěn)定,所以用該單片機做顯示處理非常合適。在本電路中為了提高 LCD 顯示器的屏幕刷新速率所以使其工作在 18MHz,實際使用中電路工作十分正常。 圖 主 MCU電路 主 MCU電路見圖 所示。 PD0~PD7 與 LCD 顯示器 8 位并行數(shù)據(jù)端相連,PB4~PB7 與 LCD 顯示器的控制端相連用于驅(qū)動 LCD 顯示器。 PB0~PB3 作為SPI 通信端口與主 MCU 相連進行兩個單片機之間的通信。 PA0~PA7 與 PC0~PC3 27 分別都與 CPLD 相連接。上電時,主 MCU 通過 FIFO_RES 端口對 FPGA 內(nèi)部的FIFO 存儲器進行復位,復位后存儲器的讀寫指針都指向 0,允許寫數(shù)據(jù),主 MCU通過 FIFO_EN 端使能 FIFO 存儲器,開始將 AD 轉(zhuǎn)換器輸出的數(shù)據(jù)寫入存儲器,當 FIFO 存儲器寫滿數(shù)據(jù)后 FIFO_FF 位被拉高通知主 MCU 讀取采樣數(shù)據(jù),主MCU 禁止 FIFO 存儲器寫入數(shù)據(jù),然后從 FIFO 存儲器中讀 數(shù)據(jù),當數(shù)據(jù)讀完并完成軟件觸發(fā)后使能 FIFO 存儲器繼續(xù)存儲采樣數(shù)據(jù),然后從讀取的數(shù)據(jù)中測出波形的峰峰值后將數(shù)據(jù)轉(zhuǎn)換成波型與參數(shù)顯示在 LCD 顯示器上,峰峰值的測量是通過對一屏顯示數(shù)據(jù)進行比較取出最大值與最小值與當前垂直電壓靈敏度作為系數(shù)計算出來的。 SPI 通信通過中斷的方式實現(xiàn),主 MCU 每次給從 MCU 發(fā)送起始位、命令字、命令參數(shù)共 3 個字節(jié),每發(fā)送一個字節(jié)從 MCU 中斷一次將接收到的數(shù)據(jù)存到一個變量中,直到 3 個字節(jié)全部發(fā)送完畢從 MCU 才對接收到的數(shù)據(jù)進行處理顯示。這樣可以使從 MCU在平時都工作在數(shù)據(jù)的處理和顯示上,提高了數(shù)據(jù)的處理速度。 圖 從 MCU電路 從 MCU 電路見圖 , PD0~PD5 共 6 個 IO 口接 通道 2 的模擬部分的程控電路來對信號進行必要的調(diào)理。 PD6~PD7 和 PB1 分別為通道 2 中 DA 的 DIN、CLK、 CS 線,用于控制 DA 的輸出。 PB0 為控制耦合方式的控制線, PB0 為 1則通道 2 交流耦合, PB0 為 0則通道 2 為直流耦合。 PDC~PC5 共 6 個 IO 口接通道 1 的模擬部分的程控電路來對信號進行必要的調(diào)理。 PC6~PC7 和 PB3 分別為通道 1 中 DA 的 DIN、 CLK、 CS 線,用于控制通道 1 中的 DA 的輸 出。 PB2 28 為控制耦合方式的控制線, PB2 為 1則通道 1 交流耦合, PB2 為 0則通道 1 為直流耦合。 PB4~PB7 作為 SPI 總線接口與 主 MCU 通信,為了防止下載程序時兩芯片 SPI 口沖突 要在兩單片機之間的 SPI 總線上串聯(lián) 3 只 1K的電阻,實驗證明此法非常有效,電路工作穩(wěn)定。 29 沒有程序前面的所有電路起不到任何作用,完全是一堆廢板子,就像一臺沒有操作系統(tǒng)的電腦一樣,只能浪費電。程序設(shè)計是整個示波器制作中的難點,本章將詳細闡述示波器程序的設(shè)計。 本系統(tǒng)的程序全部是用 c 語言編寫的,開發(fā)環(huán)境為 CodeVisionAVR C,下面就各個重要的子程序的設(shè)計一一敘述。 主 MCU和從 MCU 的程序流程圖分別見圖 和圖 。 主 MCU 在初始化 LCD、 SPI 之后就一直等待 FIFO 中寫滿數(shù)據(jù),只要一幀數(shù)據(jù)被寫滿立即將數(shù)據(jù)讀入 MCU 之中, MCU 在計算之后直接將數(shù)據(jù)顯示出來。 30 圖 主 MCU流程圖 從 MCU 一直工作在中斷等待狀態(tài),只要一有 SPI 數(shù)據(jù)接收中斷產(chǎn)生就立即判斷接收數(shù)據(jù)的格式是否正確。只有在接收到正確的命令和參數(shù)后,從 MCU 才會執(zhí)行相應的命令。 程 序 開 始端 口 初 始 化S P I初 始 化有 S P I中 斷N OY E S為 起 始 字 節(jié)0 x a aN O接 收 命 令 字 節(jié)接 收 參 數(shù) 字 節(jié)執(zhí) 行 命 令 圖 從 MCU流程圖 同步觸發(fā) 本系統(tǒng)在 設(shè)計時考慮了硬件觸發(fā),并且在前面模擬電路中也加入了硬件觸發(fā)電路,但是在實現(xiàn)的過程中發(fā)現(xiàn) AD 的采樣時鐘為有源晶振產(chǎn)生的固定時鐘相位固定而觸發(fā)電路對不同的信號的觸發(fā)時相位與 AD 采樣時鐘之間的相位差并不是固定的,這樣就帶來一個問題就是對剛好能與 AD 采樣時鐘同步的信號能實現(xiàn)同步觸發(fā), LCD 上能穩(wěn)定的顯示波形,對于不和 AD 采樣時鐘同步的輸入信號 31 則不能穩(wěn)定的顯示波形。 所以為了簡單的解決這個問題,本系統(tǒng)采用了軟件實現(xiàn)同步觸發(fā)的,這樣做有個弊端就是幾乎無法實現(xiàn)單次觸發(fā),因為平時單次觸發(fā)功能使用的比較少,所以本示波器并不提 供這個功能。軟件觸發(fā)的好處是觸發(fā)條件更易調(diào)整,只需調(diào)整比較語句中的參數(shù)即可。保證可以用軟件觸發(fā)的條件是要有足夠大的存儲空間,顯示一屏的數(shù)據(jù)為 125 個,但每次讀進單片機的數(shù)據(jù)為500 個,多余 375 個數(shù)據(jù)就是作為不滿足觸發(fā)條件的舍棄余量,為了以防萬一,當從 500 個數(shù)據(jù)中以經(jīng)讀出超過 375 個數(shù)據(jù)但還沒有符合觸發(fā)條件的數(shù)據(jù)時,將跳出觸發(fā)比較循環(huán),將讀到的剩下的 125 個數(shù)據(jù)顯示在 LCD 顯示器上面,此時顯示的波形沒有得到有效的觸發(fā),顯示器上面顯示的波形也是左右移動不穩(wěn)定的。如果讀出的數(shù)據(jù)中在前面 375 個數(shù)據(jù)中有數(shù) 據(jù)能滿足觸發(fā)條件,則波形就能穩(wěn)定的顯示出來。 所以軟觸發(fā)在達到觸發(fā)條件后可以非常穩(wěn)定的工作,在本示波器的主 MCU 中控制觸發(fā)的語句見以下程序段: for(i=0。i500。i++) //從 FPGA讀 500 個數(shù)據(jù) { READ=0。 AD_dat[i]=FPGA_DAT。 READ=1。 } while(!(AD_dat[j]=Tri_Stallamp。amp。AD_dat[j+1]=Tri_Stall)) //滿足幅度為 Tri_Stall的觸發(fā)條件 { j+=1。 if(j=374) //若存儲數(shù)據(jù)不足則跳出循環(huán) break。 } Display_Curve(j, AD_dat)。 //顯示波形 程序的意思是只有當此時采樣信號的數(shù)值是 Tri_Stall 且為上升沿時才可以觸發(fā),改變觸發(fā)沿只需改變運算符,改變觸發(fā)電壓只需改變 Tri_Stall 的值即可,Tri_Stall 的取值范圍是 0~255,其值可由鍵盤調(diào)節(jié) 。 32 串行通信 主、從 MCU 之間的聯(lián)系就是靠兩個單片機之間的通信來實現(xiàn)的,在這里實際就是讓主 MCU 控制從 MCU,為了完成這一功能所以使用 SPI 通信。 首先介紹一下 SPI 的通信協(xié)議 SPI(串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,允許 MCU與各種外圍設(shè)備以串行方式進行通信、數(shù)據(jù)交換,廣泛應用于各種工業(yè)控制領(lǐng)域?;诖藰藴?, SPI 系統(tǒng)可以直接于各個廠家生產(chǎn)的多種標準外圍器件直接接口。 SPI 接口通常包含有 4 根線:串行時鐘( SCK)、主機輸入 /從機輸出數(shù)據(jù)線( MISO)、主機輸出 /從機輸入數(shù)據(jù)線( MOSI)和低電平有效的從機選擇線 SS。在從機選擇線 SS 使能的前提下,主機的 SCK 脈沖將在數(shù)據(jù)線上傳輸主 /從機 的串行數(shù)據(jù)。 SPI 典型的時序圖 如圖 所示: 圖 SPI 時序圖 串行外設(shè)接口 SPI 允許 AVR 單片機和外設(shè)之間進行高速的同步數(shù)據(jù)傳輸。AVR 單片機 SPI 的特點如下:全雙工, 3 線同步數(shù)據(jù)傳輸,主 /從機操作, LSB首先發(fā)送或 MSB 首先發(fā)送, 7 種可編程的比特率,傳送中斷結(jié)束,寫碰撞標志檢測,可以從閑置模式喚醒。 SPI 主機 從機的互連如圖 所示,系統(tǒng)包括兩個移位寄存器和一個主時鐘發(fā)生器。通過將需要的從機的 SS 引腳拉低,主機啟動一次通信過程。主機和從機將需要的數(shù)據(jù)放到相應的移位寄存器,主機在 SCK引腳 上產(chǎn)生時鐘脈沖以交換數(shù)據(jù)。主機的數(shù)據(jù)從 MOSI 移出,從從機 MISO 移入。從機的數(shù)據(jù)從 MISO 移出,從從機 MOSI 移入。主機通過將從機的 SS 拉高實現(xiàn)與從機的同步。 33 圖 SPI 主 /從機互連 本系統(tǒng)中只用只使用主 MCU 控制從 MCU,所以主 MCU只用于發(fā)送控制數(shù)據(jù),而從 MCU 只用于接收控制數(shù)據(jù),所以將主 MCU 配制成 SPI 主機,將從MCU 配制成 SPI 從機即可。主、從 MCU 都使用了本身的 SPI 控制器進行數(shù)據(jù)接收。 發(fā)送數(shù)據(jù)時約定數(shù)據(jù)格式,即兩個單片機之間的通信協(xié)議:每次發(fā)送通信三個個字節(jié),第一個字節(jié)為起始字 節(jié)、第二個字節(jié)為命令字節(jié),第三個字節(jié)為參數(shù)字節(jié)。每次在通信開始的時候,主 MCU 首先發(fā)送一個起始字節(jié)和命令字節(jié),然后再發(fā)送一個參數(shù)字節(jié)。從 MCU 在接收到一個字節(jié)數(shù)據(jù)首先判斷是否為起始字節(jié) 0xaa,只有在接收到起始字節(jié)后從 MCU 才會接受后面的命令字和參數(shù)字節(jié)。 從 MCU在接收到參數(shù)字節(jié)后會根據(jù)前面接收到的命令字節(jié)來確定參數(shù)的用途來控制前面的模擬電路。主 MCU 發(fā)送的的命令字總共有四個分別是通道放大倍數(shù)控制字、交直流耦合控制字、觸發(fā)電路 DA 輸出控制字和電平移位 DA 控制字。在從 MCU 接收數(shù)據(jù)的過程中,從 MCU 使用一個 狀態(tài)機來檢測起始位實現(xiàn)數(shù)據(jù)的正確接收。從 MCU 狀態(tài)機接收程序如下所示。 switch(SPI_Status) { case SPI_START: if(temp==0xAA) //接收起始字節(jié) SPI_Status=SPI_DAT1。 else SPI_Status=SPI_START。 break。 case SPI_DAT1: //接收命令字節(jié) 34
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1