当前位置:首页 > 单片机 > 单片机
[导读]摘要:为了改善驾驶员在夜间或能见度较低环境下的视野范围,提高行驶的安全性,介绍了一种基于嵌入式系统的汽车自适应前照灯系统的设计方案。此系统中的前照灯控制器采用FPGA来控制CAN总线控制器、数/模转换器和全桥

摘要:为了改善驾驶员在夜间或能见度较低环境下的视野范围,提高行驶的安全性,介绍了一种基于嵌入式系统的汽车自适应前照灯系统的设计方案。此系统中的前照灯控制器采用FPGA来控制CAN总线控制器、数/模转换器和全桥电机驱动器等器件来实现接收方向盘转角信号,并使电机运行带动前照灯的转向。自适应前照灯系统控制中心使用的是ARM9处理器。该设计方案满足要求,已经在项目中获得了良好的应用效果。

引言

汽车自适应前照灯系统是汽车安全系统的重要组成部分,它能根据转向角和车速的变化自动调整前照灯光束照射方向,增加了汽车行驶前方的有效照射区域,从而提高驾驶员在夜间或能见度低的环境下的视觉范围。

本设计采用了嵌入式技术来实现,嵌入式技术不仅广泛地应用于汽车行业,而且在工业自动化、监控系统、医疗仪器等领域也有广泛应用。

1 系统原理设计

本文介绍的汽车前照灯转向控制器主要是由FPGA、D/A转换器、CAN总线控制器和电机驱动芯片等器件组成的。它的设计分为CAN总线控制器模块和电机驱动模块两部分,由FPGA来控制并连接这两个模块。CAN总线控制器模块实现接收CAN报文包消息,FPGA通过处理CAN报文包消息来控制电机驱动模块使左右电机分别转动。汽车前照灯转向控制中心使用的是ARM9处理器,它主要处理相关传感器的信息并根据相应的自适应算法计算出前照灯转角角度。系统的架构图如图1所示。

2 硬件设计

2.1 CAN总线结点控制器模块

本模块设计中的CAN总线结点控制器模块主要是由FPGA、CAN总线控制器、CAN总线收发器和一些外围电路实现的。CAN总线通信的核心是CAN总线控制器,由它完成CAN总线的通信协议,实现物理层和数据链路层的所有功能。CAN总线收发器按照BOSCH CAN总线标准将0或1逻辑信号转换为标准中规定的电平。本设计中选用了Microchip公司开发的CAN总线控制器MCP2510和CAN总线收发器MCP2551。CAN总线结点控制器模块电路原理图如图2所示。

Microchip公司生产的MCP2510是一款控制器局域网络(CAN)协议控制器,完全支持CAN总线V2.0 A/B技术规范。该器件支持CAN1.2、CAN2.0A、主动和被动CAN2.0B等版本的协议,能够发送和接收标准和扩展报文。它还同时具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,减少了单片机(MCU)的管理负担。MCU的通信是通过行业标准串行外设接口(SPI)来实现的,其数据传输速率高达5 Mb/s。

图2中

、SO、SI、SCK、

接口与FPGA引脚接口相连,FPGA通过与

、SO、SI、SCK相连的引脚实现SPI接口,并与MCP2510中断信号接口INT结合来完成对MCP2510的控制。CANH和CANL连接到CAN总线网络中。

2.2 电机驱动模块

本模块设计主要由FPGA、D/A转换器、电机功率驱动器组成,通过FPGA控制D/A转换器、电机功率驱动器实现步进电机的细分驱动技术,从而完成对步进电机的控制。本设计中的D/A转换器选用Maxim公司开发的MAX506,电机功率驱动器选用NS公司开发的LMD18245,实现两个步进电机的功率驱动及电流控制,完成对汽车两个前照灯的智能转向。

LMD18245是NS公司生产的DMOS全桥功率放大器,其内部集成了驱动和控制有刷直流电机或单相双极性步进电机的所有电路模块。该器件在同一芯片中组合应用了双极、CMOS控制、保护电路和DMOS功率开关等多种技术,并可通过固定关断时间技术来控制电机的电流。

图3为LMD18245芯片的电路连接图。一共用了4块这种芯片组成一个双步进电机驱动。在图3中连接RC端的电容和电阻构成了一个单稳态网络,它的宽度取决于RC端与地之间的RC网络,关断时间为1.1RC。当A1+、A1+连接的电机线圈内的电流达到(VrefA×D/16)/[(250×10-6)Rs]安培时,出现断路。其中D是由M1~M4给定的十进制数。本设计中的VrefA端输入电压最大为5 V,接在CS OUT端的电阻Rs为40 kΩ,所以步进电机的最大电流限定为0.5 A,满足本设计使用的42BYGH4604步进电机的额定电流。电路中DIR是电流方向控制信号,BRAKE是关断信号,DAC REF、M1、M2、M3和M4是内置4位D/A转换器的参考电压和数字输入信号。

