基于AVR单片机的自行车行车记录仪,软硬件协同

发布者:朱雀最新更新时间:2015-07-31 来源: eefocus关键字:行车记录仪  ATmega64  打印机  液晶  Protel 手机看文章 扫描二维码
随时随地手机看文章
自行车行车记录仪包括主控板,打印机驱动板,霍尔传感器,12864液晶显示器,EPSON微型打点打印机这五部分。该记录仪能记录实时的行车速度,行车总里程,单次行车里程,以及历史最高行车速度,具备外部环境温度显示,总里程设置,行车信息打印等功能,是面向自行车爱好者的一个高精度,功能强大的行车记录仪。

 

功能上,在设计行车记录仪时,以Atmega64单片机为核心,AT24LC64 EEPROM,DS1302,12864液晶显示器,霍尔传感器等构成外围电路,行车记录仪的核心部件是霍尔传感器,在下面讲述原理的时候会进行详细的描述。显示部分由12864液晶来完成,该液晶控制简单,显示区域大,低功耗,适合电池供电,可以通过设计菜单,从而来实现记录仪强大的功能。打印部分由EPSON M-150II微型打点打印机来完成,用户可以通过打印机记录行车的统计信息,以及最近一次的行车信息,各种里程信息以及时速,时间等信息,用户可以通过保管打印的信息,对自己的行车生涯进行统计。

 

系统软件设计包含用户UI界面,以及各个外围电路的驱动两大部分。使用的编译器是AVR官方推荐的ICCAVR,其中外围的驱动部分主要包括: DS1302时钟芯片驱动;DS18B20温度传感器驱动;24LC64 EEPROM驱动;EPSON M-150II微型打点打印机驱动;12864液晶驱动

 

硬件电路制作使用Protel DXP设计制做PCB板。分主控板和打印机驱动板焊接调试,进行性能和功能测试。

 

本系统硬件部分结构简单,软件部分使用自己设计UI界面,使用方便,中文显示,可操作性强,具有比较好的市场前景。  

 

1. 引言

自行车行车记录仪(以下简称码表)在国内外已经有了广泛的应用,但是不管是国外的还是国产的码表都存在着很多缺点。

 

首先,对于国产码表来说,缺点主要有:

 

  1. 安装相当麻烦,根据使用者评价,一般安装需要半小时以上,而国外的进口码表则只要5分钟即可安装完毕,所以在设计该码表时需要在这方面进行改进。

  2. 即时速度显示混乱,其实这是计算精度不够造成,速度高于25M/S以后(特别是30M/S以后)当前速度就开始有波动,速度越快波动越大,这个问题还导致最高速度不可信,所以在设计时选择的CPU必须是具有较高计算速度,且实时性能较好的,这里选用了AVR的MEGA64高性能8位单片机,此单片机资源丰富,最高速度可以达到16MIPS/S。

  3. 里程和速度的清零功能未能真正实现,它不能像国外的SIGMA那样清除指定的数据,而是全部清零重置,连总里程和时钟都清零了,所以这个设计也是非常的失败的,需要改进。

  4. 时钟不准,根据大部分使用者的反应,一个月快了差不多半小时。

  5. 某些国产表的轮径设置最小只能适应20*2.0cm的轮胎,也就是说折叠车基本用不上,这点也是需要改进的。

  6. 最后一点对于普通用户来说都是比较反感的,说明书以及液晶上的显示都是全英文的,而且液晶显示简单,说明书也只是一个小纸片而已,对自行车码表没点了解、没有点钻研精神还不一定能搞清里面的功能和用法。

 

再次,对于外国的码表来说,观点主要有以下:

除了以上的第六个缺点以外,其它缺点基本都是不存在的,但是一个比较致命的要害是价格高,一般的消费群体买不起。就拿比较出名的德国品牌sigma,最便宜的到70多,但是功能实在单一。而功能强大,性能又好的则贵至好几百元,上千元不等,型号很多,价格范围波动也很大。

 

最后,总结出不管是国内还是国外码表,都存在以下缺点:

  1. 显示都是英文,对于一般的用户使用比较的不方便,而且安装较麻烦,初始化设置十分的繁琐。

  2. 功能单一,一般便宜的码表,往往只具备速度的记录,行车总里程,行车总时间的记录等等,并且通过液晶查看,不能有效的统一历史数据,或者只能查阅近几天的历史数据。

实现该系统所需要的知识如下:

单片机C语言编程;IIC,单总线等串行总线编程;模块化程序设计;霍尔传感器原理及实现方法;液晶显示编程;打印机实现原理;protel画原理图以及画PCB等。

 

