<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于nRf2401和CP2102的USB2.0無(wú)線(xiàn)測控網(wǎng)絡(luò )

基于nRf2401和CP2102的USB2.0無(wú)線(xiàn)測控網(wǎng)絡(luò )

作者: 時(shí)間:2012-02-21 來(lái)源:網(wǎng)絡(luò ) 收藏

0 前言

本文引用地址:http://dyxdggzs.com/article/186890.htm

  現在,越來(lái)越多的無(wú)線(xiàn)技術(shù)被應用到自動(dòng)控制系統中。1是挪威Nordic公司推出的單片2.4GHz無(wú)線(xiàn)收發(fā)一體芯片,支持多點(diǎn)間通信,最高傳輸速率達到1Mbit/s,可以用于無(wú)線(xiàn)網(wǎng)絡(luò )中。

  USB口傳輸速率是480Mbps,有即插即用和熱插拔功能。接口提供內置電源,可以向外設提供5V和最多500mA的電源。因此在以計算機為上位機的控制系統中,USB口比較適合作為計算機與測控網(wǎng)絡(luò )的接口。

  USB接口器件的開(kāi)發(fā)過(guò)程比較復雜,開(kāi)發(fā)者需要知道USB協(xié)議、USB設備驅動(dòng)程序開(kāi)發(fā)、主機應用程序開(kāi)發(fā)等知識,使用USB-UART橋接電路CP2可以避免上述麻煩。

  1系統的設計思想及和CP介紹

  系統的設計思想如圖1所示。系統是由 CP、nRF、單片機等組成。

系統設計思想

  圖1 系統設計思想

  nRF2401是業(yè)界體積最小、功耗最低、外圍元件最少的低成本射頻芯片。有125個(gè)頻道,速率(0~1Mbps)、發(fā)射功率和工作頻率等所有工作參數可編程設置。每個(gè)芯片可以通過(guò)軟件設置最多40bit地址,而且只有收到本機地址時(shí)才會(huì )輸出數據。內置CRC糾檢錯硬件電路和協(xié)議。2401內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊。工作于2.4~2.5GHz ISM自由頻段,采用SoC方法設計,只需少量外圍元件便可組成射頻收發(fā)電路。nRF2401沒(méi)有復雜的通信協(xié)議,它完全對用戶(hù)透明,同種產(chǎn)品之間可以自由通信。

  CP2102是美國Silicon公司生產(chǎn)的高集成度USB-UART橋接電路。它們能夠用最簡(jiǎn)單的外部電路、最少的外部器件簡(jiǎn)便實(shí)現USB2.0到UART的轉換。

  使用CP2102作為USB接口器件最大的特點(diǎn)是開(kāi)發(fā)方便:①廠(chǎng)商免費提供適用于Windows(含Windows CE)、Linux等操作系統的驅動(dòng)程序。驅動(dòng)程序將計算機的USB口虛擬成一個(gè)COM口,計算機使用普通操作串口的命令訪(fǎng)問(wèn)虛擬COM口。②內置USB2.0全速功能控制器、USB收發(fā)器、48MHz內部晶體振蕩器、1KB字節 E2PROM及異步串行數據總線(xiàn)(UART),電路無(wú)需任何外部的USB器件。③CP2102的UART接口波特率為300bps~921.6kbps,可以滿(mǎn)足無(wú)線(xiàn)網(wǎng)絡(luò )的傳輸要求。

  2硬件電路的實(shí)現

  上位機系統電路如圖2所示。單片機選用ATmega16,是ATMEL公司生產(chǎn)的高性能、低功耗的8 位AVR® 微處理器,采用先進(jìn)的RISC 結構,數據吞吐率高達1 MIPS/MHz。片內集成有16K 字節可編程Flash、512 字節的E2PROM、1K字節的SRAM、兩個(gè)可編程 的串行UART和可工作于主機/從機模式的SPI 串行接口。

