《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于LabVIEW NI-VISA實現(xiàn)PC與C8051F320的USB數(shù)據(jù)通信
基于LabVIEW NI-VISA實現(xiàn)PC與C8051F320的USB數(shù)據(jù)通信
來源:電子技術(shù)應(yīng)用2013年第8期
段晉軍,位恒曦,常曉明
太原理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原030024
摘要: 針對傳統(tǒng)USB系統(tǒng)開發(fā)難度較大的問題,介紹了一種基于NI-VISA實現(xiàn)PC與USB裸設(shè)備——C8051F320單片機(jī)的USB通信系統(tǒng)的實現(xiàn)方案。該方案對開發(fā)PC外圍USB設(shè)備以及基于USB的應(yīng)用系統(tǒng)設(shè)計具有一定參考意義。
中圖分類號: TN919
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)08-0017-03
Realization of USB communication between PC and C8051F320 based on LabVIEW NI-VISA
Duan Jinjun,Wei Hengxi,Chang Xiaoming
College of Computer Science and Technology,Taiyuan University of Technology,Taiyuan 030024,China
Abstract: Tradional USB system has much difficulty in development.For this reason,an USB communication solution between PC and USB RAW device C8051F320 MCU based on LabVIEW NI-VISA is introduced in this paper,which can be a reference for the development of USB device and the design of USB application system.
Key words : USB;LabVIEW;NI-VISA;C8051F320

    隨著當(dāng)今電子技術(shù)的發(fā)展,人們對數(shù)據(jù)通信速度和操作安裝的簡易性等方面的要求日益提高,使得數(shù)據(jù)通信技術(shù)不可避免地成為一項關(guān)鍵技術(shù)。USB是一種通用串行總線,其發(fā)展速度非常迅猛,USB協(xié)議已由傳輸速度為12 Mb/s的USB1.1發(fā)展到傳輸速度支持低速、全速、高速和超高速的USB3.0,最大傳輸速度高達(dá)5 Gb/s。USB總線技術(shù)由于數(shù)據(jù)傳輸速度高、使用方便和能夠連接多達(dá)127個外設(shè),因此其在數(shù)據(jù)通信中的應(yīng)用越來越廣泛。

    Windows平臺下傳統(tǒng)的USB應(yīng)用系統(tǒng)的開發(fā)步驟是:先用Windows DDK或第三方開發(fā)工具開發(fā)USB驅(qū)動程序,然后用Visual C++開發(fā)應(yīng)用程序。若讓不熟悉Windows編程的開發(fā)者用傳統(tǒng)方法開發(fā)USB驅(qū)動程序和應(yīng)用程序,將會非常困難[1]。因此,本文介紹了一種難度較低的USB應(yīng)用系統(tǒng)實現(xiàn)方案,即在LabVIEW環(huán)境下基于NI-VISA實現(xiàn)PC與C8051F320單片機(jī)的USB通信系統(tǒng)。
1 系統(tǒng)總體設(shè)計
    本系統(tǒng)選用具有USB接口的C8051F320-TBC開發(fā)板實現(xiàn)數(shù)據(jù)的雙向通信。該設(shè)計完成兩項任務(wù):(1)采集單片機(jī)上溫度傳感器的數(shù)據(jù),通過USB上傳至PC;(2)PC通過USB發(fā)送指令至單片機(jī),控制單片機(jī)執(zhí)行相應(yīng)的動作。
    本系統(tǒng)的硬件平臺結(jié)構(gòu)如圖1所示。

    本系統(tǒng)的軟件平臺設(shè)計包括單片機(jī)端的固件(Firmware)程序設(shè)計、PC端的驅(qū)動程序設(shè)計和PC端的應(yīng)用程序設(shè)計3方面。
    單片機(jī)端固件程序的任務(wù)是處理來自USB主機(jī)端的標(biāo)準(zhǔn)請求和完成與USB主機(jī)的數(shù)據(jù)交換;PC端的驅(qū)動程序作為USB主機(jī)(PC)和USB從機(jī)(單片機(jī))的橋梁,其主要任務(wù)是讓USB主機(jī)可以識別USB設(shè)備,并將硬件本身的功能告訴USB主機(jī);PC端的應(yīng)用程序的任務(wù)是通過驅(qū)動程序與USB設(shè)備進(jìn)行通信并對USB數(shù)據(jù)進(jìn)行處理。
    本文采用LabVIEW平臺開發(fā)PC端的驅(qū)動程序和應(yīng)用程序,采用Silicon Laboratories IDE集成開發(fā)環(huán)境開發(fā)固件程序。本系統(tǒng)軟件平臺結(jié)構(gòu)如圖2所示。

