0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)PIC單片機(jī)控制nRF2401和FT245BM芯片實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:世界電子元器件 ? 作者:楊毓;王代華;祖 ? 2020-04-10 08:08 ? 次閱讀

引言

通信信息的交換平臺(tái),在人們的工作和日常生活中起著重要的作用。傳統(tǒng)的通信技術(shù)是通過(guò)數(shù)據(jù)線和串口/并口將設(shè)備連接在一起,這樣就存在布線困難和其它不方便的因素。而且傳統(tǒng)的RS232串口通迅和并口通訊都存在傳輸速度低、接口的連接過(guò)于復(fù)雜等不足。本文所設(shè)計(jì)的基于USB接口的無(wú)線數(shù)據(jù)傳輸系統(tǒng)利用了USB接口的高傳輸速率、即插即用等優(yōu)點(diǎn),并結(jié)合了無(wú)線數(shù)據(jù)傳輸技術(shù),實(shí)現(xiàn)了計(jì)算機(jī)之間的無(wú)線數(shù)據(jù)通訊,解決了傳統(tǒng)通信技術(shù)帶給我們的不便。

系統(tǒng)硬件設(shè)計(jì)

基于USB接口的無(wú)線數(shù)據(jù)傳輸系統(tǒng)總體方案如圖1所示,該系統(tǒng)由發(fā)射和接收兩部分組成。其中,發(fā)射(接收)系統(tǒng)由單片機(jī)控制射頻發(fā)射模塊和單片機(jī)控制USB芯片兩部分組成。系統(tǒng)的工作過(guò)程為:主機(jī)將數(shù)據(jù)通過(guò)USB接口傳給單片機(jī),數(shù)據(jù)通過(guò)單片機(jī)的SPI口再傳給射頻發(fā)射模塊,最后由射頻發(fā)射模塊把數(shù)據(jù)發(fā)射出去。射頻接收端接收到符合的數(shù)據(jù)包后,通知單片機(jī)讀取數(shù)據(jù),單片機(jī)將數(shù)據(jù)通過(guò)USB接口送給主機(jī),這樣就完成了一包數(shù)據(jù)從發(fā)射端到接收端的傳輸。

通過(guò)PIC單片機(jī)控制nRF2401和FT245BM芯片實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

單片機(jī)控制nRF2401

nRF2401芯片工作在全球開(kāi)放的2.4~2.5GHz ISM免申請(qǐng)頻段共125個(gè)頻點(diǎn),可滿足多頻點(diǎn)和跳頻的需要;最高速率可達(dá)1Mbps,低功耗;發(fā)射功率和頻道參數(shù)可通過(guò)軟件設(shè)置完成。nRF2401內(nèi)置地址解碼器、FIFO(先入先出棧區(qū))、解調(diào)處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器,晶體振蕩器等部分構(gòu)成。nRF2401有兩種模式:Direct Mode(直接模式)和ShockBurst模式。ShockBurst技術(shù)采用芯片內(nèi)部FIFO,數(shù)據(jù)以較低的速率存在FIFO中,再以很高的速率(1Mbps)將數(shù)據(jù)發(fā)射出去,因此它的功耗和成本都很低。nRF2401上的編程采用三線接口方式,單片機(jī)通過(guò)DATA,CLK1,CS三個(gè)引腳對(duì)nRF2401芯片進(jìn)行初始化設(shè)置和數(shù)據(jù)的輸入輸出,單片機(jī)還可以通過(guò)PWR_UP,CE,CS三個(gè)引腳對(duì)其進(jìn)行控制,使nRF2401進(jìn)入不同的工作模式。nRF2401的DATA引腳是數(shù)據(jù)引腳,SCK引腳是時(shí)鐘引腳,在時(shí)鐘信號(hào)的配合下,單片機(jī)通過(guò)DATA引腳從nRF2401中讀取數(shù)據(jù)或者把數(shù)據(jù)寫(xiě)入nRF2401。單片機(jī)與nRF2401連接如圖2所示。

首先對(duì)nRF2401進(jìn)行參數(shù)配置,CS=1,CE=0,PWR_UP=1。bit[119:0]有120位需要配置。這里需要注意的是nRF2401一包數(shù)據(jù)的最大長(zhǎng)度是256位(32Byte),數(shù)據(jù)段的位數(shù)=256-地址段的位數(shù)-CRC的位數(shù)。因此,要想在一包數(shù)據(jù)中傳輸盡可能多的數(shù)據(jù)段的位數(shù),那么應(yīng)該減少地址段的位數(shù)和CRC的位數(shù)。接下來(lái)進(jìn)入突發(fā)模式:CS=0,CE=1,PWR_UP=1。通過(guò)模擬SPI口把數(shù)據(jù)和接收方的地址寫(xiě)入nRF2401。注意該地址是接收方的地址。最后將CE置低,無(wú)線傳輸芯片把數(shù)據(jù)發(fā)射出去。

單片機(jī)對(duì)FT245BM的控制

FT245BM芯片是由FTDI(Future Technology Devices Intl Ltd)公司推出的第二代USB芯片,它的功能是實(shí)現(xiàn)USB接口與并行I/O接口之間數(shù)據(jù)的雙向傳輸。它由3.3V穩(wěn)壓器,USB收發(fā)器,鎖相環(huán),串行接口引擎(SIE),F(xiàn)IFO控制器,USB協(xié)議引擎,F(xiàn)IFO接收緩沖區(qū),發(fā)送緩沖區(qū),以及6M振蕩器,8倍頻時(shí)鐘倍頻器等組成。一方面,當(dāng)外部設(shè)備有數(shù)據(jù)要傳給主機(jī)時(shí),數(shù)據(jù)通過(guò)8位并行I/O接口傳給USB芯片內(nèi)部的數(shù)據(jù)緩沖區(qū),F(xiàn)T245BM再將8位并行數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù),通過(guò)USB接口把數(shù)據(jù)發(fā)送給主機(jī);另一方面,當(dāng)主機(jī)有數(shù)據(jù)要給外部設(shè)備時(shí),先將串行數(shù)據(jù)通過(guò)USB接口存儲(chǔ)在USB芯片內(nèi)部緩存區(qū)中,F(xiàn)T245BM再將串行數(shù)據(jù)轉(zhuǎn)化為8位并行數(shù)據(jù),然后通過(guò)8位I/O接口把數(shù)據(jù)傳給外部設(shè)備。單片機(jī)與FT245BM的連接如圖3所示。

單片機(jī)對(duì)FT245BM的控制是通過(guò)RXF#,RD#,TXE#,WR這四個(gè)讀寫(xiě)控制信號(hào)完成的。當(dāng)RXF#為低時(shí),表示主機(jī)已經(jīng)將至少1字節(jié)的數(shù)據(jù)發(fā)送到USB的接收緩存區(qū),單片機(jī)只需將RD#信號(hào)由低置高,就可以把D0-D7上的數(shù)據(jù)讀到單片機(jī)的寄存器中。當(dāng)TXE#為低時(shí),表示單片機(jī)可以把1字節(jié)的數(shù)據(jù)寫(xiě)入U(xiǎn)SB,只需把WR信號(hào)由高變低,就可以將D0-D7上的數(shù)據(jù)寫(xiě)入U(xiǎn)SB的發(fā)送緩存區(qū)。注意,當(dāng)TXE#為高時(shí)不可以將數(shù)據(jù)寫(xiě)入U(xiǎn)SB,這時(shí)USB的發(fā)送緩存區(qū)中正在處理上一次寫(xiě)入的數(shù)據(jù)或是發(fā)送緩存區(qū)已經(jīng)寫(xiě)滿。同樣,當(dāng)RXF#為高時(shí),也不能從USB芯片中讀取數(shù)據(jù)。

電路設(shè)計(jì)可采用總線供電和自供電兩種供電方式,總線供電方式是指FT245BM設(shè)備的電源是通過(guò)計(jì)算機(jī)的USB接口供給的,電流要通過(guò)該口流入FT245BM設(shè)備。自供電方式是指FT245BM設(shè)備的電源由自己提供,而不通過(guò)主機(jī)供給。如果采用總線供電方式,在電源端采用一個(gè)磁珠,可以減少主機(jī)和設(shè)備的干擾。同時(shí),在電源端增加去耦和旁路電容,可以提高電路的抗干擾性。如果電路沒(méi)有外接一片EEPROM,F(xiàn)T245BM將采用默認(rèn)的VID、PID、產(chǎn)品描述符和電源描述符。

軟件設(shè)計(jì)

發(fā)射端流程、接收端流程見(jiàn)圖4、圖5。

軟件設(shè)計(jì)

當(dāng) 外設(shè)連接到主機(jī)上的USB接口時(shí),主機(jī)會(huì)檢測(cè)到新硬件,這時(shí)需安裝一個(gè)由FTDI公司免費(fèi)提供的D2XX驅(qū)動(dòng)程序,在該驅(qū)動(dòng)程序中包含了一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL)。該DLL由四部分組成:Classic Interface Functions、EEPROM Interface、Extended API和FT-Win32 API。Classic Interface Functions中包括FT_Open、FT_Read、FT_Write、FT_Close、FT_SetTimeOuts等函數(shù),其功能如表1所示。

調(diào)用FT_Open函數(shù),打開(kāi)設(shè)備。如果函數(shù)的返回值與FT_OK的值相等 ,那么函數(shù)調(diào)用成功,即USB設(shè)備被打開(kāi)。調(diào)用FT_Read函數(shù),從USB中讀取數(shù)據(jù)。在程序中應(yīng)該設(shè)置一個(gè)字節(jié)型數(shù)組,用來(lái)存放從USB中讀取的1字節(jié)數(shù)據(jù)。調(diào)用之前需設(shè)置FT_SetTimeOuts函數(shù)的讀/寫(xiě)操作時(shí)間,如果實(shí)際的讀操作時(shí)間超過(guò)了所設(shè)置的時(shí)間,那么認(rèn)為讀數(shù)失敗;只有當(dāng)規(guī)定讀入的字節(jié)數(shù)與實(shí)際讀入的字節(jié)數(shù)相等時(shí),讀操作 才算徹底完成。調(diào)用FT_Write函數(shù),把數(shù)據(jù)寫(xiě)入U(xiǎn)SB中。在程序中應(yīng)該設(shè)置一個(gè)字節(jié)型數(shù)組,用來(lái)存放要寫(xiě)入U(xiǎn)SB發(fā)送緩存器的數(shù)據(jù),數(shù)組的長(zhǎng)度可以自行設(shè)定,但最好不要超過(guò)384個(gè)字節(jié)。只有當(dāng)規(guī)定發(fā)送的字節(jié)數(shù)與實(shí)際發(fā)送的字節(jié)數(shù)相等時(shí),寫(xiě)數(shù)才算成功。調(diào)用FT_Close函數(shù),關(guān)閉設(shè)備。如果函數(shù)的返回值與FT_OK的值相等 ,那么函數(shù)調(diào)用成功,即USB設(shè)備被關(guān)閉。

結(jié)論