核心元件,单片机,这里选择ATMEL公司的8位中高端单片机Atmega64,选择它的理由主要有以下几点:

  1. 在存储方面,使用的是ATMEL公司的AT24LC64 EEPROM存储器,该存储器走的是IIC(ATMEL公司开发的两线串行总线)总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。

  2. 打印机模块,有下面的打印机实现原理(图4.5)可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如Atmega64及以上的单片机都具有这一功能。

  3. 霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器,Atmega64也能很好的满足。

  4. 内存空间要求:在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上,而Atmega64拥有4K内存,能够完全满足。

  5. 更重要的是,这款单片机价格便宜,只要20余元便能购置一片,所以选择这个单片机时比较合适的。

下面将从硬件系统,软件系统,各个模块的实现原理,软硬件调试这几个方面来详细的讲述这一个系统。

 

2. 系统框架

2.1 系统框架结构图

系统框架结构图如图2.1所示

图2.1 系统框架图

图2.1 系统框架图

 

2.1.2 主控板

如上图2.1所示,主控板为系统核心,主要包含单片机ATmega64(ATEML公司8位中高端单片机)以及,各个模块接口。

 

2.1.3 打印机

 

如上图2.1所示,打印机模块需要一个驱动板以及一个打印机模块,打印机为EPSON公司的M-150II微型打点打印机,一行可以打96个点。

 

2.1.4 存储模块

 如上图2.1所示,存储模块用的是ATMEL公司的AT24LC64 EEPROM(电可擦除编写存储器)存储器,大小一共是8千字节。

 

2.1.5 温度传感器

如上图2.1所示,温度传感器用的达拉斯公司的DS18B20单总线数字温度传感器,支持多个挂同一条总线,且测试温度较准。

 

2.1.6 霍尔传感器

如上图2.1所示,霍尔传感器使用的是A3144先行霍尔元件,在下面的第三章,硬件设计中将看到对霍尔传感器的改良。

 

2.1.7 液晶显示器

如上图2.1所示,液晶显示器使用的STN7920控制器的12864液晶显示器,该液晶宽128个点,高64个点,故名12864,并且自带中文字库,可显示区域大。

 

2.2 解决的主要内容   

  1. 如何利用好强大的MEGA64单片机资源而不浪费,以及充分理解该单片机相关的控制单元内在的物理逻辑,由此才能深入的理解单片机的运行以及启动过程,并发现问题时能得到及时解决。

  2. 行车记录仪的硬件设计— 记录仪总共涉及到温度,时间,电源,液晶,打印机等多个模块组成,在设计硬件时需要充分考虑到各种干扰,美观度等因素。

  3. 多层菜单设计— 多层菜单是一个比较复杂的逻辑,如果设计不好会导致整个工程的混乱,使代码变得难于理解,甚至不能继续接下去的工作,所以多层菜单设计需要一个较好的算法来实现它。

  4. 各种总线协议驱动— 单片机内置IIC,SPI等总线协议,在温度获取,flash存储中等都需要用到这些总线,所以这些总线协议的驱动也是比较关键的。

  5. 打印机驱动电路— 在本设计中,用到了EPSON的M-150II打印机,其工作电流大,需要专门的硬件驱动电路,在设计这一块电路时,必须做好和主控板(记录仪)的接口,以方便用户进行数据导出和统计。

 

2.3 实现的主要功能

  1. 显示实时速度和平均速度

  2. 显示总里程和单次行车里程

  3. 显示时间和温度

  4. 节电保护

  5. 行车信息存储

  6. 用户菜单UI界面

  7. 时间修改

  8. 轮径设置,里程设置,等一些参数的设置

  9. 打印行车记录统计信息

  10. 贪吃蛇小游戏

3. 硬件系统设计

3.1 主控板

主控板主要包括:CPU,Atmega64;时钟芯片,DS1302;存储芯片,24LC64;JTAG在线仿真接口;中断独立按键模块;LED调试电路;12864液晶显示接口;DS18B20温度传感器接口;霍尔传感器接口;打印机驱动板接口。

[page]

对单片机的选择主要有以下要求:

  1. 在存储方面,使用的是ATMEL公司的AT24LC64 EEPROM存储器,该小存储器走的是IIC总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。

  2. 时钟模块,用的是达拉斯的DS1302芯片,只需普通的端口操作就能完成。

  3. 打印机模块,有下面的打印机实现原理可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如Atmega64及以上的单片机都具有这一功能。

  4. 霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器。

  5. 内存空间要求:在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上。

 

