LPC2131基于CPLD的CAN接口设计

发布者:qq8174350最新更新时间:2012-08-27 来源: 中电网 关键字:LPC2131  CPLD  CAN接口 手机看文章 扫描二维码
随时随地手机看文章

         引 言

  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电平上是相互匹配的。[page]

       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触发器的用途有两方面:一是缓存输入和输出,平滑信号的毛刺;二是实现控制信号的功能,如输出的复位和同步等。

[page]

       用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总线的多路串行通信系统。该技术已应用到实际中,接受实践的检验。

关键字:LPC2131  CPLD  CAN接口 引用地址:LPC2131基于CPLD的CAN接口设计

上一篇:基于LPC2210的ARINIC429总线测试装置
下一篇:基于ARM-LPC2368的网络接口的设计与实现

推荐阅读最新更新时间:2024-03-16 13:06

一种基于CPLD的数字式大功率激光驱动电源设计
激光加工主要是利用CO:激光束聚焦在材料表 面使材料熔化,同时用与激光束同轴的压缩气体吹 走被熔化的材料,来完成所需轨迹图形的切割或者相应工艺品表面的雕刻。激光加工属于非接触加工, 具有加工方法多、适应性强、加工精度高、质量好和加工效率高等优点。激光驱动 电源 作为激光器的 直接控制单元,其光开关响应的最高频率和出光功率稳定和可靠性会直接影响最终的加工效果。基于 快速响应和出光稳定的需求,乐创自动化技术有限公司研发了一种基于 CPLD 的数字式大功率激光驱 动 电源 。 2 系统组成及其工作原理 2.1 系统组成 基于  CPLD 的数字式大功率CO:激光驱动 电源  的系统结构如图1所示。 该 系统 主 要由主电源、稳压电源、辅
[电源管理]
一种基于<font color='red'>CPLD</font>的数字式大功率激光驱动电源设计
基于CPLD的高分辨率AD转换电路设计
   随着科技的飞速发展、高分辨率的数模混合电路的应用不断深入,电路设计日趋复杂,精度越来越高,所以高精度AD转换电路的设计就成了仪器仪表及各种测量控制系统的难点。本系统来源于仪器仪表的温控系统设计,采用高精度、低温漂的优质模拟、数字器件,辅以52系列单片机为控制器,以复杂可编程逻辑器件CPLD (Comp lex Programmable A rray Logi c )为频率测试的硬件平台,实现了高分辨率、低线性误差的AD转换器的设计。通过本设计掌握高精度、低漂移的高端AD转换器的设计方法, CPLD的设计,以及52系列单片机的硬件设计及软件编程。   1 系统功能及结构   系统主要目的是设计一个16位的VFC式
[模拟电子]
SHARC DSP与SJA1000的CAN总线接口设计
   引言   当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。 图1 SJA1000和CAN总线的连接 图2 ADSP21062和SJA1000的简化设计图 图3 基于CPLD的ADSP21062和SJA1000设计图 图4 CPLD的逻辑图 SJA1000简介   SJA1000
[应用]
CANopen 总线应用札记:关于通讯接口的针脚定义
我们都知道,现场总线常用SUB-D9作为通讯接口,工业以太网常用RJ45作为通讯接口。不过,个人认为这并不能说明RJ45功能比SUB-D9强,因为RJ45只有8根针脚,比SUB-D9少1根,如果我们把SUB-D9串口内的9根针脚都开发满,那么其功能没理由比RJ45弱。 下面说个严肃的话题,不同厂家开发的CANopen设备,看起来都是SUB-D9接口,其实内部线路是完全不一样的,我们要认真核实,可别连错了啊,运气不好的话,就短路了,运气再不好一点,通讯口就烧掉了!还有一些厂家开发的CANopen设备,CAN V+使用的是5VDC,而不是24VDC,如果不仔细阅读,采用习惯接线法,那就可能过压烧毁CAN信号收发器了! 小弟我整理了以下几
[嵌入式]
基于CPLD的串并转换和高速USB通信设计
    摘要: CPLD可编程技术具有功能集成度高、设计灵活、开发周期短、成本低等特点。介绍基于ATMEL 公司的CPLD芯片ATF1508AS设计的串并转换和高速USB及其在高速高精度数据采集系统中的应用。     关键词: CPLD 串并转换 USB 可编程逻辑器件(PLD)是20世纪70年代在ASIC设计的基础上发展起来的一种划时代的新型逻辑器件。自PLD器件问世以来,制造工艺上采用TTL、CMOS、ECL及静态RAM技术,器件类型有PROM、EPROM、E2PROM、FPLA、PAL、GAL、PML及LCA等。PLD在性能和规模上的发展,主要依赖于制造工艺的不断改进,高密度PLD是VLSI集成工艺高度发
[半导体设计/制造]
基于ARM9和CPLD的输入输出系统设计
简介:嵌人式丁业控制系统的突出特点是在高低温、高电磁辐射环境下的抗干扰性和可靠稳定性。和PLC系统相比。其明显的优点是处理速度快、方便进行工业以太网的组建、编程方便、通用性好,而且价格仅仅是PLC的几分之一,具有很好的发展前景。本论文主要论述了以EP9315和MAX2_EPM240为核心的嵌入式输入输出系统的设计。 1 系统构成 整个嵌入式输入输出系统分为嵌入式系统、应用模块(即输入输出模块)和转换模块三部分,总体结构如图1所示。 图1系统结构框图 1.1 嵌入式系统 本设计选择CirrusLogic公司高性能的ARM9嵌入式微处理器EP9315.该微处理器具有ARM920T内核所有的优异性能。丰富的集成外设
[单片机]
基于ARM9和<font color='red'>CPLD</font>的输入输出系统设计
PLC可编程逻辑器件的选择方法
摘要:介绍了在控制系统中选择PLC的一般方法,详细说明了在PLC机型的多样性,以及在PLC的输入输出点数功能等方面作如何选择。 关键词:PLC I/O 选择 开关量 模拟量 数字量 随着PLC的推广普及,PLC产品的种类和数量越来越多,而且功能也日趋完善。近年来,从美国、日本、德国等国引进的PLC产品及国内厂家组装或自行开发的产品已有几十个系列、上百种型号。PLC的品种繁多,其结构型式、性能、容量、指令系统、编程方法、价格等各不相同,适用场合也各有侧重。因此,合理选择PLC,对于提高PLC在控制系统中的应用起着重要作用。 1 机型的选择 PLC机型选择的基本原则是,在功能满足要求的前提下,选择最可靠、维护使用最方便以及性
[工业控制]
基于STM32和CPLD的等精度测频设计
在电子工程、资源勘探、仪器仪表等相关应用中,频率测量是电子测量技术中最基本最常见的测量之一,频率计也是工程技术人员必不可少的测量工具。但是,传统的频率测量方法在实际应用中有较大的局限性,基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化,传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低。本文中提出一种基于ARM与CPLD宽频带的数字频率计的设计,以微控器STM32作为核心控制芯片,利用CPLD可编程逻辑器件,实现闸门测量技术的等精度测频。 本设计的技术指标: 测频范围:1Hz~200MHz,分辨率为0.1Hz,测频相对误差百万分之一。 周期测量:信号测量范围与精
[单片机]
基于STM32和<font color='red'>CPLD</font>的等精度测频设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved