<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 彈上通信系統(tǒng)的LabVIEW與單片機(jī)的通信技術(shù)

          彈上通信系統(tǒng)的LabVIEW與單片機(jī)的通信技術(shù)

          作者: 時間:2011-04-12 來源:網(wǎng)絡(luò) 收藏

          ③編譯C8051F340UsbInl.c文件,生成可被執(zhí)行的C8051F340UsbInl.1sb。以VC++為例編譯CIN節(jié)點(diǎn)源文件。在VC++下創(chuàng)建C8051F340UsbInl.mak文件,內(nèi)容如下:
          c.jpg
          在VC++下點(diǎn)擊new\project\make file,輸入文件名C8051F340UsbInl后點(diǎn)擊為OK和Finish按鈕。將C8051F340UsbInl.c和C8051F340U-sbInl.mak一起復(fù)制到C8051F340UsbInl文件夾下,重新打開C8051F340UsbInl工作臺,按F7可生成C8051F340UsbInl.1sb文件。
          ④右擊選用的CIN圖標(biāo),選擇“加載代碼資源”并選擇C8051F340UsbInl.1sb文件。至此,一個基于CIN的讀USB端口1的VI創(chuàng)建完畢。
          上面是一個利用CIN創(chuàng)建開發(fā)USB驅(qū)動的VI的步驟,實(shí)際開發(fā)過程要麻煩很多,需要對設(shè)備及協(xié)議相當(dāng)熟悉。因此,利用CIN實(shí)現(xiàn)USB受到一些限制。

          2 調(diào)用DLL實(shí)現(xiàn)USB
          開發(fā)USB設(shè)備時,不僅要面向USB控制器編程還要面向Windows編程(如果上位機(jī)用Windows操作),對不熟悉USB協(xié)議的用戶而言是個難題。為了縮短用戶開發(fā)USB設(shè)備時間,生產(chǎn)廠家往往會把對USB設(shè)備進(jìn)行操作的函數(shù)封裝成DLL(Dynamic Link Library,動態(tài)鏈接庫)提供給用戶。dll文件是一種可執(zhí)行文件,允許程序共享執(zhí)行特殊任務(wù)必需的代碼和其他資源,與語言無關(guān),可以被任何支持DLL的語言編寫的應(yīng)用程序訪問。
          Silicon Labs公司針對USB系列為USB驅(qū)動程序開發(fā)提供了USBXpress開發(fā)套件,其中的SiUSBXp.dll包含了23個函數(shù)。一個簡單的USB通信程序,通常要用到SiUSBXp.dll中的SI_GetNumDevices、SI_SetTimeouts、SI_Open、SI_Read、SI_Write和SI_Close等幾個函數(shù)。在中調(diào)用dll文件有兩種方法,下面將分別介紹。
          首先是利用CLF(調(diào)用庫函數(shù)節(jié)點(diǎn))節(jié)點(diǎn)調(diào)用SiUSBXp.dll,一般步驟如下:
          ①放置CLF節(jié)點(diǎn)并通過路徑加載dll文件。CLF節(jié)點(diǎn)位于“函數(shù)選板”一“互連接口”一“庫與可執(zhí)行庫文件”子選板下。
          ②在加載的dll文件里選擇要用到的函數(shù)并進(jìn)行參數(shù)配置。根據(jù)USBXpress開發(fā)手冊,對每一個被調(diào)用的函數(shù)配置合適的參數(shù)。
          ③配置參數(shù)完成之后,每一個函數(shù)就是一個VI,可在程序中調(diào)用。
          其次是通過導(dǎo)入共享庫的方法調(diào)用SiUSBXp.dll。
          導(dǎo)入共享庫的實(shí)質(zhì)是將dll文件中的函數(shù)自動生成對應(yīng)的VI。函數(shù)的每個參數(shù)可在頭文件包含以及預(yù)處理定義條件下在生成的VI中顯示出來,與利用CLF相比較,省去了手動配置參數(shù)的步驟。使用方法如下:新建一個VI,點(diǎn)擊“工具”一“導(dǎo)入共享庫”,選擇為用戶創(chuàng)建共享庫;點(diǎn)擊下一步,在“選擇共享庫及頭文件”頁面加載.dll文件和.h文件的路徑;點(diǎn)擊下一步,在預(yù)處理定義中添加預(yù)處理說明(如果需要添加);點(diǎn)擊下一步,等待解析頭文件并選擇待轉(zhuǎn)換函數(shù);點(diǎn)擊下一步,進(jìn)行項(xiàng)目庫設(shè)置配置,連續(xù)點(diǎn)擊下一步,直至所有選中的函數(shù)生成VI存放用戶庫里(默認(rèn)狀態(tài))。調(diào)用時,在“函數(shù)選板”一“用戶庫”一“SiUSBXp”,選擇在LabVIEW程序設(shè)計中用到的VI。
          以上兩種調(diào)用DLL實(shí)現(xiàn)USB通信的方法具體操作不一樣,但本質(zhì)都是利用USB廠家提供的dll文件訪問USB設(shè)備。圖1為LabVIEW調(diào)用DLL實(shí)現(xiàn)一個簡單USB通信的流程。

          d.jpg


          LabVIEW通過調(diào)用dll文件大大縮減了實(shí)現(xiàn)USB通信開發(fā)工作量,但最關(guān)鍵也是最難的一步在于給函數(shù)配置參數(shù)。通常來講,DLL主要用C/C++等文本語言開發(fā),有些參數(shù)類型和LabVIEW不匹配,直接調(diào)用無法正常使用。為了解決這個問題,需要用戶對參數(shù)進(jìn)行修改或者對原有的dll文件進(jìn)行二次開發(fā),加大了工作量。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();