由以上几点分析,这里我选择了ATMEL公司的AVR系列单片机Atmega64,该款单片机价格便宜,功能强大,能满足上面几点的全部要求。

   

结论:最终选择的单片机为ATMEL公司的Atmega64八位高性能单片机。

 

主控系统的核心如图3.1所示。

图3.1 核心板最小系统图3.1 核心板最小系统

图3.1 核心板最小系统

 

3.2 霍尔传感器

霍尔传感器是实现行车记录仪最核心的部件,记录仪的核心记录参数(车速),便是由霍尔传感器实现的,所以在制作霍尔传感器时必须严格把关。

 

3.2.1霍尔传感器工作原理

霍尔传感器,顾名思义,利用的是霍尔效应。

 

霍尔效应的本质是:固体材料中的载流子在外加磁场中运动时,因为受到洛仑兹力的作用而使轨迹发生偏移,并在材料两侧产生电荷积累,形成垂直于电流方向的电场,最终使载流子受到的洛仑兹力与电场斥力相平衡,从而在两侧建立起一个稳定的电势差即霍尔电压。正交电场和电流强度与磁场强度的乘积之比就是霍尔系数。平行电场和电流强度之比就是电阻率。大量的研究揭示:参加材料导电过程的不仅有带负电的电子,还有带正电的空穴。

 

本记录仪中使用的霍尔元件A3144E正是利用这一效应而产生的。其实物结构图如图3.2所示

图3.2 霍尔元件结构图

图3.2 霍尔元件结构图

 

霍尔元件工作原理:实物结构图如上图3.2所示,3脚为信号脚,1脚和2脚分别接电源和地。在没有经过磁场时,输出为高电平,当磁场渐渐变强时,则输出的电平会渐渐变低,当磁场周期性的出现时,在输出脚便会出现一个正弦波电压,霍尔元件信号输出如图3.3所示

图3.3 霍尔元件信号输出

图3.3 霍尔元件信号输出

 

3.2.2 霍尔传感器改良

如上图3.3所示在周期性磁场的作用下,霍尔元件,A3144E输出的是一个周期性的正弦波,而单片机能识别的只是1或0的高低电平,如果把这个信号直接接单片机则有很多缺点:

  • 单片机无法识别该信号除了高电平和低电平时的电平

  • 霍尔元件灵敏度低,只有在磁铁靠的很近的时候才有反应

 

针对以上缺点,需要对霍尔传感器进行改良,目的为了提高灵敏度和改善输出波形,改良的电路图如图3.4所示

图3.4 改良的霍尔传感器

图3.4 改良的霍尔传感器

工作原理:改良的霍尔传感器如上图3.4所示,在没有磁场的情况下,3144输出高电平,则运算放大器输出低电平,当经过磁场时,3144输出电平渐渐变低,当电平低于放大器负极时则放大器输出低电平,从而通过单片机采集这个低电平信号。

 

由以上工作原理可知,可以通过调节滑动变阻器R3,从而来调节触发电平。并且通过点亮灯LED1来指示信号的输出。

 

改良后的霍尔传感器信号输出波形如图3.5所示

图3.5 霍尔传感器输出信号

图3.5 霍尔传感器输出信号

 

霍尔传感器信号输出如上图3.5可知,经过改良后的霍尔传感器能输出一个单片机能识别的方波,并且可以通过调节滑动变阻器R3来调节传感器的触发电平,同时通过指示灯LED1来指示信号的输出,最主要达到了增强信号的可处理性的目的。

 

3.3 打印机

打印机在打印的时候需要大电流提供,而单片机的IO管脚最多只能提供20mA的电流,所以打印机在打印之前需要有额外的驱动电路来提供打印需要的电流。打印机实物接口如下图3.6所示

图3.6 打印机实物接口

图3.6 打印机实物接口

[page]

其中的信号接口如图3.7所示

图 3.7 打印机信号接口

图 3.7 打印机信号接口

 

打印机电机驱动如下图 3.8所示,打印机主要信号包括,电机驱动信号:Motor(+),4个打印针驱动信号:(6,7,8,9)。

 

电机驱动电路如下图3.8所示

图3.8 打印机电机驱动

图3.8 打印机电机驱动

 

   打印机电机驱动如上图3.8所示,信号由AVR_PRINT_ON脚输入,高电平驱动,当产生高电平时,通过三极管Q1驱动打印机打印。

 

打印针的驱动如下图3.9所示

图3.9 打印针驱动

