彈上通信系統的LabVIEW與單片機的通信技術
摘要:結合某型信息化彈藥彈上電子器件通信問題研究,以C8051F340單片機為例,介紹了單片機與LabVIEW進行USB通信的3種方法。針對LabVIEW,實現USB通信的方式有:利用CIN(代碼接口節(jié)點),調用DLL(動態(tài)鏈接庫),通過VISA(虛擬儀器軟件架構)。對這3種方式進行詳細的介紹和比較,并給出結論。
關鍵詞:信息化彈藥;LabVIEW;USB;C8051F340;DLL;VISA
引言
某型信息化彈藥通過對目標的基準彈道與飛行中的攻擊彈道進行比較后,給出有限次不連續(xù)的修正量來修正攻擊彈道,以減少彈著點誤差,提高彈丸對付高速機動飛行目標的命中精度,或提高遠程打擊精度。該信息化彈藥的基本結構就是在常規(guī)炮彈上加裝彈道修正模塊,彈道修正模塊主要由微控制器根據基準彈道修正攻擊彈道參數來提高命中率。
在傳感器及信號調理電路的基礎上,選用高速單片機、快速的數據傳輸總線以及LabVIEW應用程序,可快速開發(fā)一個簡單實用的信息化彈藥彈道控制通信系統模型。本通信系統模型用USB總線,在PC機與USB設備間實現上下位機之間的通信,在軟件方面通常要完成以下設計:USB設備固件編程、USB設備驅動編程和PC機應用程序設計。下位機彈道修正模塊用Silicon Labs公司的全速USB Flash微控制器C8051F340,上位機PC采用LabVIEW編寫應用程序。與C8051F340進行USB通信主要有3種方式:利用CIN調用開發(fā)USB設備的外部代碼;調用DLL對USB設備進行操作;通過VISA訪問USB設備。下面分別進行介紹和比較。
1 利用CIN調用開發(fā)USB設備外部代碼
CIN(Code Interface Node,代碼接口節(jié)點)是LabVIEW中通過參數傳遞來調用C/C++代碼的節(jié)點,可以利用USB設備生產廠家提供的C/ C++代碼,將代碼集成并作為一個單獨的VI發(fā)布,實現數據的高效處理。這種實現方法相當于在LabVIEW下利用CIN對USB設備編寫驅動程序。以C8051F340端口1IN批量傳輸為例。規(guī)定使用端口1IN批量傳輸且最大包長度為128字節(jié),假設端點1IN的緩沖區(qū)地址為0x7E00~0x7E8F。主機通過不斷發(fā)送IN令牌請求USB執(zhí)行IN傳輸,C8051F340會通過將端點字節(jié)計數寄存器(N1CNT)加載,以示數據準備完畢,同時將一個IN數據包裝入端點的IN FIFO并將INPRDY位(EINCSR L.O)位置1。利用CIN調用USB設備的外部代碼的一般步驟如下:
①創(chuàng)建CIN節(jié)點。CIN節(jié)點位于“函數選板”一“互連接口”一“庫與可執(zhí)行庫文件”子選板下。根據設備的參數需要增加外部代碼的輸入/輸出端口。
②創(chuàng)建C源文件。右擊CIN并選擇創(chuàng)建C8051F340UsbInl.c文件選項,對打開的程序修改如下:
評論