基于avr单片机的自行车行车记录仪,包括软硬件具体方案_第1页
基于avr单片机的自行车行车记录仪,包括软硬件具体方案_第2页
基于avr单片机的自行车行车记录仪,包括软硬件具体方案_第3页
基于avr单片机的自行车行车记录仪,包括软硬件具体方案_第4页
基于avr单片机的自行车行车记录仪,包括软硬件具体方案_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于AVR单片机的自行车行车记录仪,包括软硬件具体方案HTTP/WWWYUNYOUBARCOM/邮件群发1引言自行车行车记录仪以下简称码表在国内外已经有了广泛的应用,但是不管是国外的还是国产的码表都存在着很多缺点。首先,对于国产码表来说,缺点主要有安装相当麻烦,根据使用者评价,一般安装需要半小时以上,而国外的进口码表则只要5分钟即可安装完毕,所以在设计该码表时需要在这方面进行改进。即时速度显示混乱,其实这是计算精度不够造成,速度高于25M/S以后特别是30M/S以后当前速度就开始有波动,速度越快波动越大,这个问题还导致最高速度不可信,所以在设计时选择的CPU必须是具有较高计算速度,且实时性能较好的,这里选用了AVR的MEGA64高性能8位单片机,此单片机资源丰富,最高速度可以达到16MIPS/S。里程和速度的清零功能未能真正实现,它不能像国外的SIGMA那样清除指定的数据,而是全部清零重置,连总里程和时钟都清零了,所以这个设计也是非常的失败的,需要改进。时钟不准,根据大部分使用者的反应,一个月快了差不多半小时。某些国产表的轮径设置最小只能适应2020CM的轮胎,也就是说折叠车基本用不上,这点也是需要改进的。最后一点对于普通用户来说都是比较反感的,说明书以及液晶上的显示都是全英文的,而且液晶显示简单,说明书也只是一个小纸片而已,对自行车码表没点了解、没有点钻研精神还不一定能搞清里面的功能和用法。再次,对于外国的码表来说,观点主要有以下除了以上的第六个缺点以外,其它缺点基本都是不存在的,但是一个比较致命的要害是价格高,一般的消费群体买不起。就拿比较出名的德国品牌SIGMA,最便宜的到70多,但是功能实在单一。而功能强大,性能又好的则贵至好几百元,上千元不等,型号很多,价格范围波动也很大。最后,总结出不管是国内还是国外码表,都存在以下缺点显示都是英文,对于一般的用户使用比较的不方便,而且安装较麻烦,初始化设置十分的繁琐。功能单一,一般便宜的码表,往往只具备速度的记录,行车总里程,行车总时间的记录等等,并且通过液晶查看,不能有效的统一历史数据,或者只能查阅近几天的历史数据。实现该系统所需要的知识如下单片机C语言编程IIC,单总线等串行总线编程模块化程序设计霍尔传感器原理及实现方法液晶显示编程打印机实现原理PROTEL画原理图以及画PCB等。核心元件,单片机,这里选择ATMEL公司的8位中高端单片机ATMEGA64,选择它的理由主要有以下几点在存储方面,使用的是ATMEL公司的AT24LC64EEPROM存储器,该存储器走的是IICATMEL公司开发的两线串行总线总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。打印机模块,有下面的打印机实现原理图45可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如ATMEGA64及以上的单片机都具有这一功能。霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器,ATMEGA64也能很好的满足。内存空间要求在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上,而ATMEGA64拥有4K内存,能够完全满足。更重要的是,这款单片机价格便宜,只要20余元便能购置一片,所以选择这个单片机时比较合适的。下面将从硬件系统,软件系统,各个模块的实现原理,软硬件调试这几个方面来详细的讲述这一个系统。2系统框架21系统框架结构图系统框架结构图如图21所示图21系统框架图212主控板如上图21所示,主控板为系统核心,主要包含单片机ATMEGA64ATEML公司8位中高端单片机以及,各个模块接口。213打印机如上图21所示,打印机模块需要一个驱动板以及一个打印机模块,打印机为EPSON公司的M150II微型打点打印机,一行可以打96个点。214存储模块如上图21所示,存储模块用的是ATMEL公司的AT24LC64EEPROM电可擦除编写存储器存储器,大小一共是8千字节。215温度传感器如上图21所示,温度传感器用的达拉斯公司的DS18B20单总线数字温度传感器,支持多个挂同一条总线,且测试温度较准。216霍尔传感器如上图21所示,霍尔传感器使用的是A3144先行霍尔元件,在下面的第三章,硬件设计中将看到对霍尔传感器的改良。217液晶显示器如上图21所示,液晶显示器使用的STN7920控制器的12864液晶显示器,该液晶宽128个点,高64个点,故名12864,并且自带中文字库,可显示区域大。22解决的主要内容如何利用好强大的MEGA64单片机资源而不浪费,以及充分理解该单片机相关的控制单元内在的物理逻辑,由此才能深入的理解单片机的运行以及启动过程,并发现问题时能得到及时解决。行车记录仪的硬件设计记录仪总共涉及到温度,时间,电源,液晶,打印机等多个模块组成,在设计硬件时需要充分考虑到各种干扰,美观度等因素。多层菜单设计多层菜单是一个比较复杂的逻辑,如果设计不好会导致整个工程的混乱,使代码变得难于理解,甚至不能继续接下去的工作,所以多层菜单设计需要一个较好的算法来实现它。各种总线协议驱动单片机内置IIC,SPI等总线协议,在温度获取,FLASH存储中等都需要用到这些总线,所以这些总线协议的驱动也是比较关键的。打印机驱动电路在本设计中,用到了EPSON的M150II打印机,其工作电流大,需要专门的硬件驱动电路,在设计这一块电路时,必须做好和主控板记录仪的接口,以方便用户进行数据导出和统计。23实现的主要功能显示实时速度和平均速度显示总里程和单次行车里程显示时间和温度节电保护行车信息存储用户菜单UI界面时间修改轮径设置,里程设置,等一些参数的设置打印行车记录统计信息贪吃蛇小游戏3硬件系统设计31主控板主控板主要包括CPU,ATMEGA64时钟芯片,DS1302存储芯片,24LC64JTAG在线仿真接口中断独立按键模块LED调试电路12864液晶显示接口DS18B20温度传感器接口霍尔传感器接口打印机驱动板接口。对单片机的选择主要有以下要求在存储方面,使用的是ATMEL公司的AT24LC64EEPROM存储器,该小存储器走的是IIC总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。时钟模块,用的是达拉斯的DS1302芯片,只需普通的端口操作就能完成。打印机模块,有下面的打印机实现原理可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如ATMEGA64及以上的单片机都具有这一功能。霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器。内存空间要求在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上。由以上几点分析,这里我选择了ATMEL公司的AVR系列单片机ATMEGA64,该款单片机价格便宜,功能强大,能满足上面几点的全部要求。结论最终选择的单片机为ATMEL公司的ATMEGA64八位高性能单片机。主控系统的核心如图31所示。图31核心板最小系统32霍尔传感器霍尔传感器是实现行车记录仪最核心的部件,记录仪的核心记录参数车速,便是由霍尔传感器实现的,所以在制作霍尔传感器时必须严格把关。321霍尔传感器工作原理霍尔传感器,顾名思义,利用的是霍尔效应。霍尔效应的本质是固体材料中的载流子在外加磁场中运动时,因为受到洛仑兹力的作用而使轨迹发生偏移,并在材料两侧产生电荷积累,形成垂直于电流方向的电场,最终使载流子受到的洛仑兹力与电场斥力相平衡,从而在两侧建立起一个稳定的电势差即霍尔电压。正交电场和电流强度与磁场强度的乘积之比就是霍尔系数。平行电场和电流强度之比就是电阻率。大量的研究揭示参加材料导电过程的不仅有带负电的电子,还有带正电的空穴。本记录仪中使用的霍尔元件A3144E正是利用这一效应而产生的。其实物结构图如图32所示图32霍尔元件结构图霍尔元件工作原理实物结构图如上图32所示,3脚为信号脚,1脚和2脚分别接电源和地。在没有经过磁场时,输出为高电平,当磁场渐渐变强时,则输出的电平会渐渐变低,当磁场周期性的出现时,在输出脚便会出现一个正弦波电压,霍尔元件信号输出如图33所示图33霍尔元件信号输出322霍尔传感器改良如上图33所示在周期性磁场的作用下,霍尔元件,A3144E输出的是一个周期性的正弦波,而单片机能识别的只是1或0的高低电平,如果把这个信号直接接单片机则有很多缺点单片机无法识别该信号除了高电平和低电平时的电平霍尔元件灵敏度低,只有在磁铁靠的很近的时候才有反应针对以上缺点,需要对霍尔传感器进行改良,目的为了提高灵敏度和改善输出波形,改良的电路图如图34所示图34改良的霍尔传感器工作原理改良的霍尔传感器如上图34所示,在没有磁场的情况下,3144输出高电平,则运算放大器输出低电平,当经过磁场时,3144输出电平渐渐变低,当电平低于放大器负极时则放大器输出低电平,从而通过单片机采集这个低电平信号。由以上工作原理可知,可以通过调节滑动变阻器R3,从而来调节触发电平。并且通过点亮灯LED1来指示信号的输出。改良后的霍尔传感器信号输出波形如图35所示图35霍尔传感器输出信号霍尔传感器信号输出如上图35可知,经过改良后的霍尔传感器能输出一个单片机能识别的方波,并且可以通过调节滑动变阻器R3来调节传感器的触发电平,同时通过指示灯LED1来指示信号的输出,最主要达到了增强信号的可处理性的目的。33打印机打印机在打印的时候需要大电流提供,而单片机的IO管脚最多只能提供20MA的电流,所以打印机在打印之前需要有额外的驱动电路来提供打印需要的电流。打印机实物接口如下图36所示图36打印机实物接口其中的信号接口如图37所示图37打印机信号接口打印机电机驱动如下图38所示,打印机主要信号包括,电机驱动信号MOTOR,4个打印针驱动信号6,7,8,9。电机驱动电路如下图38所示图38打印机电机驱动打印机电机驱动如上图38所示,信号由AVR_PRINT_ON脚输入,高电平驱动,当产生高电平时,通过三极管Q1驱动打印机打印。打印针的驱动如下图39所示图39打印针驱动AVR_PRINT_A为信号输入脚,低电平驱动,当该脚为低电平时,通过三极管Q3和Q4驱动打印针PRINT_A打印。34其它外围电路除了以上涉及核心电路外,其它比如时间显示,数据存储,温度显示等,都分别需要不同的硬件模块提供支持。341时钟模块这里时钟采用了达拉斯的DS1302时钟芯片,时钟模块电路图如图310所示图310DS1302时钟模块该模块采用串行工作模式,通过SCLKSIGNALCLOCK,信号时钟,I/OINPUTANDOUTPUT,输入输出信号,RSTRESET复位信号三线控制芯片工作。342数据储存模块数据存储采用了ATMEL公司的24LC64EEPROM可编程电可擦除存储芯片,模块电路图如图311所示图311EEPROM存储电路该模块采用的是标准的I2C总线模式,操作简单方便,总容量为64KBIT,8K字节,对于存储记录仪的参数是绰绰有余。343温度传感模块温度传感器采用的是达拉斯的DS18B20,单总线模式,温度传感器模块电路图如图312所示图312温度传感器模块温度传感器模块如上图31所示,DS18B20采用的是单总线模式,该数字温度传感器最大的的特点是,只需一个IO管脚便可以控制其工作,并且该传感器传感温度精确,最小可以精确到00625。344独立按键模块独立按键模块是提供用户来控制和使用UI界面,原理图如下图313所示图313独立按键电路独立按键电路如上图313所示,每个按键按下时都会产生一个中断,在设计嵌入式软件时可以通过在按键中断内判断按键值,并且可以通过定时器去除抖动,这种软件设计可以避免软件延时去抖,从而提高了整套软件的运行效率。4软件系统设计本套软件主要实现自行车行车记录的智能控制,其实现的功能主要有以下几点显示平均行车速度,实时行车速度,时间和温度记录行车速度、行车总里程、单次行车里程记录总行车时间,单次行车时间轮胎圆周设定,总里程初值设定自动关机,节电保护行车统计信息打印贪吃蛇小游戏时间显示和时间设置41软件总体框架软件总体流程图如下图41所示图41嵌入式软件整体流程图42软件说明该嵌入式软件设计的思想主要是模块化的程序设计思想,其中需要驱动的模块主要有以下几点DS1302时钟模块驱动DS18B20数字温度传感器模块驱动24LC64EEPROM存储模块驱动12864液晶显示模块驱动霍尔传感器计速模块驱动EPSONM150II微型打点打印机驱动软件主要包含三层结构,分别为应用层,封装层以及驱动层。其软件层次结构如下图42所示图42嵌入式软件层次结构这种软件设计的好处是便于移植,当更换某一芯片时,只需要改变相应芯片的驱动层,而不用修改封装和应用层,便可以使软件继续正常运转。而如果更换单片机这一核心元件,也只需更改所有的驱动层便可以把软件移植到其它单片机平台,在编写涉及到硬件的代码时,可以尽量使用宏定义或者编写多层结构,使底层硬件操作的代码达到最少,从而方便移植。43各个模块实现原理431处理器模块首先在选择CPUCENTRALPROCESSINGUNIT,计算机中央处理器之前,必须先分析完成这个作品所选的CPU必须具备的功能,如果CPU选的功能太过简单就不能达到预期的效果,很多东西不能实现,而如果选择很先进的CPU或者32位的高级单片机,首先第一个是不能充分利用这个单片机,第二是在成本上也会大幅上升,所以在选择单片机时必须对所需要的功能进行合理的分析。分析情况在显示方面使用的是12864液晶的带字库液晶,该液晶操作简单,只需普通的IO端口操作便可以解决控制,所以它对单片机没有特殊的要求。在存储方面,使用的是ATMEL公司的AT24LC64EEPROM存储器,该存储器走的是IICATMEL公司开发的两线串行总线总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。时钟模块,用的是达拉斯的DS1302芯片,只需普通的端口操作就能完成。打印机模块,有下面的打印机实现原理图45可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如ATMEGA64及以上的单片机都具有这一功能。霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器。内存空间要求在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上。由以上6点分析,这里我选择了ATMEL公司的AVR系列单片机ATMEGA64,该款单片机价格便宜,功能强大,能满足上面7点的全部要求。其资源如下工作于16M时性能高达16MIPS,速度快64KFLASH程序代码空间4K的内部SRAM,足够满足UI界面以及其他的缓存内置IIC和SPI总线接口8路外部中断,有4路能实现双边沿中断3路定时急速器2路8位,1路16位两个串行USART口53个普通IO端口大部分复用由以上八点可以看出,该款单片机完全能够满足这个产品需要的功能,并且ATMEGA64为基于RSIC结构的8位低功耗CMOS微处理器,降低功耗,是做行车记录仪的首选单片机。结论最终选择的单片机为ATMEL公司的ATMEGA64八位高性能单片机。432用户UI界面原理在这个嵌入式软件中,最关键也是最富有挑战的便是用户界面,即菜单系统,如果只是用简单的SWITCH,CASE语句,那在三层菜单的基础上,那将会是一个非常庞大的代码,并且可读性差,维护十分困难,当需要增加或则删减菜单时都是一件非常痛苦的事情。通过各种资料的搜索与整理,并且通过自己的改良,用了一种基于节点编号的方法实现了这个菜单系统。首先、菜单是有层次的,并且每一层菜单都有不同的不同的条数,比如第一层菜单有四条,第一层菜单第一条的子菜单都3条,而第一层菜单第二条的子菜单有2条。加入以个十百来标识菜单所在的层次,以每一位的大小来标识当前菜单再当前层次的条数,则可以推断出每条菜单都有一个唯一的ID,我们称之为节点。基于节点编号的菜单系统的结构如下图43所示图43基于节点编号的菜单系统结构结构分析菜单系统结构图如上图43所示,可见很明显,菜单为3层菜单结构,第一层总共有两条菜单,其编号分别是1和2,在例如在第三层中节点编号为133的菜单,由该节点知,该条菜单再当前层次的第三条,并且位于上层菜单的第三条,位于上上层菜单即一级菜单的第一条。其它菜单的结构和这个一样。由以上分析可知,菜单的结构很明显的构成了一个标准的二叉树,并且其父子节点有很明显的算术关系,其关系如下。父节点当前节点10操作为求余操作子节点当前节点101如果没有父节点或者子节点,则分别把这两个节点设置成空节点。有了这个方法,要实现一个菜单系统便是一个很简单的事情了,这套菜单系统还能实现翻页等复杂操作,并且增加或删除节点十分方便I,只需修改相应节点的编号就可以实现。菜单与实时显示界面的分离在这套菜单系统中,用户可以通过按返回键激活菜单或者通过返回键返回实时界面,其实现原理也非常简单,只需设置一个标志位来标识是否激活菜单,从而达到实时界面与菜单的分离。433测速实现原理测速的核心部件是霍尔元件,利用霍尔元件,再进行一些改良,如上硬件设计中提到的图34所示。从而使传感器在周期性的磁场作用下产生一个固定周期的方波。那么,如何利用输出的一个方波来实现测速的目的呢这里利用了单片机的两个内置外设外部IO中断8位定时器T2当出现方波的下降沿时,单片机可以利用外部中断采集到这个下降沿,并跳转到中断服务入口,在中断服务中可以通过打开定时器来实现记录每个方波或者一定方波个数N的时间T。这里假设轮胎的圆周长是LEN厘米。则由以上数据可知如下公式。速度VNLEN/TCM/S,其中LEN的单位为厘米,T的单位为秒。434微型打印机原理在这里使用的打印机是EPSON公司的M150II微型打点打印机,其总共包含4个打印针,每个打印针分别可以打印24个点,其在打印纸上的分布点如下图44所示图44打印机点在打印纸上的分布由以上硬件设计中的图37所示知,控制打印机运转的主要有4种信号复位控制信号RESETDECETOR时序控制信号TIMINGDECTEOR电机运转控制信号MOTOR四个打印针控制信号PRINTSOLENOID打印机点在打印纸上的分布如上图44所示,当打印机从左往右运动时,分别产生96个TIMINGDECTOR信号,单片机以这个信号为基准进行打点控制,每一个信号分别控制一个点,总共96个信号对应96个点,打打印完一行后,打印机需通过点击回到起始原点,当回到原点时,打印机通过RESETDECOTOR信号输出低电平开始新的一行的打印。而打印机在打印的时候,每个打印针电路上的瞬间电流都是很大的,所以必须要通过驱动电路实现,其驱动电路已经在上面硬件电路设计中的打印机模块讲明了。TIMINGDECTOR信号如下图45所示图45打印机TIMINGDECTOR信号如上图45所示,打印机输出的为正弦波信号,通过驱动电路把信号转换成方波,此时的波形频率为需要的波形频率的1/2,这里可以通过两种方法进行改良一种是硬件进行分频,另一种是利用单片机的双边沿促发功能。第一种方法比较麻烦,需要拖入较大硬件,而第二种方法只要所选的单片机具有双边沿促发功能便可以很好的解决问题。而这里选用的ATMEGA64总共有8个外部中断,分别是INT0INT7,庆幸的是,其中有4个具有双边沿促发功能,分别是INT4INT7,这里选用的是INT6。5软硬件系统调试51硬件调试在完成硬件PCB的加工之后,首先第一步便是进行硬件焊接以及调试,在调试过程中碰到过许多问题,并且经过分析和实践意义解决,接下去分析在硬件调试过程中碰到的各类问题与解决方法。遇到的问题主控板电源,电流不够,当初设计的时候主要是为了降压在主控板的电源之后加了一个二极管来限制电压,结果是焊接了一个IN4148的小电流二极管,导致液晶很暗,并且不能调处液晶对比度,电源模块的电路图如图51所示图51主控板电源模块解决方法是,使用大电流的二极管,SS26,很好的解决了这一问题。霍尔传感器,感应灵敏度太低,在设计电路的时候以为霍尔元件在周期性磁场的作用下能直接输出单片机能接收的方波,但是实际测试并非如此,单用霍尔元件直接接单片机,灵敏度很低,要固定也不方便,原设计图霍尔传感器接口如图52所示图52霍尔元件接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论