久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6610|回復: 0
打印 上一主題 下一主題
收起左側

STM32多功能雙通道數字示波器,虛擬信號分析儀設計資料

[復制鏈接]
跳轉到指定樓層
樓主
軟件運行界面:

Stu-02型雙通道數字示波器,是一款以“低成本、高性能”為設計目標,精心設計的200K、400KS/s、2通道的虛擬示波器。通過USB將采集數據快速的傳輸給PC,借助PC的強大計算能力,可以完成對采集數據的“波形合成”、“濾波處理”、“李薩茹圖形”、“幅頻”、“相頻”、“對數幅頻”、“自功率譜”、“對數自功率譜”、“自相關”和“互相關”的分析功能。其中濾波器,支持設計IIR和FIR濾波器設計。IIR支持“巴特沃斯”、“切比雪夫I”、“切比雪夫II”、“橢圓”和“貝塞爾”類型的濾波器設計;FIR支持“矩形窗”、“三角窗”、“漢寧窗”、“海明窗”、“布萊克曼窗”和“凱塞—貝塞爾窗”。


1. 簡介
“低成本和高性能”為設計思想, 借助虛擬儀器的概念和高速的數字信號處理算法將傳統的函數發生器、 示波器、 數據記錄儀、 頻率計、 譜分析儀以及濾波器設計和仿真等功能高度集成、統一平臺方便使用。
軟件環境支持聲卡、 USB模塊和虛擬仿真,三種模式。聲卡模式,可以借助電腦的聲卡來完成對音頻范圍內信號的分析和處理; USB模塊,可以完成對帶寬允許內的信號的分析和處理;其中仿真模式采用軟件模擬來實現所有的功能,便于教學和理論的演示  
2. 特性說明
帶寬 200K
采樣率 400KS/s
通道 2
輸入電壓范圍  [-150,150V]
存儲深度              8K*2
AD采樣位數 8位
軟件觸發              上升沿、下降沿、上升/下降沿、差分、上下+差分
分析功能              波形合成:波形相加 波形相減 波形相乘,
濾波處理:支持設計IIR和FIR濾波器。IIR支持“巴特沃斯”、“切比雪夫I”、“切比雪夫II”、“橢圓”和“貝塞爾”類
型的濾波器設計;FIR支持“矩形窗”、“三角窗”、“漢寧窗”、“海明窗”、“布萊克曼窗”和“凱塞—貝塞爾窗”,
波形分析:李薩茹圖形、幅頻、相頻、對數幅頻、自功率譜、對數
自功率譜、自相關、互相關。
抓幀功能              支持連續抓幀功能
傳輸接口 USB2.0

3. 示波器使用說明
當將Stu-02型的USB和電腦相連后,軟件會自動檢測到,并和硬件建立連接。在數字存儲示波器右側工作區“屬性控制”的頂端便會出現一個Stu-02(N)的下拉選項,N會隨不同的電腦而不同,用于區別多個的相同的設備。選擇該選項后彈出如圖3.1的界面。

3.1 通道控制 “通道控制”里的“左通道”和“右通道”用于啟動和關閉對應的示波器通
道。

3.2 自動和暫停 當打開示波器后,點擊“自動”可以開啟示波器的自動檢測功能;點擊“暫停”可 以將采集數據暫停。
3.3 觸發條件 “觸發”可以是硬件觸發和軟件觸發。
硬件觸發采用硬件電路觸發;軟件觸發只是 將采集的數據,采用算法來進行觸發。
軟件觸發:選擇軟件觸發后, “觸發 源”可以是“各自”、“左通道”和“右通 道”; “觸發條件”可以是“不觸發”、“上升 沿”、“下降沿”、“上升/下降沿”、“差 分”和“上下+差分”;“觸發電平”用于設 置觸發的電平;”觸發延遲”用于設置觸發 點,向前或向后的數據顯示比例。

說明:
a、觸發:“硬件觸發”采用硬件電路的觸發;“軟件觸發”采用軟件觸發。
b、觸發源:“各自”,兩個通道,各自對采集的. 數據進行觸發;“左通道”,右通道使用左通道的觸 發點,而不是采用自己的觸發點;“右通道”,左通 道使用右通道的觸發點,而不是采用自己的觸發點。
c、觸發條件:“不觸發”,對于硬件電路,不觸發直接采集,對于軟件觸發,采集的數據 直接顯示,不做任何觸發;“上升沿”,檢測到上升沿并且高于觸發電平便觸發;“下降沿”,檢 測到下降沿并且低于觸發電平便觸發;“上升/下降沿”滿足上述“上升沿”或“下降沿”情況就觸發;“差分”觸發電平為正值時,當兩次的數據采集的差大于 觸發電平設置的值便觸發(此時波形應該是上升的),當觸發電 平為負值時,當兩次的數據采集的差覺得值大于觸發電平設置的

