DSP

基于双 CPU 的智能汽车行驶记录仪

2019-07-13 20:32发布

针对当前汽车行驶记录仪功能单一、信息量不足,无法提高交通事故分析的准确性的现状,设计了一种基于MCU+
DSP结构的汽车行驶记录仪。MCU通过CAN总线管理智能传感器信息采集网络,提高系统的扩展性,采用基于USB总线的存储器保存数据,实现海量存储。DSP实现了GPS/DR组合定位算法,完善记录仪定位的功能。详细介绍了系统硬件结构设计,并针对“MCU+DSP”这种特殊结构合理设计了软件流程。
行车记录仪主要功能是记录和存储汽车行驶过程中的 各种状态数据 , 通过对存储数据的分析 , 可以为交通事故责任鉴 定提供重要依据 , 只有数据信息量越大 、 数据类型越齐全 , 分析 结果才越准确 。 目前 , 一般汽车行驶记录仪都采用板载闪存芯片 作为数据存储部件 , 且容量在几 KB 到几 MB 之间 。 随着记录数 据量的增加 , 无法满足海量存储的要求 , 且由于采用板载形式 , 需要通过专用接口去读取数据 , 一旦电路发生故障就无法读取 数据 , 而基于串行总线 (USB , Universal Serial Bus) 的存储器不 仅 具 有 高 达 480Mb / s 传 输 速 率 , 且 其 容 量 可 达 十 几 GB , 采 用 FAT 文件系统可通过 PC 机直接读取并处理 。 本 文 研 究 实 现 了 基 于 DSP 与 MCU 组 合 的 智 能 型 多 功 能 汽车行驶记录仪 : 使用 CAN 总线连接分布在汽车内部的各个传 感器模块 , 实现分布式采集 ; 采用自主式航位推算系统 (Dead- Reckoning , DR) 与 GPS 组合 , 弥补 GPS 在城市中使用的缺陷 , 大大提高了定位精度和系统可靠性 ; 采用 U 盘作为数据存储介 质 , 实现了数据的海量存储 。
1 系统结构设计 本文设计的汽车行驶记录仪主要任务分为四大类 :
① 各种 模 拟 信 号 与 数 字 信 号 的 采 集 , 包 括 GPS 信 号 、 陀 螺 、 里 程 仪 信 号 、 实时时钟信号以及各种开关信号 。 由于定位系统要求较高的 实时性和精度 , 所以要求接口响应时间短 , 模拟信号采样精度 高 。 ② 组合定位运算 。 由于卡尔曼滤波算法需要大量矩阵运算 , 因此要求系统具有很强的计算能力 。
③ CAN 总线的维护 、 管理 。 CAN 总线是汽车行驶记录仪与各个传感器采集模块 通 讯 的 桥 梁 , 加强 CAN 总线管理有助于提高系统效率和扩展性 。
④ 海量 数据的存储 。 随着传感器模块数量的增加 , 要求存储系统能存储 大量数据 。 因此 , 本文研究的汽车行驶记录仪是一个要求比较特 殊的数据采集与处理系统 , 它既要求系统具有丰富的外设接口 , 保证采样精度和响应速度 , 而且要求很强的运算能力和控制能 力 。 另外 , 考虑汽车使用环境 , 该系统必须做到小型化 、 低功耗 。 
根 据 上 述 功 能 要 求 , 本 文 采 用 " MCU+DSP " 的 双 CPU 结构 , 充分发挥了 MCU 接口丰富和 DSP 强大计算能力的优势 : MCU 作为主控制器用于数据采集 、 存储 、 CAN 总线管理 , DSP 作为协处理器用于 GPS / DR 组合定位导航计算 , 提高了系统的 运算性能 , 同时保证了数据响应的实时性 。
系统整体结构框图如图 1 所示 。
系统由记录仪主节点 、 人机 接口子节点和各种传感器子节点组成 。 记录仪主节点采集各种 传感器节点通过 CAN 总线发送的数据 、 组合定位数据和实时时 钟 , 并以 FAT 格式写入 U 盘 ; 记录仪主节点通过 CAN 总线将车 辆行驶状态发送给人机接口向用户显示 ; 用户通过人机接口修 改 、 设置记录仪主节点和各种传感器节点的运行参数 。 图 1 系统整体结构图 在 " MCU +DSP " 的 双 CPU 结 构 中 , DSP 选 用 TI 的 TMS320C5416 。
这 是 16 位 定 点 型 DSP , 时 钟 频 率 达 到 160MHz , 内部 RAM 有 128 K , 适合复杂算法计算 。 它集成 8 / 16 位增强型主机接口 ( HPI , Host-Port Interface ), 能与主机实 现并行 、 高速的数据双向传输 。 MCU 选用 CYGNAL 的 C8051F040 , 采用流水线处理架构 的 CIP51 处理器 , 时钟频率达到 25 MHz 。 由于该芯片内部集成 64K Flash , 可以将 DSP 的程序存储到单片机中 , 通过 HPI 接口 对 DSP 进行程序加载 。 这样可以省去 DSP 外部扩展 Flash , 有 利于系统的小型化 。 DSP 与 MCU 之 间 数 据 通 讯 通 过 DSP 片 上 8 位 增 强 型 HPI 接口 , 其操作思想 : DSP 片内 RAM 相当于一个双口 RAM , MCU 外部 RAM 接口连接 HPI 接口 , MCU 通过访问外部 RAM 读写 DSP 片内 RAM , 而 DSP 则是读写自己的内存 。 2 系统硬件电路设计 2.1 CAN 接口电路设计 系统采用分布式采集结构 , 汽车行驶记录仪通过 CAN 总线 与安装在车辆内部的各种传感器进行通讯 , 采集车辆行驶中的 各种数据并存储 , 同时通过 CAN 总线上的人机接口节点向用户 显示当前车辆行驶状态 。 由于各个 CAN 传感器节点具有独立采 集 、 处理能力 , 从而形成一个智能 CAN 网络 , 大大减轻了汽车行 驶记录仪的负担 。
针对实际应用情况 , 在 CAN 总线上挂载不同 传感器模块 , 从而避免了对记录仪主体硬件进行频繁的改动 , 提 高了系统的通用性 。 目前大多数 CAN 控制器只实现了数据链路层协议 , 本文通 过对应用层协议的设计 , 实现了传感器自动挂载的功能 。 其操作 思想为 : MCU 在 EEPROM 中保存一张 ID 映射表 , 并将 ID 划分 成不同功能网段 。 新传感器接入 CAN 总线后 , 使用保留 ID 段中 的随机 ID 号向 MCU 请求分配新的 ID , MCU 查找传感器 ID 段 中第一个未被使用的 ID 并分配给传感器 , 实现了传感器自动挂 载 。 同时 MCU 定期查询总线上节点的信息并与 ID 映射表中的 信息比较 , 删除已经移除的传感器信息 , 并释放 ID 。
本文采用的 C8051F040 单片机集成了 Bosch CAN2.0A / 2.0B 协议控制器 , 该控制器包含了一个 CAN 核 、 独立于单片机 内核的消息 RAM , 其 32 个消息对象都可以被配置为发送或接 收数据 。 所有数据发送和接收过滤的协议处理全部由 CAN 控制 器完成 , 不用单片机内核干预 。 在 CAN 节点硬件电路上只需要 在 C8051F040 的 CAN 信 号 线 前 加 上 CAN 总 线 收 发 器 就 能 实 现 CAN 通 讯 。 本文采用 PHILIPS 公 司 的 高 速 CAN 总 线 收 发 器 TJA1040 , 它 能 在 汽 车 的 瞬 态 环 境 下 对 总 线 引 脚 进 行 保 护 , 硬 件 电 路 如 图 2 所示 。
2.2 DR 信号采集电路设计 汽车行驶记录仪的 DR 系统包含了两个传感器 : 里程仪和 速率陀螺 。 里程仪信号反应了车辆行驶的距离和速度 , 通过累计 单位时间内里程仪输出的脉冲信号个数 , 从而获得汽车行驶距 离和速度 。 速率陀螺能够感应到沿其敏感轴的角运动 , 通过对陀 螺仪模拟输出信号的采集和处理 , 可获得车辆运动角速率 , 进而 推算出车辆航向 。 本文直接采集汽车车速传感器的输出信号 , 经过滤波 、 整 型 、 隔离后连接到 C8051F040 的 T3 口 , 通过定时读取计数器 T3 的计数值 , 获得里程仪数据 。 速率陀螺选用 ENV-5 型速率陀 螺 , 该速率陀螺角速度测量范围为 ±60deg / s , 接口简单 , 输出信 号为 0~5V 电压信号 , 直接与 C8051F040 的 12 位 ADC 引脚相 连即可 。 C8051F040 的 ADC 参考电压最大为 (AV+)-0.3V , 通过 内置高压差动放大器 (HVDA , High Voltage Difference Ampli- fier) , 最高能转换 60V 的差动电压和 60V 的共模电压 , 大大简化 了设备结构和电路装置 。 2.3 USB 存储电路设计 本文设计了 U 盘的数据存储模块 , 采用 CH375 作为 USB 控制器 。 CH375 芯片支持 USB-HOST 主机方式和 USB-DE- VICE / SLAVE 设备方式 , 内置了处理 Mass-Storage 海量存储 设备专用通信协议固件 , 外部单片机可以直接以扇区为基本单 位读写常用的 USB 存储设备 ( 包括 USB 硬盘 / U 盘 )。 它具有 8 位 数 据 总 线 和 读 、 写 、 片 选 控 制 线 以 及 中 断 输 出 , 可 以 方便与 C8051F040 连 接 , MCU 内 部 集 成 4KRAM , 使 用 1KRAM 作 为 U 盘 扇 区 读 写 缓 冲 区 , 并 可 实 现 高 速 数 据 存储 。 USB 存储电路如图 3 所示 。 3 系统软件设计 本文设计的汽车行 驶 记 录 仪 采 用 DSP+MCU 双 处 理 器 结 构 , 相应的系统软件也需要分为两个功能模块 : DSP 主要实现 导航定位计算 , 包括 DR 和 GPS / DR 组合导航 , MCU 完成数据 采集与记录存储 。 3.1 GPS / DR 组合定位及软件设计 DR 航位推算是一种自主式车辆定位技术 , 能在二维平面内 实现车辆位置的推算 。 其主要原理为使用航向角和距离传感器 测量位移矢量 , 从而推算车辆的位置 。 如图 4 所示 , 车辆在 t k 时 刻的位置可表示为 x k =x 0 + k-1 i = 0 Σ s i cos θ i y k =y 0 + k-1 i = 0 Σ s i sin θ i ( 1 ) 式 (1) 中 ,( x 0 , y 0 ) 是车辆 t 时刻的初始位置 , s i 、 θ i 分别是车辆 从 t i 时刻的位置 ( x i , y i ) 到 t i+1 时刻的位置 ( x i+1 , y i+1 ) 的位移矢量的 长度和航向 。 通过原理分析 可知 , DR 是一个位置 、 航向 逐渐积累的过程 , 但由于速 率 陀 螺 存 在 随 机 漂 移 误 差 , 里 程 仪 也 存 在 随 机 误 差 , 在 航位推算过程中位置误差将 随时间积累 , 系统定位精度 得不到保证 。 本文研究了基于卡尔曼滤波的 GPS 和 DR 最优组合定位 。 其基本原理 : GPS 与 DR 独立工作 , 当 GPS 信号稳定有效 时 , 系统进行两者最优卡尔曼滤波组合 , 结果反馈修正 DR , 并作为定位数据输出 ; 当 GPS 被遮挡或无效时 , 系统直接输出 DR 推算结果 。 在组合定位系统中 , MCU 完成陀螺电压 、 里程仪脉冲采集 , 通过 HPI 接口写入 DSP 内存中 , 并触发 HPI 中断 。 DSP 在 HPI 中断中读取数据并进 行 组 合 定 位 计 算 , DSP 完 成 运 算 后 触 发 单片机外部中断读取组合定位信息 。 DSP 程序流程图如图 5 所示 。
3.2 MCU 软件设计 MCU 软件主要包括 MCU 初始化 、 设备自检 、 定时数据更新 、 非定时数据更 新等部分 。 系统软件流程图如图 6 所示 。 图 2 CAN 接口硬件电路图 图 3 USB 存储电路 图 4 航位推算法 图 5 GPS / DR 组合定 位软件流程图 106

结束语:本 文 研 究 设 计 了 基 于 DSP 与 MCU 组 合 的 智 能 汽车行驶记录仪。本中采用CAN总线实现分布式数据采集,性能可靠、布线简单、增强了系统的灵活性和扩展性。基于卡尔曼滤波的GPS/DR组合定位算法弥补单独使用GPS的缺陷,实现了精确自主定位。使用U盘保存记录数据,不但实现了海量存储,根据不同应用场合选择不同容量的U盘,降低系统成本。利用C8051F040丰富的外设资源和总线接口以及TMS320C5416DSP的强大计算能力,本文设计的汽车行驶记录仪具有功能完善、使用方便等特点,拥有广阔的前景