當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]本文以一個采集多點(diǎn)溫度的實(shí)際系統(tǒng)為倒,闡述USB接口應(yīng)用系統(tǒng)的總體設(shè)計(jì)思想及其層次結(jié)構(gòu),在實(shí)現(xiàn)方法上避開傳統(tǒng)的Windows編程技術(shù),另辟蹊徑地給出使用NI-VISA來驅(qū)動USB接口以應(yīng)用LabVIEW進(jìn)行應(yīng)用編程的方法。

摘要 通用串行總線(USB)作為一種靈活的高速總線接口技術(shù),非常適合作為主機(jī)和外設(shè)之問的通信接口,但其結(jié)構(gòu)復(fù)雜。本文以一個采集多點(diǎn)溫度的實(shí)際系統(tǒng)為倒,闡述USB接口應(yīng)用系統(tǒng)的總體設(shè)計(jì)思想及其層次結(jié)構(gòu),在實(shí)現(xiàn)方法上避開傳統(tǒng)的Windows編程技術(shù),另辟蹊徑地給出使用NI-VISA來驅(qū)動USB接口以應(yīng)用LabVIEW進(jìn)行應(yīng)用編程的方法。
關(guān)鍵詞 USB RAW設(shè)備 NI-VISA LabVIEW


    USB(Universal Serial Bus)接口是近年來應(yīng)用在PC領(lǐng)域的新型接口技術(shù)。它基于單一的總線接口技術(shù)來滿足多種應(yīng)用領(lǐng)域的需求;它的即插即用、支持熱插拔、易于擴(kuò)展等特性極大地方便了用戶的使用,已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢。
    傳統(tǒng)的開發(fā)USB應(yīng)用系統(tǒng)的步驟是,先用WindowsDDK(設(shè)備驅(qū)動程序開發(fā)包)或第三方開發(fā)工具(如DriverStudio)開發(fā)USB驅(qū)動程序,然后用Visual C++編寫DLL(動態(tài)連接庫),最后再調(diào)有DLL來開發(fā)應(yīng)用程序。顯然,這對Windows編程不熟悉的人來說有一定的難度,何況USB驅(qū)動程序的開發(fā)難度很大。本文介紹一種簡單、快速開發(fā)USB接口應(yīng)用系統(tǒng)的方法。它直接在LabVIEW環(huán)境下通過NI-VISA開發(fā)能驅(qū)動用戶USB系統(tǒng)的應(yīng)用程序,完全避開了以前開發(fā)USB驅(qū)動程序的復(fù)雜性,大大縮短了開發(fā)周期。


1 NI-VISA簡介
    NI-VISA(Virtual Instrument Software Architec-ture,以下簡稱為“VISA”)是美國國家儀器NI(National Instrument)公司開發(fā)的一種用來與各種儀器總線進(jìn)行通信的高級應(yīng)用編程接口。VISA總線I/O軟件是一個綜合軟件包,不受平臺、總線和環(huán)境的限制,可用來對USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編程和調(diào)試。VISA是虛擬儀器系統(tǒng)I/O接口軟件?;谧缘紫蛏辖Y(jié)構(gòu)模型的VISA創(chuàng)造了一個統(tǒng)一形式的I/O控制函數(shù)集。一方面,對初學(xué)者或是簡單任務(wù)的設(shè)計(jì)者來說,VISA提供了簡單易用的控制函數(shù)集,在應(yīng)用形式上相當(dāng)簡單;另一方面,對復(fù)雜系統(tǒng)的組建者來說,VISA提供了非常強(qiáng)大的儀器控制功能與資源管理。


2 LabVIEW及其調(diào)用VISA的條件
    LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是NI公司開發(fā)的一種基于圖形程序的編程語言。用戶利用創(chuàng)建和調(diào)用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,而且程序編制簡單、直觀。一個LabVIEW程序分為3部分:前面板、框圖程序和圖標(biāo)/接線端口。前面板用于模擬真實(shí)儀器的前面板;框圖程序是利用圖形語言對前面板上的控件對象(分為控制量和指示量兩種)進(jìn)行控制;圖標(biāo)/接線端口用于把LabVIEW程序定義成一一個子程序,從而實(shí)現(xiàn)模塊化編程。
    當(dāng)進(jìn)行USB通信時,VISA提供了兩類函數(shù)供Lab-VIEW調(diào)用,USB INSTR設(shè)備與USB RAW設(shè)備。USBINSTR設(shè)備是符合USBTMC協(xié)議的USB設(shè)備,可以通過使用USB INSTR類函數(shù)控制,通信時無需配置NI-VISA;而USB RAW設(shè)備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時要配置NI-VISA。
