無線開發(fā)usb模塊netusb-2401_第1頁
無線開發(fā)usb模塊netusb-2401_第2頁
無線開發(fā)usb模塊netusb-2401_第3頁
無線開發(fā)usb模塊netusb-2401_第4頁
無線開發(fā)usb模塊netusb-2401_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、NetUSB-2401開發(fā)指南V3.0作者:胡文明NetUSB-2401模塊是本公司自行研發(fā)的PC端無線數(shù)據(jù)收發(fā)模塊,其配備Cypress公司的USB SLAVEEZUSB_FX2LP68013和Nordic公司的高性能射頻RF2401,以2400MHz2485Mhz的無線頻段進行無線數(shù)據(jù)傳輸,并通過USB2.0協(xié)議同PC進行高速通信,保證了高速通信質(zhì)量,并且可以在無線通信協(xié)議上實現(xiàn)嚴格的數(shù)據(jù)校驗機制,保證數(shù)據(jù)的可靠通信。NetUSB-2401 模塊可進行本機地址和發(fā)送地址的配置(以及2401全部寄存器的配置),實現(xiàn)多點PC和PC,PC和電子系統(tǒng)的數(shù)據(jù)傳輸。只要PC上都配有本公司的NetUSB

2、2401無線USB模塊和相應(yīng)的應(yīng)用,即可實現(xiàn)PC和PC間的無線數(shù)據(jù)傳輸,實現(xiàn)方便,簡單;若要實現(xiàn)PC和電子系統(tǒng)的數(shù)據(jù)傳輸,應(yīng)該在電子系統(tǒng)上配置本公司的RF2401模塊,即可實現(xiàn)。本文介紹了PC和電子系統(tǒng)的數(shù)據(jù)傳輸時,電子系統(tǒng)上應(yīng)該配備的RF2401模塊的驅(qū)動函數(shù)。一、模塊介紹NetUSB-2401特點:(1) 2.4Ghz 全球開放ISM頻段免證使用(2) 最高工作速率1Mbps,高效GFSK 調(diào)制,別適合工業(yè)控制場合能力強,特(3)(4)(5)(6)(7)可以多點通信和跳頻通信需要內(nèi)置硬件CRC 檢錯和點對多點通信地址控制低功耗1.9 - 3.6V 工作,待機模式下狀態(tài)僅為1uA收發(fā)模式切換

3、時間 屬性-NetUSB.lib 或在器-輸入-附加依賴項中加入(VC6)Project-Settings-Link-Object/library 中加入NetUSB.lib(2).在你的程序中包含頭文件NetUSB.h , 即#inlcude NetUSB.h注:以上假定NetUSB.lib, NetUSB.h, NetUSB.DLL 都在當前目錄,如果不是請更改路徑設(shè)置。六、PC端編程環(huán)境設(shè)定說明函數(shù)說明:1)設(shè)置回調(diào)函數(shù)(數(shù)據(jù)接收)原型:void NetUSB_SetCallback(NETUSB_PFUNC pFunc) 說明:每次有數(shù)據(jù)收到,就調(diào)用pFunc,回調(diào)函數(shù)的類型為 voi

4、dCallback(unsigned char* buff,size_t n) 返回值:沒有返回值。2)初始化USB,并啟動線程NDLE handle ,原型:NetUSB_Inips) 說明: 在使用NetUSB 設(shè)備前,調(diào)用此函數(shù)進行初始華,同時啟動了線程,當有數(shù)據(jù)包收到時,將回調(diào)NetUSB_SetCallback 設(shè)置的回調(diào)函數(shù)。 其中,handle為窗口句柄,ps 無線發(fā)送數(shù)時每個數(shù)據(jù)包的大小,為字節(jié),這個數(shù)值應(yīng)該要和NETUSB參數(shù)設(shè)置的有效載荷數(shù)據(jù)寬度一致。 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。3)停止線程(可恢復(fù))原型:NetUSB_StopListen() 說明:調(diào)

5、用此函數(shù)停止線程,此時有數(shù)據(jù)到達時,將不回調(diào)NetUSB_SetCallback 設(shè)置的回調(diào)函數(shù)。但此時,NetUSB 設(shè)備前的發(fā)送不受影響。 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。4)重新啟動原型:NetUSB_ResumeListen() 說明: 用于重新啟動線程。只能用于因NetUSB_StopListen()的調(diào)用而停止線程的重新啟動。 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。5)主機向USB 發(fā)送數(shù)據(jù),繼而USB 將數(shù)據(jù)通過無線收發(fā)器發(fā)送數(shù)據(jù)原型:NetUSB_Send(char* buf, long length) 說明:發(fā)送緩沖區(qū)buf 中l(wèi)ength 字節(jié)的數(shù)據(jù)。

6、調(diào)用前,length 表示將要發(fā)送的自己長度;返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。 注意,在一次發(fā)送還沒結(jié)束,即函數(shù)還沒返回時,不能再次調(diào)用此函數(shù).(尤其發(fā)送大塊數(shù)據(jù)時需要注意,函數(shù)具有自動分包的機制,將數(shù)據(jù)分成若干個包,消耗時間將有所延長)6)NetUSB原型:NetUSB_Fini() 說明:必須重新調(diào)用 NetUSB_Init 后,才能使用NetUSB。 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。7)配置設(shè)備地址原型:NetUSB_SetAddress(char* buf, bool b) 說明:buf 中保存配址,以字符串形式提供,比如 “DDCC CC BB AA”,