图4为D/A转换芯片MAX506的电路连接图,MAX506是4路8位电压输出的数/模转换器(DAC)。MAX506提供了4路DAC各自独立的输入锁存器,输入数据从一个共用的8位输入端口传输到输入锁存器。MAX506通过地址输入A0和A1选择DAC,并通过拉低WR电平信号来更新。电路中的VrefA、VrefB、VrefC、VrefD为4片LMD18245提供DAC REF的参考电压。

3 软件设计

本文中MCP2510主要采取中断模式进行总线数据的接收。整个系统主程序只提供了一种中断,首先对MCP2510发送复位指令使它复位,然后使其进入Configuration模式进而对它进行初始化,即对各个相应的寄存器赋初始值,设定MCP2510的波特率、发送标识符、接收标识符、报文验收滤波器及屏蔽寄存器,完成初始化后将其置为Normal模式,进入等待接收数据状态。

电机驱动模块电路程序的设计主要有三部分:两个循环加减计数器、两个ROM IP核和4路复用D/A转换器的片选信号发生单元。ROM是用ISE提供的IP核来实现,对24MHz系统时钟进行分频得到D/A转换器的片选信号,然后对4个端口进行扫描,就可以达到分时复用的目的。

汽车前照灯转向控制中心主要对各汽车传感器信号进行接收,并根据汽车自适应前照灯的原理实现它的相关控制算法,然后发送控制信号给汽车前照灯转向控制器,使它控制前照灯实现智能转向。

在汽车中,汽车速度V和安全停车视距S的数学关系如表1所列。

根据表中的数据,得到汽车速度与停车视距间的拟合数学关系如下:

S=0.0015V3+0.21V2+0.6821V+10.0122 (1)

当汽车转弯时,汽车前照灯转向控制中心根据汽车转弯半径和速度计算出前照灯的转动角度。然后汽车前照灯转向控制器通过控制步进电机来执行前照灯的转向。停车视距与转弯半径的几何关系图如图5所示。

图5中,R(单位为m)是汽车转弯半径;θh(单位为度)是前照灯的水平方向转动角度;S(单位为m)是停车视距。停车视距的计算公式为:

在实际情况下,转弯半径不容易获取,所以通常通过汽车前轮转向角度来代替汽车转弯半径。根据阿克曼几何转向原理,汽车前轮转角与转弯半径的关系如下:

假设汽车的轴距为2.812 m,得到如图6所示的前照灯转角角度、前轮转角角度和汽车速度的关系图。

4 系统测试

测试中汽车前照灯转向控制中心通过收集汽车速度和方向盘转角传感器信号计算出前照灯转角角度,然后向汽车前照灯转向控制器发送控制信号。由于汽车前照灯要求转动的角度较小,最大转动角度只有15°,所以很容易达到响应速度的要求。测试表明,前照灯转角角度误差较小,满足系统要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在工业物联网设备部署中,Modbus通信故障是导致系统停机的首要原因之一。据统计,超过60%的现场问题源于通信配置错误或数据解析异常。本文从嵌入式系统开发视角,系统阐述Modbus通信调试的方法论,结合实际案例解析如何高...

关键字: 嵌入式系统 Modbus通信

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

人工智能(AI)和机器学习(ML)是使系统能够从数据中学习、进行推理并随着时间的推移提高性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但在微控制器(MCU)等资源受限的器件上部署这些技术的需求也在不断增...

关键字: 嵌入式系统 人工智能 机器学习

Zephyr开源项目由Linux基金会维护,是一个针对资源受限的嵌入式设备优化的小型、可缩放、多体系结构实时操作系统(RTOS)。近年来,Zephyr RTOS在嵌入式开发中的采用度逐步增加,支持的开发板和传感器不断增加...

关键字: 嵌入式系统 软件开发 实时操作系统 Zephyr项目

在资源受限的嵌入式系统中,代码执行效率和内存占用始终是开发者需要权衡的核心问题。内联函数(inline functions)和宏(macros)作为两种常见的代码展开技术,在性能、可维护性和安全性方面表现出显著差异。本文...

关键字: 内联函数 嵌入式系统

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在嵌入式系统与驱动开发中,内存映射I/O(Memory-Mapped I/O, MMIO)是一种将硬件寄存器映射到处理器地址空间的技术,允许开发者通过指针直接读写寄存器,实现高效、低延迟的硬件控制。本文通过C语言实战案例...

关键字: 内存映射 I/O操作 嵌入式系统

在嵌入式系统开发和多线程编程中,程序崩溃、内存越界等复杂问题常令开发者困扰。GDB作为强大的调试工具,其条件断点和内存查看功能可精准定位隐蔽缺陷。本文通过实际案例演示这些高级功能的应用,帮助开发者提升调试效率。

关键字: GDB 嵌入式系统
关闭