图3.9 打印针驱动

 

AVR_PRINT_A为信号输入脚,低电平驱动,当该脚为低电平时,通过三极管Q3和Q4驱动打印针PRINT_A打印。

 

3.4 其它外围电路

除了以上涉及核心电路外,其它比如时间显示,数据存储,温度显示等,都分别需要不同的硬件模块提供支持。

 

3.4.1 时钟模块

这里时钟采用了达拉斯的DS1302时钟芯片,时钟模块电路图如图3.10所示

图3.10 DS1302时钟模块

图3.10 DS1302时钟模块

 

该模块采用串行工作模式,通过SCLK(Signal Clock,信号时钟), I/O(Input And Output,输入输出信号),RST(Reset 复位信号)三线控制芯片工作。

 

3.4.2 数据储存模块

数据存储采用了ATMEL公司的24LC64 EEPROM(可编程电可擦除存储芯片),模块电路图如图3.11所示

图3.11 EEPROM存储电路

图3.11 EEPROM存储电路

 

该模块采用的是标准的I2C总线模式,操作简单方便,总容量为64Kbit,8K字节,对于存储记录仪的参数是绰绰有余。

 

3.4.3 温度传感模块

温度传感器采用的是达拉斯的DS18B20,单总线模式,温度传感器模块电路图如图3.12所示

图 3.12 温度传感器模块

图 3.12 温度传感器模块

 

温度传感器模块如上图3.1所示,DS18B20采用的是单总线模式,该数字温度传感器最大的的特点是,只需一个IO管脚便可以控制其工作,并且该传感器传感温度精确,最小可以精确到0.0625℃。

 

3.4.4 独立按键模块

独立按键模块是提供用户来控制和使用UI界面,原理图如下图3.13所示

图3.13 独立按键电路

图3.13 独立按键电路

 

独立按键电路如上图3.13所示,每个按键按下时都会产生一个中断,在设计嵌入式软件时可以通过在按键中断内判断按键值,并且可以通过定时器去除抖动,这种软件设计可以避免软件延时去抖,从而提高了整套软件的运行效率。

4. 软件系统设计

本套软件主要实现自行车行车记录的智能控制,其实现的功能主要有以下几点:

  • 显示平均行车速度,实时行车速度,时间和温度

  • 记录行车速度、行车总里程、单次行车里程

  • 记录总行车时间,单次行车时间

  • 轮胎圆周设定,总里程初值设定

  • 自动关机,节电保护

  • 行车统计信息打印

  • 贪吃蛇小游戏

  • 时间显示和时间设置

 

4.1 软件总体框架

软件总体流程图如下图4.1所示

图4.1 嵌入式软件整体流程图

图4.1 嵌入式软件整体流程图

图4.1 嵌入式软件整体流程图

 

4.2 软件说明

该嵌入式软件设计的思想主要是模块化的程序设计思想,其中需要驱动的模块主要有以下几点:

  • DS1302时钟模块驱动

  • DS18B20数字温度传感器模块驱动

  • 24LC64 EEPROM存储模块驱动

  • 12864液晶显示模块驱动

  • 霍尔传感器计速模块驱动

  • EPSON M-150II微型打点打印机驱动

 

软件主要包含三层结构,分别为应用层,封装层以及驱动层。其软件层次结构如下图4.2所示

图 4.2 嵌入式软件层次结构

图 4.2 嵌入式软件层次结构

 

这种软件设计的好处是便于移植,当更换某一芯片时,只需要改变相应芯片的驱动层,而不用修改封装和应用层,便可以使软件继续正常运转。

 

而如果更换单片机这一核心元件,也只需更改所有的驱动层便可以把软件移植到其它单片机平台,在编写涉及到硬件的代码时,可以尽量使用宏定义或者编写多层结构,使底层硬件操作的代码达到最少,从而方便移植。

 

4.3 各个模块实现原理

4.3.1 处理器模块

首先在选择CPU(Central Processing Unit,计算机中央处理器)之前,必须先分析完成这个作品所选的CPU必须具备的功能,如果CPU选的功能太过简单就不能达到预期的效果,很多东西不能实现,而如果选择很先进的CPU或者32位的高级单片机,首先第一个是不能充分利用这个单片机,第二是在成本上也会大幅上升,所以在选择单片机时必须对所需要的功能进行合理的分析。

[page]

