LPC2131基于CPLD的CAN接口设计

2008-07-07 15:48:46编辑:孙树宾 关键字:CPLD技术  CAN总线  接口芯片  CAN控制器  置位  片上资源  epm31

  Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM处理器的所有优点——低功耗、高性能和较为丰富的片上资源,但LPC2131内部没有集成CAN控制器,而无法利用CAN总线来进行通信。为了使得LPC2131能够利用CAN总线进行通信,可以通过外部扩展来实现其功能。目前,比较普通的方法是在LPC2131的外部采用CAN控制器设计CAN总线接口。LPC2131与CAN控制器的接口电路如图1所示。

  

  这种方法中,LPC2131是通过GPIO口与CAN控制器SJA1000相连实现数据交互的。LPC2131通过寄存器IOSET/IOCLR来设定I/O口的高/低状态,虽然可以同时置位/拉低选定的引脚,但不能同时将某些口线拉高而将某些口线拉低。假定P0[15:8]初始状态为0xa5,若将P0[15:8]同时变为0x5a,则必须通过IO0SET和IO0CLR两次进行。程序实现如下:

  PINSEL0=0x00000000;

  IO0DIR=0x0000FF00;

  IO0SET=0x5a00;

  IO0CLR=0xa500;

  P0[15:8]上会出现0xFF的中间状态。在高速通信系统中,这些中间状态可能会造成损失。虽然可以通过IO0PIN进行操作来消除这样的中间状态,但是Philips公司不推荐这种做法,非必要时尽量不要使用。

  CAN驱动器接口芯片与LPC2131的串口接口电平上是相互匹配的,因此理论上可以将二者直接连接,采用串行通信方式实现。采用CAN总线通信,在长距离通信时,CAN总线两端要加终端电阻。其作用是避免数据传输又反射回来,产生反射波而使数据遭到破坏;同时,能提高总线传输的抗干扰能力。理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。通常判断原则是根据数据速率和电缆长度进行匹配的,但这在实际中难以掌握,一般都是依据经验进行设计。

  可编程逻辑器件(PLD)是20世纪70年代在ASIC设计的基础上发展起来的一种新型逻辑器件。20世纪80年代末,美国Altera和Xilinx公司分别推出大规模和超大规模的复杂可编程逻辑器件(CPLD)及现场可编程逻辑门阵列器件(FPGA)。自从进入20世纪90年代以来,可编程逻辑器件得到了飞速发展,向高度集成、高速度和低价位方向不断迈进;其应用领域不断扩大,可用于状态机、同步、译码、解码、计数、总线接口和串并转换等很多方面。使用CPLD可以提高系统集成度,降低噪声,增强系统可靠性并降低成本。

  CPLD技术的出现,为我们提供了一种有效的解决办法:在CAN驱动器接口与LPC2131之间接一块CPLD,对CPLD进行功能编程,使其负责串行总线的数据传输和防止CAN发送反射。

  选择Altera公司MAX3000A系列的型号为EPM3128ATC100-7(简称“EPM3128”)的CPLD芯片。此芯片兼容3.3 V和5 V的I/O 口。这样,LPC2131、EPM3128和TJA1040在I/O电平上是相互匹配的。

  1 EPM3128接口定义

  EPM3128设置成双向串行总线通道。其中,2个I/O口被定义为CANRXD(IN)、CANTXD(OUT),分别连接CAN收发器TJA1040的RXD和TXD端,构成CAN总线上接收数据和发送数据通道;另外2个I/O口被定义为ARMRXD(IN)、ARMTXD(OUT),分别连接LPC2131的RXD1和TXD1端,构成处理器的串口接收数据和发送数据通道。整个数据的传输过程中,并不改变串行数据的协议和格式,接口电路全为TTL电平,期问不需要进行任何的处理。通信数据的校验、报错均交给通信两端的处理器完成。LPC2131、EPM3128和TJA1040的接口框图如图2所示。

  2 EPM3128功能实现

  图3是采用功能块编程实现EPM3128的数据传输和屏蔽CAN发送反射的内部逻辑。图中txArm2、rxCan2定义为输入变量,分别对应外部的ARMTXD、CANRXD引脚;txCan2、rxArm2定义为输出变量,分别对应外部的CANTXD、ARMRXD引脚。总线空闲时,总线上的状态一直保持为“1”,即txArm2、rxCan2、txCan2、rxArm2的值全部为“1”。当输入总线收到一个状态“0”信号时,表示总线开始传输数据。如果LPC2131要发送数据,则LPC2131先向ARMTXD端口发送一个“0”起始信号,占据总线并在下一个时钟开始发送数据帧;如果TJA1040从现场接收到新数据,则TJA1040先向CANRXD端口发送一个“0”起始信号,占据总线并在下一个时钟开始发送数据帧。以此,完成正常通信过程中数据位从串口到串口的传输。

  程序屏蔽CAN发送反射,就是屏蔽CAN总线接收到的从输出总线上反射的“0”信号,因为接口从高阻态被唤醒是靠一个“0”的起始信号。如果LPC2131正在发送数据,此时输人端口ARMTXD通过变量txArm2传送一位为“0”的信号到变量txCan2,并从输出口CANTXD送出。受总线辐射影响CANRXD输入口会从CAN总线接收到一个“0”信号,并将“0”信号传送给变量rxCan2,此时rXCan2收到的这个“0”信号是错误信号。经逻辑判断,程序将变量rxArm2维持为1,端口ARMRXD仍保持高阻态“1”。反射的“0”信号虽然被接收到,但在CPLD内部被屏蔽处理掉。如果没有屏蔽处理,那么这个错误的“0”信号将接收总线从高阻态唤醒,直接影响数据的通信。程序中D触发器的用途有两方面:一是缓存输入和输出,平滑信号的毛刺;二是实现控制信号的功能,如输出的复位和同步等。

  用QuartusII软件编译程序,并用仿真工具仿真。如图4所示,波特率为115 200 bps,编辑输入点txArm2、rxCan2的波形,查看输出点txCan2、rxArm2的波形。为方便识图,仿真中将数据端口传输占用的时间参数置0。

  首先,论证输出波形的有效性。观察图4中的txCan2和rxArm2的波形,可以看出所有时刻的数值都是确定的,从而证明系统处于稳定状态,波形是有效的。

  然后,论证输出波形的逻辑性。根据程序的逻辑设计,txArm2通道的数据发送享有优先权,始终保持txCan2=txArm2。从仿真结果可以看出,txCan2的波形与txArm2波形完全一致;当txArm2通道为“0”时,屏蔽rxCan2输入的数据,并保持rxArm2输出一直为“1”,观察图4中任何时刻所有输入/输出的波形,可以看出仿真结果正确。

  最后,验证输出波形的时序性。这部分程序是一个组合逻辑的设计,也就是所有的输出随着相应的输入的变化而变化。由图4可知,仿真结果的时序正确。

  结 语

  本文基于CPLD技术实现了LPC2131与CAN总线之间的串行通信。该方法实现简单,并且稳定性较好,适合于采用CAN总线的多路串行通信系统。该技术已应用到实际中,接受实践的检验。