上位機系統電路的串行UART和可工作于主機/從機模式的SPI 串行接口

  圖2 上位機系統電路

  CP2102無(wú)需外部電阻和晶體,VBus與REGIN引腳連到USB接口的Vbus端,在REGIN端加1μF的去耦電容。CP2102與單片機接口是標準UART電平,RTX、TXD引腳分別是串口的接收、輸出端,與單片機的對應引腳相連。CP2102的USB端與計算機的USB口連接。CP2102的SUSPEND腳是USB口掛起信號端,接到單片機的PC4引腳。

 無(wú)線(xiàn)收發(fā)模塊

  圖3 無(wú)線(xiàn)收發(fā)模塊

  上位機所有器件均由計算機的USB口提供電源。ATmega16L的電源電壓范圍為2.7~5.5V,nRF2401的電源電壓范圍為1.9~3.6V,利用計算機USB口的+5V電源,通過(guò)MIC2937A芯片將電壓轉換為3.3V。

  無(wú)線(xiàn)收發(fā)模塊電路如圖3所示。nRf2401外圍元件很少,可使用單鞭天線(xiàn)或環(huán)形天線(xiàn),電感需要采用高Q高精度的貼片繞線(xiàn)高頻電感,晶體需采用高穩定晶體,電容應選用高穩定貼片元件。nRf2401通過(guò)SPI接口與單片機進(jìn)行通訊,ATmega16集成了SPI接口(CLK、MISO、MOSI引腳),與nRf2401的CLK1、DATA相連接。nRf2401的CS是片選端,CE是發(fā)送或接收控制端,PWR_UP是電源控制端,分別由單片機的PC5、PC6、PC7引腳控制。nRf2401的DR1為高時(shí)表明在接收緩沖區有數據,接單片機的中斷引腳。

  3 單片機程序設計

  3.1單片機對串口的編程

  ATmega16集成有串口,使用前需要先對它進(jìn)行初始化。具體過(guò)程如下:①UCSRA=0,異步正常模式;②UBRR=1,設置波特率為500Kbps;③UCR= 0x98,使能接收中斷,允許發(fā)送;④SREG=0x80;//開(kāi)中斷。

  初始化后,可以通過(guò)串口與CP2102進(jìn)行數據交換。采用中斷方式接收,當有串口數據到達時(shí)單片機產(chǎn)生中斷,單片機響應中斷從接收緩沖器讀入數據。串口接收中斷程序如下:

  #pragma interrupt_handler uart_rec:8

  unsigned char i;

  void uart_rec()

  {i=UDR;}

  串口發(fā)送程序如下:①UDR=1,發(fā)送數據;②while(!(USR0x40)),等待發(fā)送結束;③USR=~0x40,清發(fā)送完標志。

  3.2單片機對nRf2401的編程

  單片機對nRf2401的編程包括對nRf2401進(jìn)行配置、發(fā)送數據、接收數據等程序。

  當PWR_UP=1、CE=0、CS=1時(shí)nRf2401進(jìn)入配置工作狀態(tài)。配置字最高可達18字節,作用是使nRf2401子系統能夠處理RF協(xié)議。配置字從最高位開(kāi)始,依次通過(guò)SPI接口(CS、CLK1和DATA)送給配置寄存器。本系統配置為ShockBurst方式,配置字分為如下四塊:有效數據寬度(DATA2_W和DATA1_W)、地址寬度(ADDR2和ADDR1)、接收頻道地址(ADDR_W)、CRC配置(CRC_L和CRC_EN)。其值從高到低分別為8EH, 08H, 1CH, 20H, 50H, 0AH, 0

