《电子设计汽车行驶状态记录仪设计报告.docx》由会员分享,可在线阅读,更多相关《电子设计汽车行驶状态记录仪设计报告.docx(100页珍藏版)》请在三一办公上搜索。
1、大学生电子设计设计报告汽车行驶状态记录仪Vehicle travelling data recorder目录摘要 1一、 方案论21.1系统微处理器的个数选择21.2存储显示微处理器作为主控制的选择2二、 系统设计32.1系统基本功能32.2系统性能指标32.3系统的提升部分32.4硬件设计42.5软件设计52.6特殊元件介绍17三、 测试说明183.1测试工具183.2霍尔元件功能测试183.3软件调试183.4测试数据 183.5调试过程中遇见的问题分析以及解决方案203.6系统功能参数213.7创新与特点21四、结束语 22五、附录 22汽车行驶状态记录仪Vehicle travelli
2、ng data recorder摘要:本项目名称为“汽车行驶状态记录仪”,系统微处理器采用双单片机,关键部件有GPS模块、温度传感器和霍尔元件等,用于提取有效信息对汽车行驶位置进行精确定位,并获取轨迹、速度、温度等信息,然后进行存储,以供用户查询汽车一个星期的行驶路径(注:考虑成本问题,样机记录时间长度为6天;如果作为产品,可以记录1个月甚至一年以上,根据用户的要求而定)。本设计采用数字化电路,软件采用C语言,有利于对数据进行准确分析,减少干扰。系统电路采用模块化的设计思想,由5个模块组成,分别为GPS接收模块、数据处理分析模块、存储模块、键盘处理模块和显示模块。其中显示模块可采用LCD显示,
3、还可提供通过串口与PC通信,然后在电子地图上将汽车轨迹形象地显示出来。关键字:单片机;GPS模块;温度传感器;霍尔元件;LCD;PC地图Abstract: With the theme of automobile electron, the 2008 Guangdong Universities Students Electron Design Contest aims at perfecting function of the automobile by designing the electric circuits. And our design project is the automo
4、bile travel condition recording instrument. This system adopts the microprocessor (MCU) to analyze the GPS module, the temperature sensor and the Hall part position the automobile accurately,More over, it can gain and restore the data of temperature value and velocity for inquiry of the automobiles
5、week-long travelling route. Digital electric circuits are applied in all of this system, all the softwares are programmed in monolithic integrated circuit C language in order to analyze the data and orientate precisely, and reduce the disturbance (interference) and the error of the data due to the h
6、ardware electric circuit. There are five modules in the system circuit: GPS receive module, data processing analysis module, memory module, keyboard processing module and demonstration module. And demonstration module includes the LCD demonstration module and the PC electron map demonstration module
7、 in which the electronic map is connected with GPS through the serial port. Key words: MCU; GPS module; Temperature sensor; Hall part; LCD; PC map一、 方案论证89C52微处理芯片GPS接收模块PC地图显示模块数据存储模块时钟模块霍尔传感器温度传感器键盘扫描1.1,系统微处理器的个数选择。方案 一 :采用一个CPU控制芯片。判断1分钟是否到了,没到则处于显示和发送数据的状态,到了就采集GPS接收到的数据,提取出有效信息进行存储。该方案有效地利用了单片
8、机的顺序执行程序的方式,避免了读出存储芯片总线与存储到时钟芯片,存储芯片的总线冲突。但是发送给PC地图的数据必须是2秒一组,接受到GPS的数据也是2秒一组,这对串口的使用产生了冲突,更重要的是我们是对GPS数据进行定时采集,如果恰巧那个时间GPS接收的数据不完整,那么那一分钟里将得不到有效信息,产生很大的误差,所以一块微处理芯片的处理方案不能保证系统的稳定性。存储微处理器显示微处理器时钟模块存储模块GPS接收模块霍尔传感器温度传感器PC电子地图LCD显示模块键盘模块存储微处理器显示微处理器时钟模块存储模块GPS接收模块霍尔传感器温度传感器PC电子地图LCD显示模块键盘模块方案 二 : 采用两块
9、89C52控制芯片。一块微处理器芯片先对时钟芯片进行初始化,而后的主要功能则是对霍尔传感器和温度传感器以及GPS接收的有效数据进行采集,并且对接收到的数据进行检查验证是否正确,当接收到一个中断的时候,则将数据存到存储器里面。另一块微处理器芯片读取时钟芯片进行初始化时钟单元,然后利用定时计数器对时钟单元进行准确的累加,定时产生中断给存储芯片,让存储芯片能够对数据及时地存储。通过定时中断的方式每2秒产生一组数据给PC地图,用循环查询的方式读取总线和验证总线数据是否正确,并且送到LCD上显示。方案二采用两块控制芯片的优势:(1)、有两个串口,可以分开设置相同的波特率,同时进行接收和发送,保证两不误。
10、(2)、减轻单个处理芯片的压力,让中断响应和对数据的读取都能及时响应。(3)、程序代码采用了大量的变量,导致单片机的内部数据存储器的空间不够,增加一个单片机就不用扩展外部数据存储器,不会降低性价比,反而更方便操作。(4)、有效准时地存储数据和读取数据,保证了数据的完整度和准确度,充分提高了系统的稳定性。因此,虽然在方案二中增加多一块单片机的成本,但是相比之下方案二有着更大的优越性,我们采用了方案二。1.2,存储/显示微处理器作为主控制的选择。方案一:存储控制器作为主控制器。利用一条导线连接存储处理芯片和显示处理芯片,通过接受GPS的时钟数据判断是否一分钟到了,如果是则拉下导线电平告知读取芯片释
11、放总线,让存储芯片将当前采集的数据存储进去,然后将导线电平拉高,告诉其可以对存储芯片进行读写。该方案将存储芯片作为了住控制器,通过线扫描控制从控制器。优势是节省了时间,对芯片能够很充分利用。不足之处就是如果当前的数据存储不进EEPROM,则,一直对总线无法读取,那么显示的数据将会产生错误或者拖延。而且当读取芯片在读取芯片时则那么那个控制线无效,数据将无法进行及时存储。所以系统稳定性不高。方案二:将显示微处理器作为主控制器。通过给引脚发送高电平让存储控制器产生中断进行存储。该方案中先由GPS根据接收的数据进行初始化时钟芯片,后提供给显示芯片初始化时钟单元,由定时器产生中断来累加时钟单元,并且及时
12、产生中断信号给存储芯片,这样的电路优势是:在中断前两个芯片都能准时地接收和发送数据,让数据得以准时并且正确地更新。中断过程中空出总线提供给存储芯片进行存储。而且中断是由计时器控制空出总线的时间,所以两芯片不会互相牵制。保证了系统的稳定性。相比之下方案二有着很高的实用性和稳定性,所以我们采用了方案二。二、 系统设计。2.1系统的基本功能.根据我们的目标所要实现的功能,我们经过仔细分析,充分考虑各种影响因素,制定出了整体的设计方案。以两块单片机89C52为核心,协调完成以下几个功能:存储单片机完成采集GPS接收数据,采集霍尔传感器和温度传感器的数据,进行验证和存储;显示单片机完成数据的读取,以及在
13、LCD上和PC电子地图上显示的功能。两个单片机共用EEPROM和时钟芯片,采用I2C总线接口方式,只使用两个端口,节省了单片机资源,使系统更为可靠。2.2 系统的性能指标工作电压:7.512V工作电流:不大于500MA工作环境温度:-40+80工作环境相对湿度:85%(25)产品外形尺寸:该作品体积小巧,安装方便,长16cm,宽8cm,高3cmGPS接收经纬度精度:定位精确到小数后4位,误差小于5米。2.3系统的提升部分。系统通过设置键盘模块,让显示部分可以显示当前时间以及行驶状态,或是通过手动方式利用键盘设置时间定点查询某一时刻的速度温度,经纬度,并且在电子地图上及时显示出来。另外还可以从某
14、点开始回放我们这些日子走过的那些路线,以及当时的环境,让人们清晰地知道最近车的行驶过程。系统上原来LCD的界面简单,繁杂的数据变化让人的视觉神经逐渐麻痹,我们通过设计创新了让画面更加美化,并且产生了循环渐变的FLASH数据更新效果。让整个LCD界面显得美观大方。2.4 硬件设计。(1)电源模块本系统是采用了汽车上的12V直流电源,进行整流滤波降压为5V电源提供给系统的运行使用。为了保证电源的正常供给,我们在12V输入的时候加入了2.0A的保险丝以防电流过大。并加入7805的稳压管保证了整个系统电源的稳定。具体电路如图:(2) 原理图模块本系统主要用软件实现的,对器件的需求量比较少,只需2个单片
15、机和EEPROM和PCF8563以及GPS模块等器件,所以我们的电路板比较简单,大大提高了性价比,经济方便。下面是我们项目的电路图,两个单片机,一个作为显示模块,一个作为存储模块。2.5 软件设计。(1)功能模块。该系统主要采用两块89C52单片机分别作为存储和显示的微处理器,外围电路由ublox GPS提供经纬度和时间数据,DS18B20提供温度数据,霍尔元件实现对汽车的测速。所获得的数据用来初始化时钟芯片PCF8563,并且都存储到EEPROM中,显示微处理器芯片分别读取EEPROM和PCF8563的数据,然后在LCD和PC电子地图上显示,具体电路框图如下:存储微处理器STC89C52显示
16、微处理器STC89C52GPS-25-LPDS18B20霍尔元件276EEPROMPCF8563LCD显示PC电子地图控制从机启动从机释放总线(1) 存储模块。在存储模块的单片机中,分别对GPS模块,温度传感器DS18B20的数据采集,对霍尔元件进行脉冲计数。GPS接收到数据帧有定位信息GPGGA帧、卫星信息GPGSA帧、地理定位信息GPGLL帧、卫星状态GPGSV帧、最小信息GPRMC帧等等,但是我们仅仅需要提取信息全面的GPRMC帧。在我们的软件中只需判断是不是以“$GPRMC”字符串开头,是则接收,否则退出。下面是按照“,”的第几个来对GPS模块对应的位置进行采集相关的数据。void r
17、eceice () interrupt 4 using 1 unsigned char temp; RI=0; temp=SBUF; switch(data_item) case 0: if(temp=$) data_item+; break;case 1: if(temp=G) data_item+; else data_item=0; break;case 2: if(temp=P) data_item+; else data_item=0; break;case 3: if(temp=R) data_item+; else data_item=0; break;case 4: if(te
18、mp=M) data_item+; else data_item=0; break;case 5: if(temps=C) data_item+; else data_item=0; break;case 6: if(temp=,) data_item+; time_num=0; lat_num=0; lon_num=0; speed_num=0; date_num=0; g_clock=0; else data_item=0; break;case 7: if(temp=,) time_num=0; g_clock+; break; if(temp=$) data_item=1; break
19、; switch(g_clock) case 0:if(time_num9) gps_timertime_num+=temp; break; case 2:if(lat_num10) gps_latlat_num+=temp; break; case 3: SN=temp; break; case 4:if(lon_num11) gps_lonlon_num+=temp; break;case 5: EW=temp; break; case 6:if(speed_num5) gps_speedspeed_num+=temp; break; case 8:if(date_num=5)rr_num
20、=0;flag_move=1;if(keep_int0=20)keep_int0=0;keep+;if(num_xianshi40)flag_xianshi=flag_xianshi;num_xianshi=0; if(timecount 9)/500MS timecount = 0; flag = flag; /调试的时候实现时间显示闪烁 if(auto_num200)/自动回放的时候6秒更新一组数据 auto_num=0; flag_auto=1;if(num_Send40)/两秒的时候发送一组数据给PC地图num_Send=0;/*当前状态的发送*/ if(key_now_last=1)
21、 for(i=0;i67;i+)switch(i)case 0 : temp=$;break;case 1 : temp=G;break;case 2 : temp=P;break;case 3 : temp=G;break;case 4 : temp=G;break;case 5 : temp=A;break;case 6 : temp=,;break;case 7 : temp=(hour_CLK-8)+24)%24/10+0;break;case 8 : temp=(hour_CLK-8)+24)%24%10+0;break;case 9 : temp=(min_CLK/10)+0;br
22、eak;case 10: temp=(min_CLK%10)+0;break;case 11: temp=0;break;case 12: temp=0;break;case 13: temp=,;break;case 14: temp=read_latlon0/10+0;break;case 15: temp=read_latlon0%10+0;break;case 16: temp=read_latlon1/10+0;break;case 17: temp=read_latlon1%10+0;break;case 18: temp=.;break;case 19: temp=read_la
23、tlon2/10+0;break;case 20: temp=read_latlon2%10+0;break;case 21: temp=read_latlon3/10+0;break;case 22: temp=read_latlon3%10+0;break;case 23: temp=,;break;case 24: temp=read_latlon4;break;case 25: temp=,;break;case 26: temp=read_latlon5/10+0;break;case 27: temp=read_latlon5%10+0;break;case 28: temp=re
24、ad_latlon6%10+0;break;case 29: temp=read_latlon7/10+0;break;case 30: temp=read_latlon7%10+0;break;case 31: temp=.;break;case 32: temp=read_latlon8/10+0;break;case 33: temp=read_latlon8%10+0;break;case 34: temp=read_latlon9/10+0;break;case 35: temp=read_latlon9%10+0;break;case 36: temp=,;break;case 3
25、7: temp=read_latlon10;break;case 38: temp=,;break;case 39: temp=1;break;case 40: temp=,;break;case 41: temp=0;break;case 42: temp=7;break;case 43: temp=,;break;case 44: temp=1;break;case 45: temp=.;break;case 46: temp=4;break;case 47: temp=,;break;case 48: temp=7;break;case 49: temp=.;break;case 50:
26、 temp=6;break;case 51: temp=2;break;case 52:temp=,;break;case 53: temp=M;break;case 54: temp=,;break;case 55: temp=7;break;case 56: temp=.;break;case 57: temp=0;break;case 58: temp=,;break;case 59: temp=M;break;case 60: temp=,;break;case 61: temp= ;break;case 62: temp=,;break;case 63: temp=*;break;c
27、ase 64: temp=6;break;case 65: temp=6;break;case 66: temp=n;break; SBUF=temp;while(TI=0);TI=0;/*停止/回放状态的发送*/else for(i=0;i67;i+)switch(i)case 0 : temp=$;break;case 1 : temp=G;break;case 2 : temp=P;break;case 3 : temp=G;break;case 4 : temp=G;break;case 5 : temp=A;break;case 6 : temp=,;break;case 7 : t
28、emp=(hour-8)+24)%24/10+0;break;case 8 : temp=(hour-8)+24)%24%10+0;break;case 9 : temp=(min/10)+0;break;case 10: temp=(min%10)+0;break;case 11: temp=0;break;case 12: temp=0;break;case 13: temp=,;break;case 14: temp=read_latlon0/10+0;break;case 15: temp=read_latlon0%10+0;break;case 16: temp=read_latlo
29、n1/10+0;break;case 17: temp=read_latlon1%10+0;break;case 18: temp=.;break;case 19: temp=read_latlon2/10+0;break;case 20: temp=read_latlon2%10+0;break;case 21: temp=read_latlon3/10+0;break;case 22: temp=read_latlon3%10+0;break;case 23: temp=,;break;case 24: temp=read_latlon4;break;case 25: temp=,;bre
30、ak;case 26: temp=read_latlon5/10+0;break;case 27: temp=read_latlon5%10+0;break;case 28: temp=read_latlon6%10+0;break;case 29: temp=read_latlon7/10+0;break;case 30: temp=read_latlon7%10+0;break;case 31: temp=.;break;case 32: temp=read_latlon8/10+0;break;case 33: temp=read_latlon8%10+0;break;case 34:
31、temp=read_latlon9/10+0;break;case 35: temp=read_latlon9%10+0;break;case 36: temp=,;break;case 37: temp=read_latlon10;break;case 38: temp=,;break;case 39: temp=1;break;case 40: temp=,;break;case 41: temp=0;break;case 42: temp=7;break;case 43: temp=,;break;case 44: temp=1;break;case 45: temp=.;break;c
32、ase 46: temp=4;break;case 47: temp=,;break;case 48: temp=7;break;case 49: temp=.;break;case 50: temp=6;break;case 51: temp=2;break;case 52:temp=,;break;case 53: temp=M;break;case 54: temp=,;break;case 55: temp=7;break;case 56: temp=.;break;case 57: temp=0;break;case 58: temp=,;break;case 59: temp=M;
33、break;case 60: temp=,;break;case 61: temp= ;break;case 62: temp=,;break;case 63: temp=*;break;case 64: temp=6;break;case 65: temp=6;break;case 66: temp=n;break;default:break; SBUF=temp;while(TI=0);TI=0; 开始初始化中断和LCD显示等待接收主机的启动命令?读PCF8563并显示对应数据显示是否释放总线返回NY2.6特殊元件的介绍。(1)GPS模块GPS(Global Positioning Sys
34、tem)是全球定位系统的缩写,全球定位系统现在也经常称为全球卫星导航技术,是美国从20世纪70年代开始研制,于1994年全面建成,具有在海陆空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。GPS卫星时刻发布其位置与时间数据信号,用户接收机可以测量每颗卫星信号到接收机的时间延迟,根据信号传输的速度就可以计算出接收机到不用卫星的距离,同时手机到至少4颗卫星的数据时就可以计算出三维坐标,速度和时间 。GPS接收到数据帧有定位信息GPGGA帧,卫星信息GPGSA帧,地理定位信息GPGLL帧,卫星状态GPGSV帧,最小信息GPRMC帧等等,但是我们仅仅需要提取信息全面的GPRMC帧。(2)温度传感器DS18B20DS18B20体积小,经济,灵活,测温范围为-55+125。在-10+85范围内,精确度0.5,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的看干扰性。(3)霍尔元件ATS276适用范围:无刷电机,风扇电机,开关电路。电压范围:v=3.5v20v;输出电流:i=400MA;温度范围:t=-2085,操作简单,互补双输出。(4)时钟芯片PCF8563PCF8563是低功耗的CMOS实时时钟芯片,他提供了一个可编程的时钟芯片输出,一个中断输