版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、NetUSB-1100開(kāi)發(fā)指南(V3.0)作者胡文明NetUSB1100模塊是PC端無(wú)線數(shù)據(jù)收發(fā)模塊,配備Cypress公司的USB SLAVEEZUSB_FX2LP68013和Chipcon公司高性能無(wú)線射頻CC1100,以433MHZ(可以設(shè)置為868M,915M等)的無(wú)線頻段進(jìn)行無(wú)線數(shù)據(jù)傳輸,并通過(guò)USB2.0協(xié)議同PC進(jìn)行高速通信,保證了高速通信質(zhì)量,并且可以在無(wú)線通信協(xié)議上實(shí)現(xiàn)嚴(yán)格的數(shù)據(jù)校驗(yàn)機(jī)制,保證數(shù)據(jù)的可靠通信。NetUSB1100模塊可進(jìn)行本機(jī)地址和發(fā)送地址的配置(以及1100全部寄存器的配置),實(shí)現(xiàn)多點(diǎn)PC和PC,PC和電子系統(tǒng)的數(shù)據(jù)傳輸。只要PC上都配有本公司的NetUSB
2、1100無(wú)線USB模塊和相應(yīng)的應(yīng)用,即可實(shí)現(xiàn)PC和PC間的無(wú)線數(shù)據(jù)傳輸,實(shí)現(xiàn)方便,簡(jiǎn)單;若要實(shí)現(xiàn)PC和電子系統(tǒng)的數(shù)據(jù)傳輸,應(yīng)該在電子系統(tǒng)上配置本公司的RF1100模塊,即可實(shí)現(xiàn)。本文介紹了PC和電子系統(tǒng)的數(shù)據(jù)傳輸時(shí),電子系統(tǒng)上應(yīng)該配備的RF1100模塊的驅(qū)動(dòng)函數(shù)。一、模塊介紹NetUSB-1100特點(diǎn):(1)315、433、868、915Mh的ISM 和SRD頻段(2)最高工作速率500kbps,支持2-FSK、GFSK和MSK調(diào)制方式(3)高靈敏度(1.2kbps下-110dDm,1數(shù)據(jù)包誤碼率)(4)內(nèi)置硬件CRC 檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制(5)可編程控制的輸出功率,對(duì)所有的支持頻率可達(dá)
3、+10dBm(6)支持傳輸前自動(dòng)信道(CCA),即載波偵聽(tīng)系統(tǒng)(7)快速頻率變動(dòng)器帶來(lái)的合適的頻率跳躍系統(tǒng)(8)模塊可設(shè)地址,編程非常方便(9)單獨(dú)的64字節(jié)RX和TX數(shù)據(jù)FIFO(10) 提供PC端驅(qū)動(dòng)及操作USB API接口函數(shù),方便程序開(kāi)發(fā).二、原理簡(jiǎn)介NetUSB-1100采用了RF1100進(jìn)行無(wú)線傳輸,默認(rèn)情況下,傳輸可變效載荷數(shù)據(jù)包的大小(默認(rèn)過(guò)28字節(jié),這個(gè)數(shù)值可以調(diào)用NETUSB API 更改,比如在NetUSB_Init中對(duì)其第二個(gè)參數(shù)進(jìn)行設(shè)置,或調(diào)用NetUSB_PacketSize 進(jìn)行設(shè)置),地址寬度為1字節(jié), CRC校驗(yàn)啟用.這些默認(rèn)參數(shù)可以通過(guò)pc 端的NETUSB
4、.DLL 提供的API 進(jìn)行設(shè)置。NetUSB1100為設(shè)備間通信提供一個(gè)基礎(chǔ)環(huán)境。三、驅(qū)動(dòng)函數(shù)說(shuō)明本公司已經(jīng)做好了非常方便移植的驅(qū)動(dòng)頭文件,只要在您的工程中包含RF1100.C文件,并在主函數(shù)中包含RF1100.H頭文件,即可實(shí)現(xiàn)。該驅(qū)動(dòng)是以AT89C2051單片機(jī)進(jìn)行制作的,您只需修改RF1100.H和RF1100.C文件中的部分代碼,即可快速的實(shí)現(xiàn)不同微處理器的移植工作,并且在RF1100.H文件中已經(jīng)做了詳細(xì)的介紹,這里,再做簡(jiǎn)單地介紹。以下是可能需要修改的部分:在RF1100.H文件中1. 模塊引腳接口定義部分,可自行修改引腳配置,但切記不要修改宏定義的變量名。2若想在 I/O口有方
5、向寄存器的單片機(jī) 上進(jìn)行移植,請(qǐng)定義I/O的位的方向,并在RF1100.C文件中相關(guān)地方去掉有關(guān)的方向設(shè)置語(yǔ)句的注釋符。以下是函數(shù)的:1. halRfWriteRfSettings函數(shù),其實(shí)現(xiàn)了初始化RF1100,在您的主函數(shù)開(kāi)始時(shí),需要調(diào)用一下2. unsigned char halRfReceivePacket(unsigned char *rxBuffer,unsigned char *length);函數(shù),實(shí)現(xiàn)無(wú)線接收數(shù)據(jù)。rxBuffer 數(shù)組大小應(yīng)能足夠容納接收數(shù)據(jù)。函數(shù)返回0,則代表沒(méi)有數(shù)據(jù)可以接收和接收數(shù)據(jù)失敗,函數(shù)返回非零,則代表成功接收數(shù)據(jù)。接收到得數(shù)據(jù)存放在rxBuffe
6、r 數(shù)組中。3. void halRfSendPacket(unsigned char *txBuffer, unsigned charsize)函數(shù),實(shí)現(xiàn)無(wú)線發(fā)送數(shù)據(jù)。需要發(fā)送的數(shù)據(jù)存放于txBuffer 數(shù)組中,size為數(shù)組長(zhǎng)度,默認(rèn)過(guò)28字節(jié)。函數(shù)無(wú)返回值。四、下位機(jī)通信部分參考電路圖五、PC端編程環(huán)境設(shè)定說(shuō)明VC7下編程環(huán)境下設(shè)置:(1).在(VC7)項(xiàng)目-屬性-器-輸入-附加依賴項(xiàng)中加入NetUSB.lib 或 在(VC6)Project-Settings-Link-Object/library中加入NetUSB.lib(2).在你的程序中包含頭文件NetUSB.h , 即#inl
7、cude NetUSB.h注:以上假定NetUSB.lib, NetUSB.h, NetUSB.DLL都在當(dāng)前目錄,如果不是請(qǐng)更改路徑設(shè)置。六、PC端編程環(huán)境設(shè)定說(shuō)明函數(shù)說(shuō)明:1)設(shè)置回調(diào)函數(shù)(數(shù)據(jù)接收)原型:voidNetUSB_SetCallback(NETUSB_PFUNC pFunc)說(shuō)明: 每次有數(shù)據(jù)收到, 就調(diào)用pFunc , 回調(diào)函數(shù)的類(lèi)型為 voidCallback(unsigned char* buff, size_t n)返回值:沒(méi)有返回值。2)初始化USB,并啟動(dòng)線程原型:NetUSB_IniNDLE handle ,ps)說(shuō)明: 在使用 NetUSB設(shè)備前,調(diào)用此函數(shù)進(jìn)
8、行初始華,同時(shí)啟動(dòng)了線程,當(dāng)有數(shù)據(jù)包收到時(shí),將回調(diào)NetUSB_SetCallback 設(shè)置的回調(diào)函數(shù)。其中,handle為窗口句柄,ps 無(wú)線發(fā)送數(shù)時(shí)每個(gè)數(shù)據(jù)包的大小,為字節(jié),這個(gè)數(shù)值應(yīng)該要和NETUSB參數(shù)設(shè)置的有效載荷數(shù)據(jù)寬度一致。對(duì)于NETUSB1100,ps代表支持得可變長(zhǎng)數(shù)據(jù)包得最大長(zhǎng)度,建議設(shè)置不要超過(guò)64字節(jié).返回值:0 表示調(diào)用成功,-1表示調(diào)用失敗。3)停止線程(可恢復(fù))原型:NetUSB_StopListen()說(shuō)明:調(diào)用此函數(shù)停止線程,此時(shí)有數(shù)據(jù)到達(dá)時(shí),將不回調(diào)NetUSB_SetCallback 設(shè)置的回調(diào)函數(shù)。但此時(shí),NetUSB 設(shè)備前的發(fā)送不受影響。返回值: 0
9、 表示調(diào)用成功,-1表示調(diào)用失敗。4)重新啟動(dòng)原型:NetUSB_ResumeListen()說(shuō)明: 用于重新啟動(dòng)線程。只能用于因NetUSB_StopListen()的調(diào)用而停止線程的重新啟動(dòng)。返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。5)主機(jī)向USB 發(fā)送數(shù)據(jù),繼而USB將數(shù)據(jù)通過(guò)無(wú)線收發(fā)器發(fā)送數(shù)據(jù)原型:NetUSB1100_Send(char* buf, long length)說(shuō)明:發(fā)送緩沖區(qū)buf中l(wèi)ength 字節(jié)的數(shù)據(jù)。調(diào)用前,length 表示將要發(fā)送的自己長(zhǎng)度;返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。注意,在一次發(fā)送還沒(méi)結(jié)束,即函數(shù)還沒(méi)返回時(shí),不能再次調(diào)用此函數(shù).6
10、)NetUSB原型:NetUSB_Fini()說(shuō)明:必須重新調(diào)用 NetUSB_Init 后,才能使用NetUSB。返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。7)配置設(shè)備地址原型:NetUSB_SetAddress(char* buf, bool b)說(shuō)明:buf中保存配址,以字符串形式提供,比如“DDCCCCBBAA”,其中 DD表示地址的最字節(jié),AA表示最低位字節(jié),各字節(jié)間用空格分割。(對(duì)于NETUSB1100 只有最高字節(jié)位起作用)b =true,配置本端接收地址 Rx; b=false,配置發(fā)送目標(biāo)地址Tx。返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。8)測(cè)試USB硬件是否和相互
11、連接原型:NetUSB_Check( );說(shuō)明: return 0 表示連接正常; return -1 表示連接不正常,應(yīng)該重新連接NETUSB(通過(guò)調(diào)用NetUSB_ReConnecting函數(shù))。9)重新連接設(shè)備原型:NetUSB_ReConnecting說(shuō)明:一般NetUSB_Check 返回-1 時(shí)候調(diào)用返回值:函數(shù)返回值沒(méi)意義。10)設(shè)置pc端發(fā)送的每個(gè)數(shù)據(jù)包大小原型:NetUSB_PacketSize(ps=28);說(shuō)明:參數(shù) ps 和NetUSB_IniNDLE handle ,ps) 中的ps意義一致。PS過(guò)無(wú)線收發(fā)器接收發(fā)送的最大有效載荷數(shù)據(jù)包長(zhǎng)度,具體參見(jiàn)各收發(fā)器Datas
12、heet。返回值: 0 表示調(diào)用成功,-1表示調(diào)用失敗。七、示例程序1、 初始化:使 用 VC6.0 建 立 一 個(gè) 基 于框 的 工程 , 然 后 在BOOLCDemoDlg:OnInitDialog() 函數(shù)的加入如下代碼進(jìn)行初始化:/ TODO: Add extra initialization hereNetUSB_SetCallback(CallbackFunc,28);NetUSB_Init(this-GetSafeHwnd();其中,CallbackFunc 為一個(gè)回調(diào)函數(shù),在本實(shí)例中,為sic void CallbackFunc (unsigned char* buf, siz
13、e_t n)/ buf 為緩沖區(qū),n為buf中的有效字節(jié)數(shù)這樣,NetUSB已經(jīng)初始化,并開(kāi)始工作,當(dāng)有時(shí)間到達(dá)時(shí),可以在CallbackFunc中進(jìn)行處理。一旦有數(shù)據(jù)接收到,CallbackFunc被調(diào)用,演示程序?qū)F(xiàn)實(shí)收到的數(shù)據(jù),十六進(jìn)制現(xiàn)實(shí),如下:2、發(fā)送:在界面上放置一個(gè)Button,雙擊,產(chǎn)生一個(gè)函數(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);NetUSB1100_Send(buf,len);這樣,當(dāng)NetUSB_Send返回時(shí),主機(jī)就向USB發(fā)送了buf中的數(shù)據(jù),同時(shí),NetUSB確保數(shù)據(jù)通過(guò)無(wú)線發(fā)送成功。(第一字節(jié)為數(shù)字2,在演示板上右LED燈閃爍)注意,在發(fā)送長(zhǎng)的數(shù)據(jù)包時(shí),要燈數(shù)據(jù)發(fā)送完成,即發(fā)送程序返回,才能再次發(fā)送數(shù)據(jù).3、設(shè)址:unsigned char buf=“cc cc cc cc AA”;NetUSB_SetAddress(buf, true);如上函數(shù),就設(shè)置了本NetUSB接收的地址(對(duì)于NETUSB1100,地址位一個(gè)字節(jié),所以只有最高字節(jié)起作用)。4、程序退出工作比如在此VC演示程序中void CConfigPaneDlg:tNcDestroy()/ TODO: Add your spe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:閩派古琴的歷史、現(xiàn)狀及文獻(xiàn)研究
- 課題申報(bào)參考:面向?qū)W生創(chuàng)造力培育的場(chǎng)館學(xué)習(xí)環(huán)境測(cè)評(píng)體系與優(yōu)化機(jī)制研究
- 課題申報(bào)參考:面向產(chǎn)品個(gè)性化定制的共享制造資源協(xié)同調(diào)度優(yōu)化理論研究
- 二零二五年度智能電網(wǎng)信息化系統(tǒng)運(yùn)維與電力市場(chǎng)服務(wù)合同3篇
- 二零二五年度黨政機(jī)關(guān)會(huì)議酒店住宿及會(huì)議場(chǎng)地租賃合同4篇
- 2025年度土地承包經(jīng)營(yíng)權(quán)續(xù)包合同示范文本4篇
- 2025年度個(gè)人個(gè)人房產(chǎn)買(mǎi)賣(mài)合同(含裝修及配套設(shè)施)2篇
- 2025年度鋼材行業(yè)投資合作開(kāi)發(fā)合同
- 2025年個(gè)人購(gòu)房合同(含房屋保險(xiǎn)服務(wù))
- 二零二五版南京房地產(chǎn)抵押物拍賣(mài)合同4篇
- 海員的營(yíng)養(yǎng)-1315醫(yī)學(xué)營(yíng)養(yǎng)霍建穎等講解
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護(hù)理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費(fèi)報(bào)銷(xiāo)單
- 我國(guó)全科醫(yī)生培訓(xùn)模式
- 2021年上海市楊浦區(qū)初三一模語(yǔ)文試卷及參考答案(精校word打印版)
- 八年級(jí)上冊(cè)英語(yǔ)完形填空、閱讀理解100題含參考答案
- 八年級(jí)物理下冊(cè)功率課件
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 《長(zhǎng)津湖》電影賞析PPT
評(píng)論
0/150
提交評(píng)論