查看: 2932|回复: 4

[MOUSER2014创新设计大赛] 智能车载终端

[复制链接]

该用户从未签到

1

主题

2

帖子

0

注册会员

Rank: 2

积分
197
最后登录
2015-3-30
发表于 2015-2-9 16:16:49 | 显示全部楼层 |阅读模式
本帖最后由 CodingFarmer 于 2015-2-10 15:28 编辑

一、项目名称:  
智能车载终端


二、项目概述:

智能车载终端支持以域名方式接入监控中心、车辆遇险自动报警、车辆故障远程诊断、CAN总线数据采集等实用功能;能实时采集、记录和传输车辆的行驶速度、时间、里程、状态信息。通过监控中心,对车载终端记录的事故疑点数据进行分析,还原交通事故发生时车辆的各种状态,为交通事故分析提供科学的参考依据,方便交警执法和政府监督。通过分析车载终端记录的驾驶行为信息,可以规范司机驾驶习惯,降低交通事故发生率;帮助企业降低运营成本,提高管理水平。

三、项目软硬件框图:
硬件框图:                                                                                          
硬件框图.png

软件框图:
软件框图.png

四、软件架构:

    
职责模块
    
  
功能说明
  
  
  
实现机理
  

    
GSM模块驱动
    
  
Sim900a芯片驱动控制及其AT数据处理
  
  
  
分成Sim900a芯片控制、AT数据发送和AT数据接收三个部分。芯片控制部分包括初始化配置、通讯状态监控等功能。AT数据发送实现机理:按照AT命令的串行特性,首先将待发送的数据封装、缓存,将每一次的AT数据发送过程抽象成不同的状态(待发送、发送中、已发送等状态),按照不同的状态执行不同的动作,最终将数据写入到串口缓存区中。AT数据接收实现机理:定时(50ms)从串口缓存数据中提取出808协议数据,以消息的方式传递给上层模块进行数据处理。为了保证数据的生产者与消费者之间的能力平衡,需要考虑数据缓存机制。
  

    
CAN驱动
    
  
实现对CAN控制器的初始配置、CAN数据接收
  
  
  
CAN中断接收特定范围CAN ID数据并缓存,提供给上层职责模块进行处理。
  

    
UCOSII系统实现及其配置
    
  
UCOSII系统实现及其配置
  
  
  
UCOSII系统版本为2.92。配置部分包括是否使能某些平台资源、以及个别参数的调整(如最多任务数量等)。
  

    
ADC驱动
    
  
用于采样主电源和备用电池电量,将采样值传递给上层模块处理。
  
  
  
按照burst的方式同时采集通道25,将采样数据从中断中取出并传递给上层职责模块处理。
  

    
串口驱动
    
  
实现串口通道的数据收发。
  
  
  
数据发送过程都在发送中断中进行,上层只负责将数据写入发送环形缓冲区。数据发送中断每发送一个字节的数据完成后,在中断处理函数中判断环形缓冲区中是否还有数据,如果有,则触发下一次发送中断进行发送。每次发送结束后,只要缓冲区中有未发送数据,中断都触发下一次发送,如此循环往复直至发送缓冲区为空。上层将数据写入缓冲区后,需要判断当前串口状态是否为发送状态,如果处在发送状态,则返回,如果当前没有处在发送状态,则必须软件触发发送中断,进行数据发送。
  

    
RTC驱动
    
  
为终端提供实时时钟
  
  
  
提供对时间的配置和时间获取接口。
  

    
外部中断驱动
    
  
用于ACC状态检测(EINT3)和供电电源切换检测(EINT1
  
  
  
通过检测引脚的电平边缘变化(上升沿或下降沿)触发相应中断,在中断中判断事件类型,并以消息的方式通知系统任务进行事件联动处理。
  

    
GPIO驱动
    
  
包括GPIO控制和GPIO中断两部分。
  
  
  
用于GPIO引脚电平输出控制和获取输入引脚电平值。GPIO中断用于检测GPS天线的开路、短路状态,根据相应的电平变化产生对应事件,并以消息的方式通知系统任务进行事件联动处理。
  

    
定时器驱动
    
  
提供对硬件定时器的配置、定时器中断处理功能。
  
  
  
提供以10ms为单位的定时功能配置接口和中断处理。
  

    
CPU异常处理
    
  
用于扑捉CPU core出现的几种类型异常事件(如HardFault异常),并将异常现场信息输出到串口,供开发人员分析、定位问题。
  
  
  
一旦发生系统异常,会进入异常处理函数,在异常处理函数中解析异常栈,获取异常定位信息。
  

    
看门狗驱动
    
  
提供设置看门狗周期和喂狗功能。
  
  
  
  

    
GPS驱动
    
  
提供对GPS芯片的控制、数据处理等功能。
  
  
  
控制部分包括GPS上下电、对GPS输出信息内容和周期进行配置,以及天线状态检测等功能。
  
数据处理功能包括定时从串口缓冲区中获取NMEA协议数据,按照其格式进行解析,解析出经度、纬度等关键定位信息供其它职责模块使用。
  

    
TCP数据通讯管理
    
  
用于TCP数据通道的管理,包括通道状态管理、tcp数据发送等功能
  
  
  
用于TCP数据通道的管理,包括通道状态管理和tcp数据发送、接收缓冲管理。
  

    
CAN通道管理
    
  
用于控制终端与ECU基于CAN通道的数据交互管理,
  
  
  
包括通道的状态、数据收发处理机制。
  

    
串口调试信息输出功能
    
  
实现类似于printf的功能。
  
  
  
实现将调试信息通过串口输出到PC端进行输出。
  

    
内存管理
    
  
为了使本系统内存得到更有效率地地利用,本系统采用动态内存管理的方式。
  
  
  
将静态内存挂接到对应的链表中进行管理,申请时从链表中取出该节点的内存,释放时重新挂接到对应链表中,从而实现基于静态内存池的动态内存管理方式。
  

    
系统任务
    
  
实现基于系统任务的相关事件处理
  
  
  
任务运行实体,得到运行机会后,从消息队列中读取消息事件,根据事件类型查找对应处理函数并执行。
  

    
系统指示灯控制
    
  
以指示灯的闪烁频率、颜色、闪烁次数来指示系统的运行状态。
  
  
  
以不同的显示方式去控制led以区分不同的系统状态事件,在定时器3中每隔100ms进行一次事件调度,根据事件类型配置不同的控制状态。
  

    
根任务
    
  
本系统起始任务,用于创建其它任务、喂狗和时间校准。
  
  
  
任务运行实体,实现功能:
  
1、根任务创建、运行,并初始化相关软硬件资源,创建其它任务。
  
2、周期性(1s)喂狗。
  
3、周期性(256s)系统时间(RTC)校准。
  

    
GSM任务
    
  
实现基于GSM任务的相关事件处理。
  
  
  
任务运行实体,从消息队列中读取消息事件,根据事件类型查找对应处理函数并执行。
  

    
Shell任务
    
  
用于实现基于串口的人机命令功能。
  
  
  
该任务定时轮训是否从调试串口接收到数据,一旦有数据接收,则将接收到的数据与挂接的命令关键字比较,若匹配则执行对应命令的处理函数。
  

    
软件定时功能
    
  
为各个任务提供软件定时功能。
  
  
  
在定时器0中定时(10ms)扫描各个任务挂接的定时器时间计数是否到时(时间计数为0表示时间到),若到时,则向相应的任务发送消息进行通知。
  

    
里程统计
    
  
里程统计
  
  
  
根据GPS数据,每隔1s计算一次当前位置相对于上次位置(1s之前)的移动距离,然后一直将这个移动距离进行累加(前提是GPS数据有效),这个累加值就是总里程,每隔一段时间(比如一个小时)将总里程值保存到flash一次。
  

    
超时重发机制
    
  
此机制的应用场景是终端主动发送808协议数据且需要平台应答时,若终端接收平台应答超时,则终端进行重发处理。
  
  
  
在终端主动发送808协议数据的场景下(比如位置信息上报0x200),记录该条数据帧的终端流水号和数据内容,开启超时判断定时器,如在没到达超时时间内接收到该数据帧的应答帧(通过终端流水号来判断),则取消超时判断功能,若到达设定的超时时间仍未收到应答帧,则将该数据帧进行重发,最多重发3次,若重发3次后仍未收到应答帧,则将此帧数据舍弃,并将此事件记录日志。
  

    
短信息配置基础参数功能
    
  
实现通过短信配置基础参数的功能。
  
  
  
按照特定的格式组装短信息配置命令,终端收到后按照该格式去解析短信内容,配置相应参数,并将参数保存到外部flash中。待系统重新启动后,新配置的参数才会起作用。
  
可配置的基础参数包括:
  
1、   sim卡号码
  
2、   平台接入点的APN,用户名、密码
  
3、   接入平台的IP地址,端口号
  
4、终端did
  

    
报警检测功能
    
  
实现区域提醒、超速提醒、电瓶欠压提醒、电瓶断电提醒、停车不熄火提醒、拖车提醒
  
  
  
1、   电平欠压、断电检测机理:检测供电芯片的PWERGD引脚(cpu引脚为p0.23),若为高电平则主电源正常,若由高电平变为低电平,即系统由主电源切换到备用电池(外部中断1检测),并持续2s,同时开启ADC检测功能,检测主电源的AD采样值,若大于4V则认为是欠压场景,小于4v则认为是断电场景,进入断电场景后,ADC功能关闭。
  
2、   区域提醒。
  
3、   超速提醒。
  
4、   停车不熄火提醒。
  
5、   拖车提醒。
  

    
终端管理功能
    
  
实现的功能有终端注册、鉴权、终端参数设置与查询、终端控制功能、终端心跳定时发送、查询终端属性。
  
  
  
1、   协议交互部分按照808协议格式组帧。
  
2、   将终端所用的全局参数分成终端与平台公用参数和终端自用参数两类。公用参数指的是可以通过808协议配置的参数集合,其它参数一律划归到自用参数。两类参数都存储到外部flash中,根据参数映射表中的参数ID,查找对应参数的偏移,根据偏移进行定位对应参数,从而实现参数读取和修改功能。
  
3、   终端控制功能实现了整机复位和恢复出厂设置两个功能。
  

    
CAN数据上传功能
    
  
实现CAN数据定时上传功能,默认上传周期30s
  
  
  
开启一个定时器,周期可配置,每个周期从CAN数据缓存区读出数据,然后按照协议格式封装、发送,若读出数据为空则不作处理。
  

    
盲区记录与补传
    
  
实现GPS定位数据的盲区记录与补传功能
  
  
  
该功能包括定位数据的存储机制和上传机制两部分。
  
存储机制:在通信盲区的场景下,系统在内存中增加一个的写入缓存区(1.2k),该缓冲区能够缓存20条定位数据,一旦该缓冲区缓冲满20条,就将这些定位数据写入到外部flash。若通信恢复,则先将内存中的数据写入到flash,然后进行定位数据上传操作。
  
上传机制:若存储定位信息条数小于20条则用一条报文发送,若大于20条则需要分包发送,每包为20条定位数据,为了减小数据发送的压力,要保证收到上一条的回复后,再等待2s后发送下一包数据,直到盲区数据发送完毕。
  

    
实时定位功能
    
  
周期性上报位置信息(协议ID0x200),默认周期为30s。此外设置圆形、矩形区域,删除圆形、矩形区域等功能也在此模块实现。
  
  
  
周期性上报位置信息,按照位置信息上报(消息ID0x200)格式组帧。
  

    
808协议数据处理
    
  
实现对于接收到的808数据的解析和对于发送的808数据封装的作用。
  
  
  
根据808协议的帧结构,从接收到的协议数据中解析出消息ID、平台流水号、消息体长度、消息体,传递给相应业务模块进行处理。
  
针对无线发送的数据进行消息头封装、转义、crc添加,组成一条808数据帧,传递给底层模块发送。
  

    
    
  
  
  
  
  

    
    
  
  
  
  
  


五、实现功能列表:

  
功能项
  
  
功能子项
  
  
备注
  
  
自检
  
  
  
  
供电状态、卫星信号、通信状态,终端故障等可以上报监控中心
  
  
定位功能
  
(GPS/北斗)
  
  
  
定时上报
  
  
时间、位置(包括经纬度,高度)、速度、方向、里程、状态等信息定时上报监控中心
  
  
盲区补传
  
  
进入信号盲区时设备自动存储数据,信号恢复时自动补报信息
  
  
通信功能
  
(2G/3G/4G)
  
  
短信
  
  
  
  
多中心接入
  
  
  
  
行驶记录
  
  
行驶速度记录
  
  
  
  
事故疑点记录
  
  
  
  
超时驾驶记录
  
  
  
  
位置信息记录
  
  
  
  
里程记录
  
  
  
  
轨迹查询回放
  
  
  
  
日志记录
  
  
U盘或SD卡等移动存储
  
  
CAN总线数据
  
  
可做远程诊断
  
  
车辆信号采集
  
  
  
  
区域提醒
  
  
  
  
线路偏离提醒
  
  
  
  
超速提醒
  
  
  
  
疲劳驾驶提醒
  
  
  
  
电池欠压提醒
  
  
  
  
断电提醒
  
  
  
  
超时停车提醒
  
  
  
  
终端故障提醒
  
  
  
  
终端管理
  
功能
  
  
远程配置参数
  
  
  
  
本地配置参数
  
  
  
  
数据备份功能
  
  
  
  
锁车
  
  
远程遥控车锁
  
  
休眠功能
  
  
ACC点火
  
检测功能
  
  
当车辆熄火后终端向监控中心发送车辆熄火信号并自动进入休眠状态
  


回复

使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13183
    最后登录
    2019-1-27
    发表于 2015-2-10 09:55:51 | 显示全部楼层
    楼主什么时候上详细内容? 图片, 视频, 文档
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    帖子

    0

    注册会员

    Rank: 2

    积分
    197
    最后登录
    2015-3-30
     楼主| 发表于 2015-2-10 15:30:27 | 显示全部楼层
    图片视频整理ing,相关信息将在一楼不断更新。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    143

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    506
    最后登录
    2018-4-18
    发表于 2015-3-10 23:28:34 | 显示全部楼层
    CodingFarmer 发表于 2015-2-10 15:30
    图片视频整理ing,相关信息将在一楼不断更新。

    后来也没更新啊?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    300

    帖子

    0

    高级会员

    Rank: 4

    积分
    746
    最后登录
    2016-5-26
    发表于 2015-5-31 09:50:51 | 显示全部楼层
    做得不错,赞一个。。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-13 11:54 , Processed in 0.101632 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表