芯片的工作工作原理:集成芯片Elmos524.03有发射回路和接收回路,手册有关的内部原理图,大致如下:
芯片会产生固有频率的电压信号,信号通过引脚DRV1、2输出给外部压电陶瓷片,产生固定频率的机械波,也就是所谓的超声波,超声波遇到障碍物时会反射,反射信号经过AINS、D引脚进入芯片,在芯片内部先后经过GAIN放大,滤波然后进入比较器,滤波后的信号(signal)同预先设定的阈值(threshold)比较产生信号输出。此信号最终会连接MCU处理器,需要重点关注。
基于这个内部的工作原理,我也画了草图表示信号在单片机某个引脚上的表现形式,如下:
signal信号为芯片内部的模拟信号,IO输出的信号才是软硬件接口信号。
如果是探头供应商,估计会对探头的硬线接口比较了解,如果是采购别人的基于Elmos524.03芯片的探头,一般情况下原理图大致都是三线连接。
Vsup:供电电压电源+
GND :电源地
DATA:即为信号接口。
这里需要说明一点探头与ECU之间的接口虽为一根线,但与MCU之间的接口会是两根线,一根接IO输出,一根接IO捕获输入。实现单线双向IO的控制信号和反馈信号的传输。
软件接口
既然为单线连接,数据通过单线传输,所以就有自己的通信协议格式。Elmos524.03是采用脉宽编码进行通信的。如图:![](https://i-blog.csdnimg.cn/direct/e2cb9bd37c32456f830d49890bd7a0c9.png)
这些命令数据手册上都有说明,就不一一叙述。可以查看数据手册。重要的一点就是在数据传输的时候要保证数据的正确性,脉宽要控制在误差范围内。不然没有办实现配置数据的传输,或简单命令的传输。
实现这些命令可以采用定时器的方式。可以准确输出想要的脉冲命令。
一些复杂的命令也是几个简单的命令组合而成的。比如写配置/读状态/写EEPROM/读EEPROM等。
参数配置
通常也会根据需要配置的某些参数,其实就是对芯片原理中的几个信号处理的过程进行配置。大致有三个。驱动电流/接收增益/阈值。对应的数据手册中都有说明,可以按照数据手册进行操作。这里需要说明的是几个参数也是配合使用的。
信号捕获
软件需要对MCU的IO上的信号进行捕获,有关信号的捕获,这里简单说下,可以将信号线上所有的信号进行记录,以便编程时在对捕获的信号进行处理的时候,能够得到足够多的信息。
跳变沿信号简单处理
对IO口上的信号进行数据处理,首先做简单的运算,对捕获的信号进行原始的运算,还原物理现场,还原信号线上的信号跳变情况。作为后续处理的输入。
信号比对--抗干扰
对于捕获到跳变沿口,换算到时间,这些基本操作就不多做叙述,这里说下如何对障碍物检测的准确度进行保证,最大程度上避免误报。其中一个方法就是对信号在短时间内做一个比对。
可以对同一个障碍物的回波进行多次比对。进而确认。并且可以达到去除噪声的目的。我画了一个草图如下:
可以对两个周期或者三个周期内的测试信号进行比对。将干扰的回波进行去除。如图中红色圈即为噪声。或认为是无效目标。
信号分析
对比对后的信号进行分析。分析信号对应的操作是在进行什么工作。简单举例来说,可以捕获到发送命令,然后判断发送命令是否正确,达到验证的目的。对命令的验证需要有一定的范围,毕竟命令发送也是有一定的时间误差,芯片本身也是有一定的冗余。可以支持一定范围宽度的命令。
一般情况下,发送命令后,会有余震,会有回波。会在信号有跳变沿产生,这就是所谓的盲区,
当然这纯属理想情况。要知道在实际的应用中会有各种各样的状况发生。需要一一处理。尽量多地覆盖各种场景。比如距离很近的时候余震会变长。所以要默认记录探头余震的长短。或者也可以根据捕获到的信号线上的命令进行诊断,然后长时间运行时学习得到。