賈佳
(西安航空職業(yè)技術(shù)學(xué)院 電子工程系,陜西 西安 710089)
虛擬儀器是電子測(cè)量技術(shù)與計(jì)算機(jī)技術(shù)深層次結(jié)合的產(chǎn)物,通過(guò)應(yīng)用程序?qū)⑼ㄓ糜?jì)算機(jī)與功能化模塊硬件結(jié)合起來(lái),充分利用計(jì)算機(jī)系統(tǒng)強(qiáng)大的數(shù)據(jù)處理能力,在基本硬件的支持下,利用軟件完成數(shù)據(jù)的采集、控制、數(shù)據(jù)分析和處理以及測(cè)試結(jié)果的顯示等,通過(guò)軟、硬件的結(jié)合來(lái)實(shí)現(xiàn)傳統(tǒng)儀器的各種功能,大大突破了傳統(tǒng)儀器在數(shù)據(jù)處理、顯示、傳送、存儲(chǔ)等方面的限制,使用戶可以方便地對(duì)儀器進(jìn)行維護(hù)、擴(kuò)展和升級(jí)。用戶通過(guò)友好的圖形界面來(lái)操作虛擬儀器的面板就如同操作真實(shí)儀器一樣方便[1-2]。
USB接口是一種總線接口標(biāo)準(zhǔn),具有數(shù)據(jù)傳輸速度快、即插即用、兼容性強(qiáng)等優(yōu)點(diǎn),在數(shù)據(jù)傳輸、信號(hào)采集等領(lǐng)域得到廣泛應(yīng)用[3]。
文中通過(guò)PIC18F258單片機(jī)實(shí)現(xiàn)了基于虛擬儀器的USB接口數(shù)據(jù)傳輸采集設(shè)備,內(nèi)容包括硬件電路的設(shè)計(jì)和上位機(jī)虛擬儀器編程,相當(dāng)于一個(gè)高速數(shù)據(jù)采集系統(tǒng)再加上實(shí)現(xiàn)傳統(tǒng)儀器設(shè)備的一些基本功能,并且采用USB接口傳輸數(shù)據(jù)給計(jì)算機(jī)來(lái)顯示和處理,使其具有了良好的人機(jī)在線操作接口,熱插拔即插即用性能和基于模塊的系統(tǒng)自組織能力,此外,系統(tǒng)規(guī)模根據(jù)不同的應(yīng)用需求具有可裁減性。
在設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)時(shí),采用內(nèi)嵌CAN總線控制器的Microchip公司PIC18F258單片機(jī)作為核心芯片[4],通過(guò)與PC機(jī)USB接口連接實(shí)現(xiàn)數(shù)據(jù)的傳輸與采集。用戶使用上位機(jī)軟件向PC機(jī)的USB端口發(fā)送數(shù)據(jù),包括CAN總線控制數(shù)據(jù)或者D/A轉(zhuǎn)換數(shù)據(jù),數(shù)據(jù)采集設(shè)備通過(guò)USB接口模塊進(jìn)行接收并傳送至PIC單片機(jī)內(nèi)部進(jìn)行處理,最后發(fā)送至CAN總線控制模塊和D/A轉(zhuǎn)換模塊完成外電路控制。同時(shí),數(shù)據(jù)采集設(shè)備將溫度采集模塊讀取的溫度數(shù)據(jù)通過(guò)USB接口模塊實(shí)時(shí)傳送至PC機(jī)的上位機(jī)面板,用戶可以調(diào)用溫度監(jiān)控面板進(jìn)行查詢(xún)。此外,該數(shù)據(jù)采集設(shè)備也實(shí)時(shí)監(jiān)聽(tīng)CAN總線狀態(tài),并將CAN總線數(shù)據(jù)傳送至上位機(jī)CAN總線監(jiān)控面板。系統(tǒng)結(jié)構(gòu)如圖1所示。
硬件原理圖如圖2所示。主要包括USB接口電路,CAN總線控制電路、D/A轉(zhuǎn)換電路和溫度采集電路4部分。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
與計(jì)算機(jī)連接實(shí)現(xiàn)USB接口通信功能的電路主要由CP2101芯片完成。通過(guò)PIC單片機(jī)的USART串口引腳RC6(TX)和 RC7(RX)與 CP2101連接進(jìn)行數(shù)據(jù)交換。CP2101芯片是美國(guó)SILICON公司推出的USB-UART橋接電路,CP2101通過(guò)驅(qū)動(dòng)程序?qū)⒂?jì)算機(jī)的USB口虛擬成COM口以達(dá)到擴(kuò)展的目的,COM口使用運(yùn)行在計(jì)算機(jī)上的應(yīng)用軟件以訪問(wèn)一個(gè)標(biāo)準(zhǔn)硬件COM口的方式訪問(wèn)基于CP2101的器件,而計(jì)算機(jī)與CP2101間的數(shù)據(jù)傳輸是通過(guò)USB接口完成的。
圖2 硬件電路圖Fig.2 Hardware circuit diagram
由ADuM1100高速數(shù)字隔離器、MCP2551高速CAN收發(fā)器構(gòu)成。ADuM1100高速數(shù)字隔離器支持100 Mbps數(shù)據(jù)傳輸速率并且可以采用3.0~5.5 V單電源供電。MCP2551是一種可容錯(cuò)的高速CAN收發(fā)器,可作為CAN協(xié)議控制器和系統(tǒng)物理總線的接口。該器件具有差分發(fā)射和接收能力,可將許多節(jié)點(diǎn)與同一網(wǎng)絡(luò)相連接。
D/A轉(zhuǎn)換器使用AD公司的12位AD7243芯片,它具有300 kHz的轉(zhuǎn)換速率,3種可選擇的輸出電壓范圍,分別是0~+10 V、0~+5 V 和-5~+5 V,采用串行端口通訊。 根據(jù)系統(tǒng)需求,設(shè)置AD7243電壓輸出范圍為±5 V,將AD7243芯片的ROFS引腳與REFIN引腳相連實(shí)現(xiàn)。在AD7243芯片的輸出端還接有OP07放大器,用于調(diào)整輸出電壓到±10 V,可用于控制電機(jī)正反方向和調(diào)節(jié)轉(zhuǎn)速。
采用一線式數(shù)字溫度傳感器DS18B20,溫度測(cè)量范圍為-55~125℃,測(cè)溫分辨率可達(dá) 0.5 ℃。
系統(tǒng)上位機(jī)采用虛擬儀器軟件LabVIEW進(jìn)行開(kāi)發(fā),完成數(shù)據(jù)的接收與發(fā)送,并進(jìn)行相應(yīng)的處理及圖像顯示。Lab VIEW是NI公司開(kāi)發(fā)的虛擬儀器應(yīng)用程序編程環(huán)境,是一種圖形編程語(yǔ)言,特別適合測(cè)控應(yīng)用軟件的開(kāi)發(fā)。具有所有通用編程環(huán)境的標(biāo)準(zhǔn)功能,如數(shù)據(jù)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和事件處理。其內(nèi)置各種專(zhuān)業(yè)工具軟件包可滿足工程應(yīng)用開(kāi)發(fā)的需要[5]。
LabVIEW程序開(kāi)發(fā)主要包括3方面內(nèi)容:分別是數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊和監(jiān)控面板主程序。其中,數(shù)據(jù)接收和發(fā)送模塊作為子VI供各監(jiān)控面板主程序調(diào)用。
由于CP2101通過(guò)驅(qū)動(dòng)程序?qū)⒂?jì)算機(jī)的USB口虛擬成COM口,因此,數(shù)據(jù)發(fā)送模塊使用VISA Write節(jié)點(diǎn)予以實(shí)現(xiàn),并將該發(fā)送模塊作為子VI調(diào)用。在LabVIEW平臺(tái)控制的串行通信過(guò)程中,數(shù)據(jù)格式是以字符串的格式組成的,字符串中的每個(gè)字符實(shí)際上對(duì)應(yīng)我們熟悉的ASCII字符,即計(jì)算機(jī)能夠識(shí)別的數(shù)據(jù)代碼是ASCII代碼,所以在傳送到串口發(fā)送數(shù)據(jù)之前要經(jīng)過(guò)代碼轉(zhuǎn)換,這就意味著以十進(jìn)制、二進(jìn)制、十六進(jìn)制表示的數(shù)據(jù)必須轉(zhuǎn)化為ASCII字符串才能進(jìn)行傳送和接收[6]。數(shù)據(jù)發(fā)送模塊如圖3所示,其中,以0x39作為與單片機(jī)的握手信號(hào),與需要發(fā)送的數(shù)據(jù)以PIC18F258單片機(jī)8位數(shù)據(jù)格式組合發(fā)送。
圖3 數(shù)據(jù)發(fā)送模塊程序Fig.3 Data send program
如果發(fā)送的數(shù)據(jù)超過(guò)一個(gè)字節(jié)長(zhǎng)度,如控制12位D/A轉(zhuǎn)換芯片AD7243,可以分為兩個(gè)字節(jié)調(diào)用兩次發(fā)送模塊進(jìn)行數(shù)據(jù)傳送。
數(shù)據(jù)接收模塊使用VISA Read節(jié)點(diǎn)讀取數(shù)據(jù),如圖4所示,從緩沖器接收到的數(shù)據(jù)是ASCII字符串,經(jīng)過(guò)ASCII字符串轉(zhuǎn)換為十六進(jìn)制字節(jié)數(shù)組的模塊處理后,最終得到正確的數(shù)據(jù)。其中,共接收4字節(jié)數(shù)據(jù),并以0x39作為握手信號(hào),包含兩字節(jié)溫度數(shù)據(jù),及一個(gè)字節(jié)的有用信息數(shù)據(jù)。
圖4 數(shù)據(jù)接收模塊程序Fig.4 Data receive program
用戶可以根據(jù)自己需要,選用數(shù)據(jù)采集系統(tǒng)的對(duì)應(yīng)功能,編寫(xiě)PIC單片機(jī)的CAN總線、DS18B20溫度采集和D/A轉(zhuǎn)換芯片AD7243的控制程序,并調(diào)用數(shù)據(jù)發(fā)送和接收模塊開(kāi)發(fā)相應(yīng)的上位機(jī)LabVIEW控制面板,完成數(shù)據(jù)的采集與控制。圖5和圖6分別為設(shè)計(jì)的CAN總線監(jiān)控面板和溫度監(jiān)控面板。
圖5 CAN總線監(jiān)控面板Fig.5 CAN bus control panel
圖6 溫度監(jiān)控面板Fig.6 Temperature control panel
筆者提出了基于Microchip公司的PIC18F258單片機(jī)設(shè)計(jì)的具有USB接口的虛擬儀器數(shù)據(jù)采集設(shè)備,給出了具體的設(shè)計(jì)方案及測(cè)試結(jié)果。經(jīng)測(cè)試,數(shù)據(jù)傳輸穩(wěn)定,運(yùn)行可靠,安裝方便,支持即插即用,為工程人員在現(xiàn)場(chǎng)設(shè)備調(diào)試提供了方便。
[1]雷振山.LabVIEW8.2基礎(chǔ)教程[M].中國(guó)鐵道出版社,2010.
[2]汪敏生.LabVIEW基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2002.
[3]石磊.USB-CAN總線通信協(xié)議轉(zhuǎn)換器[J].自動(dòng)化技術(shù)與應(yīng)用,2004 ,23(6):33-36.SHI Lei.Communication protocol convertor for USB-CAN bus[J].Techniques of Automation and Applications,2004,23(6):33-36.
[4]劉和平,劉林,于紅欣,等.PIC18FXXX單片機(jī)原理及接口程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004.
[5]吳懷超,周勇.基于虛擬儀器和MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)[J].化工自動(dòng)化及儀表,2011,38(1):52-55.WU Huai-chao,ZHOU Yong.Development of data acquisition system based on virtual instrument and MSP430 single-chip microprocessor[J].Controland Instrumentsin Chemical Industry,2011,38(1):52-55.
[6]閻世棟.在虛擬儀器LabVIEW平臺(tái)中串行通信模塊的應(yīng)用[J].國(guó)外電子測(cè)量技術(shù),2004(增刊):39-40.YAN Shi-dong.Application of series communication module in visual instruments LabVIEW platform[J].Foreign Electronic Measurement Technology,2004(Supplement):39-40.