嵌入式课设报告CAN总线与GPS模块数据通信.doc
《嵌入式课设报告CAN总线与GPS模块数据通信.doc》由会员分享,可在线阅读,更多相关《嵌入式课设报告CAN总线与GPS模块数据通信.doc(19页珍藏版)》请在三一文库上搜索。
1、北 华 航 天 工 业 学 院课程设计报告(论文)设计课题:CAN总线与GPS模块 数据通信 专业班级: B11212 学生姓名: 王冰 王晓瑞 巴雅芳 赵雪志 彭宇龙指导教师: 姚晓琼 设计时间: 2014年6月 北华航天工业学院电子工程系 CAN总线与GPS模块数据通信 课程设计任务书姓 名:王冰专 业:电子信息工程班 级:B11212指导教师: 姚晓琼职 称:教授 学 号:(20114020326)课程设计题目:CAN总线与GPS模块数据通信设计要求:1、 实现双机CAN总线数据通信2、 实现单台实验箱GPS模块信息接收并显示(超级终端或实验箱LCD显示)3、 两台实验箱数据通信:一台实
2、验箱通过GPS模块接收数据,通过CAN总线发送,另一台实验箱从CAN总线接收数据并通过超级终端显示4、 实现第3步,显示改为实验箱的LCD所需仪器设备:电脑,2个嵌入式实验箱(含硬件仿真器),GPS模块、天线。成果验收形式:演示,在超级终端或LCD上显示实验结果参考文献:嵌入式系统设计与实例开发清华大学出版社嵌入式处理器分类与现状液晶显示器的基本常识嵌入式系统构建时间安排(一)周一上午的工作安排(2014年6月9日):1、全体学生集中,介绍和说明本次综合课程设计的目的、实施方法和要完成的任务内容2、给学生一些本次综合课程设计相关参考资料(二)周一下午至周五(2014年6月9日-2014年6月1
3、3日):1、各小组完成实验要求2、 最后一天验收学生的课程设计成果(周五)2014年 6月 日注:本表下发学生一份,指导教师一份,栏目不够时请另附页。课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。内 容 摘 要 在当今的工业现场总线技术中,CAN总线技术凭借其实现数据通信的高可靠性、实时性和灵活性等优点,广泛运用于各个领域;无限数据通信网络的发展,使数据传输更加方便。本文提出了一种基于CAN总线与GPS的数据通信系统,给出了系统设计方案。索引关键词:CAN总线 GPS模块 目 录一 概 述 1二 方案设计与论证1三 单元程序设1 3.1.发送程序GPS13.2 接收程序 1
4、5 四 结论18五 心得体会18六 参考文献18 一、概述 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO 11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。GPS模块就是集成了RF射频芯片、基带芯片和核心CPU,并加上相关外围电路而组成的一个集成电路。目前GPS模块的GPS芯片大部分还是采用全球市占率第一
5、的SiRFIII系列为主。S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用FBGA封装,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器最高可运行在203MHz。本次课设就是利用CAN总线实现一台实
6、验箱接受GPS数据另一台实验箱显示实验数据。2、 方案设计与论证1、实现双机CAN总线数据通信(CAN总线调通,能实现简单的字符串的接受发送)2、实现CAN总线程序与GPS模块程序的融合并用超级终端显示三、单元程序设计1、发送程序#include #include #include .incgps.h#include inc/sys/uart.h#define USE_BEIJING_TIMEZONEstatic int GetComma(int num,char* str);static void UTC2BTC(date_time *GPS);static double get_doubl
7、e_number(char *s);/*int n;unsigned int id;int length;BOOL rxRTR, isExt;U8 data18=0,;U8 gps14;U8 i=0,flag=0;*/void show_gps(int a,GPS_INFO *GPS)char *data;if(a)show_date(GPS-D.year,GPS-D.month,GPS-D.day);show_time(GPS-D.hour,GPS-D.minute,GPS-D.second);Uart_Printf(0,DATE : %0ld-%02d-%02d n,GPS-D.year,
8、GPS-D.month+1,GPS-D.day+1);Uart_Printf(0,TIME : %02d:%02d:%02d n,GPS-D.hour,GPS-D.minute+1,GPS-D.second+1);Uart_Printf(0,Latitude : %.4f %cn,GPS-latitude,GPS-NS);Uart_Printf(0,Longitude : %.4f%cn,GPS-longitude,GPS-EW);Uart_Printf(0,Highness : %.4f n,GPS-high);Uart_Printf(0,STATUS : %cn,GPS-status);/
9、*if(!a)if(n=canPoll()!=-1)canRead(n, &id, data1, &length, &rxRTR, &isExt);if(data0=r)/发送换行Uart_SendByte(0,n);if(iD.hour =(buf 7-0)*10+(buf 8-0);GPS-D.minute =(buf 9-0)*10+(buf10-0);GPS-D.second =(buf11-0)*10+(buf12-0);tmp = GetComma(9,buf);GPS-D.day =(buftmp+0-0)*10+(buftmp+1-0);GPS-D.month =(buftmp
10、+2-0)*10+(buftmp+3-0);GPS-D.year =(buftmp+4-0)*10+(buftmp+5-0)+2000;GPS-status =bufGetComma(2,buf);GPS-latitude =get_double_number(&bufGetComma(3,buf);GPS-NS =bufGetComma(4,buf);GPS-longitude=get_double_number(&bufGetComma(5,buf);GPS-EW =bufGetComma(6,buf);#ifdef USE_BEIJING_TIMEZONEUTC2BTC(&GPS-D);
11、#endifif(c=A) /$GPGGAGPS-high = get_double_number(&bufGetComma(9,buf);static double get_double_number(char *s)char buf128;int i;double rev;i=GetComma(1,s);strncpy(buf,s,i);bufi=0;rev=atof(buf);return rev;static int GetComma(int num,char *str)int i,j=0;int len=strlen(str);for(i=0;isecond+; /加一秒if(GPS
12、-second59)GPS-second=0;GPS-minute+;if(GPS-minute59)GPS-minute=0;GPS-hour+;GPS-hour+=8;if(GPS-hour23)GPS-hour-=24;GPS-day+=1;if(GPS-month=2 | GPS-month=4 | GPS-month=6 | GPS-month=9 | GPS-month=11 )if(GPS-day30) GPS-day=1;GPS-month+;elseif(GPS-day31) GPS-day=1;GPS-month+;if(GPS-year % 4 = 0 ) if(GPS-
13、day 29 & GPS-month =2) GPS-day=1;GPS-month+;else if(GPS-day28 &GPS-month =2) GPS-day=1;GPS-month+;if(GPS-month12)GPS-month-=12;GPS-year+;Gps_main.c#include #include ./inc/gps.h#include ./inc/sys/lib.h#include inc/drv/Serial.h#include #include os_cpu.h#include ./ucos-ii/includes.h#include ./ucos-ii/u
14、cos_ii.h#define FALSE 0#define TRUE 1volatile int STOP=FALSE;GPS_INFO gps_info;int GET_GPS_OK=FALSE;char GPS_BUF1024,*rxmsg;OS_EVENT *mbox;#define rULCON2(*(volatile unsigned *)0x50008000)/p317#define rUCON2(*(volatile unsigned *)0x50008004)/p318#define rUFCON2(*(volatile unsigned *)0x50008008)/p320
15、#define rUTRSTAT2(*(volatile unsigned *)0x50008010)/p322#define rUERSTAT2(*(volatile unsigned *)0x50008014)/p323#define rUFSTAT2(*(volatile unsigned *)0x50008018)/p324#define rURXH2(*(volatile unsigned *)0x50008024)/326#define rUBRDIV2(*(volatile unsigned *)0x50008028)/327/*-*/* modem input handler
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 报告 CAN 总线 GPS 模块 数据通信
链接地址:https://www.31doc.com/p-3316299.html