分析情况:

  1. 在显示方面使用的是12864液晶的带字库液晶,该液晶操作简单,只需普通的IO端口操作便可以解决控制,所以它对单片机没有特殊的要求。

  2. 在存储方面,使用的是ATMEL公司的AT24LC64 EEPROM存储器,该存储器走的是IIC(ATMEL公司开发的两线串行总线)总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。

  3. 时钟模块,用的是达拉斯的DS1302芯片,只需普通的端口操作就能完成。

  4. 打印机模块,有下面的打印机实现原理(图4.5)可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如Atmega64及以上的单片机都具有这一功能。

  5. 霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器。

  6. 内存空间要求:在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上。

 

由以上6点分析,这里我选择了ATMEL公司的AVR系列单片机Atmega64,该款单片机价格便宜,功能强大,能满足上面7点的全部要求。其资源如下:

  1. 工作于16M时性能高达16MIPS,速度快

  2. 64K flash程序代码空间

  3. 4K 的内部SRAM,足够满足UI界面以及其他的缓存

  4. 内置IIC和SPI总线接口

  5. 8路外部中断,有4路能实现双边沿中断

  6. 3路定时急速器(2路8位,1路16位)

  7. 两个串行USART口

  8. 53个普通IO端口(大部分复用)

由以上八点可以看出,该款单片机完全能够满足这个产品需要的功能,并且Atmega64为基于RSIC结构的8位低功耗CMOS微处理器,降低功耗,是做行车记录仪的首选单片机。

 

结论:最终选择的单片机为ATMEL公司的Atmega64八位高性能单片机。

4.3.2 用户UI界面原理

在这个嵌入式软件中,最关键也是最富有挑战的便是用户界面,即菜单系统,如果只是用简单的switch,case语句,那在三层菜单的基础上,那将会是一个非常庞大的代码,并且可读性差,维护十分困难,当需要增加或则删减菜单时都是一件非常痛苦的事情。

 

通过各种资料的搜索与整理,并且通过自己的改良,用了一种基于节点编号的方法实现了这个菜单系统。

 

首先、菜单是有层次的,并且每一层菜单都有不同的不同的条数,比如第一层菜单有四条,第一层菜单第一条的子菜单都3条,而第一层菜单第二条的子菜单有2条。

 

加入以个十百来标识菜单所在的层次,以每一位的大小来标识当前菜单再当前层次的条数,则可以推断出每条菜单都有一个唯一的ID,我们称之为节点。

 

基于节点编号的菜单系统的结构如下图4.3所示

图4.3 基于节点编号的菜单系统结构

图4.3 基于节点编号的菜单系统结构

 

结构分析:菜单系统结构图如上图4.3所示,可见很明显,菜单为3层菜单结构,第一层总共有两条菜单,其编号分别是1和2,在例如在第三层中节点编号为133的菜单,由该节点知,该条菜单再当前层次的第三条,并且位于上层菜单的第三条,位于上上层菜单(即一级菜单)的第一条。其它菜单的结构和这个一样。

 

由以上分析可知,菜单的结构很明显的构成了一个标准的二叉树,并且其父子节点有很明显的算术关系,其关系如下。

 

父节点 = 当前节点%10;(%操作为求余操作)

子节点 = 当前节点*10 + 1;

如果没有父节点或者子节点,则分别把这两个节点设置成空节点。

 

有了这个方法,要实现一个菜单系统便是一个很简单的事情了,这套菜单系统还能实现翻页等复杂操作,并且增加或删除节点十分方便I,只需修改相应节点的编号就可以实现。

 

菜单与实时显示界面的分离:在这套菜单系统中,用户可以通过按返回键激活菜单或者通过返回键返回实时界面,其实现原理也非常简单,只需设置一个标志位来标识是否激活菜单,从而达到实时界面与菜单的分离。

 

4.3.3 测速实现原理

测速的核心部件是霍尔元件,利用霍尔元件,再进行一些改良,如上硬件设计中提到的图3.4所示。从而使传感器在周期性的磁场作用下产生一个固定周期的方波。

 

那么,如何利用输出的一个方波来实现测速的目的呢?这里利用了单片机的两个内置外设:

  • 外部IO中断

  • 8位定时器T2

当出现方波的下降沿时,单片机可以利用外部中断采集到这个下降沿,并跳转到中断服务入口,在中断服务中可以通过打开定时器来实现记录每个方波或者一定方波个数n的时间t。

 

这里假设轮胎的圆周长是len厘米。则由以上数据可知如下公式。

速度 V = n*len/t (cm/s),其中len的单位为厘米,t的单位为秒。

 

4.3.4 微型打印机原理

 

