<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CH371的USB接口的虛擬示波器設(shè)計(jì)

          基于CH371的USB接口的虛擬示波器設(shè)計(jì)

          作者: 時(shí)間:2018-08-09 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201808/386134.htm

          if(len!=0)

          {

          up_buf=ret_buffer; file://指向數(shù)據(jù)的地址

          ch371_buf=CH371_BUFFER; file://指向數(shù)據(jù)緩沖區(qū)

          for(i=0;i {

          *ch371_buf=*up_buf; file://寫(xiě)入上傳數(shù)據(jù)緩沖區(qū)

          ch371_buf++; up_buf++;

          }

          }

          CH371_LENGTH=len; file://寫(xiě)入本次數(shù)據(jù)的長(zhǎng)度

          }

          file://********中斷子程序 使用中斷0 寄存器組2********

          void ch371_inter() interrupt 0 using 2{

          unsigned char *down_buf;

          unsigned char *ch371_buf;

          unsigned char i;

          IE0=0; file://清中斷標(biāo)志

          if( (CH371_STATUS0x01) ==0 ){

          file://讀取狀態(tài)信息寄存器,判斷數(shù)據(jù)傳輸狀態(tài)

          save_length=CH371_LENGTH; file://保持下傳數(shù)據(jù)長(zhǎng)度

          down_buf=save_buffer;

          ch371_buf=CH371_BUFFER;

          for(i=0;ifile://判斷下傳數(shù)據(jù)長(zhǎng)度并處理

          {

          *down_buf=*ch371_buf; file://讀取一字節(jié)的下傳數(shù)據(jù)

          down_buf++; ch371_buf++;

          }

          }

          else CH371_LENGTH=0x0f; file://置上傳數(shù)據(jù)長(zhǎng)度寄存器為15

          }

          計(jì)算機(jī)端軟件:

          計(jì)算機(jī)端軟件主要功能是模擬一個(gè)示波器的界面,實(shí)現(xiàn)數(shù)據(jù)的顯示以及滿(mǎn)足不同需要的分析功能,同時(shí)完成對(duì)數(shù)據(jù)采集硬件的參數(shù)設(shè)定。在這個(gè)設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了基本的功能,虛擬示波器的界面如下圖。進(jìn)一步開(kāi)發(fā)后可以實(shí)現(xiàn)量程的自動(dòng)轉(zhuǎn)換、數(shù)據(jù)的深度分析(譬如波形測(cè)量、頻譜分析等),甚至可以結(jié)合硬件的升級(jí)實(shí)現(xiàn)波形發(fā)生器、邏輯分析儀、掃頻儀、網(wǎng)絡(luò)分析儀等功能。

          圖四 虛擬儀器計(jì)算機(jī)軟件面板圖

          計(jì)算機(jī)端有關(guān)USB通信的開(kāi)發(fā)不需要了解USB底層驅(qū)動(dòng),并且芯片生產(chǎn)商已經(jīng)以動(dòng)態(tài)鏈接庫(kù)的形式封裝好了面向功能應(yīng)用的API函數(shù),開(kāi)發(fā)者可以在多種高級(jí)語(yǔ)言中調(diào)用,功能強(qiáng)大且靈活方便。CH371動(dòng)態(tài)鏈接庫(kù)提供的API函數(shù)主要包括:設(shè)備管理API、數(shù)據(jù)傳輸API、中斷查詢(xún)API、I2C 操作API和直接控制API。

          其中設(shè)備管理API對(duì)于一般產(chǎn)品開(kāi)發(fā)不需要用到;數(shù)據(jù)傳輸API是最重要最常用的一組函數(shù),他提供了多種數(shù)據(jù)傳輸模式;中斷查詢(xún)API一般用于USB設(shè)備使用到中斷傳輸?shù)膱?chǎng)合,我們這里沒(méi)有用到;I2C 操作API用于對(duì)CH371控制的I2C器件進(jìn)行讀寫(xiě),一般用于存放產(chǎn)品信息,我們這里也沒(méi)有用到;直接控制API是用于CH371直接輸入輸出信號(hào),包括設(shè)置、輸入和輸出三部分組成,我們使用這一組API實(shí)現(xiàn)對(duì)LED進(jìn)行控制。

          在實(shí)際應(yīng)用中筆者使用VB6作為計(jì)算機(jī)端應(yīng)用軟件的開(kāi)發(fā)平臺(tái),首先要將沁恒公司提供的驅(qū)動(dòng)程序、動(dòng)態(tài)鏈接庫(kù)拷貝到計(jì)算機(jī)中,再將動(dòng)態(tài)鏈接庫(kù)的訪問(wèn)入口及函數(shù)定義入口添加至VB6項(xiàng)目中,就是將提供的VB6實(shí)例程序中的module功能模塊添加到自己的工程項(xiàng)目下即可。此時(shí)對(duì)USB設(shè)備的通信編程就幾乎和訪問(wèn)本地硬盤(pán)中的文件差不多了,具體差別可以通過(guò)分析實(shí)例程序的句法來(lái)解決。下面給出計(jì)算機(jī)接收與發(fā)送數(shù)據(jù)的相關(guān)程序。

          Option Explicit ' 變量定義

          Dim myReq As DEMO_REQ

          Dim mOpen As Integer

          Private Sub Form_Load( ) ' 窗口加載事件

          Dim mLength As Long

          mIndex = 0

          mOpen = CH371OpenDevice(mIndex) ' 窗體加載時(shí)打開(kāi)設(shè)備

          If mOpen = -1 Then

          MsgBox 無(wú)法打開(kāi)CH371設(shè)備 ' 加載失敗提示

          End If

          myReq.mCommand = HFF ' 用戶(hù)定義命令

          myReq.mBuffer(0) = H11 ' 用戶(hù)定義數(shù)據(jù)

          myReq.mBuffer(1) = H22 ' 用戶(hù)定義數(shù)據(jù)

          mLength = Len(myReq)

          CH371WriteData(mIndex, myReq, mLength) ' 通過(guò)CH371發(fā)送命令數(shù)據(jù)

          ……

          CH371ReadData(mIndex, myReq, mLength) ' 通過(guò)CH371接收應(yīng)答數(shù)據(jù)

          ……

          End Sub

          四、結(jié)束語(yǔ)

          使用CH371設(shè)計(jì)的USB接口的虛擬示波器目前已完成基本功能的驗(yàn)證,正在后期完善中,而且可以推出面向多種應(yīng)用的不同級(jí)別的系列產(chǎn)品。實(shí)踐表明其技術(shù)性能良好,功能強(qiáng)大、體積小巧、使用簡(jiǎn)便、價(jià)格低廉,是廣大電子愛(ài)好者、開(kāi)發(fā)者的有力助手。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();