(1)配置NI-VISA的步驟
    ①使用Driver DevelopineInt Wizard(驅(qū)動程序開發(fā)向?qū)?創(chuàng)建INF文檔;
    ②安裝INF文檔,并安裝使用INF文檔的USB設(shè)備;
    ③使用NI-VISA Interactive Control(NI-VISA互動控制工具)對設(shè)備進(jìn)行測試,以證實(shí)USB設(shè)備已正確安裝,并獲得USB設(shè)備的各屬性值。
詳細(xì)過程可參考NI官方網(wǎng)站上免費(fèi)提供的文檔《使用NI-VISA控制USB設(shè)備》。
(2)與NI-VISA相配合的LabVIEW橫板中VI子節(jié)點(diǎn)
    ViOpen,打開并指定VISA resource name的設(shè)備的連接。
    ViProperty,VISA設(shè)備的屬性子節(jié)點(diǎn),可以設(shè)置端點(diǎn)或傳輸方式。
    ViWnte,向VISA resource name指定的設(shè)備寫入數(shù)據(jù)。
    ViRead,從VISA resource name指定的設(shè)備讀出數(shù)據(jù)。
    ViClose,結(jié)束設(shè)備讀寫并關(guān)閉與指定設(shè)備的連接。
(3)USB RAW設(shè)備讀寫的操作次序
    USB RAW設(shè)備的讀寫次序如圖l所示。

    下面以一個USB接口的溫度采集系統(tǒng)為例,說明基于NI-VISA驅(qū)動的USB接口應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。


3 系統(tǒng)硬件結(jié)構(gòu)
   
系統(tǒng)以Philips公司的增強(qiáng)型80C51單片機(jī)為核心,如圖2所示。這是一個多點(diǎn)溫度采集系統(tǒng),核心器件是含有8 KB非易失Flash程序存儲器的P89C52,與標(biāo)準(zhǔn)80C51完全兼容。USB通信控制芯片采用Philips公司的PDIUSBD12芯片(簡稱“D12”)。它是一款較新型的專用USB通信控制芯片,符合通用串行總線USBl.1版規(guī)范,內(nèi)部集成有串行接口引擎SIE、320字節(jié)FIFO存儲器、收發(fā)器和電壓調(diào)節(jié)器。前端溫度傳感器采用Dallas公司生產(chǎn)的DSl8820。它是一線式數(shù)字溫度傳感器,直接以數(shù)字量輸出給微處理器,可節(jié)省大量的引線和信號調(diào)理電路。DSl8820內(nèi)部有一個光刻ROM。這個ROM中存有64位序列號。它可以看作足該DS18820的地址序列碼,所以多路溫度傳感器可以掛在l條總線上,共同占用單片機(jī)的1條I/O線即可實(shí)現(xiàn)接口。在提升單片機(jī)I/O線驅(qū)動能力的前提下,理論上可以任意擴(kuò)充檢測的溫度點(diǎn)數(shù)。

    D12與單片機(jī)的接口共有兩種方式:多路地址/數(shù)據(jù)總線方式和單地址/數(shù)據(jù)總線方式。這里選擇了單地址/數(shù)據(jù)總線方式,因此,D12的ALE接為低電平,而A0腳與P89C52X2的端口P3.3相連。該端口控制D12的命令和數(shù)據(jù)狀態(tài):A0=1,表示數(shù)據(jù)總線上是命令;A0=0,表示數(shù)據(jù)總線上是數(shù)據(jù)。D12的數(shù)據(jù)總線直接與P0口相連,D12的中斷引腳INT_N與P89C52X2的INT0相連。當(dāng)D12的外部巾斷有一位為1時,INT_N輸出低電平,觸發(fā)P89C52X2的外部中斷。因?yàn)橄到y(tǒng)未采用DMA,所以D12的DMAcK_N引腳接高電平,EOT_N引腳通過電阻接到USB的+5 V,以正確檢測到USB連接;INT_N引腳加一個上拉電阻。因?yàn)镈12有片內(nèi)上電復(fù)位電路,故引腳RESET_N直接與電源引腳VCC相連。溫度傳感器DSl8820工作在外接電源工作方式,DQ引腳直接和P89C52X2的P1.0相連。
3.1 系統(tǒng)的工作原理
   
根據(jù)USB協(xié)議,任何傳輸都是由主機(jī)(host)開始的,單片機(jī)的前臺工作就是等待。主機(jī)PC首先要發(fā)送令牌包給USB,D12接收到令牌包就給單片機(jī)發(fā)中斷,單片機(jī)進(jìn)入中斷服務(wù)程序。首先讀D12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)的操作,因此,USB單片機(jī)程序主要就是中斷服務(wù)程序的編寫。在USB單片機(jī)程序中要完成對各種令牌包的響應(yīng),主要是對端口的編程。
3.2 軟件部分的設(shè)計(jì)
   
