摘? 要: 介紹了基于nRF401無線收發(fā)芯片的PC機(jī)串口通信模塊和PC機(jī)ISA插槽通信模塊的設(shè)計(jì)思路和實(shí)現(xiàn)方法。通過該兩種模塊可以方便地實(shí)現(xiàn)PC機(jī)數(shù)字信號的載頻傳播,使計(jì)算機(jī)之間的無線數(shù)據(jù)傳輸成為可能。?
關(guān)鍵詞: 無線收發(fā)? nRF401? 串口? ISA? ActiveX?
?
很多PC機(jī)應(yīng)用系統(tǒng)需要增加無線數(shù)據(jù)傳輸功能。本文基于挪威NORDIC公司最新推出的單片無線收發(fā)一體芯片nRF401,設(shè)計(jì)出兩種無線通信模塊:具有標(biāo)準(zhǔn)RS232C接口的串口模塊和具有標(biāo)準(zhǔn)PC機(jī)ISA總線插槽的通信模塊。系統(tǒng)由基于nRF401的高頻頭(UFH)和連接PC機(jī)的接收適配器(ADAPTER)兩部分組成。?
1 高頻頭設(shè)計(jì)?
1.1 主芯片nRF401簡介?
nRF401是工作于ISM頻段(433MHz)的單片無線收發(fā)一體芯片。它是目前集成度最高的無線數(shù)傳產(chǎn)品,20腳雙列直插封裝。nRF401內(nèi)部結(jié)構(gòu)如圖1所示,其中包含高頻接收/發(fā)射、PLL合成、FSK調(diào)制/解調(diào)和雙頻切換等單元。?
?
?
該芯片有如下特點(diǎn):FSK[5]頻移鍵控(FrequencyShiftKeying)調(diào)制方式,直接數(shù)據(jù)輸入輸出,抗干擾能力強(qiáng),特別適合工業(yè)場合;采用DSS+PLL頻率合成技術(shù),頻率穩(wěn)定性極好;靈敏度高,達(dá)到-105dBm;無需曼徹斯特編碼;工作速率最高可達(dá)20kbit/s;最大發(fā)射功率達(dá)+10dBm,開闊地的使用距離最遠(yuǎn)可達(dá)1000m;工作在ISM頻率433MHz和雙信道頻率433.92MHz/434.33MHz,使用不需要申請?jiān)S可證。?
1.2 接口設(shè)計(jì) ?
考慮到相互干擾,在本系統(tǒng)中,高頻頭單獨(dú)做成一塊PCB板。?
壓控振蕩器(VCO)外接22mH高品質(zhì)因素電感;鎖相環(huán)(PLL)外接典型單端二階濾波器;振蕩源輸入接4MHz晶振;天線設(shè)計(jì)采用環(huán)形差分天線。和通信模塊接口的電路采用四腳端口連接。其中,TXEN為發(fā)送使能,接低PCB板上的跳線。當(dāng)接高電平時(shí)表明發(fā)送模式,反之為接收模式;CS為頻率選擇,也接PCB跳線,由高低電平選擇所使用的頻率;PWN_UP為節(jié)電模式選擇,采用同樣處理方式;ANT1/ANT2為天線接口。這樣,高頻頭僅以DOUT、DIN、GND和VCC與通信模塊構(gòu)成接口,使系統(tǒng)調(diào)試非常方便。?
2 通信適配器的設(shè)計(jì)?
考慮到PC機(jī)應(yīng)用的具體情況,本文提出了基于標(biāo)準(zhǔn)RS232C端口和基于ISA總線的兩種設(shè)計(jì)思路。為防止高頻電路對通信適配模塊的干擾,兩種情況下,通信適配器均單獨(dú)設(shè)計(jì)PCB電路板。?
2.1 RS232方案?
2.1.1 硬件實(shí)現(xiàn)?
RS232方案如圖2所示,采用51系列芯片8052作為主控芯片,外加一片USART8251擴(kuò)展8052的串行口,使之與PC機(jī)和高頻頭兩端都具有通信的能力。其中,8251的RXRDY和TXRDY可以用一片或門相連接至8052的INT0端口(中斷方式)或浮空(查詢方式)。
?
?
系統(tǒng)時(shí)鐘采用7.3728MHz的石英晶振,由8252的ALE、組合產(chǎn)生1.2288MHz的脈沖信號,該信號作為8251的CLK時(shí)鐘信號,同時(shí)利用一片可編程定時(shí)/計(jì)數(shù)器8253進(jìn)行64分頻以產(chǎn)生8251的收發(fā)時(shí)鐘。?
在接收板端,高頻頭接收來自發(fā)送高頻頭的FSK調(diào)制電磁波,經(jīng)過接口送到適配器的8052引腳RXD。運(yùn)行于查詢方式時(shí),系統(tǒng)程序把數(shù)據(jù)從8052的TXD端向PC機(jī)傳送,完成一次數(shù)據(jù)傳輸;在中斷方式時(shí),8251接收到數(shù)據(jù)后會激活系統(tǒng)中斷服務(wù)例程并完成同樣的操作。發(fā)送板端與此類似,只不過經(jīng)由8052的RXD、8251的TXD直接從高頻頭發(fā)送出去。?
在電路圖中,8052的P27用來產(chǎn)生8251的片選信號,P26接8253的WR以產(chǎn)生寫入數(shù)據(jù)或命令字的片選信號。本系統(tǒng)編址如下:8251的命令狀態(tài)端口C=7FFFH,數(shù)據(jù)端口D=7FFEH;8253的工作方式控制字口為BFF3H,通道1地址為BFF0H。?
串行端口RXD/TXD與PC機(jī)串口連接時(shí),選用一片MAXIM232芯片作TTL/RS232邏輯電平轉(zhuǎn)換,如圖3所示。?
?
?
2.1.2 軟件及設(shè)置?
為平衡PC機(jī)端和8251端通訊的波特率,統(tǒng)一采用1200bps,設(shè)置如下:?
可編程定時(shí)/計(jì)數(shù)器8253工作于方式3,即方波發(fā)生器方式。工作方式控制字寫入36H,采用二進(jìn)制計(jì)數(shù);為達(dá)到64分頻的目的,在通道1寫入40H。?
通用同步/異步接收/發(fā)送器USART8251工作于異步方式,波特率1200bps,字符長度8位,一個(gè)停止位??紤]到系統(tǒng)的低波特率應(yīng)該能滿足傳輸?shù)目煽啃?故不設(shè)校驗(yàn)位。方式控制字為4EH,命令指令為15H。?
在8051自身串口設(shè)置中,采用方式1即8位UART,以T1作為收發(fā)時(shí)鐘。為滿足1200bps的傳輸波特率,經(jīng)計(jì)算得:T1編程為方式2定時(shí)狀態(tài),即可重載方式,計(jì)數(shù)常數(shù)為F0H。?
查詢方式通信適配器流程圖如圖4所示。?
2.2 ISA方案?
在應(yīng)用系統(tǒng)設(shè)計(jì)中,ISA總線由于其技術(shù)成熟性而被廣泛應(yīng)用。下面簡單介紹本系統(tǒng)的ISA方案。 ?
在該方案中,微型計(jì)算機(jī)作為系統(tǒng)中央處理設(shè)備,擴(kuò)展一塊UART8251使之具有串口通信的能力;74LS138用于不完全地址譯碼,譯碼邏輯電路如圖5所示;為避免對ISA總線操作造成影響,加了兩片三態(tài)門電路74LS245進(jìn)行總線隔離;在本系統(tǒng)中,去除了8052,僅使用一片USART8251和一片可編程定時(shí)/計(jì)數(shù)器8253,如圖5和圖6所示。?
?
?
?
74LS138的輸出腳y0同時(shí)選通8251的CS片選引腳和總線隔離芯片74LS245的腳;由于74LS245固有的選通邏輯,使用ISA總線的IOR選通該三態(tài)門的DIR端;74LS138的y7腳同時(shí)選通8253的WR和另一片74LS245的端;8251的命令數(shù)據(jù)腳C/D接ISA總線的A0,8253的A0、A1腳接ISA總線的A0、A1。8253的輸出通道0和通道1設(shè)定8251的收發(fā)時(shí)鐘TXC/RXC和系統(tǒng)時(shí)鐘CLK。?
3 PC端通信軟件設(shè)計(jì)?
3.1 用8086匯編語言或C語言編制?
傳統(tǒng)方式的PC端涉及的通信軟件一般采用8086匯編語言或C語言提供的端口讀寫語句來實(shí)現(xiàn),在本系統(tǒng)設(shè)計(jì)中,也可以這樣做。?
PC機(jī)讀寫串口其實(shí)就是對機(jī)內(nèi)UART8251的操作。在本系統(tǒng)中,為達(dá)到1200bps的通信波特率,可對相關(guān)寄存器作如下設(shè)置:首先在線控制寄存器設(shè)置通信波特率,低位端口3F8H設(shè)置為60H,高位端口3F9H設(shè)置為00H;然后采用查詢方式編制軟件,先在線狀態(tài)寄存器查詢相關(guān)位,再作端口操作。?
對ISA總線的訪問也是通過端口來操作的,例如在上述譯碼方案中,端口分配如下:8251命令狀態(tài)端口為331H,數(shù)據(jù)端口為330H;8253的通道0為33CH,通道1為33DH,命令口為33FH。只需使用IN或OUT指令進(jìn)行操作。?
3.2 在可視化環(huán)境下操作 ?
微軟的可視化平臺VB、VC可以很方便地完成上述操作。下面簡述在VC中使用ActiveX控件開發(fā)PC串行通信程序。?
在實(shí)際應(yīng)用中,主要使用MSComm(MircosoftCommunicationControl)控件,它提供了事件驅(qū)動(dòng)和查詢兩種方法。在事件驅(qū)動(dòng)法中,每當(dāng)有新字符到達(dá)端口,MSComm控件將觸發(fā)OnComm事件。這樣,應(yīng)用程序可以通過檢查MSComm控件的CommEvent屬性采取相應(yīng)的操作,它類似于匯編語言中的中斷方式;較小的應(yīng)用程序可以采用查詢法,也就是應(yīng)用程序不斷檢查MSComm的CommEvent屬性并采取相應(yīng)操作,它類似于匯編中的查詢法。?
本文介紹了基于nRF401芯片的PC機(jī)無線收發(fā)模塊的研制,提出了兩套具體的應(yīng)用方案和相應(yīng)的軟件編制方法。對本系統(tǒng)的適當(dāng)擴(kuò)展,可以廣泛應(yīng)用于遙控、遙測、無線抄表、門禁系統(tǒng)、工業(yè)數(shù)據(jù)采集、身份辨識和非接觸式RF智能卡系統(tǒng)等[3],具有一定的實(shí)踐意義。?
參考文獻(xiàn)?
1 NRF401 Product Specification. Nordic VLSI ASA,2000,5?
2 黃海榮,田作華. 在VC中用ActiveX控件開發(fā)串行通信程序. 電子技術(shù)應(yīng)用,2000;26(6)?
3 單片RF收發(fā)芯片nRF401介紹及其應(yīng)用.哈工大訊通科技,2001(7).www.frequenchina.com.?
4 何立民. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,1990:391~399?
5 曹志剛,錢亞生. 現(xiàn)代通信原理. 北京:清華大學(xué)出版社,1992:254~256