在LPC2131微控制器外部实现CAN总线通信设计

发布者:MysticEssence最新更新时间:2023-02-08 来源: elecfans关键字:LPC2131  微控制器  CAN总线通信 手机看文章 扫描二维码
随时随地手机看文章

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

在LPC2131微控制器外部实现CAN总线通信设计


这种方法中,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所示。

在LPC2131微控制器外部实现CAN总线通信设计

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”起始信号,占据总线并在下一个时钟开始发送数据帧。以此,完成正常通信过程中数据位从串口到串口的传输。

在LPC2131微控制器外部实现CAN总线通信设计

程序屏蔽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。

在LPC2131微控制器外部实现CAN总线通信设计

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


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


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


结 语

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


关键字:LPC2131  微控制器  CAN总线通信 引用地址:在LPC2131微控制器外部实现CAN总线通信设计

上一篇:将LPC55S16-EVK MCU用于工业应用
下一篇:详解LPC2000系列ARM微控制器的CAN验收滤波器应用

推荐阅读最新更新时间:2024-11-10 13:17

你该了解的单片机复位电路
影响单片机系统运行稳定性的因素可大体分为外因和内因两部分: 1、外因 射频干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰; 电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。 2、内因 振荡源的稳定性,主要由起振时间 频率稳定度和占空比稳定度决定 起振时间可由电路参数整定 稳定度受振荡器类型 温度和电压等参数影响复位电路的可靠性。 二、复位电路的可靠性设计 1、基本复位电路 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定
[单片机]
你该了解的<font color='red'>单片机</font>复位电路
单片机基础(七):串行通信概念及其工作原理
通信的基本概念 按照信息的传递方向,通信分为:单工、半双工、全双工三种 单工:一端发送,一端接收 半双工:通信双方都可以发送与接收,但同一时刻,数据传递方向是单一的 全双工:通信双方都可以发送与接收,可以同时进行发送与接收   并行通信和串行通信 并行通信:多个二进制位同时发送/同时接收,传输速度快,适合近距离传输 串行通信:数据排队接收/发送,占用线路少,远距离传输有成本优势   同步通信和异步通信 串行异步通信:根据通信双方各自的时钟基准,按照约定好的速率传输串行数据,实际上若通信双方的时钟基准有偏差,就有可能产生错误 串行同步通信:通信双方按照同一个时钟信号为基准,根据时钟信号传输串行数据。串行同步通信可靠性
[单片机]
<font color='red'>单片机</font>基础(七):串行<font color='red'>通信</font>概念及其工作原理
51单片机程序存储器扩展
在单片机的扩展中,要分别考虑程序存储器及数据存储器的扩展。 存储器是单片机系统中使用最多的外扩芯片,对80C51系列单片机而言,由于程序存储器与数据存储器的空间在物理空间上的各自独立性,使得两者的扩展方法略有不同。在本节中,介绍目前常用的EPROM(Electrically Programmable Read-On ly Memory)、EEPROM(Electrically Erasable Programmable Read-On ly Memory)等存储器的扩展方法。 程序存储器用来存放编制好的始终保留的固定程序和表格常数。程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB。
[单片机]
51单片机环境的搭建-1.3指令下载/烧写软件
第一章 51单片机环境的搭建-1.3指令下载/烧写软件 1.3 指令下载/烧写程序下载STC-ISP:http://pan.baidu.com/s/1kU3oXD1 将STC-ISP-v4.80.rar文件解压,即可使用
[单片机]
单片机实验——8X8LED点阵显示技术(二)
利用8X8 点阵挨个显示数字0 到9 的数字,到9后从0重新开始,如此循环。 解决方式一:通过中断方式让所有行值始终为低电平(事实上,并不是一次性让所有行值为低电平,而是挨行设置,CPU的中断时间间隔较短,当挨行设置频率较快时,可近似认为所有行值都为低电平),而列值需要根据具体数字的列值来确定,每秒改一次列值的数字。 解决方式二:通过中断方式让所有列值始终为高电平(原理同上),而行值根据具体数字的行值来确定,每秒改变一次行值的数字 以下我采用了方法一来实现。 编译环境:KEIL C51 V3 电路仿真软件:proteus 7.4 单片机类型:AT89C52 LED类型:MATRIX-8X8-RED 单片机上
[单片机]
AVR单片机ADC转换程序
//基准定义 #defineAD_ref_vref0x00//基准Vref #defineAD_ref_avcc0x40//基准AVCC #defineAD_ref_vref_in0xc0//基准内部Vref #defineAD_refAD_ref_vref //常量定义 //单端通道,不放大 #define AD_SE_ADC0 0x00//ADC0 #define AD_SE_ADC1 0x01//ADC1 #define AD_SE_ADC2 0x02//ADC2 #define AD_SE_ADC3 0x03//ADC3 #define AD_SE_ADC4 0x04//ADC4 #define AD_
[单片机]
红外遥控系统原理及单片机软件解码实例
下面是一个对51实验板配套的红外线遥控器的解码程序,它可以把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀”的提示音。 ;================================================= ; 红外遥控接收 ;================================================= ; ew51仿真编程器 配套实验板学习例程 ; ; 中山单片机学习网 智佳科技 逸风 ; ; http://www.zsMCU.com ; E-mail:info@zsmcu.com ;=
[单片机]
东芝微控制器“TMPM36BF10FG”可提供同级别最大片上SRAM
东芝公司(Toshiba Corporation)最近推出了一款基于ARM Cortex™-M3内核的全新TX03系列微控制器“TMPM36BF10FG”,配备了1M字节的闪存ROM和258K字节的SRAM。该产品计划于9月份投入量产。 特性 TMPM36BF10FG将一个大容量存储器和整合测量与通信系统所需的串行接口范围整合到一个芯片中。258K字节的嵌入式SRAM可存储系统信息和一系列测量数据,支持采用中间件和实时操作系统。它还支持复杂的数据处理,如通信系统的数据隐私保护。 另外,TMPM36BF10FG还整合了一个多功能计时器用于控制功率设备(如电机应用),确保其还可应用于系统控制(如电机控制)、办公自动化设备和工厂
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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