《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于LabVIEW NI-VISA實現PC與C8051F320的USB數據通信
基于LabVIEW NI-VISA實現PC與C8051F320的USB數據通信
來源:電子技術應用2013年第8期
段晉軍,位恒曦,常曉明
太原理工大學 計算機科學與技術學院,山西 太原030024
摘要: 針對傳統USB系統開發難度較大的問題,介紹了一種基于NI-VISA實現PC與USB裸設備——C8051F320單片機的USB通信系統的實現方案。該方案對開發PC外圍USB設備以及基于USB的應用系統設計具有一定參考意義。
中圖分類號: TN919
文獻標識碼: 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

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

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

    本系統的軟件平臺設計包括單片機端的固件(Firmware)程序設計、PC端的驅動程序設計和PC端的應用程序設計3方面。
    單片機端固件程序的任務是處理來自USB主機端的標準請求和完成與USB主機的數據交換;PC端的驅動程序作為USB主機(PC)和USB從機(單片機)的橋梁,其主要任務是讓USB主機可以識別USB設備,并將硬件本身的功能告訴USB主機;PC端的應用程序的任務是通過驅動程序與USB設備進行通信并對USB數據進行處理。
    本文采用LabVIEW平臺開發PC端的驅動程序和應用程序,采用Silicon Laboratories IDE集成開發環境開發固件程序。本系統軟件平臺結構如圖2所示。