在这里使用的打印机是EPSON公司的M-150II微型打点打印机,其总共包含4个打印针,每个打印针分别可以打印24个点,其在打印纸上的分布点如下图4.4所示

图4.4 打印机点在打印纸上的分布

图4.4 打印机点在打印纸上的分布

 

由以上硬件设计中的图3.7所示知,控制打印机运转的主要有4种信号:

  • 复位控制信号Reset Decetor

  • 时序控制信号 Timing Decteor

  • 电机运转控制信号 Motor

  • 四个打印针控制信号 Print Solenoid

打印机点在打印纸上的分布如上图4.4所示,当打印机从左往右运动时,分别产生96个Timing Dector信号,单片机以这个信号为基准进行打点控制,每一个信号分别控制一个点,总共96个信号对应96个点,打打印完一行后,打印机需通过点击回到起始原点,当回到原点时,打印机通过Reset Decotor信号输出低电平开始新的一行的打印。

 

而打印机在打印的时候,每个打印针电路上的瞬间电流都是很大的,所以必须要通过驱动电路实现,其驱动电路已经在上面硬件电路设计中的打印机模块讲明了。

 

Timing Dector信号如下图4.5所示

图4.5 打印机Timing Dector信号

图4.5 打印机Timing Dector信号

 

如上图4.5所示,打印机输出的为正弦波信号,通过驱动电路把信号转换成方波,此时的波形频率为需要的波形频率的1/2,这里可以通过两种方法进行改良:一种是硬件进行分频,另一种是利用单片机的双边沿促发功能。

 

第一种方法比较麻烦,需要拖入较大硬件,而第二种方法只要所选的单片机具有双边沿促发功能便可以很好的解决问题。

 

而这里选用的Atmega64总共有8个外部中断,分别是INT0~INT7,庆幸的是,其中有4个具有双边沿促发功能,分别是INT4~INT7,这里选用的是INT6。

5. 软硬件系统调试

5.1 硬件调试

在完成硬件PCB的加工之后,首先第一步便是进行硬件焊接以及调试,在调试过程中碰到过许多问题,并且经过分析和实践意义解决,接下去分析在硬件调试过程中碰到的各类问题与解决方法。

 

遇到的问题:

  1. 主控板电源,电流不够,当初设计的时候主要是为了降压在主控板的电源之后加了一个二极管来限制电压,结果是焊接了一个IN4148的小电流二极管,导致液晶很暗,并且不能调处液晶对比度,电源模块的电路图如图5.1所示

图5.1 主控板电源模块

图5.1 主控板电源模块

 

    解决方法是,使用大电流的二极管,SS26,很好的解决了这一问题。

 

  1. 霍尔传感器,感应灵敏度太低,在设计电路的时候以为霍尔元件在周期性磁场的作用下能直接输出单片机能接收的方波,但是实际测试并非如此,单用霍尔元件直接接单片机,灵敏度很低,要固定也不方便,原设计图霍尔传感器接口如图5.2所示

图5.2 霍尔元件接口

图5.2 霍尔元件接口

 

解决方法是,使用运算放大器对信号进行放大,并使用滑动变阻器来调节灵敏度,使之变成一个灵敏度可调的并输出方波的可调霍尔传感器,改良的电路如上硬件设计中的图3.4所示。

 

  1. 打印机子控板,布线太细,打印机的打印针在打印的瞬间,以及打印机的点击在运转的时候都是需要提供大电流的,能达到几百mA,瞬间甚至几个安培,而在布线的时候,打印针的地方只用了2.54mm的细线,在实际使用的时候只能打印16x16的大字,当打印压缩的字体时便变成很模糊的字,主要原因是打印针电流小,力度不够。

解决方法:手动焊接万用板来达到打印的效果,在使用万用板的时候也出现部分不能打印的结果,结果只是三极管坏掉,也得到了很好的解决。

 

5.2 软件调试

在上面的硬件调试完毕之后,其实已经完成了一些基本的驱动,打印机驱动,液晶驱动,霍尔元件驱动都已经完成,在软件上的主要难题主要有:

 

  1. DS18B20时序---作为单总线温度传感器,DS18B20是达拉斯的单总线结构数字温度传感器,由于其是单总线结构,所以在时序的控制上要求非常严格,在做这个驱动时碰到过许多问题,主要是时序很难控制,最后通过JTAG硬件仿真调试,解决了这一难题。

  2. 用户UI界面,以前从来没坐过多级的菜单,并且菜单层次多,条数多,如果用简单的switch,case语句来实现的话,那将会是一个非常庞大的代码,不仅编写困难,而且不易维护,增减麻烦。所以为了做好这一块,在网上搜索了大量的资料,最后使用的是基于节点编号的方法,并进行了一些改良,这种方法的结构图如上图软件设计中的图4.3所示

 