系統(tǒng)的固件程序從功能上分為兩部分,整個編程在Keil C環(huán)境下完成。
(1)溫度傳感器D818820的讀取程序
    DSl8820單線通信功能是分時實(shí)現(xiàn)的。它有很嚴(yán)格的時序要求,對它的操作必須按協(xié)議進(jìn)行,即初始化→發(fā)ROM操作命令→發(fā)存儲器操作命令→數(shù)據(jù)處理。
(2)MCU和USB接口的通信程序
   
本程序使用D12的端點(diǎn)l和端點(diǎn)2進(jìn)行上位汁算機(jī)與MCU P89C52之間的命令和數(shù)據(jù)的傳輸。端點(diǎn)l和端點(diǎn)2設(shè)置成模式O(非同步方式)。其中端點(diǎn)1以中斷傳輸方式進(jìn)行命令的傳輸和應(yīng)答,端點(diǎn)2以批量傳輸方式進(jìn)行數(shù)據(jù)的傳輸。端點(diǎn)1接收上位機(jī)發(fā)送過來的讀指令,端點(diǎn)2返回讀成功數(shù)據(jù)。
    系統(tǒng)的固件程序編寫以分層結(jié)構(gòu)展開。它是一種積木式結(jié)構(gòu),如圖3所示。

    ①硬件提取層:對單片機(jī)的I/O口、數(shù)據(jù)總線等硬件接口進(jìn)行操作。
    ②PDIUSBD12命令接口:對D12器件進(jìn)行操作的模塊子程序集。
    ③中斷服務(wù)程序:當(dāng)D12向單片機(jī)發(fā)出中斷請求時,讀取D12中斷傳輸來的數(shù)據(jù),并設(shè)定事件標(biāo)志“EPP-FLAGS”和Settup包數(shù)據(jù)緩沖區(qū)“CONROL_XFER”傳輸給主循環(huán)程序。
    ④標(biāo)準(zhǔn)設(shè)備請求處理程序:對USB的標(biāo)準(zhǔn)設(shè)備請求進(jìn)行處理。
    ⑤廠商請求處理程序:對用戶添加的廠商請求進(jìn)行處理。
    ⑥主程序:發(fā)出USB數(shù)據(jù)傳輸請求,處理總線事件和調(diào)用用戶自定義功能子程序。
    以NI-VISA為驅(qū)動的主機(jī)LabVIEW應(yīng)用程序的設(shè)計(jì),NI-VISA采用3.2版本,LabVIEW采用7.1版本。
    整個應(yīng)用程序的主框架使用了WHILF循環(huán)來進(jìn)行不斷的查詢。在程序的編寫過程中,采用了類似Windows程序中的事件驅(qū)動機(jī)制,LabVIEW提供了這樣的結(jié)構(gòu)——事件結(jié)構(gòu)。各個消息的產(chǎn)生利用了各種界面控件并由Case選擇結(jié)構(gòu)給出。程序框圖如圖4所示。

    為了便于說明USB操作次序,把圖4中事件結(jié)構(gòu)展開,有圖5所示的具體USB操作次序。

    在圖5中,USB RAW設(shè)備通信采用端點(diǎn)1以中斷傳輸方式接收上位機(jī)操作命令,協(xié)議可以自己約定。端點(diǎn)2以批量傳輸方式給上位機(jī)發(fā)回溫度數(shù)據(jù)。其中端點(diǎn)數(shù)“130”是對應(yīng)十六進(jìn)制數(shù)“0082”的十進(jìn)制數(shù),此數(shù)表示端點(diǎn)2批量輸入;而端點(diǎn)數(shù)“1”則是對應(yīng)十六進(jìn)制數(shù)“0001”的十進(jìn)制數(shù),此數(shù)表示端點(diǎn)1中斷輸出。
    因?yàn)镹I-VISA3.2版本不支持USB屬性“中斷輸出”(interrupt out),因此為了實(shí)現(xiàn)USB端點(diǎn)1的中斷輸出問題,這里把USB屬性“批量輸出”(bulk out pipe)和“VI Write”節(jié)點(diǎn)組合在一起,來實(shí)現(xiàn)端點(diǎn)l中斷輸出。從NI-VISA3.3起,可以直接利用“中斷輸出”(interruptout)屬性來實(shí)現(xiàn)。


結(jié)語
   
經(jīng)實(shí)踐證明,采用基于NI-VISA驅(qū)動的USB接口應(yīng)用系統(tǒng)的設(shè)計(jì)非常容易,開發(fā)難度低,對開發(fā)者的要求不高;開發(fā)出的系統(tǒng)穩(wěn)定可靠,即使對Windows編程不熟悉的人也可以開發(fā)出USB應(yīng)用系統(tǒng),它提供了另一種開發(fā)USB驅(qū)動應(yīng)用程序的捷徑。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