PTR2000及其在不停车收费系统中的应用
2009-04-22
作者:曹 俊 汪滨琦
摘 要: 介绍了超小型、超低功率、高速率无线数传MODEM芯片PTR2000的产品特性、电气参数及使用中应注意的一些技术问题,并给出其应用实例。
关键词: 无线数传 单片机 PTR2000
1 PTR2000简介
PTR2000是超小型、超低功率、高速率无线数传MODEM。
1.1 PTR2000产品特性
·工作频率为国际通用的数传频段433MHz;
·FSK调制,扩展能力强,特别适合工业控制场合;
·采用DDS+PLL频率合成技术,频率稳定性好;
·低工作电压(2.7V),低功耗,接收待机状态电流仅为8μA;
·具有两个频道,特别适合需要多信道工作的特殊场合;
·工作速率最高可达20kbit/s(也可在较低速率下工作,如9600bit/s);
·由于采用低发射功率(+10dBm)、高接收灵敏度(-105dBm)设计,使用无需申请许可证。
1.2 PTR2000应用领域
PTR2000可用于遥控、遥测、小型无线网络、无线抄表、小区传呼、工业数据采集、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、生物信号采集、水文气象监测、机器人控制等场合。
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 数据输出;
Pin4:DI 数据输入;
Pin5:GND 电源地;
Pin6:PWR节能控制,PWR=1为正常工作状态,PWR=0为待机微功耗状态;
Pin7:TEXN工作模式选择,TEXN=1时模块为发射状态,TEXN=0时模块为接收状态。
1.5 模块工作模式控制及工作频道选择
模块工作模式控制及工作频道选择如表2所示。
1.6 PTR2000的软件编程
1.6.1发送
(1)通信速率最高为20kbit/s,也可在其它速率如4800bit/s、9600bit/s下工作,无需设置PTR2000的工作速率。
(2)发送数据之前需将模块置于发射状态,TXEN=1。
(3)至少5ms(接收到发射的转换时间)后才可以发送任意长度数据。
(4)发送结束后将模块置于接收状态,TXEN=0。
(5)发射到接收的转换时间为5ms。
1.6.2 接收
(1)将PTR2000置于接收状态,TXEN=0。
(2)接收到的数据可直接送到单片机串口或经电平转换后送到计算机。
2 不停车收费系统简介
路桥不停车电子收费系统是一种能实现不停车收费的全天候智能型分布式计算机控制与处理系统。系统中不停车收费的关键是利用车载智能识别卡与收费站车辆自动识别系统的无线发射器之间通过无线电波实现车辆自动识别和数据交换,获取通过车辆的类型和所属用户等数据,并由计算机系统控制车辆通行,其过路过桥费通过计算机网络从用户在银行开设的专用账户中自动交纳,从而实现不停车收费。
其系统组成框图如图2所示。
3 PTR2000在不停车收费系统中的应用
不停车收费得以实现的关键之处在于车辆在高速行驶时,能把自身的信息、用户的信息通过车载单元发射出去,而路侧的无线收发单元可将此信息接收到。PTR2000可使车载单元和路侧收发装置之间的数据无线传输得以实现。车载单元和路侧收发装置的工作原理如图3所示。
ETC(Electron Toll Collection)车辆的信息包括车辆VIN码、车牌号、车主账号等存放在单片机中,ETC车辆经过收费站时,由路侧无线装置启动车载单元,通过PTR2000把车体信息发送出去;而路侧的收发设备通过PTR2000进行接收,再经过MAX232作电平转换,从而把数据写入到计算机中。
4 PTR2000与单片机和PC机的接口
PTR2000可直接与单片机的串口TxD、RxD相连接。PTR2000无线MODEM的DI接单片机的串口发送,PTR2000无线MODEM的DO接单片机串口的接收。
PTR2000与PC机相连接时必须经过电平转换,将TTL电平转换成RS-232C电平。用一片MAX232芯片即可达到电平转换的目的。PTR2000与计算机串口连接的典型电路如图4所示。
5 软件编程
5.1 单片机发射部分编程
本例中单片机采用89C51,通过汇编语言对其进行编程。
PTR2000的Pin6(PWR)与单片机的P1.0相连,PTR2000的Pin7(TXEN)与单片机的P1.1相连,CS直接接地,利用工作频道1,即433.92MHz。
单片机程序清单介绍如下:
ORG 0000H
AJMP START
ORG 0200H
START: SETB P1.0 ;PTR2000的Pin6置1
SETB P1.1 ;PTR2000的Pin6置1
MOV SP, #80H ;设置数据指针的位置
MOV SCON, #40H ;串口工作方式1
MOV TMOD, #20H ;定时器工作方式1
MOV TL1, #0FDH;设定波特率9600bits/s
MOV TH1, #0FDH
MOV PCON, #00H
SETB TR1 ;开启定时器1
MOV DPH, #50H ;指针指向数据块
MOV DPL, #00H
VIN: MOV R1, #LEN1;发送VIN码
ACALL TXSUB
CARNO: MOV R1, #LEN2;发送车牌号
ACALL TXSUB
COUNT: MOV RA, #LEN3;发送车主账号
ACALL TXSUB
CLR P1.0 ;将PTR2000置接收状态
CLR P1.1 ;将PTR2000置待机状态
ORG 0400H
TXSUB: PUSH ACC ;保护ACC
PUSH PSW ;保护PSW
CLR TI ;清TI
TXDD: CLR A
MOVC A, @A+DPTR ;从数据块中取数
MOV SUBF, A ;从串口发送
JNB TI, $ ;等待发送完
CLR TI
INC DPTR ;取下一个数
DJNZ R1, TXDD ;数据为发送完,
继续
POP PSW ;弹出PSW
POP ACC ;弹出ACC
RET
ORG 0500H ;数据块
DVIN: DB ’1234567890’
LEN1 DATA 10
DCARNO: DB ’ABCDEFG’
LEN2 DATA 7
DCOUNT DB ’874033654200’
LEN3 DATA 12
5.2 PC机接收部分编程
本例中PC机接收部分通过对Visual Basic中的MSComm控件编程实现对计算机串口通讯的程序设计。
PC串口的RTS经电平转换与PTR2000无线MODEM的TXEN相连。计算机要发送数据时,RTS变为逻辑1有效,亦即PTR2000的Pin7(TXEN)被置为1,此时可发送数据;计算机接收数据时,RTS变为逻辑0有效,亦即PTR2000的Pin7(TXEN)被置为0,此时可接收数据。
程序的设计窗体如图5所示。
PC机接收部分程序介绍如下:
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
程序运行结果如图6所示。
参考文献
1 PTR2000产品资料.哈尔滨讯通科技.
2 孙文全,王保平.利用Visual Basic开发通讯程序的方法.电脑编程技巧与维护,2000(3).
3 沈 飙,夏海燕.运用Visual Basic实现PC与89C51单片机之间的通信.计算机自动测量与控制,1999(2)