??? 摘? 要: 介紹了超小型、超低功率、高速率無線數(shù)傳MODEM芯片PTR2000的產(chǎn)品特性、電氣參數(shù)及使用中應(yīng)注意的一些技術(shù)問題,并給出其應(yīng)用實(shí)例。?
??? 關(guān)鍵詞: 無線數(shù)傳? 單片機(jī)? PTR2000
?
1 PTR2000簡介?
??? PTR2000是超小型、超低功率、高速率無線數(shù)傳MODEM。?
1.1? PTR2000產(chǎn)品特性?
??? ·工作頻率為國際通用的數(shù)傳頻段433MHz;?
??? ·FSK調(diào)制,擴(kuò)展能力強(qiáng),特別適合工業(yè)控制場合;?
??? ·采用DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性好;?
??? ·低工作電壓(2.7V),低功耗,接收待機(jī)狀態(tài)電流僅為8μA;?
??? ·具有兩個頻道,特別適合需要多信道工作的特殊場合;?
??? ·工作速率最高可達(dá)20kbit/s(也可在較低速率下工作,如9600bit/s);?
??? ·可直接接單片機(jī)串口,也可接RS232接口,軟件編程方便;?
??? ·由于采用低發(fā)射功率(+10dBm)、高接收靈敏度(-105dBm)設(shè)計(jì),使用無需申請?jiān)S可證。?
1.2 PTR2000應(yīng)用領(lǐng)域?
??? PTR2000可用于遙控、遙測、小型無線網(wǎng)絡(luò)、無線抄表、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集、無線標(biāo)簽、身份識別、非接觸RF智能卡、小型無線數(shù)據(jù)終端、生物信號采集、水文氣象監(jiān)測、機(jī)器人控制等場合。?
1.3 PTR2000電氣特性?
??? PTR2000電氣特性如表1所示。?
?
?
1.4 PTR2000引腳說明?
??? PTR2000引腳圖如圖1所示。?
?
?
??? Pin1:VCC 正電源,2.7V~5.25V;?
??? Pin2:CS 頻道選擇,CS=0選擇工作頻道1(433.92MHz), CS=1選擇工作頻道2(434.33MHz);?
??? Pin3:DO 數(shù)據(jù)輸出;?
??? Pin4:DI 數(shù)據(jù)輸入;?
??? Pin5:GND 電源地;?
??? Pin6:PWR節(jié)能控制,PWR=1為正常工作狀態(tài),PWR=0為待機(jī)微功耗狀態(tài);?
??? Pin7:TEXN工作模式選擇,TEXN=1時模塊為發(fā)射狀態(tài),TEXN=0時模塊為接收狀態(tài)。?
1.5 模塊工作模式控制及工作頻道選擇?
??? 模塊工作模式控制及工作頻道選擇如表2所示。?
?
?
1.6 PTR2000的軟件編程?
1.6.1發(fā)送?
??? (1)通信速率最高為20kbit/s,也可在其它速率如4800bit/s、9600bit/s下工作,無需設(shè)置PTR2000的工作速率。?
??? (2)發(fā)送數(shù)據(jù)之前需將模塊置于發(fā)射狀態(tài),TXEN=1。?
??? (3)至少5ms(接收到發(fā)射的轉(zhuǎn)換時間)后才可以發(fā)送任意長度數(shù)據(jù)。?
??? (4)發(fā)送結(jié)束后將模塊置于接收狀態(tài),TXEN=0。?
??? (5)發(fā)射到接收的轉(zhuǎn)換時間為5ms。?
1.6.2 接收?
??? (1)將PTR2000置于接收狀態(tài),TXEN=0。?
??? (2)接收到的數(shù)據(jù)可直接送到單片機(jī)串口或經(jīng)電平轉(zhuǎn)換后送到計(jì)算機(jī)。?
2 不停車收費(fèi)系統(tǒng)簡介?
??? 路橋不停車電子收費(fèi)系統(tǒng)是一種能實(shí)現(xiàn)不停車收費(fèi)的全天候智能型分布式計(jì)算機(jī)控制與處理系統(tǒng)。系統(tǒng)中不停車收費(fèi)的關(guān)鍵是利用車載智能識別卡與收費(fèi)站車輛自動識別系統(tǒng)的無線發(fā)射器之間通過無線電波實(shí)現(xiàn)車輛自動識別和數(shù)據(jù)交換,獲取通過車輛的類型和所屬用戶等數(shù)據(jù),并由計(jì)算機(jī)系統(tǒng)控制車輛通行,其過路過橋費(fèi)通過計(jì)算機(jī)網(wǎng)絡(luò)從用戶在銀行開設(shè)的專用賬戶中自動交納,從而實(shí)現(xiàn)不停車收費(fèi)。?
??? 其系統(tǒng)組成框圖如圖2所示。?
?
?
3 PTR2000在不停車收費(fèi)系統(tǒng)中的應(yīng)用?
??? 不停車收費(fèi)得以實(shí)現(xiàn)的關(guān)鍵之處在于車輛在高速行駛時,能把自身的信息、用戶的信息通過車載單元發(fā)射出去,而路側(cè)的無線收發(fā)單元可將此信息接收到。PTR2000可使車載單元和路側(cè)收發(fā)裝置之間的數(shù)據(jù)無線傳輸?shù)靡詫?shí)現(xiàn)。車載單元和路側(cè)收發(fā)裝置的工作原理如圖3所示。?
?
?
??? ETC(Electron Toll Collection)車輛的信息包括車輛VIN碼、車牌號、車主賬號等存放在單片機(jī)中,ETC車輛經(jīng)過收費(fèi)站時,由路側(cè)無線裝置啟動車載單元,通過PTR2000把車體信息發(fā)送出去;而路側(cè)的收發(fā)設(shè)備通過PTR2000進(jìn)行接收,再經(jīng)過MAX232作電平轉(zhuǎn)換,從而把數(shù)據(jù)寫入到計(jì)算機(jī)中。?
4 PTR2000與單片機(jī)和PC機(jī)的接口?
??? PTR2000可直接與單片機(jī)的串口TxD、RxD相連接。PTR2000無線MODEM的DI接單片機(jī)的串口發(fā)送,PTR2000無線MODEM的DO接單片機(jī)串口的接收。?
??? PTR2000與PC機(jī)相連接時必須經(jīng)過電平轉(zhuǎn)換,將TTL電平轉(zhuǎn)換成RS-232C電平。用一片MAX232芯片即可達(dá)到電平轉(zhuǎn)換的目的。PTR2000與計(jì)算機(jī)串口連接的典型電路如圖4所示。
?
?
5 軟件編程?
5.1 單片機(jī)發(fā)射部分編程?
??? 本例中單片機(jī)采用89C51,通過匯編語言對其進(jìn)行編程。?
??? PTR2000的Pin6(PWR)與單片機(jī)的P1.0相連,PTR2000的Pin7(TXEN)與單片機(jī)的P1.1相連,CS直接接地,利用工作頻道1,即433.92MHz。?
??? 單片機(jī)程序清單介紹如下:?
ORG? ?? 0000H? ?
??? ? ? AJMP ?? START?
??? ? ? ORG ??? 0200H?
START:? SETB??? P1.0??????? ? ;PTR2000的Pin6置1?
??????? SETB??? P1.1??????? ? ;PTR2000的Pin6置1?
??????? MOV???? SP,???? #80H ;設(shè)置數(shù)據(jù)指針的位置?
??????? MOV ??? SCON,?? #40H ;串口工作方式1?
??????? MOV ??? TMOD,?? #20H ;定時器工作方式1?
??????? MOV ??? TL1,??? #0FDH;設(shè)定波特率9600bits/s?
??????? MOV ??? TH1,??? #0FDH?? ?
??????? MOV???? PCON,?? #00H??? ?
??????? SETB ?? TR1???????? ? ;開啟定時器1?
??????? MOV???? DPH,??? #50H ;指針指向數(shù)據(jù)塊?
??????? MOV???? DPL,??? #00H??? ?
VIN: ?? MOV???? R1,???? #LEN1;發(fā)送VIN碼?
??????? ACALL?? TXSUB?
CARNO:? MOV???? R1,???? #LEN2;發(fā)送車牌號?
??????? ACALL?? TXSUB?
COUNT:? MOV RA,???? ??? #LEN3;發(fā)送車主賬號?
??????? ACALL?? TXSUB?
??????? CLR???? P1.0??????? ? ;將PTR2000置接收狀態(tài)?
??????? CLR???? P1.1??????? ? ;將PTR2000置待機(jī)狀態(tài)?
??????? ORG ??????? 0400H?
TXSUB:? PUSH ?????? ACC???????????????? ;保護(hù)ACC?
??????? PUSH ?????? PSW???????????????? ;保護(hù)PSW?
??????? CLR???????? TI????????????????? ;清TI?
TXDD: ? CLR???????? A?
??????? MOVC ?????? A,? @A+DPTR ;從數(shù)據(jù)塊中取數(shù)?
??????? MOV SUBF,?? A?????????????? ;從串口發(fā)送?
??????? JNB???????? TI, $?????????? ;等待發(fā)送完?
??????? CLR???????? TI????? ?
??????? INC ??????? DPTR??????????? ;取下一個數(shù)?
??????? DJNZ??????? R1, TXDD??????? ;數(shù)據(jù)為發(fā)送完,?
??????????????????????????????????? ?繼續(xù)?
??????? POP???????? PSW???????????? ;彈出PSW?
??????? POP???????? ACC???????????? ;彈出ACC?
??????? RET?
??????? ORG???????? 0500H?????????? ;數(shù)據(jù)塊?
DVIN:?? DB????????? ’1234567890’?
LEN1 ?? DATA??????? 10?
DCARNO: DB????????? ’ABCDEFG’?
LEN2 ?? DATA??? 7?
DCOUNT? DB????????? ’874033654200’?
LEN3 ?? DATA 12?
5.2 PC機(jī)接收部分編程?
??? 本例中PC機(jī)接收部分通過對Visual Basic中的MSComm控件編程實(shí)現(xiàn)對計(jì)算機(jī)串口通訊的程序設(shè)計(jì)。?
??? PC串口的RTS經(jīng)電平轉(zhuǎn)換與PTR2000無線MODEM的TXEN相連。計(jì)算機(jī)要發(fā)送數(shù)據(jù)時,RTS變?yōu)檫壿?有效,亦即PTR2000的Pin7(TXEN)被置為1,此時可發(fā)送數(shù)據(jù);計(jì)算機(jī)接收數(shù)據(jù)時,RTS變?yōu)檫壿?有效,亦即PTR2000的Pin7(TXEN)被置為0,此時可接收數(shù)據(jù)。?
??? 程序的設(shè)計(jì)窗體如圖5所示。?
?
?
??? PC機(jī)接收部分程序介紹如下:?
??? Option Explicit?
??? Public ReceiveStr As String?
??? Private Sub Form_Load()?
??????? MSComm2.CommPort = 2?
??????? MSComm2.Settings = ″9600,n,8,1″?
??????? MSComm2.InBufferSize = 256?
??????? MSComm2.PortOpen = True?
??????? MSComm2.RThreshold = 1?
??? End Sub?
??? Private Sub MSComm2_OnComm()?
??????? Select Case MSComm2.CommEvent?
??????? Case comEvReceive?
??????? ReceiveStr = ReceiveStr + MSComm2.Input?
??????? If InStr(ReceiveStr, ″##″) <> 0 Then?
??? txtVIN.Text = Mid$(ReceiveStr, InStr(ReceiveStr,″##″) + 2, 10)?
??? txtCarNO.Text = Mid$(ReceiveStr, InStr(ReceiveStr,##″) + 12, 7)?
??? txtCount.Text = Mid$(ReceiveStr, InStr(ReceiveStr,?##″) + 19, 12)?
??????? End If?
??????? End Select?
??????? End Sub?
??? 程序運(yùn)行結(jié)果如圖6所示。?
?
?
參考文獻(xiàn)?
1 PTR2000產(chǎn)品資料.哈爾濱訊通科技.?
2 孫文全,王保平.利用Visual Basic開發(fā)通訊程序的方法.電腦編程技巧與維護(hù),2000(3).?
3 沈 飆,夏海燕.運(yùn)用Visual Basic實(shí)現(xiàn)PC與89C51單片機(jī)之間的通信.計(jì)算機(jī)自動測量與控制,1999(2)