当前位置:首页 > 嵌入式 > 嵌入式硬件

引言

ABS(防抱死刹车系统)ECU(电控单元)在研发过程中,为了实时确定其行车参数和控制参数,通常会使用标定技术,标定技术就是通过一定的命令对ECU上传和读取控制算法参数,以达到对其实时修改以寻求最优的技术。对于车载电控单元来说,其通常只有CAN总线通信接口,为了能实现上位机和ECU能直接进行通信,实现利用标定技术对ABS ECU进行开发,我们设计了一款能实现CAN到USB的数据转换器。CAN通信协议是一种用于汽车内部测量与执行部件之间的数据通信协议。而USB具有即插即用的优点,并且有较高的通信速率,对于实现上位机和下位机的通信进行标定十分方便。我们设计的数据转换器采用了NXP公司的LPC2119 ARM7处理器,通过它成功地实现上位机和ECU的可靠通信和对下位机的标定。

系统硬件设计

LPC2119 ARM7处理器

LPC2119是基于一个支持实时仿真和跟踪的16/32ARM7TDMI-S CPU的微控制器,并带有28/256kB嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。

USB转换芯片CH372

CH372是一个USB总线的通用设备接口芯片,在本地端,CH372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到控制器的系统总线上;CH372内置了USB通讯中的底层协议,在内置固件模式下,CH372自动处理默认端点0的所有事务。

系统设计

转换器直接使用USB的5V供电,使用了LM1117将5V电源转换成3.3V和1.8V以供ARM处理器及其外围模块使用,对于CAN控制器输出的逻辑电平用TJA1050转换成差分电平输出CH372的设计十分重要,外接电容用于CH372内外部电源节点去耦。在LPC2119的各电压引脚分别接了0.01μf的电容进行滤波。在USB转换芯片的设计中,可选4.7kΩ电阻用于在电源断电后将电解电容中的电能及时释放掉,使VCC及时下降到0V,确保在下次通电时CH372能够可靠地上电复位。为使CH372能够可靠复位,电源电压从0V上升到5V的上升时间应该少于100ms,所以电容的容量和电阻的阻值都不能太大。用15pF的独石或高频瓷片电容作为CH372的时钟振荡电路的起振电容。

系统硬件设计部分框图如图1。

系统软件设计

系统程序主要包括CAN控制器驱动程序,USB控制芯片CH372驱动程序,数据读写缓冲区的设计,以及如何调用CAN和USB的读写函数使数据的通信更好的同步。

CAN驱动程序

根据LPC2119微处理器CAN控制器的特性,将CAN的驱动程序分为3个层次:1.硬件抽象层:将CAN控制器的硬件特性用数据类型进行抽象,并提供CAN控制器硬件操作的接口。对物理层的寄存器和相应地址影射,定义了CAN控制器寄存器的数据类型和对寄存器的操作方法。2.功能函数层:CAN控制器各种功能的实现函数,该层的函数利用硬件抽象层中对寄存器操作的接口来访问CAN控制器来实现各种CAN控制器所能提供的功能。3.应用程序接口层:在该层中的主要提供给3个函数,初始化CAN控制器CANinit()、发送数据CANSendData()、接收数据CANRecieveData()。

CH372驱动程序

CH372芯片在本地端提供了通用的被动并行接口。CH372芯片的读写时序主要要求读写使能信号有一个2~10μs的持续时间,并且在a0=1时写入命令,a0=0时读写数据。在本设计中,用LPC2119的10口来表示CH372的各信号,并需要严格按照其时序要求用软件模拟其读写时序,一个典型的写数据子函数如下:



在以上程序中,对各端口的操作先后代表了CH372的读写时序信号的先后,适当的延时表示有效的写/读选通脉冲WR/RD的宽度,其典型值为90到10000ns,我们选择25μs。同理可得写命令,读数据子函数:USBWriteCMD(uint32 CMD),USBReadData()。调用以上子函数提供了发送和接收数据的函数:IRQ_CH372(void),UploadUSBData(unin32Length,uint32 Data[])。

环形缓冲区

在本设计中,设计了两个环形缓冲区,分别存放USB及CAN的数据,使其能同步发送,
一个典型的缓冲区数据结构如下:



数据元素是无符号32位整数,MAX为环形缓冲区最大长度,WritePtr为读指针,ReadPtr为写指针。读写指针初始化为writePtr=ReadPtr=0。通过CAN控制器接受的数据存放在环形缓冲区CANRecRinBuf中,再读出数据从USB端输出,保证了数据通信的可靠性。

上位机监控界面

安装CH372的上位机驱动后,基于CH372的USB设备就可以被上位机识别了。调用CH372提供的动态连接库CH372.d11及其相应的LIB文件CH372.Lib和头文件CH372.h,以建立上位机的工序,调用CH372提供的库函数CH375OpenDevice()、CH375CloseDevice(),用于打开和关闭设备,调用CH375WriteData();CH375ReadData()接收下位机通过CH372发送上来的数据,并根据CAN总线数据的格式将其封装成CAN格式的数据,提供对CAN数据的收发CANDownload(),CANUpload()。用C++设计相应的图形界面以实现和下位机的通信。

结语

在ABSECU的研发项目中,我们使用了此转换器将ECU的CAN数据转换成USB数据和上位机通信,ECU上传需监控参数,上位机下传标定参数。其硬件上使用ARM7内核的LPC2119作为控制器,以及底层软件的设计确保了转换器在实际的ECU开发的CCP标定的工程中,在大量数据进行传输的过程中有较好的可靠性。

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

基于可控硅来解决这两大问题的方案应运而生,提出了用可控硅替代传统机电开关的设计在开关电源的AC/DC部分的启动功能的方案。

关键字: SCR AC/DC 转换器 可控硅

选择正确的电容器种类、功率电感器、开关频率和半导体对于 DC/DC 开关电源控制器的效率至关重要。做出正确的选择并非易事,但即使做出了正确的选择,控制器也必须具有高效率且符合 EMC 要求才能上市。

关键字: DC/DC 转换器 EMC

Type-C转换器作为连接电子设备的桥梁,已经广泛应用于手机、平板电脑、笔记本电脑等设备的充电和数据传输。然而,对于许多音乐爱好者来说,音质是他们非常关心的问题。因此,关于Type-C转换器是否会对音质产生影响的问题备受...

关键字: 电子设备 Type-C 转换器

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

在这篇文章中,小编将对usb的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: USB USB隔离诊断

今天,小编将在这篇文章中为大家带来Type-C接口的有关报道,通过阅读这篇文章,大家可以对Type-C接口具备清晰的认识,主要内容如下。

关键字: Type-C USB

e络盟为客户提供强大的新款Murata直流-直流转换器系列电源产品

关键字: 转换器 电源 桥式电路

一直以来,Type-C接口都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来Type-C接口的相关介绍,详细内容请看下文。

关键字: Type-C USB

随着科技的飞速发展和智能手机的普及,USB调试模式已成为许多科技爱好者和开发者不可或缺的工具。通过USB调试模式,用户可以连接手机与电脑,实现数据传输、应用安装、系统调试等多种功能。本文将深入探讨USB调试模式的打开方法...

关键字: USB 智能手机

USB 2.0与USB 3.0到底有什么不同,今天来深入探索两者之间的区别。随着科技的不断进步和设备的不断升级,USB接口作为连接设备的重要桥梁,也在不断发展。USB 2.0和USB 3.0是两种广泛使用的USB接口标准...

关键字: USB 智能手机 USB 3.0
关闭
关闭