圖3.1屬性設置

值的絕對值便觸發(此時波形應該是下降的);“上下+差分”當兩次的數據采集的差大于或小于 觸發電平設置的值便觸發。
d、觸發電平用于設置觸發的電平,對于沿觸發和差分觸發的意義不同,詳細解釋見d中。
e、觸發延遲用于設置觸發點,向前或向后的數據顯示比例g。如果小于0就代表,就從“觸發點-采集長度*g”處開始顯示;如果大于0就代表,就從“觸發點+采集長度*g”處開始顯示。

3.4自動 和傳統的示波器一樣,點擊“自動”以后,示波器將自動檢測信號,并根據實際的信號調整顯示界面。
3.5暫停
點擊“暫停”可以,暫停示波器的數據采集。
3.6內插
支持自動和手動來內插,選擇內插后,將根據給定的內插頻率,當采集的波形的頻率大于內插頻率,系統就會啟動正弦內插功能。

3.7 探頭 當改變了示波器探頭上面的×1,×10,需要在界面上選擇相應的探頭倍數,這樣便可以正確的現實波形峰值。
3.8抓幀
如圖3.1,在“屬性設置”窗口的頂端,有“抓幀”按鈕,點擊便可以啟動抓幀;“雙通道”下拉復選框用于選擇抓幀的通道,可以是“左通道”、“右通道”和“雙通道”;“1幀”下拉復選框用于選擇連續抓幀的幀數,可以是1~100幀。
抓取完成后,可以在“數據記錄”選項卡里面,找到以日期的時間命名的txt文本文件,例如10-5+14-13-2+1.txt表示這是10月5日14時13分2秒抓取的第一幀數據。只要雙擊或者右鍵“導入分析”便可以將數據載入分析。
3.9 設備屬性
“設備信息”顯示了該設備的一些具體的參數。
3.10波形分析
請參照“多功能虛擬信號分析儀使用說明書”。

安裝說明:
1.安裝驅動

正確連接 9V/1A 電源適配器,主機指示燈亮,然后將方口 USB 數據線連接于主機與電腦直接,電腦右下角出現發現新硬件 STM Virtual Com Port,如下圖所示,使用向導查找新硬件驅動,選擇從列 表或指定位置安裝(高級)(S), 點 擊 下 一 步 (N)。


首先解壓上位機驅動安裝包,出現 driver 文件夾,將驅動瀏覽到 此文件夾,點擊下一步(N)。


出現硬件安裝警告,點擊仍然繼續(C)。



點擊完成。

安裝完成后,右下角會出現新硬件已安裝并可以使用了,然后將 USB 線與電腦斷開,在重新連接一次,此次即可正常驅動,檢查“我 的電腦 屬性 硬件 設備管理器”在端口中出現主機設備的正常連 接,如下所示,由于各個電腦中設備號均不相同,所以 COM 號各異 , 屬正常現象。




2.軟件互聯

雙擊多功能虛擬信號分析儀軟件圖標,出現下圖所示界面,詳讀 軟件許可協議后,點擊接受。



進入軟件第一主界面,在顯示界面上方有四個工作切換區,分別 是函數發生器、數字存儲示波器、數據記錄儀、濾波器設計。


如使用數字存儲示波器功能,點擊上方工作切換區,即彈出數字 存儲示波器主界面,或在電腦下方工作區內多出一個軟件,即數字存 儲示波器,雙擊使其最大化,并選擇波形界面最大化,軟件右下方工 作條如下圖所示。




點擊屬性設置,上方下拉列表中出現主機設備編號 Stu-0.2(X), 選擇即可,如下圖所示。




通道控制內有左、右通道選擇開關,勾上后即可使用相應通道進
行示波顯示功能,如下圖所示,綠色信號線表示 CH1( 左 通 道 ), 紅
色信號線表示 CH2( 右 通 道 )。

軟件相應功能,請詳見使用說明書。

