![基于CH371的USB接口虛擬示波器設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/f8d4fb3b-16f4-4b80-a596-cf7810130e8b/f8d4fb3b-16f4-4b80-a596-cf7810130e8b1.gif)
![基于CH371的USB接口虛擬示波器設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/f8d4fb3b-16f4-4b80-a596-cf7810130e8b/f8d4fb3b-16f4-4b80-a596-cf7810130e8b2.gif)
![基于CH371的USB接口虛擬示波器設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/f8d4fb3b-16f4-4b80-a596-cf7810130e8b/f8d4fb3b-16f4-4b80-a596-cf7810130e8b3.gif)
![基于CH371的USB接口虛擬示波器設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/f8d4fb3b-16f4-4b80-a596-cf7810130e8b/f8d4fb3b-16f4-4b80-a596-cf7810130e8b4.gif)
![基于CH371的USB接口虛擬示波器設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/f8d4fb3b-16f4-4b80-a596-cf7810130e8b/f8d4fb3b-16f4-4b80-a596-cf7810130e8b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于CH371的USB接口虛擬示波器設(shè)計(jì) 摘要:本文介紹一款USB接口的虛擬示波器的設(shè)計(jì)方案,重點(diǎn)介紹了USB總線接口芯片CH371的原理及應(yīng)用,降低了USB系統(tǒng)開發(fā)的門檻,并達(dá)到令人滿意的效果。關(guān)鍵詞:USB接口,虛擬示波器,CH371,高速數(shù)據(jù)采集一、引言對(duì)于學(xué)校教學(xué)實(shí)驗(yàn)以及某些特定需求來(lái)說(shuō),目前市場(chǎng)上的模擬及數(shù)字示波器也許并不適用,價(jià)格高昂、體積較大且很多專業(yè)功能并不實(shí)用。而現(xiàn)在電腦的普及程度也達(dá)到了相當(dāng)?shù)囊?guī)模,利用電腦以及附加的數(shù)采模塊實(shí)現(xiàn)一個(gè)
2、靈活便捷的虛擬示波器能夠滿足大多數(shù)的工作、學(xué)習(xí)和開發(fā)需要,并且可以通過(guò)較低代價(jià)的硬件和軟件升級(jí)實(shí)現(xiàn)相當(dāng)復(fù)雜的信號(hào)處理功能,能夠以較低的成本、較小的體積實(shí)現(xiàn)配置靈活的智能儀器組合;完全可以與便攜電腦結(jié)合,構(gòu)成便攜式檢測(cè)維修工作站。目前已經(jīng)有計(jì)算機(jī)并口通信的數(shù)據(jù)采集器,但是USB的應(yīng)用日趨廣泛和深入,如果將USB功能融合在里面則可以實(shí)現(xiàn)更高的數(shù)據(jù)傳輸率、更方便的使用方式,更為優(yōu)越的體現(xiàn)出的性能。二、硬件設(shè)計(jì)此虛擬示波器的數(shù)據(jù)采集器由以下功能模塊組成:前端信號(hào)變換模塊、高速模數(shù)轉(zhuǎn)換模塊、高速數(shù)據(jù)緩沖模塊、單片機(jī)控制模塊、USB接口模塊和電源模塊。前端信號(hào)變換、高速數(shù)據(jù)采集有成熟的方案并且可根據(jù)需要的
3、指標(biāo),譬如采樣率、量程控制、采樣深度等進(jìn)行設(shè)計(jì),我們這里主要討論USB接口部分的開發(fā)。USB接口的開發(fā)以往都是一個(gè)令人頭痛的問題,盡管很多設(shè)計(jì)者向往USB接口高速傳輸、自主供電、即插即用的優(yōu)點(diǎn),但較難逾越它的協(xié)議固件開發(fā)和驅(qū)動(dòng)程序開發(fā)的障礙。在這個(gè)方案里,筆者選用了一款不需要開發(fā)協(xié)議固件和驅(qū)動(dòng)程序的USB總線接口芯片。南京沁恒公司()推出的CH371是一個(gè)USB總線的通用接口芯片,它利用硬件邏輯屏蔽了USB 通訊中的所有協(xié)議,在計(jì)算機(jī)應(yīng)用層與本地端控制器之間提供端對(duì)端的連接?;贑H371,設(shè)計(jì)者不需要了解任何USB協(xié)議、固件程序以及驅(qū)動(dòng)程序,可以輕松地將原來(lái)的并口、串口的產(chǎn)品升級(jí)到USB接口
4、,以較低的風(fēng)險(xiǎn)和成本享用USB接口帶來(lái)的優(yōu)越性。使用時(shí)在本地端,CH371具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,就像操作一般外設(shè)芯片一樣方便地掛接到DSP、MCU等控制器的系統(tǒng)總線上;在計(jì)算機(jī)端,CH371的配套軟件包括通用驅(qū)動(dòng)程序以及應(yīng)用軟件包,提供了簡(jiǎn)潔易用的操作接口,與本地端的單片機(jī)通訊就如同讀寫硬盤中的文件一樣簡(jiǎn)單,開發(fā)者可以使用VB、VC、C+Builder等高級(jí)語(yǔ)言進(jìn)行開發(fā)。一般情況下,基于CH371設(shè)計(jì)USB產(chǎn)品不必考慮USB通訊協(xié)議、固件程序、驅(qū)動(dòng)程序、配置過(guò)程、底層數(shù)據(jù)傳輸過(guò)程。設(shè)計(jì)者所要做的工作與設(shè)計(jì)并口、串口的產(chǎn)品一樣,包括兩件事:一是從計(jì)算機(jī)的應(yīng)用層發(fā)出數(shù)據(jù)
5、傳輸請(qǐng)求并接收應(yīng)答;二是當(dāng)USB 產(chǎn)品的控制器被通知有數(shù)據(jù)傳輸請(qǐng)求時(shí),作出應(yīng)答。同時(shí),CH371在提供了透明的USB協(xié)議的基礎(chǔ)上還提供了I2C器件的直接管理、16個(gè)地址的直接讀寫以及復(fù)位、看門狗等功能,本地端甚至不使用單片機(jī)就可完成簡(jiǎn)單的控制功能,因此具有較強(qiáng)的功能適應(yīng)性,能夠滿足不同場(chǎng)合的需要,有效的降低系統(tǒng)成本。在本系統(tǒng)中使用的是SOP28封裝的產(chǎn)品,他的管腳定義如下表根據(jù)不同的工作方式,芯片的接口類型可以有以下幾種:被動(dòng)并行接口、I2C主接口、主控方式接口。其中被動(dòng)并行接口是最常用的方式,它提供單片機(jī)與計(jì)算機(jī)的連接,CH371作為單片機(jī)的一個(gè)被動(dòng)外設(shè);I2C主接口是CH371在計(jì)算機(jī)端程
6、序的控制下不經(jīng)過(guò)單片機(jī)直接讀寫一個(gè)EEPROM器件(譬如24C04等),經(jīng)常用于USB外設(shè)的產(chǎn)品信息紀(jì)錄;主控方式接口是不使用單片機(jī),由計(jì)算機(jī)端程序直接控制CH371提供的16個(gè)地址的8位數(shù)據(jù)讀寫或者是十幾根IO口線,此方式主要用于完成相對(duì)簡(jiǎn)單的外部控制任務(wù)。這幾種接口方式并非完全對(duì)立的,可以根據(jù)需要靈活配置。在此虛擬示波器中則將其使用為單片機(jī)的一個(gè)外設(shè)器件,同時(shí)將A3A0用于主控方式由計(jì)算機(jī)控制四只LED。單片機(jī)對(duì)于CH371的控制依靠對(duì)其內(nèi)部的16個(gè)寄存器的操作來(lái)實(shí)現(xiàn)。這16個(gè)寄存器的地址有兩種定義方式。一種是上電復(fù)位后默認(rèn)為直接地址方式,A3A0四個(gè)管腳為寄存器地址,這種方式較為簡(jiǎn)單,但
7、是需要使用單片機(jī)較多的IO口資源;另一種是當(dāng)CH371檢測(cè)到ALE腳上的上升沿信號(hào)后,切換到復(fù)用地址方式,寄存器地址由數(shù)據(jù)總線的D3D0來(lái)控制,根據(jù)ALE的跳變來(lái)判斷是寄存器操作還是數(shù)據(jù)讀寫。在此設(shè)計(jì)中由于大容量數(shù)據(jù)緩沖需要使用到74373作為地址鎖存,所以即使使用直接地址方式也無(wú)需多占用單片機(jī)資源,但是為了將A3A0節(jié)省出來(lái)驅(qū)動(dòng)LED所以選用復(fù)用地址方式。根據(jù)系統(tǒng)的要求我們?cè)O(shè)計(jì)硬件如下。USB接口提供數(shù)據(jù)交換及電源供應(yīng)(經(jīng)適當(dāng)變換后供高速AD使用),CH371在12M晶振下倍頻工作,提供與單片機(jī)接口的同時(shí)提供看門狗復(fù)位輸出功能,I2C主控功能沒有使用,A3A0可以由計(jì)算控制驅(qū)動(dòng)4只LED作為
8、工作顯示信號(hào)。單片機(jī)89C52的P1口組用于控制數(shù)據(jù)采集模塊,包括量程轉(zhuǎn)換控制、AD觸發(fā)信號(hào)、采集數(shù)據(jù)溢出信號(hào)等;高速緩存62256通過(guò)低功耗的CPLD控制存放高速AD采集的結(jié)果,單片機(jī)定時(shí)將其中數(shù)據(jù)讀出經(jīng)CH371傳送到計(jì)算機(jī)的數(shù)據(jù)顯示和分析軟件,實(shí)現(xiàn)虛擬示波器功能。單片機(jī)、CH371和RAM部分原理圖圖三 單片機(jī)、CH371和RAM部分原理圖三、軟件設(shè)計(jì)單片機(jī)端軟件單片機(jī)端軟件主 要完成數(shù)據(jù)采集控制、數(shù)據(jù)報(bào)告這兩個(gè)功能。其中數(shù)據(jù)采集控制根據(jù)計(jì)算機(jī)端軟件設(shè)定的增益、時(shí)基、
9、觸發(fā)等參數(shù)控制數(shù)據(jù)采集模塊,這里面要用到計(jì)算機(jī)向單片機(jī)發(fā)送少量的控制信息;數(shù)據(jù)報(bào)告功能則需要單片機(jī)將緩存中的一個(gè)采集周期的所有數(shù)據(jù)傳送給計(jì)算機(jī)端軟件,這屬于大批量數(shù)據(jù)的傳輸。我們把介紹的重點(diǎn)放在單片機(jī)與計(jì)算機(jī)的通信上面。單片機(jī)與計(jì)算機(jī)通信是通過(guò)對(duì)CH371的寄存器操作實(shí)現(xiàn)的,有關(guān)其寄存器定義的具體情況請(qǐng)參考數(shù)據(jù)手冊(cè)。在應(yīng)用中需要注意的是,CH371提供的單片機(jī)接收緩沖區(qū)為8個(gè)字節(jié),多于8個(gè)字節(jié)的計(jì)算機(jī)下傳數(shù)據(jù)被切分;而單片機(jī)的發(fā)送緩沖區(qū)也是8個(gè)字節(jié),多于8個(gè)字節(jié)的上傳數(shù)據(jù)需要分多次上傳。另外,CH371的中斷包括了上傳及接受成功,中斷發(fā)生后具體的情況需要由傳輸狀態(tài)寄存器來(lái)辨別;同時(shí)其中斷電平是
10、單穩(wěn)態(tài)的,一個(gè)事件發(fā)生后中斷信號(hào)跳變,但僅維持一個(gè)短暫的脈沖便恢復(fù),這是為了配合不同速度的處理器而作的處理。單片機(jī)與計(jì)算機(jī)的USB通信主要功能子程序示例(請(qǐng)?jiān)谑褂脮r(shí)加入CH371的相應(yīng)寄存器的地址定義)CH371初始化程序*void ch371_init() CH371_INT_SET=0; 中斷數(shù)據(jù)設(shè)定寄存器的地址偏移 CH371_LENGTH=0X0F; 上傳數(shù)據(jù)長(zhǎng)度寄存器為15,表示暫時(shí)沒有數(shù)據(jù)上傳save_length=0; 存下傳數(shù)據(jù)長(zhǎng)度IT0=1; 部信號(hào)為下降沿觸發(fā)IE0=0; 中斷標(biāo)志PX0=1; 高優(yōu)先級(jí)EX0=1; 許中斷上傳數(shù)據(jù)子程序*void ch371_upload(
11、unsigned char len) 數(shù)傳入數(shù)據(jù)長(zhǎng)度 unsigned char i;unsigned char *up_buf;unsigned char *ch371_buf;if(len!=0)up_buf=&ret_buffer; 向數(shù)據(jù)的地址 ch371_buf=&CH371_BUFFER; 向數(shù)據(jù)緩沖區(qū)for(i=0;i<LEN;I+)*ch371_buf=*up_buf; 入上傳數(shù)據(jù)緩沖區(qū)ch371_buf+; up_buf+;CH371_LENGTH=len; 入本次數(shù)據(jù)的長(zhǎng)度中斷子程序 使用中斷0 寄存器組2*void ch371_inter() int
12、errupt 0 using 2unsigned char *down_buf;unsigned char *ch371_buf;unsigned char i;IE0=0; 中斷標(biāo)志if( (CH371_STATUS&0x01) =0 ) 取狀態(tài)信息寄存器,判斷數(shù)據(jù)傳輸狀態(tài)save_length=CH371_LENGTH; 持下傳數(shù)據(jù)長(zhǎng)度down_buf=&save_buffer;ch371_buf=&CH371_BUFFER;for(i=0;i<SAVE_LENGTH;+I) href="file:/判" file:/判斷下傳數(shù)據(jù)長(zhǎng)度并處理
13、 *down_buf=*ch371_buf; 取一字節(jié)的下傳數(shù)據(jù)down_buf+; ch371_buf+;else CH371_LENGTH=0x0f; 上傳數(shù)據(jù)長(zhǎng)度寄存器為15計(jì)算機(jī)端軟件計(jì)算機(jī)端軟件主要功能是模擬一個(gè)示波器的界面,實(shí)現(xiàn)數(shù)據(jù)的顯示以及滿足不同需要的分析功能,同時(shí)完成對(duì)數(shù)據(jù)采集硬件的參數(shù)設(shè)定。在這個(gè)設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了基本的功能,虛擬示波器的界面如下圖。進(jìn)一步開發(fā)后可以實(shí)現(xiàn)量程的自動(dòng)轉(zhuǎn)換、數(shù)據(jù)的深度分析(譬如波形測(cè)量、頻譜分析等),甚至可以結(jié)合硬件的升級(jí)實(shí)現(xiàn)波形發(fā)生器、邏輯分析儀、掃頻儀、網(wǎng)絡(luò)分析儀等功能。圖四 計(jì)算機(jī)軟件面板圖
14、160; 計(jì)算機(jī)端有關(guān)USB通信的開發(fā)不需要了解USB底層驅(qū)動(dòng),并且芯片生產(chǎn)商已經(jīng)以動(dòng)態(tài)鏈接庫(kù)的形式封裝好了面向功能應(yīng)用的API函數(shù),開發(fā)者可以在多種高級(jí)語(yǔ)言中調(diào)用,功能強(qiáng)大且靈活方便。CH371動(dòng)態(tài)鏈接庫(kù)提供的API函數(shù)主要包括:設(shè)備管理API、數(shù)據(jù)傳輸API、中斷查詢API、I2C 操作API和直接控制API。其中設(shè)備管理API對(duì)于一般產(chǎn)品開發(fā)不需要用到;數(shù)據(jù)傳輸API是最重要最常用的一組函數(shù),他提供了多種數(shù)據(jù)傳輸模式;中斷查詢API一般用于USB設(shè)備使用到中斷傳輸?shù)膱?chǎng)合,我們這里沒有用到;I2C 操作API用于對(duì)CH371控制的I2C器件進(jìn)行讀寫,一般
15、用于存放產(chǎn)品信息,我們這里也沒有用到;直接控制API是用于CH371直接輸入輸出信號(hào),包括設(shè)置、輸入和輸出三部分組成,我們使用這一組API實(shí)現(xiàn)對(duì)LED進(jìn)行控制。在實(shí)際應(yīng)用中筆者使用VB6作為計(jì)算機(jī)端應(yīng)用軟件的開發(fā)平臺(tái),首先要將沁恒公司提供的驅(qū)動(dòng)程序、動(dòng)態(tài)鏈接庫(kù)拷貝到計(jì)算機(jī)中,再將動(dòng)態(tài)鏈接庫(kù)的訪問入口及函數(shù)定義入口添加至VB6項(xiàng)目中,就是將提供的VB6實(shí)例程序中的module功能模塊添加到自己的工程項(xiàng)目下即可。此時(shí)對(duì)USB設(shè)備的通信編程就幾乎和訪問本地硬盤中的文件差不多了,具體差別可以通過(guò)分析實(shí)例程序的句法來(lái)解決。下面給出計(jì)算機(jī)接收與發(fā)送數(shù)據(jù)的相關(guān)程序。Option Explicit 變量定義D
16、im myReq As DEMO_REQDim mOpen As IntegerPrivate Sub Form_Load( ) 窗口加載事件Dim mLength As LongmIndex = 0mOpen = CH371OpenDevice(mIndex) 窗體加載時(shí)打開設(shè)備If mOpen = -1 ThenMsgBox "無(wú)法打開CH371設(shè)備" 加載失敗提示 End IfmyReq.mCommand = &HFF 用戶定義命令myReq.mBuffer(0) = &H11 用戶定義數(shù)據(jù)myReq.mBuffer(1) = &H22 用戶定義數(shù)據(jù)mLength = Len(m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公共衛(wèi)生檢測(cè)合作協(xié)議
- 2025年店面資產(chǎn)抵押合同協(xié)議
- 2025年企業(yè)項(xiàng)目轉(zhuǎn)讓中介合同模板
- 2025年單元式幕墻設(shè)計(jì)與施工合同模板
- 2025年住宅建筑工程合同協(xié)議書范例
- 2025年醫(yī)療設(shè)備維修服務(wù)合同協(xié)議書范本
- 2025年通信運(yùn)營(yíng)商策劃策略與業(yè)務(wù)增長(zhǎng)合作協(xié)議書
- 2025年企業(yè)集團(tuán)統(tǒng)一采購(gòu)生產(chǎn)設(shè)備的策劃協(xié)議
- 2025年房屋貸款償還策劃協(xié)議
- 2025年信用保證協(xié)議示例
- 小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)口算題
- 2024-2025學(xué)年第二學(xué)期(2025春季學(xué)期)學(xué)校工作計(jì)劃(附2月-6月安排表)
- 2025年中國(guó)山泉水市場(chǎng)前景預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 第04課 輸入輸出與計(jì)算(說(shuō)課稿)2024-2025學(xué)年六年級(jí)上冊(cè)信息技術(shù)人教版
- 部編五下語(yǔ)文教學(xué)多元評(píng)價(jià)方案
- GB/T 18109-2024凍魚
- 《榜樣9》觀后感心得體會(huì)二
- 《西安交通大學(xué)》課件
- 設(shè)備維修績(jī)效考核方案
- 小學(xué)二年級(jí)數(shù)學(xué)計(jì)算題共4165題
- 一氧化碳中毒培訓(xùn)
評(píng)論
0/150
提交評(píng)論