日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

基于USB的通用無線傳輸接口設(shè)計(jì)

作者:武漢理工大學(xué); 任暉
摘要:介紹一種基于Philips公司的32位ARM7T[)MI—s微處理器LPC2210的USB接口設(shè)計(jì),并使用Nordic公司生產(chǎn)的單片射頻收發(fā)芯片nRF2401設(shè)計(jì)USB接口的無線通信模塊 。
闡述該系統(tǒng)的工作原理、硬件構(gòu)成及軟件設(shè)計(jì)方案 。實(shí)現(xiàn)了基于USB接口的無線串行通信 。
要害詞:無線傳輸LPC2210USBnRF2401 CY7C63231
引言
USB通用串行總線主要用于USB設(shè)備與主機(jī)之間的數(shù)據(jù)通信,非凡為USB設(shè)備與USB主機(jī)之間大量的數(shù)據(jù)傳輸提供了高速、可靠的傳輸協(xié)議 。射頻通信以其優(yōu)點(diǎn)也應(yīng)用在越來越多的場(chǎng)合 。本文所設(shè)計(jì)的USB無線串行接口電路由nRF2401單片射頻收發(fā)器、LPC2210微控制器和USB接口芯片組成 。本系統(tǒng)充分利用USB口數(shù)據(jù)傳輸功能,設(shè)備連接方便,系統(tǒng)可用于進(jìn)行無線串行數(shù)據(jù)雙向傳輸,在儀器儀表、計(jì)算機(jī)遙測(cè)遙控系統(tǒng)、家庭網(wǎng)絡(luò)系統(tǒng)等中得到了應(yīng)用 。
1; 硬件設(shè)計(jì)
整個(gè)硬件設(shè)計(jì)分為兩個(gè)部分:使用帶并行總線的USB接口器件PDIUSBD12設(shè)計(jì)LPC2200的USB接口,其電路圖如圖1所示;使用Cypress公司的USB外圍控制芯片CY7C63231設(shè)計(jì)射頻芯片nRF2401的USB接口,其電路圖如圖2所示 。兩個(gè)部分通過USB口相接,整個(gè)硬件設(shè)計(jì)系統(tǒng)框圖如圖3所示 。
圖1中,USB接口芯片采用的是Philips公司的并行USB接口芯片PDlUSBD12,符合通用串行總線(USB)1.1版本規(guī)范 。這里以LPC2200微控制器與PDIUSBI)12構(gòu)成USB設(shè)備,PDIUSBD)12連接到LPC2200的硬件原理圖如圖1所示 。
PDIUSBD12使用LPC2200外部存儲(chǔ)控制的Bank2部分,數(shù)據(jù)地址為0x82000000,命令地址為Ox82000001 。RST_USB、SUSP為LPC2200的輸出引腳,PDIUSBD)12中斷信號(hào)為中斷輸入信號(hào),且為外部中斷O 。C1、C2和X1為PDIUSBD)12提供工作所需的時(shí)鐘輸入 。發(fā)光二極管GoodLink在正常通信時(shí)閃爍 。PDIUSBD12的AD0連接到LPC2200的A0,當(dāng)LPC2200在A0引腳輸出l時(shí),表示輸出到PDIUSBD12數(shù)據(jù)總線DO~D7上的數(shù)據(jù)為命令字;當(dāng)A0引腳輸出0時(shí),表示輸出到PDIUSBD)12數(shù)據(jù)總線DO~D7的數(shù)據(jù)為數(shù)據(jù)字 。
圖2中,CY7C63231是8位RISC微處理器,非凡適用在USB嵌入式方面,工作電壓為5V 。nRF2401是單片射頻收發(fā)芯片,有四種工作模式:收發(fā)模式、配置模式、空閑模式和關(guān)機(jī)模式 。所有配置工作,工作模式選擇和收發(fā)數(shù)據(jù)都是通過CY7C63231的PO引腳控制完成的 。用電壓調(diào)整芯片LP2980IM5—3.3產(chǎn)生nRF2401的工作電壓(3.3V),同時(shí)SN74LVC4245產(chǎn)生控制口3.3V和5 V的電平轉(zhuǎn)換,使工作在不同電壓的這兩種芯片能正常的相連 。
2; 軟件設(shè)計(jì)
2.1PDIUSBDl2驅(qū)動(dòng)軟件構(gòu)架
為了使驅(qū)動(dòng)軟件可移植性強(qiáng)、易維護(hù),采用分層的方法編寫PDIUSBDl2的驅(qū)動(dòng)程序,圖4為USB驅(qū)動(dòng)程序軟件分層結(jié)構(gòu)圖 。
USB驅(qū)動(dòng)程序軟件包提供給用戶6個(gè)API函數(shù),這6個(gè)函數(shù)都在USB應(yīng)用層中定義,功能描述如表1所列 。
下面以接收和發(fā)送數(shù)據(jù)任務(wù)為例,演示了一個(gè)任務(wù)從端點(diǎn)2發(fā)送1024個(gè)字節(jié) 。部分源代碼如下:
#defineRW_NUMS1024//任務(wù)收發(fā)數(shù)據(jù)字節(jié)數(shù)

;voidTaskRecl(void*pdata)
{#ifOS_CRlTICAL_METHOD==3
//為CPU狀態(tài)寄存器分配存儲(chǔ)空間
OS_CPU_SRcpu_sr;
#endif
INT8UBuff[RW_NUMS];//接收及發(fā)送緩沖區(qū)
INT8Uack=0x01;//應(yīng)答主機(jī)數(shù)值
INT8Uerr;//函數(shù)返回值
pdata=https://www.rkxy.com.cn/dnjc/pdata;//避免編譯器警告
for(;;){
OSSemPend(TaskReel_Sere,0,&-err);//等待TaskStart的命令
err=WritePortl(1,&ack,200);//應(yīng)答USB主機(jī)
if(err==USB_NO_ERR){//應(yīng)答正確
err=ReadPort2(RW_NUMS,Buff,200);//接收數(shù)據(jù)
OSTimeDly(1);//延時(shí)一個(gè)時(shí)鐘周期
if(err==USB_NO_ERR){//接收正確

推薦閱讀