stm32單片機源程序如下:
  1. /*
  2. * Copyright (c) 2010 儀星電子
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.

  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. * GNU General Public License for more details.

  12. * You should have received a copy of the GNU General Public License
  13. * along with this program; if not, write to the Free Software
  14. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  15. */

  16. /*
  17. * 著作權所有(C) 2010 儀星電子
  18. *
  19. * 本程序為自由軟件;您可依據自由軟件基金會所發表的GNU通用公共授權條款規定,
  20. * 就本程序再為發布與/或修改;無論您依據的是本授權的第二版或(您自行選擇的)
  21. * 任一日后發行的版本。

  22. * 本程序是基于使用目的而加以發布,然而不負任何擔保責任;亦無對適售性或特定
  23. * 目的適用性所為的默示性擔保。詳情請參照GNU通用公共授權。

  24. * 您應已收到附隨于本程序的GNU通用公共授權的副本;如果沒有,請寫信至自由軟件
  25. * 基金會:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA。

  26. * Email yixingdianzi@126.com
  27. * Email/MSN yixingdianzi@hotmail.com
  28. * QQ 648887464
  29. */

  30. /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
  31. * File Name          : main.c
  32. * Author             : MCD Application Team
  33. * Version            : V3.1.0
  34. * Date               : 10/30/2009
  35. * Description        : Virtual Com Port Demo main file
  36. ********************************************************************************
  37. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  38. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  39. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  40. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  41. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  42. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  43. *******************************************************************************/

  44. /* Includes ------------------------------------------------------------------*/
  45. //#include "stm32f10x.h"
  46. #include "stm32f10x_gpio.h"
  47. #include "usb_lib.h"
  48. #include "usb_desc.h"
  49. #include "usb_pwr.h"
  50. #include "qdmx_usb.h"
  51. #include "qdmx_adc.h"

  52. #define SEND 32

  53. /* Private typedef -----------------------------------------------------------*/
  54. /* Private define ------------------------------------------------------------*/
  55. /* Private macro -------------------------------------------------------------*/
  56. /* Private variables ---------------------------------------------------------*/
  57. /* Extern variables ----------------------------------------------------------*/
  58. extern __IO uint32_t count_in;
  59. extern uint8_t Controla_a;
  60. extern uint8_t Controla_b;

  61. /* Private function prototypes -----------------------------------------------*/
  62. /* Private functions ---------------------------------------------------------*/
  63. void Set_System(void);
  64. void Callback(uint8_t *p);
  65. void Delay(__IO uint32_t nCount);
  66. void GPIO_configure(void);                                       
  67. /*******************************************************************************
  68. * Function Name  : main.
  69. * Description    : Main routine.                                
  70. * Input          : None.
  71. * Output         : None.
  72. * Return         : None.
  73. *******************************************************************************/
  74. int main(void)
  75. {  
  76.         vu8 s;
  77.         /*設置系統時鐘*/
  78.         Set_System();
  79.         
  80.         /*初始化USB模塊*/  
  81.         Set_USBClock();
  82.         USB_Interrupts_Config();
  83.         USB_Init();
  84.         /*初始化AD模塊*/
  85.         m_adc_clk_config();
  86.           m_adc_gpio_config();
  87.           m_adc_Interrupts_Config();
  88.           m_adc_init();

  89.         /*初始化GPIO引腳作為放大控制引腳*/
  90.         GPIO_configure();
  91.                                           
  92.           count_in=0;
  93.         /*默認初始值為放大1倍*/

  94.         GPIO_ResetBits(GPIOA,GPIO_Pin_0);
  95.         GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  96.         GPIO_ResetBits(GPIOA,GPIO_Pin_2);

  97.         GPIO_ResetBits(GPIOB,GPIO_Pin_12);
  98.         GPIO_ResetBits(GPIOB,GPIO_Pin_13);
  99.         GPIO_ResetBits(GPIOB,GPIO_Pin_14);

  100.           while (1)
  101.           {                 
  102.           }
  103. }

  104. void GPIO_configure(void)
  105. {
  106.         GPIO_InitTypeDef GPIO_InitStructure;

  107.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
  108.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
  109.         
  110.         RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
  111.         RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);               

  112.           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14;
  113.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  114.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  115.           GPIO_Init(GPIOB, &GPIO_InitStructure);

  116.         
  117.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
  118.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  119.           GPIO_Init(GPIOA, &GPIO_InitStructure);
  120. }

  121. void Delay(__IO uint32_t nCount)
  122. {
  123.   for(; nCount != 0; nCount--);
  124. }


  125. void Callback(uint8_t *p)
  126. {
  127.         if (GetENDPOINT(ENDP1) & EP_DTOG_RX)
  128.         {
  129.                    FreeUserBuffer(ENDP1, EP_DBUF_IN);
  130.                    UserToPMABufferCopy((uint8_t*) p, ENDP1_TX1ADDR, SEND);
  131.                    SetEPDblBuf1Count(ENDP1,EP_DBUF_IN,SEND);
  132.         }
  133.         else
  134.         {
  135.                    FreeUserBuffer(ENDP1, EP_DBUF_IN);
  136.                    UserToPMABufferCopy((uint8_t*) p, ENDP1_TX0ADDR, SEND);
  137.                    SetEPDblBuf0Count(ENDP1,EP_DBUF_IN,SEND);
  138.         }
  139. }

  140. #ifdef USE_FULL_ASSERT
  141. /*******************************************************************************
  142. * Function Name  : assert_failed
  143. * Description    : Reports the name of the source file and the source line number
  144. *                  where the assert_param error has occurred.
  145. * Input          : - file: pointer to the source file name
  146. *                  - line: assert_param error line source number
  147. * Output         : None
  148. * Return         : None
  149. *******************************************************************************/
  150. void assert_failed(uint8_t* file, uint32_t line)
  151. {
  152.   /* User can add his own implementation to report the file name and line number,
  153.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  154.   /* Infinite loop */
  155.   while (1)
  156.   {}
  157. }
  158. #endif

  159. /*******************************************************************************
  160. * Function Name  : Set_System
  161. * Description    : Configures Main system clocks & power
  162. * Input          : None.
  163. * Return         : None.
  164. *******************************************************************************/
  165. void Set_System(void)
  166. {
  167.   ErrorStatus HSEStartUpStatus;
  168.   /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
  169.   /* RCC system reset(for debug purpose) */
  170.   RCC_DeInit();

  171.   /* Enable HSE */
  172.   RCC_HSEConfig(RCC_HSE_ON);

  173.   /* Wait till HSE is ready */
  174.   HSEStartUpStatus = RCC_WaitForHSEStartUp();

  175.   if (HSEStartUpStatus == SUCCESS)
  176.   {
  177.     /* Enable Prefetch Buffer */
  178.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

  179.     /* Flash 2 wait state */
  180.     FLASH_SetLatency(FLASH_Latency_2);

  181.     /* HCLK = SYSCLK */
  182.     RCC_HCLKConfig(RCC_SYSCLK_Div1);
  183.   
  184.     /* PCLK2 = HCLK */
  185.     RCC_PCLK2Config(RCC_HCLK_Div1);

  186.     /* PCLK1 = HCLK/2 */
  187.     RCC_PCLK1Config(RCC_HCLK_Div2);

  188. #ifdef STM32F10X_CL
  189.     /* Configure PLLs *********************************************************/
  190.     /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
  191.     RCC_PREDIV2Config(RCC_PREDIV2_Div5);
  192.     RCC_PLL2Config(RCC_PLL2Mul_8);

  193.     /* Enable PLL2 */
  194.     RCC_PLL2Cmd(ENABLE);

  195.     /* Wait till PLL2 is ready */
  196.     while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET)
  197.     {}

  198.     /* PLL configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz */
  199.     RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div5);
  200.     RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9);
  201. #else
  202.     /* PLLCLK = 8MHz * 9 = 72 MHz */
  203.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  204. ……………………

  205. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