6. 欲求目标

6.1 要求达到的目标

要实现的功能主要如下:

  1. 显示实时速度和平均速度

  2. 显示总里程和单次行车里程

  3. 显示时间和温度

  4. 节电保护

  5. 行车信息存储

  6. 用户菜单UI界面

  7. 时间修改

  8. 轮径设置,里程设置,等一些参数的设置

  9. 打印行车记录统计信息

  10. 贪吃蛇小游戏

 

6.2 产品优缺点

优点:该产品的最大优点是显示实时速度和里程精确,误差小,并且可调节度大,能适应轮胎圆周10—250cm的自行车,使用用户UI界面,并且显示的全是浅显易懂的中文,显示更加人性化和方便,传感器灵敏度高,并且还具有打印功能,便于用户管理行车信息。

 

缺点:本产品的最大缺点是成本高,打印机以及液晶都是比较昂贵的,这点需要改进。另一个缺点便是没有包装,只是达到了实验级的产品,没有达到产品级别,这点在量产产品之后可以进行改良。

关键字:行车记录仪  ATmega64  打印机  液晶  Protel 引用地址:基于AVR单片机的自行车行车记录仪,软硬件协同

上一篇:125K非接触ID卡读卡器设计
下一篇:基于AVR技术的智能家居管理系统,包含原理图、电路结构

推荐阅读最新更新时间:2024-03-16 14:26

睿联多屏显示技术:全景监控中心的关键
  现在,多屏显示技术应用得越来越广泛,在关键部门如铁路、地理测绘、金融中心,航空航天、电力、水利等现代化中心系统监控室里都能见到。     国内知名多屏拼接专家——睿联嘉业公司(400-650-8282,13126624383)提供的多屏全景监控中心方案,让国内关键部门的控制中心,提升级别进入多屏全景监控中心时代。如图所示:     此图展示了多屏技术中相当高的品位,里面有5个竖屏拼接的墙体大屏幕,同时在2排观测桌上布置了2个八屏全景监控液晶显示,2个双屏监控液晶,1个三屏监控液晶,1个横式四屏监控液晶。     在这样的多屏液晶监控的世界里,外界的任何信息都可以分毫不差地了然于目。目前已成为国内大型数据中心和