7、其中 DD表示地址的最字節(jié),AA 表示最低位字節(jié),各字節(jié)間用空格分割。b =true,配置本端接收地址 Rx; b=false,配置發(fā)送目標地址Tx。返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。8)測試USB 硬件是否和相互連接原型:NetUSB_Check( );說明: return 0 表示連接正常; return -1 表示連接不正常,應(yīng)該重新連接NETUSB(通過調(diào)用NetUSB_ReConnecting函數(shù))。9)重新連接設(shè)備原型:NetUSB_ReConnecting 說明:一般NetUSB_Check 返回-1 時候調(diào)用 返回值:函數(shù)返回值沒意義。10)設(shè)置pc 端發(fā)送的每個數(shù)

8、據(jù)包大小原型:NetUSB_PacketSize(ps=28); 說明:參數(shù)ps 和NetUSB_IniNDLE handle ,ps) 中的ps意義一致。PS不能超過無線收發(fā)器接收發(fā)送的最大有效載荷數(shù)據(jù)包產(chǎn)度,具體參見各收發(fā)器Datasheet。 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。11)配置 2401 全部配置寄存器原型:NetUSB2401_RfSettingConfig(nRf2401Setting nfr); 說明:/ 配置 2401 寄存器(具體信息見下述結(jié)構(gòu)體) 返回值: 0 表示調(diào)用成功,-1 表示調(diào)用失敗。struct nRf2401Setting / 2401 配

9、置寄存器結(jié)構(gòu)體unsigned char TEST_2;試用,無需修改)/fortesting (測unsignedunsigned unsignedcharchar charTEST_1;TEST_0; DATA2_W;/forfortestingtestingLength of data payloadRx channel 2Length of data payload Rx channel 1sectionunsignedcharDATA1_W;/sectionunsignedcharADDR2_4;/Up to 5channelbyte address for Rx1unsignedu

10、nsigned unsigned unsigned unsignedcharchar char char charADDR2_3;ADDR2_2; ADDR2_1; ADDR2_0; ADDR1_4;/Up to 5channelbyte address for Rx1unsignedunsigned unsigned unsigned unsigned channels)charchar char char charADDR1_3;ADDR1_2; ADDR1_1; ADDR1_0; ADDR_W;/Number of address bits(bothRxunsignedunsignedc

11、harcharCRC_L;CRC_EN;/8 or 16 bit CRCEnable on-chip CRC generation/checkingEnable two channel receive mode Communication mode( Direct or ShorckBurst)RF data rate (1Mbps requires 16Mhz crystal)Crystal frequencyunsignedunsignedcharcharRX2_EN;CM;/unsignedcharRFDR_SB;/unsignedunsigned unsigned unsigned;c

12、harchar char charXO_F;RF_PWR; RF_CH; RXEN;/Rf outputerFrequency channelRx or Tx operation12)配置2401全部配置寄存器原型:NetUSB2401_RfSettingConfig2(char* buf); 說明:為方便其他語言,參數(shù)使用一個指針,指針指向的內(nèi)存必須至少有25 字節(jié)的配置值:TEST_2,TEST_1,TEST_0,DATA2_W,DATA1_W,ADDR2_4,ADDR2_3,ADDR2_2,ADDR2_1,ADDR2_0,ADDR1_4,ADDR1_3,ADDR1_2,ADDR1_1,A

13、DDR1_0,ADDR_W,CRC_L,CRC_EN,RX2_EN,CM,RFDR_SB,XO_F,RF_PWR,RF_CH,RXEN 共25 個字節(jié),必須嚴格安裝順序! 其中,開始三個字節(jié)為測試用,在本設(shè)置中可以隨便設(shè)置. 返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。13)配置 Frequency channel (Channel RF 頻率)原型:NetUSB2401_SetRF_Csigned char RF_CH=0 x2); 說明:1.0 Mhz 返回0,表示成功, -1表示Channel rf =2400Mhz +RF_CH *失敗七、示例程序1) 初始化:使用VC6.0 建立一

14、個基于框的工程,然后在BOOLCDemoDlg:OnInitDialog() 函數(shù)的加入如下代碼進行初始化:/ TODO: Add extra initialization hereNetUSB_SetCallback(CallbackFunc,28);NetUSB_Init(this-GetSafeHwnd(); 其中,CallbackFunc 為一個回調(diào)函數(shù),在本實例中,為 sic void CallbackFunc(unsigned char* buf, size_t n) / buf 為緩沖區(qū),n為buf 中的有效字節(jié)數(shù) 這樣,NetUSB已經(jīng)初始化,并開始工作,當有時間到達時,可以在

15、CallbackFunc中進行處理。 一旦有數(shù)據(jù)接收到,CallbackFunc被調(diào)用,演示程序?qū)@示收到的數(shù)據(jù),十六進制顯示,如下:2)發(fā)送: 在界面上放置一個Button,雙擊,產(chǎn)生一個函數(shù),在其中加入unsigned char buf=2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;long len=sizeof(buf);NetUSB_Send(buf,len); 這樣,當NetUSB_Send返回時,主機就向USB發(fā)送了buf中的數(shù)據(jù),同時,NetUSB確保數(shù)據(jù)通過無線發(fā)送成功。(第一字節(jié)為數(shù)字2,在演示板上右LED燈閃爍)注意,在發(fā)送長的數(shù)據(jù)包時,要燈數(shù)據(jù)發(fā)送完成,即發(fā)送程序返回,才能再次發(fā)送數(shù)據(jù).3)設(shè)址: unsigned char buf=“cc cc cc cc AA”; long length=strlen(buf)+1;NetUSB_SetAddress(buf, true); 如上函數(shù),就設(shè)置了本NetUSB接收的地址。4)程序退出工作比如在此VC演示程序中 voidCConfigPaneDlg:tNcD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論