基于ARM7的CAN-USB转换器设计

发布者:genius5最新更新时间:2007-12-13 来源: 电子产品世界关键字:时钟  加速  数据  中断 手机看文章 扫描二维码
随时随地手机看文章

引言

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标定的工程中,在大量数据进行传输的过程中有较好的可靠性。

关键字:时钟  加速  数据  中断 引用地址:基于ARM7的CAN-USB转换器设计

上一篇:PPC 405EP在电力监测系统中的应用
下一篇:通过PC的USB端口控制多个步进电机

推荐阅读最新更新时间:2024-03-30 21:24

ARM之异常
异常的介绍 概念 异常会导致处理器暂停程序执行以处理事件,例如外部生成的中断或试图执行未定义的指令。异常可以由内部和外部源生成,通常,当出现异常时,处理器状态会在处理异常之前立即保存。这意味着,当事件被处理后,可以从发生异常的地方恢复原始状态并恢复程序执行。 可能会同时生成多个异常,并且在处理器处理异常时可能会生成一个新的异常(异常也可以嵌套) 下图为ARM所用工作模式的介绍 他的中断又分为以下这些 我们4412的板子的异常向量表在0XFFFF 0000这个位置,所以我们首先要开启MMU,才可以去访问这个异常向量表,这时候我们就需要用到汇编来定义 .align 2 .text .global _start _s
[单片机]
ARM之异常
聚合创新优势 加速HPC产业发展
2016 年 10月 29 日,西安 今天,2016全国高性能计算学术年会(HPC China 2016)在历史悠久的古都西安落幕,会议围绕高性能计算的研究进展、发展趋势和重要应用,吸引了来自全国40余家科研院所和行业厂商参展。作为高性能计算领域的技术领导者之一,英特尔在会议上展示了最新高性能计算产品与解决方案。领先的技术优势以及覆盖计算、存储、网络和软件等不同层面的英特尔 可扩展系统框架(英特尔 SSF)为高性能计算产业发展和创新应用提供了兼具性能、可扩展性和成本优势的创新解决方案,助推高性能计算广泛应用于深度学习、人工智能等新应用领域。此外,为期数月的英特尔杯2016全国并行应用挑战赛(Intel Cup Parallel Ap
[模拟电子]
标准控制器硬件+二次开发平台软件,科聪加速移动机器人产品标准化
广告摘要声明广告 撰文 | 伍勿武 控制器是移动机器人的核心零部件之一,过往由于技术门槛高、研发周期长,一度被外资品牌垄断,直到近年来,伴随着国内专业AGV控制器本土企业多年的积累,国产控制器企业开始崭露头角。那么,国产控制器眼中的移动机器人行业如何? 10月27日-28日,由高工移动机器人、高工机器人产业研究所(GGII)主办的2021(第二届)高工移动机器人年会在上海举行, 科聪总经理陈健 作了题为《精研技术,深耕服务 国产导航控制系统企业“激流勇进”》的演讲。 移动机器人时代到来 在演讲之初,陈健首先对目前的移动机器人行业进行了概括,他分析道:“从工业4.0到智能制造,再发展至目前火热的智能化驾驶,移动机器人在各个领域的
[机器人]
英特尔发布全球响应速度领先的数据中心级固态盘
今天,英特尔发布英特尔® 闪腾TM 固态盘DC P4800X系列及搭配英特尔内存驱动技术的英特尔® 闪腾TM 固态盘DC P4800X。该系列固态盘能够为数据中心存储及内存架构的转变提供更多新的可能。 当作为高速存储或者缓存层进行部署时,英特尔® 闪腾TM 固态盘DC P4800X突破了传统存储的界限,可以显著提升每台服务器中可处理的工作负载的规模并加速应用。而作为扩展内存进行部署,该系列固态盘则能扩大系统内存池,从而生成容量更大、性价比更高的内存以获取更高质量的洞察。 作为行业领先的产品,英特尔® 闪腾TM 固态盘同时具备高吞吐量、低延迟、高服务质量及高耐用性等特性,助力解决方案创新,去除数据瓶颈、释放CPU利用率
[嵌入式]
英特尔发布全球响应速度领先的<font color='red'>数据</font>中心级固态盘
FDC2214的STM32和MSP430F5529串口读取数据程序
msp430单片机源程序如下: #include bsp.h int main( void ) { float cap,capfirst,capfirst1; unsigned int Data_FDC; // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; delay_ms(500); bsp_Init(); _EINT(); delay_ms(500); Data_FDC = ReadRegfdc2214(0x00);//读取第一通道的值 cap = 232021045.248/(Data_FDC); c
[单片机]
STM32F429 DMA串口数据发送
串口数据配置 void macUART4_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_AHB1PeriphClockCmd(macUART4_RX_GPIO_CLK|macUART4_TX_GPIO_CLK,ENABLE); RCC_APB1PeriphClockCmd(macUART4_CLK, ENABLE); GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Pu
[单片机]
响应FPGA发展,Teledyne进一步增强数据转换器产品组合
为响应可编程逻辑技术的不断发展,Teledyne e2v进一步增强了其数据转换器产品组合以及支持它们运作的高速SERDES技术。 为了辅助Xilinx热门产品20nm Kintex UltraScale KU060 FPGA,Teledyne-e2v现在可提供高度优化的多通道模数转换器(ADC)和数模转换器(DAC)解决方案。它们有各种不同等级类别可供选择,最高级别是高可靠性耐辐射的宇航级,适用于卫星通信、地球观测、导航和科学任务。 每个新的数据转换器都可以通过其集成的ESIstream高速串行接口协议和与其相对应的FPGA进行交互操作,该协议已针对KU060系列进行了修改。在支持12.5Gbps数据速率的情况下,E
[嵌入式]
响应FPGA发展,Teledyne进一步增强<font color='red'>数据</font>转换器产品组合
采用MSC1210Y5实现灯船水文气象实测数据采集系统的设计与应用
1 、引言 以MSC1210Y5为核心的数据采集部分在工作时投放与水下、工作在无人值守的自容方式。由于海洋环境恶劣,所以仪器必须具有很好的可靠性及精确度,否则,就有可能给航行在测点附近海域的船舶提供不准确的海洋环境参数,在灯船水文气象实测数据自动显示助航系统水下分机的设计中,成功应用了具有增强型8051内核微控制器和闪存的精密模数转换器MSC1210Y5,避免了微控制器和AD转换电路的单独分立设计,简化了电路,降低了功耗,增强了可靠性,提高了整个系统的工作速度。 2 、MSC1210Y5的特性 MSC1210Y5是TQFP-64封装的低功耗完全集成混合信号IC,供电电压为2.7V-5.25V,它具有高精度的积分型模数转换器,A
[单片机]
采用MSC1210Y5实现灯船水文气象实测<font color='red'>数据</font>采集系统的设计与应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved