PTP2000及其在不停車收費(fèi)系統(tǒng)中的應(yīng)用
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;
·具有兩個(gè)頻道,特別適合需要多信道工作的特殊場合;
·工作速率最高可達(dá)20kbit/s(也可在較低速率下工作,如9600bit/s);
·可直接接單牒同串口,也可接RS232接口,軟件編程方便;
·由于采用低發(fā)射功率(+10dBm)、高接收靈敏度(-105dBm)設(shè)計(jì),使用無需申請?jiān)S可證。
1.2 PTR2000應(yīng)用領(lǐng)域
PTT2000可用于遙控、遙測、小型無線網(wǎng)絡(luò)、無線抄表、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集、無線標(biāo)簽、身份識(shí)別、非接觸RF智能卡、小型無線數(shù)據(jù)終端、生物信號(hào)采集、水文氣象監(jiān)測、機(jī)器人控制等場合。
1.3 PTR2000電氣特性
PRT2000電氣特性如表1所示。
1.4 PRT2000引腳說明
PRT2000引腳圖如圖1所示。
Pin1:VCC 正電源,2.7V~5.25V;
Pin2:CS 頻道選擇,CS=0選擇工作頻道I(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時(shí)模塊為發(fā)射狀態(tài),TEXN=0時(shí)模塊為接收狀態(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)換時(shí)間)后才可以發(fā)送任意長度數(shù)據(jù)。
(4)發(fā)送結(jié)束后將模塊置于接收狀態(tài),TXEN=0。
(5)發(fā)射到接收的轉(zhuǎn)換時(shí)間為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)鍵是利用車載智能識(shí)別卡與收費(fèi)站車輛自動(dòng)識(shí)別系統(tǒng)的無線發(fā)射器之間通過無線電波實(shí)現(xiàn)車輛自動(dòng)識(shí)別和數(shù)據(jù)交換,獲取通過車輛的類型和所屬用戶等數(shù)據(jù),并由計(jì)算機(jī)系統(tǒng)控制車輛通行,其過路過橋費(fèi)通過計(jì)算機(jī)網(wǎng)絡(luò)從用戶在銀行開設(shè)的專用賬戶中自動(dòng)交納,從而實(shí)現(xiàn)不停車收費(fèi)。
其系統(tǒng)組成框圖如圖2所示。
3 PTR2000在不停車收費(fèi)系統(tǒng)中的應(yīng)用
不停車收費(fèi)得以實(shí)現(xiàn)的關(guān)鍵之處在于車輛在高速行駛時(shí),能把自身的信息、用戶的信息通過車載單元發(fā)射出去,而路側(cè)的無線收發(fā)單元可將此信息接收到。PTR2000可使車載單元和路側(cè)收發(fā)裝置之間的數(shù)據(jù)無線傳輸?shù)靡詫?shí)現(xiàn)。車載單元和路側(cè)收發(fā)裝置的工作原理如圖3所示。
ETC (Electron Toll Collection)車輛的信息包括車輛VIN碼、車牌號(hào)、車主賬號(hào)等存放在單片機(jī)中,ETC車輛經(jīng)過收費(fèi)站時(shí),由路側(cè)無線裝置啟動(dòng)車載單元,通過 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接單 牒同的串口發(fā)送,PTR2000無線MODEM的DO接單片機(jī)串口的接收。
PTR2000與PC機(jī)相連接時(shí)必須經(jīng)過電平轉(zhuǎn)換,將TTL電平轉(zhuǎn)換成RS-232C電平。用一片MAX232芯片即可達(dá)到電平轉(zhuǎn)換的目的。PTR2000與計(jì)算機(jī)串口連接的典型電路如圖4所示。
5 軟件編程
5.1 單 牒同發(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 ;定時(shí)器工作方式1
MOV TL1, #0FDH ;設(shè)定波特率9600bits/s
MOV TH1, #0FDH
MOV PCON, #00H
SETB TR1 ;開啟定時(shí)器1
MOV DPH, #50H ;指針指向數(shù)據(jù)塊
MOV DPL, 00H
VIN: MOV R1, #LEN1 ;發(fā)送VIN碼
ACALL TXSUB
CARNO:MOV R1, #LEN2 ; 發(fā)送車牌號(hào)
ACALL TXSUB
COUNT:MOV RA, #LEN3 ;發(fā)送車主賬號(hào)
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ù)
MOVSUBF, A ;從串口發(fā)送
JNB TI,$ ;等待發(fā)送完
CLR TI
INC DPTR ;取下一個(gè)數(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ù)時(shí),RTS變?yōu)檫壿?有效,亦即PTR2000的Pin7 (TXEN)被置為1,此時(shí)可發(fā)送數(shù)據(jù);計(jì)算機(jī)接收數(shù)據(jù)時(shí),RTS變?yōu)檫壿?有效,亦即PTR2000的Pin7(TXEN)被置為0,此時(shí)可接收數(shù)據(jù)。
程序的設(shè)計(jì)窗體如圖5所示。
PC機(jī)接收部分程序介紹如下:
Option Explicit
Public ReceiveStr As String
Private Sub Form_Load()
MSComm2.CommPotr = 2
MSComm2.Settings = "9600,n,8,1"
MSComm2.InBufferSize = 256
MSComm2.PotrOpen = True
MSComm2.Trhreshold = 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所示。