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

正文內(nèi)容

基于單片機(jī)的簡(jiǎn)易數(shù)字存儲(chǔ)示波器-學(xué)士論文-資料下載頁(yè)

2024-11-17 21:29本頁(yè)面
  

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