BH, 0CH, 0DH, 0EH, 0AAH, 28H, 0AH, 0BH, 0CH, 0A3H, 6FH, 65H。配置后nRf2401的通道1數據段長(cháng)度80bit(其中nRf2401的序列號8byte + 2byte溫度數據),地址段長(cháng)度40bit,通道1硬件地址0AAH, 28H, 0AH, 0BH, 0CH,啟用16位片上校驗功能,單通道接收,突發(fā)傳遞模式,通信速率1Mbit/s,晶振頻率16MHz,工作頻段2.450GHz,開(kāi)始處于接收狀態(tài)。

  當PWR_UP=1、CE=1、CS=0時(shí)為收發(fā)方式。ShockBurst發(fā)送過(guò)程如下:①CE=1,nRf2401開(kāi)始工作;②將接收節點(diǎn)地址寫(xiě)入nRf2401;將需要發(fā)射的數據寫(xiě)入nRf2401;③CE=0,激活ShockBurst發(fā)送。

  通過(guò)中斷方式接收數據。當有數據需要接收時(shí),nRf2401會(huì )將DR1置高產(chǎn)生中斷信號,接收完畢后DR1又會(huì )被置低。首先配置中斷0為上升沿觸發(fā)方式(ISC01=1, ISC00=1),具體接收過(guò)程如下:①校驗接收到的RF包的地址和欲接收的RF包中有效數據的長(cháng)度;②CE=1,激活RX;③經(jīng)過(guò)200μs處理,nRf2401子系統監視啟動(dòng)并等待信號的到來(lái);④當收到一個(gè)有效的數據包(正確的地址和CRC),nRf2401子系統移去前綴、地址和CRC位;⑤nRf2401子系統通過(guò)把DR1置高,產(chǎn)生中斷信號;⑥CE=0,RF設為低功耗方式;⑦單片機取出有效數據,需要注意的是,每接收一個(gè)字節需要先寫(xiě)0xff 到nRF2401。

  完整的射頻數據包由四部分組成:前綴、地址、有效數據和CRC。前綴一般是8位(也可以設置為4位,由地址的首位決定)。如果地址的首位是0,前綴為01010101;如果地址的首位是1,前綴為10101010。ShockBurst方式下,CP2102接收到有效的數據包后,自動(dòng)移去前綴、地址和CRC,只留有效數據。

  4 計算機控制軟件的編程

  當把CP2102與計算機連接時(shí),系統會(huì )提示發(fā)現新硬件,并要求安裝驅動(dòng)程序,執行CP2102驅動(dòng)程序的安裝文件即可。驅動(dòng)程序安裝后,在設備管理器中會(huì )有CP2102虛擬的COM口(一般是COM3)。

  VB開(kāi)發(fā)環(huán)境集成有串口控件MSComm,該控件是將RS-232的初級操作予以封裝,用高級的Basic語(yǔ)言即可實(shí)現串口數據的發(fā)送和接收[2]。

  首先向工具箱添加MSComm控件,并產(chǎn)生一個(gè)串口對象,取對象名為“MSc”。然后編程對MSc進(jìn)行初始化,步驟如下:①MSc.CommPort=3, 選擇安裝驅動(dòng)程序后計算機虛擬的COM3口;②MSc.Settings = 500000,n,8,1,設置通信波特率是500kbps,無(wú)校驗,8位數據,1位停止位;③MSc.InputMode=1,數據以二進(jìn)制形式存??;④MSc.RThreshold=1,每收到1個(gè)字符都觸發(fā)接收事件;⑤MSc.PortOpen=True,打開(kāi)串口。

  發(fā)送數據只是向控件的Output屬性寫(xiě)數據即可,既MSc.Output=輸出的數據。

  接收數據采取事件驅動(dòng)方式,程序代碼如下:

  Public Sub msc_OnComm()

  Select Case MSc1.CommEvent

   Case comEvReceive

   av = MSc.Input '接收數據

   ……'根據接收的數據進(jìn)行處理

  End S

elect

   End Sub

  5 結束語(yǔ)

  本系統通過(guò)CP2102實(shí)現USB2.0接口,通過(guò)nRf2401通實(shí)現無(wú)線(xiàn)數據收發(fā),具有開(kāi)發(fā)簡(jiǎn)單、可靠性高等特點(diǎn),傳輸速率可以達到900kbps,在工業(yè)控制、消費電子等各個(gè)領(lǐng)域都具有廣闊的應用前景。本文的創(chuàng )新點(diǎn):系統使用CP2102芯片實(shí)現USB2.0接口,芯片廠(chǎng)商免費提供驅動(dòng)程序,計算機端程序開(kāi)發(fā)方便。使用nRf2401實(shí)現無(wú)線(xiàn)數據收發(fā),有內置地址設置、CRC糾檢錯、工作于自由頻段優(yōu)點(diǎn)。文章給出詳細的硬件電路和軟件程序。

  參考文獻

  [1] Silicon Laboratories Inc.CP2102 Product Data Sheet, http:// www.silabs.com,2006

  [2] 范逸之等.Visual Basic與RS-232串行通信控制.北京:中國青年出版社,2002.1

  [3] nRF240x Configurator User Guide. Nordic VLSI document, Nordic Cooperation.

  [4] 彭祖林,鄧羅根,劉細華.用于測量體溫的無(wú)線(xiàn)實(shí)時(shí)監測系統的設計與實(shí)現[J].微計算機信息,2005,1:59-61



關(guān)鍵詞: 2401 2102 nRf 2.0

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>