2 模塊設計
2.1 固件程序設計

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

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

 

 


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

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线不卡视频| 欧美日韩中文| 亚洲一级黄色av| 日韩午夜高潮| 亚洲美女诱惑| 亚洲九九九在线观看| 亚洲第一视频| 欧美主播一区二区三区美女 久久精品人 | 老牛影视一区二区三区| 久久精品国产69国产精品亚洲| 亚洲欧美卡通另类91av| 亚洲自拍偷拍一区| 亚洲新中文字幕| 亚洲欧美韩国| 午夜视频一区在线观看| 亚洲欧美日韩精品久久久久| 亚洲一本大道在线| 午夜精品区一区二区三| 性欧美在线看片a免费观看| 欧美一级日韩一级| 久久精品免费| 久久久综合网站| 欧美电影在线观看完整版| 欧美黑人国产人伦爽爽爽| 欧美另类变人与禽xxxxx| 欧美日韩成人综合| 欧美视频免费在线| 国产精品久久久久久久久久久久| 国产精品久久久久久久7电影 | 亚洲成人在线网| 91久久久一线二线三线品牌| 亚洲毛片一区二区| 99精品黄色片免费大全| 亚洲一区区二区| 久久国产精品久久精品国产| 老司机精品久久| 欧美极品一区| 国产精品久久久久久一区二区三区 | 久久成人精品无人区| 亚洲国产精品成人综合| 亚洲精品乱码久久久久久按摩观| 日韩西西人体444www| 亚洲一区免费网站| 久久国产精品久久精品国产 | 欧美黄色片免费观看| 欧美四级电影网站| 国产麻豆精品theporn| 黄色精品一区二区| 亚洲九九精品| 欧美一区二区在线免费观看 | 久久国产黑丝| 欧美激情久久久久| 国产精品久久久久久久久免费 | 国产精品入口夜色视频大尺度| 国产丝袜美腿一区二区三区| 亚洲高清免费视频| 亚洲图片欧洲图片日韩av| 久久精彩免费视频| 亚洲午夜久久久久久久久电影院 | 亚洲激情图片小说视频| 在线一区亚洲| 亚洲国产精品日韩| 亚洲一区二区精品在线| 久久人人爽人人| 欧美日韩精品在线播放| 国产日韩一级二级三级| 亚洲国产天堂久久综合网| 亚洲一区二区三区欧美| 亚洲三级视频| 欧美一区二区三区男人的天堂 | 亚洲天堂成人| 久久中文字幕一区| 国产精品久久久久99| 136国产福利精品导航网址应用 | 亚洲精品在线观| 久久九九免费| 欧美亚州一区二区三区| 欲香欲色天天天综合和网| 亚洲一区区二区| av成人老司机| 蜜桃av一区二区| 国产女精品视频网站免费| 99精品欧美| 亚洲精品123区| 久久精品国产视频| 国产精品卡一卡二卡三| 亚洲日韩欧美视频| 亚洲国产精彩中文乱码av在线播放| 亚洲综合社区| 欧美日韩精品欧美日韩精品| 在线播放豆国产99亚洲| 欧美一区二区三区免费观看| 亚洲欧美日韩精品久久奇米色影视 | 一本色道久久综合亚洲精品婷婷| 久久一本综合频道| 国产欧美一区二区三区在线老狼 | 亚洲激情成人网| 久久精品亚洲国产奇米99| 小处雏高清一区二区三区 | 一区二区三区精品视频| 99视频有精品| 欧美国产视频日韩| 在线日韩电影| 亚洲福利视频免费观看| 久久久国产91| 国产欧美日韩91| 亚洲一品av免费观看| 在线视频一区二区| 欧美区高清在线| 亚洲黄一区二区三区| 91久久国产综合久久| 久久夜色精品国产亚洲aⅴ| 国产区二精品视| 亚洲欧美国产另类| 亚洲欧美国产日韩中文字幕| 欧美色图一区二区三区| 亚洲人成网站在线观看播放| 亚洲人成在线观看网站高清| 免费不卡亚洲欧美| 激情久久综合| 亚洲国产一区视频| 美女黄网久久| 在线 亚洲欧美在线综合一区| 亚洲第一精品影视| 玖玖精品视频| 亚洲黄色大片| 一本一道久久综合狠狠老精东影业| 欧美精品激情在线| 亚洲精品偷拍| 亚洲综合激情| 国产日韩欧美夫妻视频在线观看| 欧美亚洲尤物久久| 久久久成人网| 亚洲第一色在线| 一本色道久久综合亚洲精品婷婷| 欧美日韩一区综合| 亚洲永久免费观看| 久久久久高清| 在线精品国精品国产尤物884a| 亚洲美洲欧洲综合国产一区| 欧美另类变人与禽xxxxx| 一本在线高清不卡dvd | 欧美精品1区2区| 一区二区三区.www| 欧美一区二区三区日韩视频| 国产一区二区三区视频在线观看| 久久国产一区| 欧美精品粉嫩高潮一区二区| av成人免费在线| 性欧美超级视频| 精久久久久久| 一区二区三区.www| 国产精品视频一区二区三区| 欧美一区日韩一区| 欧美大学生性色视频| 一本大道久久精品懂色aⅴ| 亚洲免费在线看| 禁断一区二区三区在线| 一区二区欧美激情| 国产毛片一区二区| 亚洲国产日韩欧美在线图片| 欧美日韩www| 亚洲欧美日韩在线不卡| 久久综合影视| 一区二区久久久久久| 久久精品一本久久99精品| 亚洲高清免费在线| 亚洲欧美日韩在线观看a三区 | 亚洲一区三区视频在线观看| 久久久久久久综合| 亚洲理论电影网| 久久精品一二三| 亚洲精品日韩一| 久久精品视频在线看| 91久久中文| 欧美制服丝袜| 亚洲三级视频在线观看| 久久成人免费| 亚洲激情视频网| 欧美在线啊v一区| 亚洲激情一区| 久久99伊人| 亚洲另类春色国产| 久久夜色精品国产| 亚洲一区二区三区在线观看视频| 免播放器亚洲一区| 午夜精品福利在线| 欧美日韩人人澡狠狠躁视频| 欧美一区二区三区免费在线看| 欧美日韩日本网| 亚洲高清视频一区二区| 国产精品九色蝌蚪自拍| 91久久午夜| 国产亚洲va综合人人澡精品| 亚洲视频在线一区| 在线 亚洲欧美在线综合一区| 欧美亚洲一区二区三区| 91久久精品一区二区三区| 久久蜜臀精品av| 亚洲一区二区三|