关键字:CPLD技术  CAN总线  接口芯片  CAN控制器  置位  片上资源  epm31

来源: EDN-CHINA 引用地址:http://www.eeworld.com.cn/gykz/2008/0707/article_1065.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:车载导航人机语音交互系统的设计实现
下一篇:飞兆半导体的高速逻辑门光耦合器FOD07xx

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于单片机与CPLD的混合式步进电机PWM驱动技术

为:A-AB-B-BC-C-CA-A……。  2混合式步进电机系统构成与实现  基于AVR单片机和CPLD的三相混合式步进电动机控制系统的结构框图如图2所示。系统主要包括脉宽调制产生电路、逻辑合成电路、功率驱动电路和电源等4个部分。本设计采用的方法是:单片机采集到现场信号后计算出步进电机运转所需要的控制信息,经过参考电路与反馈信号发生相互作用,得到脉宽调制信号后再传给CPLD,CPLD把接收到的信息转换成步进电机实际的控制信号,即转动速度和转动方向,输出给电机的功率驱动电路模块。下面具体介绍脉宽调制产生电路和脉宽调制产生电路部分。2.1 PWM信号产生脉宽调制产生电路主要有单片机和外围的电路组成,如图3所示。  单片机主要完成转速、转向和细分
发表于 2018-03-31 23:23:30
基于单片机与CPLD的混合式步进电机PWM驱动技术

基于STM32和CPLD可编程逻辑器件的等精度测频技术

