基于单片机的出租车计价器编码传感器的设计
《自动化技术与应用》2005年第24卷第10期
基于单片机的出租车计价器编码传感器的设计
张晓虎,刘 洁
1
2
(1.湖南文理学院电气工程系,湖南 常德 415000;2.湖南文理学院计算机系,湖南 常德 415000)
摘要:,、解码写入器的软硬件设计方案。整个系统计价准确,成本低廉。
关键词:单片机;编码器;解码器;中图分类号:TP36811B :)20063203
MCUedCoderandSensorfortheTaxiCounter
ZhangXiao-hu,LiuJie
1
2
(1.HunanUniversityofArtsandScienceofElectricianDepartment,Changde415000China;
2.HunanUniversityofArtsandScienceofComputerScienceandTechnologyDepartment,Changde415000China)
Abstract:Thispaperpresentsthetaxicounterusingcodedtechnique.Thesoftwareandhardwareofthecoderanddecoderareoutlined.Thesystemis
accurateandcheap.
Keywords:MCU;Coder;Decoder;Write-indecoder
1 引言
随着社会的发展,出租车是人们生活中非常方便且较普遍的交通工具,但出租车计价器相对较为落后。在过去,出租车采用机械式的计价器,用齿轮比的方式来计算出租车所跑的里程数,并由里程数来换算车费;由于机械的齿轮体积比较大,计算不是很准确,而且容易磨损,后来又采用了传感器方式,利用传感器接收车的跑动信息,从而计算里程数和车费,但此方法通常使干扰信号也能产生计数脉冲,所以也不完善。现在我们引用单片机技术,使用编码和解码信息传递这种方式来完成计价器计数脉冲的形成;单片机可以很精确地检测到传感器信号,这样计价就会非常准确。完成此装置所需器件简单,成本非常低,技术上也容易实现。
每转动一周就和磁感应传感器正对一次,磁感应传感器就会产生一个大约20ms的低脉冲,所以我们可以通过计算磁感应传感器产生的低脉冲数来计算出租车跑的里程数及相应的车费。具体检测磁感应传感器和发出计价脉冲的过程为:编码器的单片机通过一个IΠO口来检测磁感应传感器信号,当确定为传感器产生的信号时,就通过另一个IΠO口向解码器的单片机发送一组编码,而解码器的单片机则首先判断当前准备接收的数据是编码器发送的编码还是解码写入器发送的解码;当判断是解码写入器发送的解码时,解码器的单片机接收此解码并利用I2C总线协议将解码保存到E2PROM中去,当判断是编码器发送的编码时,解码器的单片机先接收此编码,然后读出自己E2PROM中的解码将其与接收到的编码相比较,如果相同则解码器单片机通过一个IΠO口向计价装置发出计价脉冲,否则不发出计价脉冲。注意:这里每一辆出租车的计价器的编码和解码都是不
2 系统原理
本文主要介绍虚线框内模块的设计,其系统框图如图1,主要原理为:出租车驱动轮转数与转轴转数的传动比是一定的,而转轴转动时带动一小磁体转动,其传动比也是一定的,小磁体
同的,这样有利于出租车的管理以及防止计价器的盗用,解码器中的解码是使用解码写入器写入其E2PROM中去的;每辆出租车计价器都具有一个编码器和一个解码器,而所有的出租车计价器都共用一个解码写入器,也就是说在计价器卖出之前用同一个解码写入器为所有的计价器的解码器写入不同的初始解
收稿日期:2005-07-18码,写入初始解码以后计价器就不再需要解码写入器,除非此计
TechniquesofAutomation&Applications|
63
1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
《自动化技术与应用》2005年第24卷第10期
价器坏掉需要更换解码器,此时需再用解码写入器给新的解码器写入初始解码。其硬件电路设计图见图2和图3
。
为5位十进制数)给解码器,每个数据都是按脉冲方式发送出去,十进制数是多少,就发送几个低脉冲,发送一个十进制数据所用的时间要保证在255us以内,其程序流程图如图4
。
图1
系统框图
图4 编码器程序流程图
3.3 解码写入器
解码写入器部分使用的单片机为AT89C51,解码写入器的功能与编码器的功能类似,由于其要发送的解码要能随时改变,
图2
解码器和编码器电路图
这里我们可以外接5个小数字键盘,解码写入器要发送的解码可以从5个小数字键盘上获得[3]。为了和编码器发送的编码区别开来,解码写入器需要先发送一个区别字符,使解码器能够识别出当前接收的是编码器还是解码写入器发出的数据。区别字符后面紧跟着的是解码,所有这些数据的发送方式与编码器编码的发送方式完全相同,由AT89C51单片机的P3.4口输出,其程序流程图如图5
。
图3 编码写入器电路图
3 系统功能的实现
3.1 传感器
本系统的编码器部分利用传感器来接收出租车的跑动信号,这里采用的传感器为磁感应传感器,当其与车辆转轴带动的小磁体正对时,传感器的输出引脚便会产生一个约20ms的低脉冲[1]。
3.2 编码器
编码器部分使用的单片机为PIC12C508A,利用PIC12C508A芯片的第四个引脚GP3来检测传感器的输出信号[2]。当
PIC12C508A检测到确定的传感器信号后,单片机将按一定的时
图5 解码写入器的程序框图
3.4 解码器
这部分采用的单片机是PIC12CE508,其内部有E2PROM。
序在其第七个引脚GP0连续发送5个十进制数据(即编码形式
64
|TechniquesofAutomation&Applications 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
《自动化技术与应用》2005年第24卷第10期
我们可以利用I2C协议随时从E2PROM中读出解码或者向
EPROM中写入新的编码
2
[4]
升级
。
。其工作过程为:首先解码器读出
内部E2PROM中00h-04h中的5个十进制数据分别保存到5个内部数据存储单元中,然后调用接收数据子程序,接收一个数据先保存到一个内部数据存储单元中,并判断这个数据是否为区别字符10,若不是区别字符,说明现在接收的数据可能是编码器发送的编码,则继续接收后面的4个数据保存到4个内部数据存储单元中,将接收到的这5个十进制数据与前面解码器读出的内部E2PROM中00h-04h中的5个十进制数据进行比较,相等则在GP0引脚上发送一个2ms的低脉冲作为计价脉冲,不相等则重新接收数据;若是区别字符10,要修改解码器的解码,数据并将这52盖以前的解码6,其调用的子程序如图7和图8
。
图7 I2C协议下读E2PROM
程序流程图
图8 I2C协议下写E2PROM程序流程图
5 参考文献:
图6 解码器程序流程图
[1] 宋青,权伟龙,齐新元.开关型霍尔传感器的原理与工程实现
[J].物理实验,2003,23(7):6-9
[2] 彭树生,庄志洪,赵惠昌.PIC单片机原理及应用[M].北京:机
4 结论
本系统解决了以往计价器计价不准确、使用寿命短等缺点,现在采用以单片机为主控制单元的编码解码技术,使每个出租车的计价器拥有不同的编码,从而防止出租车之间计价器的相互盗用,便于出租车公司对出租车的管理。我们可以随时对单片机的外围电路进行扩展,并通过软件编程实现本系统的不断
械工业出版社,2001[3] 余永权.ATMEL89系列单片机应用技术[M].北京:北京航空航天大学出版社,2002,4
[4] 窦振中,汪立森.PIC系列单片机应用设计与实例[M].北京:北京航空航天大学出版社,2000
作者简介:张晓虎(1978-),男,山东莱芜人,湖南文理学院助教,湖南大学在读研究生,主要研究方向:复杂系统的智能控制理论与应用。
TechniquesofAutomation&Applications|
65
1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net