0.png (36.86 KB, 下載次數: 132)

0.png

0.png (5.83 KB, 下載次數: 115)

0.png

0.png (2.52 KB, 下載次數: 127)

0.png

0.png (4.2 KB, 下載次數: 118)

0.png

0.png (6.09 KB, 下載次數: 121)

0.png

多功能虛擬信號分析儀上位機 (1).zip

2.96 MB, 下載次數: 42, 下載積分: 黑幣 -5

下位機原理圖和PCB源文件.zip

355.18 KB, 下載次數: 44, 下載積分: 黑幣 -5

下位機源碼和USB驅動.zip

1.09 MB, 下載次數: 38, 下載積分: 黑幣 -5

測量圖片以及信號分析儀說明書等.zip

7.21 MB, 下載次數: 35, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 羞视频在线观看 | 欧美视频成人 | 91极品尤物在线播放国产 | 自拍偷拍亚洲视频 | 亚洲一区二区中文字幕 | 日日夜夜精品视频 | 亚洲一区二区三区免费视频 | 国产午夜三级一区二区三 | 亚洲一区二区av | 欧美激情在线观看一区二区三区 | 久久精品网 | 日韩在线观看中文字幕 | 亚洲视频国产 | 国产精品视频偷伦精品视频 | 久久看精品 | 国产精品久久福利 | 日韩高清成人 | 中文字幕电影在线观看 | 欧美情趣视频 | 高清黄色 | 99久视频| 99在线资源| 国产高清一区二区 | 亚洲在线一区二区 | 成人1区2区 | 黄色一级大片在线免费看产 | 欧美黄在线观看 | 亚洲国产精品日本 | 夜夜骑av | 亚洲国产精品第一区二区 | 日韩在线成人 | 激情六月丁香婷婷 | 精品久久电影 | 粉嫩一区二区三区国产精品 | 国产成人网 | 久草视频观看 | 国产精品99久久久久久久vr | 久草视频网站 | 日韩精品免费视频 | 一二三区av | 午夜影院在线播放 |