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

正文內容

基于fpga和stm32的數據采集系統(tǒng)設計(編輯修改稿)

2025-07-23 15:11 本頁面
 

【文章內容簡介】 V電壓電源,能滿足STM32的工作需求。 USB接口電路 STM32的主控應用電路STM32單片機選用8MHz的外部無源晶振,通過內部的PLL電路可倍頻到72MHz的工作頻率。它的BOOT0和BOOT1引腳控制啟動模式,可以通過BOOT[1:0]引腳選擇三種不同啟動模式。如圖表1所示。論文的硬件電路設計BOOT1引腳接地,即BOOT1恒為0,BOOT0引腳有0和1兩種選擇。在使用ISP方式下載程序時將BOOT0腳接高電平,即BOOT0腳為0,再按下復位鍵,即可完成程序的下載。在完成程序下載后BOOT0腳可以作為普通I/O端口使用。STM32主要負責讀FIFO緩存中的數據,然后傳輸給上位機,同時接受上位機傳來的命令,分析命令做出相應的控制。控制部分主要有:對PWMPWM2的輸出占空比控制來調節(jié)直流分量大小和增益大?。粚IFO緩存和AD轉換器的頻率控制,通過STM32發(fā)出改變頻率脈沖給FPGA的頻率控制接口來改變它們的時鐘頻率。例如當STM32接受到改變PWM1或PWM2占空比大小命令式時,STM32調節(jié)PWM值一次,反復調節(jié)找到合適的值(PWM設置了2個數組,分別設置了6個不同的值);當FPGA接受到改變頻率脈沖式,控制器改變一次FIFO和AD的頻率,如此循環(huán)改變選擇合適的頻率值(有8種不同的頻率選擇值,3位的頻率選擇寄存器不斷加1變化來選擇合適的值)。表1 啟動模式啟動模式選擇引腳啟動模式說明BOOT1 BOOT0 X 0主閃存存儲器 主閃存存儲器被選為啟動區(qū)域 01系統(tǒng)存儲器 系統(tǒng)存儲器被選為啟動區(qū)域 11內置SRAM 內置SRAM被選為啟動區(qū)域 STM32主控電路圖 FPGA部分的主控電路 FPGA的硬件電路設計FPGA的電路設計采用兩種程序下載方式:JTAG和AS兩種方式。JTAG下載方式是將編譯后生成的sof文件通過JTAG口直接下載到FPGA內,一般是臨時調試用的,掉電后下載數據將丟失;AS下載一般是將編譯后生成的pof文件下載到prom(flash)里,掉電數據不會丟失,重新上電prom會自動加載程序到FPGA。AS下載方式選用的prom為EPCS1N型號,是1Mbit的flash存儲設備,+,常用于Stratix174。II FPGAs和Cyclone series FPGAs的AS配置方案。FPGA芯片選擇的是EP1C3T144C8N,其內部資源足夠本次設計的使用。 FPGA硬件電路設計 FPGA的內部邏輯電路FPGA的內部邏輯電路有時鐘分頻電路,異步FIFO緩存模塊,串口發(fā)送和接收模塊,兩路PWM輸出模塊,異步FIFO控制模塊。50MHz的時鐘信號進入分頻電路模塊得到兩路分頻后的信號,一路給AD轉換器,另一路給內部的異步FIFO模塊。分頻電路共提供FIFO寫時鐘8種頻率,有:50MHz,25MHz,5MHz,,500KHz,250KHz;由于ADS831的最低工作頻率在500KHz以上,所以分頻電路提供給AD轉換器的時鐘頻率為7種。UART模塊的發(fā)送負責將接收到的FIFO數據發(fā)送到上位機,接收模塊負責接受上位機的命令,此部分還包括對接收到的命令的分析,并做出相應的控制,主要有對PWM模塊輸出信號的控制和前級處理部分模擬開關的控制。異步FIFO模塊是調用Altera的官方固件庫得到,性能比自己編寫的要好很多。分頻邏輯電路由Quartus II軟件自帶的基本分頻器件單元74390組合得到不同需求的頻率。 FPGA內部邏輯電路圖 分頻電路 FPGA與CH372的接口電路設計CH372 是一個USB 總線的通用設備接口芯片,是CH371的升級產品,是CH375芯片的功能簡化版。在本地端,CH372 具有8 位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU/MPU等控制器的系統(tǒng)總線上。CH372 芯片在本地端提供了通用的被動并行接口,包括:8 位雙向數據總線D7~D0、讀選通輸入引腳RD、寫選通輸入引腳WR、片選輸入引腳CS、中斷輸出引腳INT以及地址輸入引腳A0。通過被動并行接口,CH372芯片可以很方便地掛接到各種8 位單片機、MCU的系統(tǒng)總線上,并且可以與多個外圍器件共存。論文應用FPGA硬件語言描述的內部邏輯控制電路來控制CH372的數據讀寫。它有兩種電源供電電壓:+5V和+。CH372 芯片支持5V 。當使用5V 工作電壓時,CH372芯片的VCC引腳輸入外部5V電源。,CH372芯片的V3引腳應該與VCC引腳相連接。 FPGA與SH372電路4 軟件控制部分論文設計了兩種方案完成此設計:一種是STM32用作控制器、數據及命令收發(fā)器,F(xiàn)PGA只負責時鐘分頻和數據緩存;另一種是FPGA既作控制器,也負責時鐘的分頻和數據的緩存,同時與USB芯片CH372實現(xiàn)數據及命令的收發(fā)。虛擬示波器與上位機數據通訊采用了兩種方式:一是UART方式,串口方式數據最大傳輸速率為115200bsp,因此速率不高;二是USB方式,這種傳輸方式的最大傳輸速率可達到12Mbsp,遠高于串口。由于時間的限制再加上個人能力的限制,USB與上位機通訊方式只完成了虛擬示波器上的程序,USB通訊上位機的程序有待于繼續(xù)開發(fā)和學習,因此無法進行此種方式的波形實驗。另外,STM32的USB接口程序非常多,在這里就不列出了,詳細內容請參見官方USB固件庫。 主程序流程圖主程序流程圖部分主要包括示波器向上位機發(fā)送數據和上位機向示波器發(fā)送命令兩部分。,上位機發(fā)命令UART接收命令控制部分分析命令分頻控制直流分量增益調節(jié)終止開始FIFO寫數據,讀禁止FIFO寫滿否UART讀FIFO,F(xiàn)IFO寫禁止讀FIFO空是否是發(fā)送給上位機終止 上位機向示波器發(fā)送命令 示波器向上位機發(fā)送數據 軟件程序部分 FPGA硬件描述語言verilog HDL程序FPGA的總程序見附錄A。嚴格根據UART接口協(xié)議規(guī)定編寫verilog HDL程序,燒寫到FPGA芯片生成符合UART接口標準協(xié)議的邏輯電路,實現(xiàn)串口數據的接收和發(fā)送。由于發(fā)送程序和接收程序的方法類似,接收的難點在于對起始位的判斷,應用8倍過采樣技術來解決這個問題,接收部分的還包括對接收到的命令進行分析判斷輸出相應的控制信號。命令代碼是由8位二進制數據表示,8’h39代表直流分量控制的變化,收到一次這個命令直流分量增加一定的輸出值;8’h38代表運放的增益控制,變化同上,;8’h37和8’h36分別控制前級處理的模擬開關的選擇開關A,例如當收到8’h37時,A輸入邏輯0,選通X1通道,即選擇了一種衰減比;8’h35和8’h34控制模擬開關的選擇開關B,工作方式同A;命令這里只列出接收程序的難點,如下所示:// Baud8Tick 為波特率的8倍 - 115200*8 = 921600wire Baud8Tick = Baud8GeneratorAcc[Baud8GeneratorAccWidth]。// next_bit 為波特率 - 115200always @(posedge clk or negedge rst) if(~rst ) bit_spacing = 0。 else if (state==0) bit_spacing = 0。 else if(Baud8Tick) bit_spacing = bit_spacing + 1。wire next_bit = (bit_spacing==7)。 FPGA內部異步FIFO與UART之間協(xié)調通訊的控制程序UART的數據收發(fā)速率最大115200波特率,而異步FIFO的寫速率遠高于UART,因此,F(xiàn)IFO的讀數據有效端口由UART的準備發(fā)送數據使能端控制。當FIFO緩存中的數據寫滿時,F(xiàn)ULL端輸出高電平通知UART部分,同時UART內部檢測是否處在發(fā)送準備狀態(tài),若是,則讀取FIFO中的數據,這樣UART每發(fā)送一次數據時都要檢測準備狀態(tài),如此反復,直到FIFO讀空,此時FIFO的EMPERTY輸出高電平,控制單元關閉FIFO的讀使能端,結束UART讀取數據,同時開始FIFO寫數據。Verilog HDL程序如下所示:module FIFOcontr ( FIFO_rd,FIFO_wd,FIFO_wdq,FIFO_redq,DATA_TR_EN)。input FIFO_wd, //FIFO的讀空標志位 FIFO_rd。 //FIFO寫滿標志位output DATA_TR_EN,//FIFO數據傳輸準備端 FIFO_wdq,//寫FIFO時鐘使能端 FIFO_redq。//讀FIFO時鐘使能端wire DATA_TR_EN,FIFO_wdq,FIFO_wd,FIFO_rd。reg data_tx_en=0,FIFO_wdq_en=1,FIFO_red_en=0。always @( data_tx_en or FIFO_wdq_en) if (FIFO_rd) begin //FIFO寫滿時,寫FIFO被禁止,使能讀FIFO data_tx_en = 139。b1。 FIFO_wdq_en = 139。b0。 FIFO_red_en = 139。b1。 endelse if(FIFO_wd) begin //FIFO讀空時,讀FIFO被禁止,使能寫FIFO data_tx_en = 139。b0。 FIFO_wdq_en = 139。b1。 FIFO_red_en = 139。b0。 endassign DATA_TR_EN = data_tx_en。assign FIFO_wdq = FIFO_wdq_en。assign FIFO_redq = FIFO_red_en。Endmodule 上位機LABVIEW流程圖程序Labview的串口驅動需要用到VISA驅動程序,是VXI plugamp。play聯(lián)盟制定的I/O接口軟件標準及其規(guī)范的總稱。VISA提供用于儀器編程的標準I/O函數庫,稱為VISA庫。VISA函數庫駐留在計算機系統(tǒng)內,是計算機與儀器的標準軟件通信接口,計算機通過它來控制儀器。它可以用于USB、RS23RS485和GPIOB等多種總線的測試系統(tǒng)。論文的上位機程序串口與采集卡上的串口設置必須相同,應該為9600波特率,8位數據位,無奇偶校驗,1位停止位,這樣才能正確收發(fā)數據。采用波形圖的方式顯示采集到的數據。 labview流程圖程序5 調試 硬件調試收到做好的PCB板子后,通過手工焊接了所有的元器件,然后仔細檢查了各個引腳是否連接正常,是否有挨著的引腳連焊的,是否有虛焊的等。經過這些前期檢查,可以得出電路連接正常。電源部分的調試。電源是每個電路設計中重要的組成部分之一,它的性能好壞直接決定著最終電路工作的穩(wěn)定性,嚴重的使各部分不能正常工作。電源部分包括四種電壓:+5V,+,+,5V。焊接好電源部分電路后,用萬用表測量各輸出電壓,各個電壓輸出正常。前級調理部分電路。前級調理電路是數據采集器不可缺少的部分,它主要負責輸入信號的電壓衰減和放大,最終使信號進入AD轉換器時能滿足AD轉換器的轉換范圍,并且它的帶寬決定數據采集卡的最大測量帶寬。將前級處理部分的各個元器件焊接好,經過檢查連接正常,然后給前級處理部分加上需求的電壓,輸入測試信號,用示波器觀察最終輸出信號符合論文要求。AD轉換部分。AD轉換部分的工作穩(wěn)定性也是很重要的參數之一,它的性能對最后的顯示部分有很大影響,決定著讀數的正確性。焊接好AD轉換部分的元器件后,輸入測試信號,前級放大調節(jié)到符合AD的轉換要求,將轉換后的數字信號輸出到一個正常的STM32的開發(fā)板上,再用串口發(fā)送至上位機串口調試軟件,檢查上位機接收到的數據,經過數據分析,得出數據轉換正常。FPGA緩存和控制部分。FPGA部分電路主要負責數據的緩存和控制,焊接好這部分的各個元器件后,經過反復檢查各個引腳,保證此部分
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1