2 模塊設(shè)計
2.1 固件程序設(shè)計

    單片機(jī)端固件程序設(shè)計的目的是使USB主機(jī)能夠識別USB設(shè)備(本系統(tǒng)為C8051F320設(shè)備),并正確與USB設(shè)備進(jìn)行雙向通信。
    固件程序完成的任務(wù)有三項:(1)使得USB主機(jī)可識別USB設(shè)備,并建立二者之間的通信;(2)接收由USB主機(jī)發(fā)送來的控制指令,在本設(shè)計中為點(diǎn)亮單片機(jī)的LED燈;(3)將采集的溫度數(shù)據(jù)傳送給USB主機(jī)。
    本設(shè)計將固件程序劃分為USB描述符聲明程序(usb_desc.c)、中斷服務(wù)程序(usb_isr.c)、標(biāo)準(zhǔn)設(shè)備請求程序(usb_stdreq.c)、主程序(main.c)4個子模塊。
    USB描述符聲明程序(usb_desc.c)用來描述設(shè)備的USB信息。該文件包含有USB協(xié)議中規(guī)定的5種標(biāo)準(zhǔn)描述符信息:設(shè)備描述符信息、配置描述符信息、接口描述符信息、端點(diǎn)描述符信息和字符串描述符信息。USB主機(jī)通過訪問這些描述符即可實現(xiàn)對設(shè)備類型的識別和配置。
    中斷服務(wù)程序(usb_isr.c)用來處理所有與USB相關(guān)的中斷事件,當(dāng)有任何類型的USB中斷事件發(fā)生時,固件程序都會調(diào)用這個中斷服務(wù)程序。
    標(biāo)準(zhǔn)設(shè)備請求程序(usb_stdreq.c)包括所有標(biāo)準(zhǔn)設(shè)備請求的處理例程,這些處理例程都是通過控制端點(diǎn)的處理來調(diào)用,該文件主要用來處理USB主機(jī)發(fā)送的標(biāo)準(zhǔn)請求。
    主程序(main.c)的功能是響應(yīng)USB主機(jī)發(fā)送的控制指令并將采集的溫度數(shù)據(jù)傳送給USB主機(jī)。
    固件程序流程圖如圖3所示。

    由圖3可知,該固件程序首先進(jìn)行設(shè)備列舉[2],其目的是使USB主機(jī)能夠識別USB設(shè)備。USB主機(jī)根據(jù)設(shè)備的描述符信息對USB設(shè)備進(jìn)行配置并分配資源,待通信建立后,USB設(shè)備可接收由USB主機(jī)發(fā)來的控制指令,并將采集的溫度數(shù)據(jù)通過USB傳給USB主機(jī)。
