微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AVR单片机的自行车行车记录仪,包括软硬件具体方案

基于AVR单片机的自行车行车记录仪,包括软硬件具体方案

时间:06-03 来源:互联网 点击:

器输出低电平,当经过磁场时,3144输出电平渐渐变低,当电平低于放大器负极时则放大器输出低电平,从而通过单片机采集这个低电平信号。

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

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

图3.5 霍尔传感器输出信号

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

3.3 打印机

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

图3.6 打印机实物接口

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

图 3.7 打印机信号接口

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

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

图3.8 打印机电机驱动

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

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

图3.9 打印针驱动

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

3.4 其它外围电路

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

3.4.1 时钟模块

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

图3.10 DS1302时钟模块

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

3.4.2 数据储存模块

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

图3.11 EEPROM存储电路

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

3.4.3 温度传感模块

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

图 3.12 温度传感器模块

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

3.4.4 独立按键模块

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

图3.13 独立按键电路

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

4. 软件系统设计

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

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

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

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

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

  • 自动关机,节电保护

  • 行车统计信息打印

  • 贪吃蛇小游戏

  • 时间显示和时间设置

4.1 软件总体框架

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

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

4.2 软件说明

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

  • DS1302时钟模块驱动

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

  • 24LC64 EEPROM存储模块驱动

  • 12864液晶显示模块驱动

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

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

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

图 4.2 嵌入式软件层次结构

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

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

4.3 各个模块实现原理

4.3.1 处理器模块

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top