国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

基于USB的通用無線傳輸接口設計

2019-11-05 02:53:12
字體:
來源:轉載
供稿:網友

    作者:武漢理工大學  任暉

    摘要:介紹一種基于Philips公司的32位ARM7T[)MI—s微處理器LPC2210的USB接口設計,并使用Nordic公司生產的單片射頻收發芯片nRF2401設計USB接口的無線通信模塊。

    闡述該系統的工作原理、硬件構成及軟件設計方案。實現了基于USB接口的無線串行通信。

    要害詞:無線傳輸LPC2210USBnRF2401 CY7C63231

    引言

    USB通用串行總線主要用于USB設備與主機之間的數據通信,非凡為USB設備與USB主機之間大量的數據傳輸提供了高速、可靠的傳輸協議。射頻通信以其優點也應用在越來越多的場合。本文所設計的USB無線串行接口電路由nRF2401單片射頻收發器、LPC2210微控制器和USB接口芯片組成。本系統充分利用USB口數據傳輸功能,設備連接方便,系統可用于進行無線串行數據雙向傳輸,在儀器儀表、計算機遙測遙控系統、家庭網絡系統等中得到了應用。

    1  硬件設計

    整個硬件設計分為兩個部分:使用帶并行總線的USB接口器件PDIUSBD12設計LPC2200的USB接口,其電路圖如圖1所示;使用CyPRess公司的USB外圍控制芯片CY7C63231設計射頻芯片nRF2401的USB接口,其電路圖如圖2所示。兩個部分通過USB口相接,整個硬件設計系統框圖如圖3所示。

基于USB的通用無線傳輸接口設計(圖一)

基于USB的通用無線傳輸接口設計(圖二)

基于USB的通用無線傳輸接口設計(圖三)

    圖1中,USB接口芯片采用的是Philips公司的并行USB接口芯片PDlUSBD12,符合通用串行總線(USB)1.1版本規范。這里以LPC2200微控制器與PDIUSBI)12構成USB設備,PDIUSBD)12連接到LPC2200的硬件原理圖如圖1所示。

    PDIUSBD12使用LPC2200外部存儲控制的Bank2部分,數據地址為0x82000000,命令地址為Ox82000001。RST_USB、SUSP為LPC2200的輸出引腳,PDIUSBD)12中斷信號為中斷輸入信號,且為外部中斷O。C1、C2和X1為PDIUSBD)12提供工作所需的時鐘輸入。發光二極管GoodLink在正常通信時閃爍。PDIUSBD12的AD0連接到LPC2200的A0,當LPC2200在A0引腳輸出l時,表示輸出到PDIUSBD12數據總線DO~D7上的數據為命令字;當A0引腳輸出0時,表示輸出到PDIUSBD)12數據總線DO~D7的數據為數據字。

基于USB的通用無線傳輸接口設計(圖四)

    圖2中,CY7C63231是8位RISC微處理器,非凡適用在USB嵌入式方面,工作電壓為5V。nRF2401是單片射頻收發芯片,有四種工作模式:收發模式、配置模式、空閑模式和關機模式。所有配置工作,工作模式選擇和收發數據都是通過CY7C63231的PO引腳控制完成的。用電壓調整芯片LP2980IM5—3.3產生nRF2401的工作電壓(3.3V),同時SN74LVC4245產生控制口3.3V和5 V的電平轉換,使工作在不同電壓的這兩種芯片能正常的相連。

    2  軟件設計

    2.1PDIUSBDl2驅動軟件構架

    為了使驅動軟件可移植性強、易維護,采用分層的方法編寫PDIUSBDl2的驅動程序,圖4為USB驅動程序軟件分層結構圖。

    USB驅動程序軟件包提供給用戶6個API函數,這6個函數都在USB應用層中定義,功能描述如表1所列。

基于USB的通用無線傳輸接口設計(圖五)

    下面以接收和發送數據任務為例,演示了一個任務從端點2發送1024個字節。部分源代碼如下:

    #defineRW_NUMS1024//任務收發數據字節數


    voidTaskRecl(void*pdata)

    {#ifOS_CRlTICAL_METHOD==3

    //為CPU狀態寄存器分配存儲空間

    OS_CPU_SRcpu_sr;

    #endif

    INT8UBuff[RW_NUMS];//接收及發送緩沖區

    INT8Uack=0x01;//應答主機數值

    INT8Uerr;//函數返回值

    pdata=pdata;//避免編譯器警告

    for(;;){

    OSSemPend(TaskReel_Sere,0,&-err);//等待TaskStart的命令

    err=WritePortl(1,&ack,200);//應答USB主機

    if(err==USB_NO_ERR){//應答正確

    err=ReadPort2(RW_NUMS,Buff,200);//接收數據

    OSTimeDly(1);//延時一個時鐘周期

    if(err==USB_NO_ERR){//接收正確

    Buff[0]=OSPrioCur;//標識該任務

    err=WritePort2(RW_NUMS,Buff,200);//發送數據

    }

    }

    }}

    2.2CY7063231軟件設計

    USB外圍控制器CY7C63231控制nRF2401射頻芯片,同時與LPC2210微控制器的USB口相連,實現無線數據的接收和發送。下面以接收無線數據為例。主程序UsBTaskLoop,它是一個無限循環,僅僅在中斷的時候跳出。程序檢測nRF2401的DRl和DR2引腳,當DRl上的電平為高時,產生中斷跳到Receivechl子程序,當DR2上的電平為高時,產生中斷跳到Receivech2子程序。USBSend程序負責從端口1向上位機發送數據,WaitforAck程序等待上位機對端口1的應答信號,Receivechl和Receivech2程序分別從nRF2401的通道1和通道2接收數據。最后調用DATAOUT把數據傳給上位機,然后調用WaitforAck。Prg2401程序段負責對nRF2401進行操作控制,能夠通過設置不同的參數使nRF2401工作在三種不同的工作模式。

    結語

    本系統采用32位嵌入式微處理器進行核心控制,具有強大的數據處理能力。該設計可以通過無線局域網進行無線傳輸,并且可在ARM中對無線接收的數據進行處理,以進一步應用于圖像處理,智能監控,以及遠程電視電話會議等。因此,基于ARM的嵌入式USB口無線接收處理系統具有廣闊的應用前景和市場。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 绥德县| 宜宾县| 汉中市| 米泉市| 北安市| 关岭| 泸水县| 湘潭县| 沭阳县| 娄烦县| 凤凰县| 沁源县| 衡南县| 新津县| 闽清县| 宣威市| 廊坊市| 鹿泉市| 永善县| 宝兴县| 安康市| 诸暨市| 旬邑县| 桃源县| 普洱| 兴国县| 锡林郭勒盟| SHOW| 陆河县| 托克托县| 巴中市| 义乌市| 得荣县| 河间市| 三江| 延吉市| 武隆县| 正蓝旗| 托里县| 海口市|