2.2 驅(qū)動程序設(shè)計
    驅(qū)動程序的設(shè)計采用虛擬儀器軟件架構(gòu)NI-VISA實現(xiàn),NI-VISA(Virtual Instrument Software Architecture)是由美國NI公司開發(fā)的一種用來與各種儀器總線進(jìn)行通信的高級應(yīng)用編程接口。VISA是一個綜合軟件包,可在任何平臺、總線和環(huán)境下對USB、串口、GPIB、VXI、PXI及以太網(wǎng)等進(jìn)行配置、編程和調(diào)試。
    USB設(shè)備有USB INSTR設(shè)備與USB RAW設(shè)備兩類。符合USB測試和測量類(USBTMC)協(xié)議的設(shè)備稱為USB INSTR設(shè)備;不符合USBTMC協(xié)議的設(shè)備稱為USB RAW設(shè)備。
    NI-VISA有USB INSTR類函數(shù)與USB RAW類函數(shù)兩種VISA類函數(shù),它們可分別控制USB INSTR與USB RAW兩種設(shè)備。USB INSTR設(shè)備可通過LabVIEW直接調(diào)用USB INSTR類函數(shù)實現(xiàn)對其控制;而USB RAW設(shè)備則需先使用NI-VISA來創(chuàng)建USB設(shè)備的驅(qū)動程序[3],創(chuàng)建正確后才能利用LabVIEW調(diào)用USB RAW類函數(shù)實現(xiàn)對其控制。
    使用NI-VISA軟件包中的VISA Interactive Control測試可知,本設(shè)計中的USB設(shè)備屬于USB RAW類設(shè)備,因此需要通過NI-VISA來創(chuàng)建驅(qū)動程序。驅(qū)動程序設(shè)計的任務(wù)是制作INF文件、配置USB設(shè)備及安裝驅(qū)動程序并驗證其正確安裝,可分為以下3個步驟[4]:(1)使用VISA驅(qū)動開發(fā)向?qū)В―river Development Wizard)創(chuàng)建INF文件;(2)使用INF文件安裝驅(qū)動程序和USB設(shè)備;(3)使用NI-VISA交互式控制測試設(shè)備。
2.3 應(yīng)用程序設(shè)計
    當(dāng)正確安裝VISA驅(qū)動程序之后,便可通過LabVIEW程序調(diào)用USB RAW類函數(shù)來完成與USB設(shè)備的通信[5]。本應(yīng)用程序設(shè)計的主要任務(wù)有兩個:(1)PC接收由單片機(jī)采集的溫度數(shù)據(jù),并通過LabVIEW顯示;(2)PC通過LabVIEW軟件發(fā)送指定的指令點(diǎn)亮單片機(jī)的LED燈。
    由于本設(shè)計中的RAW設(shè)備編程較為復(fù)雜,不像INSTR設(shè)備那樣可以使用USBTMC協(xié)議直接調(diào)用VISA常用函數(shù),故需重新編寫程序。編寫本設(shè)計主要用到的控件為:VISA打開、VISA啟用事件、VISA等待事件、VISA獲取USB中斷數(shù)據(jù)、VISA寫和VISA關(guān)閉。
    PC通過USB向單片機(jī)發(fā)送指令的流程圖如圖4所示,PC接收單片機(jī)通過USB傳送來的數(shù)據(jù)的流程圖如圖5所示。
    根據(jù)圖4和圖5的流程圖進(jìn)行LabVIEW編程,其后面板的核心代碼分別如圖6和7所示。

 

 


3 系統(tǒng)功能測試
    在完成各個模塊的設(shè)計后,需進(jìn)行系統(tǒng)集成。結(jié)合硬件框圖進(jìn)行實物連接,依次完成固件程序下載、驅(qū)動程序安裝和應(yīng)用程序整合。
    (1)單片機(jī)將所采集的溫度信息通過USB將數(shù)據(jù)傳送給PC,其LabVIEW前面板及測試結(jié)果如圖8所示。

    單片機(jī)的核心代碼如下:
    In_Packet[0] = Switch1State;
    In_Packet[1] = Switch2State;
    In_Packet[2] = (P0 & 0x0F);
    In_Packet[3] = Potentiometer;
    In_Packet[4] = Temperature;
    通過與單片機(jī)發(fā)送數(shù)據(jù)的格式對比可知,所傳送數(shù)據(jù)的格式正確,使用“Bus Hound”軟件驗證了所傳送的數(shù)據(jù)正確無誤。
    (2)PC機(jī)通過USB將指定的數(shù)據(jù)傳送給單片機(jī),可觀察到正常點(diǎn)亮單片機(jī)的LED燈。
    本文介紹了如何在LabVIEW環(huán)境下基于NI-VISA實現(xiàn)PC與單片機(jī)C8051F320的USB通信,并給出系統(tǒng)實現(xiàn)方案。實驗測試表明,該方案能夠?qū)崿F(xiàn)USB通信,且方案實現(xiàn)難度較低。本系統(tǒng)可為USB應(yīng)用系統(tǒng)的設(shè)計提供參考。
參考文獻(xiàn)
[1] 佘志榮,楊莉.基于NI-VISA與LabVIEW的USB接口應(yīng)用設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(1):66-68.
[2] 趙宏斌,全厚德.基于C8051F320的數(shù)據(jù)采集系統(tǒng)USB接口設(shè)計[J].單片機(jī)開發(fā)與應(yīng)用,2009,25(9):92-94.
[3] 蔡共宣.基于LabVIEW的單片機(jī)USB數(shù)據(jù)采集系統(tǒng)設(shè)計[J].實驗科學(xué)與技術(shù),2009,8(1):58-59.
[4] National Instruments.USB儀器控制教程[Z],2009.
[5] 張桐,陳國順.精通LabVIEW程序設(shè)計[M].北京:電子工業(yè)出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品高清在线| 怡红院精品视频在线观看极品| 欧美一区二区三区四区高清| 一区二区三区 在线观看视频| 亚洲狠狠婷婷| 欧美一级免费视频| 亚洲男女自偷自拍图片另类| 亚洲网站在线播放| 在线一区亚洲| 这里只有精品视频| 亚洲婷婷国产精品电影人久久| 亚洲精一区二区三区| 亚洲国产人成综合网站| 亚洲黄色在线看| 亚洲国产精品第一区二区| 亚洲国产高清高潮精品美女| 亚洲高清不卡av| 亚洲国产专区校园欧美| 亚洲日韩成人| 一本色道久久加勒比88综合| 一本一本久久| 亚洲图片欧洲图片日韩av| 亚洲永久网站| 亚洲欧美日韩精品久久久| 亚洲欧美日韩国产精品| 久久精品123| 国内自拍视频一区二区三区 | 欧美国产激情二区三区| 欧美mv日韩mv亚洲| 欧美日韩成人在线| 欧美视频在线不卡| 国产乱码精品1区2区3区| 国产在线不卡视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲国产精品免费| 一本色道久久| 香蕉亚洲视频| 亚洲国产精品一区二区久| 亚洲精品久久7777| 在线一区亚洲| 欧美中文在线字幕| 欧美aⅴ99久久黑人专区| 欧美日韩国产在线一区| 国产精品久久久久久久午夜| 国产欧美 在线欧美| 精品动漫3d一区二区三区| 亚洲人成在线播放| 亚洲少妇在线| 久久国产精品久久精品国产| 亚洲人成人一区二区在线观看| 99精品久久久| 欧美一级一区| 欧美va天堂va视频va在线| 欧美无砖砖区免费| 国产在线观看91精品一区| 亚洲精品美女久久7777777| 亚洲一区二区网站| 最近中文字幕mv在线一区二区三区四区| 在线亚洲国产精品网站| 久久激情综合| 欧美日韩国产成人| 国产亚洲毛片| 亚洲免费黄色| 久久黄色网页| 亚洲欧美精品在线| 欧美www在线| 国产精品视频一区二区三区| 在线观看91精品国产麻豆| 99国产成+人+综合+亚洲欧美| 性久久久久久久| 一区二区精品国产| 久久人体大胆视频| 国产精品激情偷乱一区二区∴| 精品成人在线视频| 亚洲一区图片| 一本色道久久88综合亚洲精品ⅰ| 久久精品成人| 欧美三区在线视频| 影音先锋亚洲一区| 亚洲综合视频在线| 在线综合视频| 欧美国产日本韩| 国产一区二区成人| 制服丝袜激情欧洲亚洲| 亚洲人体大胆视频| 久久精品中文字幕一区| 国产精品久久久久久久电影| 亚洲激情电影在线| 亚洲国产精品久久久久久女王| 亚洲欧美一区二区原创| 欧美精品18+| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美久久久久一区二区三区| 99精品欧美一区| 久久亚洲综合网| 国产欧美日韩91| 亚洲一级影院| 在线亚洲欧美视频| 欧美国产激情二区三区| 红桃视频国产一区| 欧美在线观看视频一区二区三区| 亚洲欧美另类久久久精品2019| 欧美日韩国产色综合一二三四| 1769国产精品| 亚洲国产精品va在线看黑人| 久久久精品2019中文字幕神马| 国产精品色婷婷| 亚洲午夜成aⅴ人片| 一区二区三区日韩| 欧美久久一级| 亚洲人午夜精品| 99国产精品| 欧美日本亚洲视频| 亚洲人成小说网站色在线| 亚洲精品视频免费在线观看| 欧美v日韩v国产v| 亚洲国产精品99久久久久久久久| 亚洲国产精品久久精品怡红院 | 国产亚洲成精品久久| 亚洲欧美成人网| 午夜一区二区三视频在线观看| 欧美日韩中国免费专区在线看| 亚洲精品在线二区| 在线一区二区三区四区| 欧美日韩在线综合| 亚洲深夜影院| 欧美一区2区三区4区公司二百| 国产精品盗摄久久久| 亚洲视频在线观看三级| 午夜精品偷拍| 国产欧美一区二区精品秋霞影院| 亚洲永久免费精品| 久久精品国产第一区二区三区最新章节| 国产欧美日韩伦理| 欧美一区二区三区四区视频| 久久久久久久久久久久久久一区 | 在线看片一区| 亚洲区在线播放| 欧美久久九九| 亚洲一区二区3| 欧美在线播放高清精品| 国产综合色在线| 亚洲九九爱视频| 欧美午夜国产| 亚洲免费在线看| 久久天堂精品| 亚洲精品一二| 亚洲欧美中文日韩v在线观看| 国产美女精品视频免费观看| 久久精品夜夜夜夜久久| 欧美va亚洲va日韩∨a综合色| 日韩午夜中文字幕| 午夜久久电影网| 国产自产高清不卡| 亚洲免费久久| 国产精品麻豆va在线播放| 久久国产精品72免费观看| 欧美紧缚bdsm在线视频| 亚洲午夜视频在线观看| 久久久人成影片一区二区三区观看 | 亚洲人成在线影院| 亚洲女同在线| 影音先锋中文字幕一区| 一区二区日本视频| 国产精品专区第二| 亚洲国产成人精品女人久久久 | 国产精品a久久久久久| 亚洲一区影院| 开心色5月久久精品| 日韩视频一区二区三区在线播放免费观看| 亚洲一区二区三区777| 国产亚洲高清视频| 99国产一区| 国产亚洲美州欧州综合国| 亚洲理论在线观看| 国产精品亚洲综合一区在线观看| 亚洲韩国精品一区| 国产精品久久久久久久浪潮网站| 亚洲第一免费播放区| 欧美日韩中文字幕在线| 久久成人国产精品| 欧美视频在线观看免费网址| 亚洲电影免费在线观看| 国产精品va在线播放| 亚洲国产二区| 国产精品午夜在线| 一区二区精品在线| 国产一区白浆| 亚洲嫩草精品久久| 亚洲欧洲精品一区| 久久久av毛片精品| 一本色道久久综合精品竹菊| 久热精品视频| 午夜精品久久久久久久久久久久久| 欧美国产亚洲精品久久久8v| 午夜精品视频在线| 欧美色中文字幕| 亚洲人成网站在线播| 国产视频一区二区三区在线观看| 亚洲天堂成人|