本系統(tǒng)采用了nRF2401無(wú)線射頻芯片和USB接口芯片F(xiàn)T245BM,通過(guò)PIC單片機(jī)進(jìn)行控制,在主機(jī)端用VB編寫(xiě)了USB軟件,實(shí)現(xiàn)了兩臺(tái)計(jì)算機(jī)之間的無(wú)線數(shù)據(jù)傳輸,解決了傳統(tǒng)通信技術(shù)的不足,具有很好的應(yīng)用前景。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44562

    瀏覽量

    635914
  • 射頻
    +關(guān)注

    關(guān)注

    104

    文章

    5591

    瀏覽量

    167835
  • 無(wú)線
    +關(guān)注

    關(guān)注

    31

    文章

    5455

    瀏覽量

    173410
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FT245BM芯片簡(jiǎn)介

    FT245BM進(jìn)行數(shù)據(jù)交換,FT245BM通過(guò)并行方式和下位微控制器通信。該芯片有如下特點(diǎn):
    發(fā)表于 04-18 10:26

    nrf2401芯片單片機(jī)控制,若是用FPGA時(shí)序控制,注意哪些?

    如題,一般nrf2401芯片單片機(jī)控制,若是用FPGA時(shí)序控制,那么應(yīng)該注意哪些?畢竟隨著時(shí)代的發(fā)展,F(xiàn)PGA的應(yīng)用范圍將會(huì)越來(lái)越廣,那么
    發(fā)表于 03-12 13:05

    USB接口芯片FT245BM的功能及其應(yīng)用

    概要通用串行總線USB(Universal Serial Bus)由于具有數(shù)據(jù)傳輸速率高、易于使用、支持熱插拔等特點(diǎn),越來(lái)越成為一種流行的計(jì)算機(jī)通信接口。FT245BM芯片是由FTDI(Future
    發(fā)表于 12-20 11:02

    采用FT245BM和FPGA實(shí)現(xiàn)USB接口設(shè)計(jì)

    USB協(xié)議芯片FT245BM,實(shí)現(xiàn)了FPGA與PC機(jī)的USB通信,該方法不用微控制器,減少了元器件的個(gè)數(shù),并且占用FPGA資源很少,F(xiàn)PGA
    發(fā)表于 04-22 07:00

    采用FT245BM和FPGA實(shí)現(xiàn)USB接口設(shè)計(jì)

    3.2.2發(fā)送狀態(tài)機(jī)發(fā)送狀態(tài)機(jī)完成的主要功能是將外設(shè)產(chǎn)生的數(shù)據(jù)通過(guò)FT245BM和USB總線傳送到PC機(jī)。外設(shè)將
    發(fā)表于 04-22 07:00

    采用FT245BM和FPGA實(shí)現(xiàn)USB接口設(shè)計(jì)

    USB協(xié)議芯片FT245BM,實(shí)現(xiàn)了FPGA與PC機(jī)的USB通信,該方法不用微控制器,減少了元器件的個(gè)數(shù),并且占用FPGA資源很少,F(xiàn)PGA
    發(fā)表于 04-26 07:00

    FT245BM中文資料,pdf datasheet

    FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。詳細(xì)介紹FT245BM芯片的工作原理、內(nèi)部結(jié)構(gòu)、引腳分布及功能;給出基于FT245BM接口電路的典型設(shè)計(jì)及驅(qū)動(dòng)和應(yīng)用軟
    發(fā)表于 06-16 08:43 ?234次下載

    基于PIC無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

    本論文以PIC單片機(jī)為核心部件,設(shè)計(jì)和開(kāi)發(fā)了一套無(wú)線數(shù)據(jù)傳輸系統(tǒng)。PIC
    發(fā)表于 08-07 08:18 ?32次下載

    基于nRF2401的分布式測(cè)溫系統(tǒng)設(shè)計(jì)

    利用溫度傳感器DS18B20 、AT89S51 單片機(jī)nRF2401 收發(fā)芯片設(shè)計(jì)分布式無(wú)線溫度測(cè)試系統(tǒng)。將溫度傳感器DS18B20 采集
    發(fā)表于 08-30 15:51 ?134次下載

    USB接口芯片FT245BM的功能及其應(yīng)用

    通用串行總線USB(Universal Serial Bus)由于具有數(shù)據(jù)傳輸速率高、易于使用、支持熱插拔等特點(diǎn),越來(lái)越成為一種流行的計(jì)算機(jī)通信接口。FT245BM芯片是由FTDI(Future Technology Devic
    發(fā)表于 05-14 15:47 ?4580次閱讀
    USB接口<b class='flag-5'>芯片</b><b class='flag-5'>FT245BM</b>的功能及其應(yīng)用

    FT245BM的USB接口電路設(shè)計(jì)

    FT245BM的接口電路設(shè)計(jì) 設(shè)計(jì)采用USB總線供電,圖2中FT245BM與一片MCU相連,MCU的一個(gè)8位端口用來(lái)傳輸數(shù)據(jù),另外一個(gè)端口用來(lái)控制
    發(fā)表于 05-14 18:12 ?2284次閱讀
    <b class='flag-5'>FT245BM</b>的USB接口電路設(shè)計(jì)

    基于FT245BM的簡(jiǎn)易USB接口開(kāi)發(fā)

    基于FT245BM的簡(jiǎn)易USB接口開(kāi)發(fā) FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。詳細(xì)介紹FT245BM芯片的工作原理、內(nèi)部結(jié)構(gòu)、引腳分布及功能;給
    發(fā)表于 06-16 08:42 ?1731次閱讀

    基于nRF24L01和PIC16F877無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)

    本文設(shè)計(jì)了一個(gè)無(wú)線數(shù)據(jù)傳輸系統(tǒng),它應(yīng)用Microchip公司的PIC16F877單片機(jī)控制Nor
    發(fā)表于 06-27 10:00 ?1598次閱讀
    基于<b class='flag-5'>nRF</b>24L01和<b class='flag-5'>PIC</b>16F877<b class='flag-5'>無(wú)線</b><b class='flag-5'>數(shù)據(jù)傳輸</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    基于nRF2401無(wú)線數(shù)據(jù)傳輸系統(tǒng)

    基于nRF2401無(wú)線數(shù)據(jù)傳輸系統(tǒng),參考下。
    發(fā)表于 01-25 10:28 ?53次下載

    基于nRF24L01和FT245BM無(wú)線文件傳輸系統(tǒng)設(shè)計(jì)

    本文采用PIC16F877單片機(jī)、USB芯片FM245BM無(wú)線芯片nR孔4功1組成
    發(fā)表于 12-15 16:44 ?2271次閱讀
    基于<b class='flag-5'>nRF</b>24L01和<b class='flag-5'>FT245BM</b>的<b class='flag-5'>無(wú)線</b>文件<b class='flag-5'>傳輸</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)