虛擬示波器的數(shù)據(jù)采集器解析方案
一、引言
本文引用地址:http://m.butianyuan.cn/article/171490.htm對于學(xué)校教學(xué)實(shí)驗(yàn)以及某些特定需求來說,目前市場上的模擬及數(shù)字示波器也許并不適用,價格高昂、體積較大且很多專業(yè)功能并不實(shí)用。而現(xiàn)在電腦的普及程度也達(dá)到了相當(dāng)?shù)囊?guī)模,利用電腦以及附加的數(shù)采模塊實(shí)現(xiàn)一個靈活便捷的虛擬示波器能夠滿足大多數(shù)的工作、學(xué)習(xí)和開發(fā)需要,并且可以通過較低代價的硬件和軟件升級實(shí)現(xiàn)相當(dāng)復(fù)雜的信號處理功能,能夠以較低的成本、較小的體積實(shí)現(xiàn)配置靈活的智能儀器組合;完全可以與便攜電腦結(jié)合,構(gòu)成便攜式檢測維修工作站。目前已經(jīng)有計(jì)算機(jī)并口通信的數(shù)據(jù)采集器,但是USB的應(yīng)用日趨廣泛和深入,如果將USB功能融合在里面則可以實(shí)現(xiàn)更高的數(shù)據(jù)傳輸率、更方便的使用方式,更為優(yōu)越的體現(xiàn)出虛擬儀器的性能。
二、硬件設(shè)計(jì)
此虛擬示波器的數(shù)據(jù)采集器由以下功能模塊組成:前端信號變換模塊、高速模數(shù)轉(zhuǎn)換模塊、高速數(shù)據(jù)緩沖模塊、單片機(jī)控制模塊、USB接口模塊和電源模塊。前端信號變換、高速數(shù)據(jù)采集有成熟的方案并且可根據(jù)需要的指標(biāo),譬如采樣率、量程控制、采樣深度等進(jìn)行設(shè)計(jì),我們這里主要討論USB接口部分的開發(fā)。
USB接口的開發(fā)以往都是一個令人頭痛的問題,盡管很多設(shè)計(jì)者向往USB接口高速傳輸、自主供電、即插即用的優(yōu)點(diǎn),但較難逾越它的協(xié)議固件開發(fā)和驅(qū)動程序開發(fā)的障礙。在這個方案里,筆者選用了一款不需要開發(fā)協(xié)議固件和驅(qū)動程序的USB總線接口芯片。
南京沁恒公司推出的CH371是一個USB總線的通用接口芯片,它利用硬件邏輯屏蔽了USB 通訊中的所有協(xié)議,在計(jì)算機(jī)應(yīng)用層與本地端控制器之間提供端對端的連接?;贑H371,設(shè)計(jì)者不需要了解任何USB協(xié)議、固件程序以及驅(qū)動程序,可以輕松地將原來的并口、串口的產(chǎn)品升級到USB接口,以較低的風(fēng)險(xiǎn)和成本享用USB接口帶來的優(yōu)越性。
使用時在本地端,CH371具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,就像操作一般外設(shè)芯片一樣方便地掛接到DSP、MCU等控制器的系統(tǒng)總線上;在計(jì)算機(jī)端,CH371的配套軟件包括通用驅(qū)動程序以及應(yīng)用軟件包,提供了簡潔易用的操作接口,與本地端的單片機(jī)通訊就如同讀寫硬盤中的文件一樣簡單,開發(fā)者可以使用VB、VC、C++Builder等高級語言進(jìn)行開發(fā)。一般情況下,基于CH371設(shè)計(jì)USB產(chǎn)品不必考慮USB通訊協(xié)議、固件程序、驅(qū)動程序、配置過程、底層數(shù)據(jù)傳輸過程。設(shè)計(jì)者所要做的工作與設(shè)計(jì)并口、串口的產(chǎn)品一樣,包括兩件事:一是從計(jì)算機(jī)的應(yīng)用層發(fā)出數(shù)據(jù)傳輸請求并接收應(yīng)答;二是當(dāng)USB 產(chǎn)品的控制器被通知有數(shù)據(jù)傳輸請求時,作出應(yīng)答。
同時,CH371在提供了透明的USB協(xié)議的基礎(chǔ)上還提供了I2C器件的直接管理、16個地址的直接讀寫以及復(fù)位、看門狗等功能,本地端甚至不使用單片機(jī)就可完成簡單的控制功能,因此具有較強(qiáng)的功能適應(yīng)性,能夠滿足不同場合的需要,有效的降低系統(tǒng)成本。
在本系統(tǒng)中使用的是SOP28封裝的產(chǎn)品,他的管腳定義如下表:
根據(jù)不同的工作方式,芯片的接口類型可以有以下幾種:被動并行接口、I2C主接口、主控方式接口。其中被動并行接口是最常用的方式,它提供單片機(jī)與計(jì)算機(jī)的連接,CH371作為單片機(jī)的一個被動外設(shè);I2C主接口是CH371在計(jì)算機(jī)端程序的控制下不經(jīng)過單片機(jī)直接讀寫一個EEPROM器件(譬如24C04等),經(jīng)常用于USB外設(shè)的產(chǎn)品信息紀(jì)錄;主控方式接口是不使用單片機(jī),由計(jì)算機(jī)端程序直接控制CH371提供的16個地址的8位數(shù)據(jù)讀寫或者是十幾根IO口線,此方式主要用于完成相對簡單的外部控制任務(wù)。這幾種接口方式并非完全對立的,可以根據(jù)需要靈活配置。在此虛擬示波器中則將其使用為單片機(jī)的一個外設(shè)器件,同時將A3~A0用于主控方式由計(jì)算機(jī)控制四只LED。
單片機(jī)對于CH371的控制依靠對其內(nèi)部的16個寄存器的操作來實(shí)現(xiàn)。這16個寄存器的地址有兩種定義方式。一種是上電復(fù)位后默認(rèn)為直接地址方式,A3~A0四個管腳為寄存器地址,這種方式較為簡單,但是需要使用單片機(jī)較多的IO口資源;另一種是當(dāng)CH371檢測到ALE腳上的上升沿信號后,切換到復(fù)用地址方式,寄存器地址由數(shù)據(jù)總線的D3~D0來控制,根據(jù)ALE的跳變來判斷是寄存器操作還是數(shù)據(jù)讀寫。在此設(shè)計(jì)中由于大容量數(shù)據(jù)緩沖需要使用到74373作為地址鎖存,所以即使使用直接地址方式也無需多占用單片機(jī)資源,但是為了將A3~A0節(jié)省出來驅(qū)動LED所以選用復(fù)用地址方式。
根據(jù)系統(tǒng)的要求我們設(shè)計(jì)硬件如下。
USB接口提供數(shù)據(jù)交換及電源供應(yīng)(經(jīng)適當(dāng)變換后供高速AD使用),CH371在12M晶振下倍頻工作,提供與單片機(jī)接口的同時提供看門狗復(fù)位輸出功能,I2C主控功能沒有使用,A3~A0可以由計(jì)算控制驅(qū)動4只LED作為工作顯示信號。單片機(jī)89C52的P1口組用于控制數(shù)據(jù)采集模塊,包括量程轉(zhuǎn)換控制、AD觸發(fā)信號、采集數(shù)據(jù)溢出信號等;高速緩存62256通過低功耗的CPLD控制存放高速AD采集的結(jié)果,單片機(jī)定時將其中數(shù)據(jù)讀出經(jīng)CH371傳送到計(jì)算機(jī)的數(shù)據(jù)顯示和分析軟件,實(shí)現(xiàn)虛擬示波器功能。單片機(jī)、CH371和RAM部分原理圖如下:
圖三 單片機(jī)、CH371和RAM部分原理圖
c++相關(guān)文章:c++教程
晶振相關(guān)文章:晶振原理
評論