[安防电子]
SPCE061A与液晶模块HS12864-1的接口及其编程
1 引言 在以单片机为核心的嵌入式测控系统中,单片机与显示器件的接口是一个必不可少的环节,具体工作包括选择显示的器件类型,接口采用串行或并行方式以及显示驱动的确定等问题。典型的显示器件是LED数码管,其亮度高,适应于大多数应用场合。缺点是接口电路复杂,功耗高。液晶显示器件是利用液晶的电光效应制作的,具有功耗低、接口控制方便等优点 ,而且模块的接口信号和操作指令具有广泛的兼容性,并能直接与单片机接口,它还具有专用指令,可方便地实现各种不同的操作,同样的显示面积LCD其功耗比LED显示器小几百倍,所以它特别适宜与COMS电路直接相配,液晶显示器件已成为当代高新技术产业(信息产业中最重要的信息处理手段之一,在各类测量及控制仪表中被广
[单片机]
SPCE061A与<font color='red'>液晶</font>模块HS12864-1的接口及其编程
核心仍被外企掌控,凸显液晶面板配套国产化之急迫
7月底,广西晶联光电与深圳华星光电共同签署双方战略合作协议,并宣布晶联光电的ITO靶材在华星光电G4.5中试线的镀膜测试工作已于2017年上半年完成并顺利通过认证,后续双方将进一步深化在G8.5高世代TFT产线上的合作探讨,携手推进ITO靶材在新型显示面板产线的国产化配套应用。这是我国显示产业发展到今天,面板上下游企业互相促进的又一个努力。 随着中国大陆在显示面板产业的布局和投资的加大,国际显示产业的格局已经从原来日本、韩国和我国台湾地区主导,向中韩主导的趋势发展。至2020年前后新建产线产能全部释放,中国大陆将成为全球显示面板产能最大的区域。中国已经成为显示大国,但还不是显示强国,其中一个明显的欠缺就是面板上游的配套能力还很
[手机便携]
适用于LCD液晶显示的控制器设计
随着显示屏技术的不断发展,真彩液晶显示屏以其高分辨率、高对比度及高清晰度等优势逐渐在嵌入式显示系统中占据重要地位。目前,基于嵌入式平台的LCD显控技术的实现主要有两种方式:ARM内嵌LCD控制器和独立的控制器件。但是这两种实现方式都存在着不足之处,内嵌控制器的使用可能增大处理器的负担和限制显示帧率,而外部控制器件不仅成本高,而且专用性比较强,很难适应不同类型的液晶屏。 据此存在的问题,这里提出一种基于ARM与FPGA的LCD控制器设计方案,该设计方案一方面能够通过操作LINUX OS下的Framebuffer设备提高显存的写入速率及减轻处理器的负担,另一方面用FPGA来实现LCD控制器的设计,开发周期短、功耗低,同时具有灵活的
[单片机]
适用于LCD<font color='red'>液晶</font>显示的控制器设计
液晶LCD电视何时才具有CRT的画质体验?
  尽管市场上对于液晶电视的各种宣布不断,1080i,1080p以及全1080p,分辨率不断上升,但是如果你买回一台放在家里,接上有线电视后,才会发现其画质还比不过家里的一台旧CRT电视,特别是转播体育比赛的时候。原来才想起来在商场里看到的都是一些秀色可餐的静态的美女和水果。   “目前来看,液晶电视的画质的确比不过传统的CRT电视。”恩智浦半导体(NXP)大中华区域行政官兼全球视讯产品事业部经理叶昱良如是说道。叶昱良在恩智浦的前身飞利浦半导体工作超过20年,是视频领域的资深专家,现在正带领NXP向新一代的数字电视领域全面转移,将NXP在CRT领域的众多优势带入LCD TV领域。但是他坦承目前的现状的确是LCD电视不如CRT电
[家用电子]
夏普液晶电视订单挹注,鸿海重回电视代工老大
受惠夏普液晶电视订单挹注,鸿海1月电视代工出货量达175万台,再次跃升全球第一大,随着夏普今年持续冲刺业绩,扩大电视机的销售量,可望持续推升鸿海今年的电视机代工数量继续增长。 大陆市调机构群智咨询表示,全球电视代工市场的订单热度,从去年12月递延到今年1月,让今年1月全球13大电视代工厂出货量达802万台,年增68.6%。 群智说,去年1月为海外市场出货淡季,又碰上农历新年,去年各家代工厂1月出货量有不同程度的减少,相比之下,今年1月的增长幅度较大。但随2月农历新年长假到来,出货自然下降。目前看来代工厂3月的需求稳定且超出预期,仍需注意海外需求的稳定性风险持续增加。 从个别厂商来看,群智说,富士康(鸿海)1月电视代工出货量达
[嵌入式]
惠普宣布完成收购三星打印机业务 合并后市场份额超50%
惠普本近日宣布,已经完成对三星电子打印机业务的收购交易,总金额为10.5亿美元,约合人民币69.5亿元。 在打印机和打印耗材领域,惠普的全球领先地位十分明显,按销售额计算2016年份额高达45-50%,三星则为5-10%。 2016年9月,惠普和三星签署集中协议,惠普将收购三星全球打印机业务所有股权和资产。 尽管两家合并后,市场份额将超过50%,具有市场支配地位,但中国商务部等相关机构依然有条件地批准了这一交易。 惠普表示,整合三星打印机业务后,惠普将加速颠覆价值550亿美元的A3复合机市场,同时还获得了三星打印机的超过6500项专利、近1300名研发人员和工程师组成的顶级团队,他们都是激光打印、电子成像及耗材和配件领域的专家。
[嵌入式]
日本液晶巨头JDI接受中国财团注资
苹果公司XR系列手机销量不佳,其负面影响正在波及全球供应链,导致其LCD面板主力供应商日本显示器公司(JDI)逐渐陷入困局。   iXR面板订单本是JDI为扭转连4年亏损的关键收入,且该公司格外依赖来自苹果的订单。 如今势将因此受到冲击。 JDI上月已将2018年度营收成长率预测调降为5~15%,同时也下修了营业利润率预测。   目前手机市场对于液晶面板的需求所有放缓,同时JDI还将面临着中国以及韩国面板厂商的夹击,所以寻求突破口也是JDI的当务之急。   JDI(Japan Display)于今日已正式确认,将接受近10亿美元的投资,以提高其OLED产能。据报道,7.2亿美元的投资来自一个外部投资集团(据传是中国丝绸之路基
[家用电子]
日本<font color='red'>液晶</font>巨头JDI接受中国财团注资
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved