亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LabVIEW和C51的USB通信系統(tǒng)

        2014-08-16 01:08:36陳龍燕
        關(guān)鍵詞:數(shù)碼管下位虛擬儀器

        陳龍燕

        (泉州理工職業(yè)學(xué)院,福建 泉州 362000)

        隨著計算機技術(shù)的迅猛發(fā)展及其在電子工業(yè)測量技術(shù)與儀器上的廣泛應(yīng)用,測試理論、測試方法和儀器結(jié)構(gòu)的日益更新沖破了傳統(tǒng)儀器的概念,促使電子測量儀器的功能和作用發(fā)生了質(zhì)的變化。在這樣的時代背景下,20世紀 80年代 National Instrument Company(簡稱NI公司)提出了虛擬儀器的概念。我國于20世紀末開始興起對虛擬儀器的開發(fā)和應(yīng)用,如今已廣泛應(yīng)用于航空、航天、通信、醫(yī)療、電力、石油勘探和鐵路等行業(yè)[1]。

        本系統(tǒng)主要研究實現(xiàn)了基于USB接口的上位機以圖形化編程語言LabVIEW為應(yīng)用程序開發(fā)平臺與下位機89C51單片機程序之間的通信。

        首先,本設(shè)計采用美國NI公司開發(fā)的先進的虛擬儀器技術(shù)LabVIEW作為上位機的開發(fā)平臺,其功能強大且靈活,程序的編寫過程直觀明了,用戶界面人性化。利用它可以方便地建立自己的虛擬儀器,與其他軟件相比有許多優(yōu)越之處。目前,LabVIEW代表著當(dāng)今儀器發(fā)展的最新趨勢,是促進測控技術(shù)發(fā)展的一個重要開發(fā)工具。

        第二,本設(shè)計通過在LabVIEW中調(diào)用動態(tài)鏈接庫DLL,實現(xiàn)了基于USB接口的PC與單片機之間的通信。完成了LabVIEW中暫時無法實現(xiàn)的硬件通信工作,擴展了虛擬儀器的功能,進一步驗證了DLL在虛擬儀器開發(fā)中的重要性。

        第三,采用通用串行總線USB接口,克服了串口通信傳輸速度慢等缺點。

        第四,現(xiàn)有的NI公司生產(chǎn)的數(shù)據(jù)采集卡,成本高,插拔不方便,不易擴展。為了解決這個問題,下位機采用C51單片機技術(shù),在實際工程中,可以很方便地通過它控制硬件電路部分的功能。利用USB技術(shù)和單片機相結(jié)合,可以擴展應(yīng)用于數(shù)據(jù)的采集等用途。由于數(shù)據(jù)采集卡價格昂貴,因而大大減少了開發(fā)成本。

        最后,建立起上位機與下位機的通信機制之后,應(yīng)用是十分廣泛的。可以方便地根據(jù)實際需要,利用它們之間的通信實現(xiàn)各種操作。

        1 系統(tǒng)功能介紹

        下位機采用51單片機程序,上位機采用LabVIEW開發(fā)環(huán)境,實現(xiàn)了基于USB接口的LabVIEW與單片機的數(shù)據(jù)通信系統(tǒng)。系統(tǒng)界面如圖1所示。

        圖1 基于LabVIEW與C51的USB通信系統(tǒng)運行界面

        (1)打開設(shè)備

        在LabVIEW界面上有兩個指示燈和一個檢測設(shè)備是否連接成功的按鈕,按下按鈕,如果設(shè)備連接成功第一個燈亮,反之,第二個燈亮。

        (2)獲取設(shè)備信息

        在LabVIEW界面上分別有獲取設(shè)備名和設(shè)備號的按鈕,按下按鈕后就可以在相應(yīng)的輸出框中得到設(shè)備號和設(shè)備名。

        (3)顯示部分

        LabVIEW界面上有8個與電路板上的數(shù)碼管對應(yīng)的VI、數(shù)碼管位選擇控件和輸入數(shù)據(jù)控件等。當(dāng)打開硬件設(shè)備時,運行LabVIEW程序,在LabVIEW界面上的控件輸入數(shù)字(1~9)、字母 A~Z/a~z、“=”、“.”或空格,則在電路板上的對應(yīng)數(shù)碼管也能顯示出一樣的數(shù)據(jù)。即LabVIEW能把數(shù)據(jù)通過USB接口傳到硬件電路的單片機上,并在電路板上的數(shù)碼管上顯示出來。

        (4)取反部分

        在取反輸入框中輸入數(shù)據(jù),按下開始取反按鈕,此時,LabVIEW中的數(shù)據(jù)將通過USB線傳入到下位機單片機中,單片機接收到數(shù)據(jù)后取反,并把數(shù)據(jù)通過USB線上傳回上位機的LabVIEW界面。如果數(shù)據(jù)下傳成功,那么將出現(xiàn)一個“數(shù)據(jù)下傳成功”的提示框,經(jīng)過單片機處理后上傳到PC;如果上傳成功,也將出現(xiàn)一個“數(shù)據(jù)上傳成功”的提示框,最后在輸入框中返回的數(shù)據(jù)是取反后的數(shù)據(jù)。此功能表明了數(shù)據(jù)可以順利通過USB線下傳、上傳,從而實現(xiàn)了數(shù)據(jù)的通信功能。

        (5)單片機控制電路演示部分

        電路板上有24個鍵盤,如果把電路板上的P2的第5腳和第6腳之間插上短路子,那么按下任意一個按鍵,數(shù)碼管上就會顯示出鍵盤的按鍵值,先左移原顯示,再顯示按鍵值。

        2 設(shè)計的思路

        本系統(tǒng)的總體結(jié)構(gòu)流程圖如圖2所示。

        圖2 系統(tǒng)總體結(jié)構(gòu)流程圖

        從圖2可知,系統(tǒng)結(jié)構(gòu)從上到下依次為:計算機、USB線、USB接口芯片 CH372、單片機、CH451外圍芯片、鍵盤和數(shù)碼管。

        CH372的UD+、UD-兩個引腳分別與 USB的數(shù)據(jù)信號線D+、D-引腳連接進行數(shù)據(jù)通信。CH372芯片在本地端提供了通用的被動并行接口,包括:8位雙向數(shù)據(jù)總線D7~D0、讀選通輸入引腳 RD#、寫選通輸入引腳WR#、片選輸入引腳 CS#、中斷輸出引腳 INT#以及地址輸入引腳A0。通過被動并行接口D[7..0],CH372芯片可以很方便地掛接到單片機的系統(tǒng)總線上;CH372芯片的RD#和WR#可以分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳;INT#輸出的中斷請求是低電平有效,連接到單片機的中斷輸入引腳,單片機通過中斷方式獲知中斷請求[2]。

        CH451具有硬件實現(xiàn)的高速4線串行接口,包括4個信號線:串行數(shù)據(jù)輸入線DIN、串行數(shù)據(jù)時鐘線DCLK、串行數(shù)據(jù)加載線LOAD和串行數(shù)據(jù)輸出線DOUT。其中,DIN、DCLK、LOAD是帶上拉的輸入信號線,默認是高電平;DOUT在未啟用鍵盤掃描功能時作為串行數(shù)據(jù)輸出線,在啟用鍵盤掃描功能后作為鍵盤中斷和數(shù)據(jù)輸出線,默認是高電平。

        CH451可以動態(tài)驅(qū)動8個共陰數(shù)碼管,所有數(shù)碼管的相同段引腳(段A~段G以及小數(shù)點)并聯(lián)后連接CH451的段驅(qū)動引腳SEG0~SEG7,各數(shù)碼管的陰極分別由CH451的DIG0~DIG7引腳進行驅(qū)動。同時,CH451還具有鍵盤掃描功能,所以它的 SEG[7..0]和 DIG[7..0]引腳可以分別與鍵盤的 SEG[7..0]和 DIG[7..0]相連,來控制鍵盤的功能[3]。

        3 下位機單片機設(shè)計

        下位機要與上位機中的動態(tài)鏈接庫建立通信機制,以接收和發(fā)送數(shù)據(jù)包。首先二者之間必須先約定好數(shù)據(jù)傳輸?shù)拿詈蛥f(xié)議,這與SOCKET通信一樣。因此在下位機的單片機中必須先定義一個與上位機通信的命令包結(jié)構(gòu)COMMAND_PACKET。當(dāng)單片機上電后,先對各個芯片進行初始化,然后啟動CH451的顯示驅(qū)動和鍵盤掃描,如果P2的第5腳和第6腳之間插上短路接子,則由單片機控制,否則由PC通過USB控制演示。

        下位機單片機主程序的流程圖如圖3所示。

        圖3 單片機主程序流程圖

        4 上位機LabVIEW設(shè)計

        4.1 設(shè)計原理

        LabVIEW本身包含的一些接口設(shè)備的驅(qū)動程序都是針對NI公司自己生產(chǎn)的接口板,對于用戶自行設(shè)計的硬件設(shè)備則不能直接與LabVIEW進行通信[4]。以下就是針對非NI公司提供的USB設(shè)備,利用LabVIEW的現(xiàn)有資源來設(shè)計一種實現(xiàn)USB與LabVIEW通信的方法。

        首先,在前面板創(chuàng)建一個類型與下位機結(jié)構(gòu)體類似的數(shù)組,用來向下位機傳遞數(shù)據(jù)的輸入框,在輸入框中輸入的命令必須與下位機中定義的命令一致。

        4.2 后面板程序

        LabVIEW中的程序主要包括打開硬件設(shè)備模塊、獲取設(shè)備信息模塊、數(shù)碼管顯示模塊和取反模塊等。

        4.2.1 打開硬件設(shè)備模塊

        作為一個開放式開發(fā)平臺,LabVIEW提供了DLL接口。用戶在LabVIEW平臺上能調(diào)用其他軟件平臺編譯的模塊,即可以通過調(diào)用動態(tài)鏈接庫DLL中的CH375OpenDevice函數(shù),打開硬件設(shè)備。LabVIEW對動態(tài)鏈接庫DLL的調(diào)用可以概括為以下3個步驟。

        (1)點擊 LabVIEW 功能模板中“Advanced”子模板里的“調(diào)用庫函數(shù)(Call Library Function)”節(jié)點,放入 DLL調(diào)用節(jié)點到框圖程序中。

        (2)雙擊該節(jié)點進入?yún)?shù)配置對話框。包括DLL的選擇、DLL庫函數(shù)選擇以及函數(shù)的輸入、輸出參數(shù)設(shè)置。

        (3)點擊參數(shù)配置對話框的“OK”按鈕,在程序框圖中將實際參數(shù)連接到DLL調(diào)用節(jié)點的輸入輸出端口上[11]。

        調(diào)用 CH375OpenDevice函數(shù)時,Call Library Function結(jié)點對話框如圖4所示。

        系統(tǒng)具體操作中,是當(dāng)按下“連接設(shè)備”按鍵時,程序才開始運行,所以,引入了case structure結(jié)構(gòu)。當(dāng)按鍵按下,此時選擇器端子的值為真,則開始執(zhí)行結(jié)構(gòu)中true部分的程序;當(dāng)無按鍵按下時,此時選擇器端子的值為假,則開始執(zhí)行case structure結(jié)構(gòu)中false部分的程序,此程序中false部分為空操作。

        圖4 Call Library Function節(jié)點對話框

        為了方便操作人員識別,特設(shè)置了兩個LED指示燈,如果設(shè)備打開成功,則第一個燈亮;否則,第二個燈亮。當(dāng)打開設(shè)備成功時,CH375OpenDevice函數(shù)的返回值不等于-1,此時包含指示燈的case structure的選擇器端子的值為真,給相應(yīng)的LED燈連接上true constant或false constant;當(dāng)打開設(shè)備失敗時,LED指示燈連接情況與打開成功時的相反。其部分源代碼如圖5所示。

        圖5 打開設(shè)備模塊的部分程序代碼

        4.2.2 獲取設(shè)備信息模塊

        獲取設(shè)備信息模塊也是通過按鍵來控制的,程序中也引用case structure來實現(xiàn),程序如圖6所示。

        圖6 獲取設(shè)備相關(guān)信息的部分程序代碼

        4.2.3 數(shù)碼管顯示模塊

        數(shù)碼管顯示模塊設(shè)計原理如下。

        (1)因在 LabVIEW中沒有數(shù)碼管控件,所以必須用LabVIEW語言自己編寫數(shù)碼管子VI。方法是:在前面板中點擊右鍵,從All controls下的Boolean中取出7個square LED和1個Round LED分別作為數(shù)碼管的SEG[0..7]。再后面板中用case structure把要亮的LED與true constant連接,變暗的與false constant連接。數(shù)碼管模塊源代碼如圖7所示。

        圖7 LED數(shù)碼管顯示模塊的部分源代碼

        (2)在下位機單片機中已經(jīng)約定好了測試數(shù)碼管顯示的命令為DEMO_CH451_CMD 0X56,所以在前面已創(chuàng)建的用來向下位機傳遞數(shù)據(jù)的數(shù)組的輸入框中必須輸入下傳的命令。

        (3)因有8個數(shù)碼管,在設(shè)計時用Enum控件來控制數(shù)碼管的位選擇。

        (4)在string control中輸入的下傳數(shù)據(jù)為string型,且輸入數(shù)據(jù) 1~9、a~z、A~Z、“=”、“.”或空格都為 string。 把string轉(zhuǎn)換為相應(yīng)的BCD碼如圖8所示。

        圖8 將string轉(zhuǎn)換為BCD碼的部分程序代碼

        (5)為達到在硬件上顯示數(shù)據(jù)時,LabVIEW上也在相應(yīng)的數(shù)碼管顯示出數(shù)據(jù),則必須創(chuàng)建一個數(shù)碼管位選擇Enum控件的局部變量,同樣用case structure結(jié)構(gòu)來實現(xiàn),其具體實現(xiàn)過程如圖9所示。

        圖9 在LabVIEW選擇數(shù)碼管的部分程序源代碼

        (6)最后,把和下位機規(guī)定好的協(xié)議寫入到數(shù)組中,再把數(shù)據(jù)寫入到動態(tài)鏈接庫DLL中的CH375WriteData函數(shù)中,就可實現(xiàn)與下位機的通信。程序如圖10所示。

        圖10 向下位機寫入數(shù)據(jù)

        4.2.4 取反模塊

        取反模塊設(shè)計原理如下。

        (1)與數(shù)碼管顯示模塊的第(2)步類似,首先,也是先在前面板創(chuàng)建一個數(shù)組,在數(shù)組中寫入已約定好的取反協(xié)議DEF_CMD_TEST_DATA及其他相關(guān)數(shù)據(jù)。并調(diào)用動態(tài)鏈接庫DLL中的CH375WriteData函數(shù)把數(shù)據(jù)傳入到下位機中。其具體實現(xiàn)過程如圖11所示。

        圖11 數(shù)據(jù)下傳到單片機的部分程序代碼

        (2)通過調(diào)用CH375ReadData函數(shù)把數(shù)據(jù)從下位機的緩沖區(qū)中讀取出來,具體程序如圖12所示。

        圖12 讀取數(shù)據(jù)部分程序

        (3)如果數(shù)據(jù)下傳成功,會彈出一個“數(shù)據(jù)下傳成功”的提示框;如果數(shù)據(jù)上傳讀取成功,也會彈出一個“數(shù)據(jù)上傳成功”的提示框。

        本系統(tǒng)建立了LabVIEW開發(fā)環(huán)境下基于USB接口的PC與單片機的通信,這就為擴展其他功能提供了必要的通信基礎(chǔ)。對于實現(xiàn)如數(shù)據(jù)的采集與分析,就十分容易了。此外,由于USB具備高速率、低功耗和低成本等優(yōu)勢,越來越多支持USB標(biāo)準(zhǔn)的設(shè)備或產(chǎn)品將推向市場,USB在未來將成為標(biāo)準(zhǔn)的配置。因此它的實現(xiàn)很有可能會帶動一次新的產(chǎn)業(yè)升級和設(shè)備換代。

        可以預(yù)見,隨著USB技術(shù)和測試測量技術(shù)的發(fā)展,USB接口技術(shù)在虛擬儀器測試測量的研究開發(fā)和應(yīng)用中將會得到更快的推廣和普及。

        [1]雷振山.LabVIEW7編程技術(shù)實用教程[M].北京:中國鐵道出版社,2004.

        [2]南京沁恒電子有限公司.CH372中文手冊[Z].

        [3]南京沁恒電子有限公司.CH451中文手冊[Z].

        [4]陳國亮,張素君.基于 LabVIEW的虛擬儀器設(shè)計[J].福建電腦,2005(7):45-150.

        猜你喜歡
        數(shù)碼管下位虛擬儀器
        Arduino編程
        電腦報(2019年2期)2019-09-10 07:22:44
        MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
        單片機控制的四位數(shù)碼管動態(tài)顯示編程
        基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計與實現(xiàn)
        發(fā)射機房監(jiān)控系統(tǒng)之下位機
        PCB 刻制機功能開發(fā)及在虛擬儀器實驗室建設(shè)中的應(yīng)用
        電子制作(2017年13期)2017-12-15 09:00:26
        虛擬儀器及其在電工電子實驗中的應(yīng)用
        電子制作(2017年1期)2017-05-17 03:54:33
        虛擬儀器技術(shù)在農(nóng)業(yè)裝備測控中的應(yīng)用
        景洪電廠監(jiān)控系統(tǒng)下位機數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        北京紀事(2016年5期)2016-05-07 13:17:02
        婷婷色国产精品视频二区| 色系免费一区二区三区| 亚洲精品无码久久毛片| 欧美激情区| 性一交一乱一伦一视频一二三区| 日韩精品免费一区二区中文字幕| 亚洲av天堂在线免费观看| 日本护士口爆吞精视频| 人妻熟妇乱又伦精品hd| 熟妇人妻无乱码中文字幕| 亚洲国产精品无码久久电影| 久久aⅴ无码av高潮AV喷| 一本色道久久88加勒比综合| 国产成人精品一区二区三区| 成年女人毛片免费视频| 亚洲AV永久无码精品表情包| 国产黄色一区二区在线看| 神马影院午夜dy888| 国产人与禽zoz0性伦| 中文乱码字幕高清在线观看| 国产女主播视频一区二区三区| 国产3p一区二区三区精品| 免费无码一区二区三区a片百度| 国产精品久久久久久婷婷| 天天躁人人躁人人躁狂躁| 日产精品一区二区三区免费| 久久精品国产亚洲av性瑜伽| 国产成人无码av一区二区| 国产午夜无码视频免费网站| 青青草针对华人超碰在线| 亚洲av色图一区二区三区| 久久久久久欧美精品se一二三四| 久久久久亚洲精品无码网址| 国产v综合v亚洲欧美大天堂| 亚洲一区二区三区在线更新| 国产精品国产三级第一集| 国产精品无码a∨精品影院| 人妖另类综合视频网站| 少妇激情高潮视频网站| 午夜精品久久久久久久| 国产一区二区三精品久久久无广告 |