在电子工程、资源勘探、仪器仪表等相关应用中,频率测量是电子测量技术中最基本最常见的测量之一,频率计也是工程技术人员必不可少的测量工具。但是,传统的频率测量方法在实际应用中有较大的局限性,基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化,传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低。本文中提出一种基于ARM与CPLD宽频带的数字频率计的设计,以微控器STM32作为核心控制芯片,利用CPLD可编程逻辑器件,实现闸门测量技术的等精度测频。 本设计的技术指标: 测频范围:1Hz~200MHz,分辨率为0.1Hz,测频相对误差百万分之一。 周期测量:信号测量
发表于 2016-09-20 10:15:05
基于STM32和CPLD可编程逻辑器件的等精度测频技术

CPLD在线缆快速测试技术中的应用

1.引言随着电子技术的发展,复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)以其高速、高可靠以及开发便捷、规范、能完成任何数字器件功能的优点[1], 越来越广泛地应用于电子仪器中。线缆的安装质量的好坏将直接影响电气柜的质量,因此线缆测试是电气柜线缆安装过程中非常重要的环节。线缆快速测试技术是指实时、高效、准确、同时测试多条线缆的连通性能(通断、短路、错接),是目前多数电气传动类企业所希望使用的技术[2]。本文根据国内外线缆测试技术的发展及生产企业的实际要求,设计了一种新型便携式线缆组快速测试系统。该测试系统采用两块CPLD 用于接口电路,从而实现多组线缆(内有多条导线)同时测试
发表于 2014-12-30 12:33:51
CPLD在线缆快速测试技术中的应用

基于CPLD技术的MOSFET器件保护电路的设计方案

中专门设计了一种以CPLD(复杂可编程逻辑器件)为核心器件的可编程保护电路。目前CPLD已经得到广泛应用。它具有体系结构/逻辑单元灵活、处理速度快、集成度高、可实现较大规模电路、编程灵活、设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定、可实时在线检验以及适用范围广等优点,因此逐步被应用于各类保护电路设计中。  鉴于CPLD的诸多优点,本设计采用单独CPLD芯片为核心,不需要单片机或DSP进行控制,来解决以MOSFET为核心的大功率发射机激励信号异常或故障所带来的严重问题,为发射机的MOSFET电路的安全稳定运行起到保护作用。CPLD保护电路在输入高电平长脉冲、连续信号和短周期脉冲等典型异常信号情况下,通过简单
发表于 2014-05-04 19:36:23
基于CPLD技术的MOSFET器件保护电路的设计方案

基于CPLD的DSP与声卡的接口技术

1引言 使用复杂可编程逻辑器件(CPLD)可提高系统集成度、降低噪声、增强系统可靠性并降低成本,同时它不仅具有电擦除特性,而且出现了边缘扫描及在线编程等高级特性,因而可用于状态机、同步、译码、解码、计数、总线接口等很多方面,在信号处理领域的应用也非常活跃。MAX7000系列是ALTERA公司采用先进的0.8μm CMOS EEPROM技术制造的高性能、高密度的CPLD[1]。MAX7000的结构可完全模仿TFL,并可将SSI,MSI,LSI和传统PLD的逻辑函数高密度地集成。EPM7128S是MAX7000系列的高密度器件,它有128个逻辑宏单元和最大100个输入,具有在系统编程(ISP)特性,非常适合输入、输出端要求较多的逻辑
发表于 2012-03-13 16:21:42
基于CPLD的DSP与声卡的接口技术

CPLD 在线缆快速测试技术中的应用

1.引言 随着电子技术的发展,复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)以其高速、高可靠以及开发便捷、规范、能完成任何数字器件功能的优点[1], 越来越广泛地应用于电子仪器中。线缆的安装质量的好坏将直接影响电气柜的质量,因此线缆测试是电气柜线缆安装过程中非常重要的环节。线缆快速测试技术是指实时、高效、准确、同时测试多条线缆的连通性能(通断、短路、错接),是目前多数电气传动类企业所希望使用的技术[2]。本文根据国内外线缆测试技术的发展及生产企业的实际要求,设计了一种新型便携式线缆组快速测试系统。该测试系统采用两块CPLD 用于接口电路,从而实现多组线缆(内有多条导线)同时测试
发表于 2012-01-19 08:37:32
CPLD 在线缆快速测试技术中的应用

小广播

最新视频课程更多

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved