第三章 硬件设计及调试
3.1 系统总体方案设计
本系统基于超声波反射原理利用成都国腾微电子公司生产的GM3101倒车雷达专用控制芯片控制超声波传感器进行超声波发射接收实现障碍物探测。传感器布置为车后四个或多个传感器方式,尾部的传感器探测倒车时汽车后方障碍物, 通过总线形成网络进行信息通信, 再由主控制器适时显示障碍物距离、位置并进行声音报警, 司机根据这些重要提示可大大减小汽车碰撞的可能。系统总体架构框图如图3-1所示:
其中,雷达模块指的是图2-1中所示的以GM3101芯片为核心的组合电路,可根据实际情况决定是否采用两个或多个雷达模块,在本次设计中用到了两个雷达模块。总线上所连的其它汽车电子设备是总线设备扩展,本设计中实际没有扩展连接其它汽车电子设备,该总线有可接多达400个设备节点的容量,通信速率也非常高。下位机中CPU所连接的模块,也是根据实际情况,可以有所增减。由于时间问题,该设计中没有做到语音模块。
3.2 GM3101芯片[6]
3.2.1 概述
GM3101倒车雷达专用控制芯片,用纯硬件ASIC方式实现倒车雷达主机功能,将倒车雷达需要的主要元件(控制器、运放电路、滤波电路等)都集成在了单一芯片中,外围只需接上超声波传感器和功率器件就可以实现整个系统功能,提高了系统集成度,也不需要软件编程,是目前最简单的一种倒车雷达实现方案。该芯片提供4 路超声波探头的驱动,并根据超声波特性和倒车雷达的使用环境进行了一系列智能化处理,在保证超声波测距精确性的基础上,更加强了报警功能的准确性和实用性。测试结果编码后采用双线差分方式输出,提高了信号传输的抗干扰性。GM3101 可为倒车雷达系统提供最简单的单芯片控制方案,替代现有的单片机控制方案。该芯片的优势在于尽可能地为倒车雷达系统提高集成度,减少外围元件。同时该芯片的功能满足高端和通用性的要求,用户利用该组芯片既可以生产高性能的整机产品,还可以灵活设置其产品的报警方式。全硬件方式实现系统功能,既降低了用户的开发难度,更对系统性能有了显著的提高。
3.2.2 工作特征
(1)电源电压:5V;
(2)四路超声波探头接口,探头发送驱动信号为5V,2mA;
(3)报警信号编码输出,报警信号包括:各探头检测到的障碍物距离危险等级信号、最近障碍物方位信号、最近障碍物距离信号及附加消息,信号电平5V;
(4)检测结果输出周期80ms;
(5)具备自动增益控制,实现分级放大;
(6)具有防声波衍射误报处理,提高报警信号的准确性;
(7)具有智能识别功能,可以忽略小物体,防止误报警;
(8)报警信号输出采用双线差分方式,提高抗干扰性;
(9)具有防扒车报警功能;
(10)工作环境温度:-40℃~+85℃。
3.2.3 封装及引脚功能说明
3.2.4 芯片具体功能及应用
GM3101 提供4 路超声波探头接口,芯片通过探头发送和接收超声波信号,根据发送和接收的时间差计算障碍物的距离,输出相应报警信号。报警信号编码后采用双线差分方式输出,输出信号的内容包括:各探头检测到的障碍物距离的危险等级、最近障碍物的方位、最近障碍物的距离值和附加消息。最大输出距离为3.15米,输出精度为0.05米。
(1)信号发送和接收
芯片接通电源后,探头驱动引脚向超声波探头发送驱动信号,驱动超声波探头发送超声波信号,驱动信号发送完毕后芯片等待信号返回;探头接收到超声波信号后,将信号送入芯片,进行信号放大处理,记录信号发送和接收的时间差,根据此时间差计算障碍物距离,控制报警信号输出。超声波探头驱动采用分时顺序的驱动方式,即依次对4个探头轮流进行驱动,一个探头的工作周期内要包括发送和接收两种操作。4个探头检测完成构成一个检测周期。若前一探头在本工作周期内没有接收到返回的超声波信号,则芯片也转入控制下一个探头的工作。发送与接收的时序图如图3-3所示:
3.3.2 CMT001芯片应用参考电路(供电1mA)[7]
图3-4. CMT001芯片应用参考电路图
为增加主机抗干扰能力,控制器应将总线驱动与单片机系统隔离,TXD、RXD经光耦隔离后再输出到单片机,具体电图如图3-5所示:
图3-5. 隔离通讯接口
(1) 雷达模块
雷达模块是以成都国腾微电子公司生产的GM3101倒车雷达专用控制芯片为核心的超声波测距组合电路,其包括四个超声波探头,其电路框图如图2-1所示,具体电路图如图3-8所示。该模块以80ms为周期不断输出三字节的报警信号,具体的报警信号格式将在第四章中介绍。
图3-8. 雷达模块电路图
第四章 软件设计及调试
4.1 系统软件设计整体介绍
由系统电路框图知,系统主要由上位机和下位机两部分组成。系统上电后,上位机中雷达模块检测距离并对数据进行比较,最后模块输出最小距离。系统采用了两个雷达模块,两个模块输出的数据通过串口扩展电路分别传送到上位机控制中心,控制中心对接收到的数据再次进行比较,决定传输两个距离中最小的那组数据,并对要发送到下位机的数据先根据通信协议进行数据帧包装,然后通过XY-CN BUS总线传送到下位机;下位机根据通信协议接收信息,对信息进行检查与校验后,根据数据级别让蜂鸣器进行不同频率的工作,并送距离值到液晶显示器上显示。通过对系统电路框图的分析知,系统软件设计可分为上位机和下位机两部分软件设计,下面分别就这两部分的软件设计进行分析,在介绍之前先对上、下位机之间的通信协议进行介绍:
如上所述,上位机的两个雷达模块输出的数据通过串口扩展电路传送到上位机控制中心,控制中心对这两组数据再次进行比较,决定传输距离最小的那组数据,在发送之前要根据通信协议对数据进行数据帧包装,数据帧长度为八字节,制定的通信协议规定数据格式如下:
第一字节: 帧头 10101010;
第二字节: 地址 为下位机拟定的地址,为以后实现汽车电器网络化而预留的,长度可扩展为多个字节;
第三字节: 帧长度 指的是雷达模块发送过来的数据长度,该系统中为三字节;
第四至六字节:报警信号数据 这三个字节的数据是由雷达模块发送出来的;
第七至八字节: 帧校验码 通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,通信系统都采用了差错控制。本系统设计中就采用了循环冗余校验CRC(Cyclic Redundancy Check),选用的是CCITT-16循环冗余校验码。循环冗余校验码的生成采用查表法生成【10】,其程序流程图如图4-1所示:
其中流程图中Reg指代一个16位的寄存器,生成参数表是查表生成法中所要依据的参数表,参数表中的每个参数为16位的数据,参数表的生成方法是用0到16的二进制数分别与CCITT-16循环冗余校验码相异或而得,具体原理请查阅参考文献。
4.2 上位机软件设计
4.2.1 上位机程序主流程图
上位机主要完成的任务是:利用雷达模块测距,控制中心(单片机)接收雷达模块发送出来的数据并对数据进行比较后根据通信协议通过总线发送到下位机。软件设计主要包括雷达模块程序设计,上位机接收数据程序设计和发送数据程序设计三大部分。上位机模块初始化后,接收数据子程序利用P89C669单片机串口0中断负责接收雷达模块传送过来的数据,并处理数据,判断数据是否满足发送条件,满足则置发送就绪标志位。发送数据子程序发现发送就绪标志位置位,则根据通信协议把数据包装成数据包,然后通过P89C669单片机串口1发送到下位机。上位机程序的主流程图如图4-2所示:
图4-2. 上位机程序主流程图
图3-3. 发送与接收的时序图
4.3 下位机软件设计
4.3.1 下位机程序主流程图
下位机负责接收上位机传送过来的数据,进行校验处理后,用液晶显示器显示距离,蜂鸣器发出警报。下位机主程序流程图如图4-5所示:
第五章 系统方案扩展、补充
本设计不是成本最低,性价比最好的倒车雷达系统方案,例如所引用的新型总线是为了更多汽车设备的扩展而引入的,本系统还可进行很多扩展,现列举部分如下:(1) 可将报警器加以改进发展,可通过加入语音芯片,向司机发出人声警告危险级别,并报告距离,同时可以在倒车时能重复发出“倒车,请注意”的语言警告声提醒行人注意[11]。
(2) 在本系统中所用的XY-CN BUS 最突出特点之一就是能连接多达400个从路节点,并能够给从机通信接口提供电压,并可输出+5V、+20V和+4.4V的电源电压供给从机设备使用,可节省为从机单独提供电源的麻烦,经济又方便。使用该总线可为以后实现汽车电器网络化做好准备。
(3) 本系统使用的是总线传输,但只是用在倒车雷达测距报警系统中,为了节省成本,也可考虑上位机与下位机采用无线通信,安装在车尾的上位机接收到数据,然后通过无线发送模块发送数据,安装在驾驶室的下位机通过无线接收模块接收到数据并显示出来,这一方案我们也已着手研究设计,其中用到的是CC1100无线发送接收芯片。