您的位置 首页 设计

怎么规划LPC2131根据CPLD的CAN接口?

引 言Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM处理器的所有优点mdash;mdash;低功耗、高性能和较为丰富的片上资源

引 言

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功用完结

选用功用块编程完结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软件编译程序,并用仿真东西仿真。波特率为115 200 bps,修改输入点txArm2、rxCan2的波形,检查输出点txCan2、rxArm2的波形。为便利识图,仿真中将数据端口传输占用的时间参数置0。

首要,证明输出波形的有用性。调查图4中的txCan2和rxArm2的波形,能够看出一切时间的数值都是确认的,然后证明体系处于安稳状况,波形是有用的。

然后,证明输出波形的逻辑性。依据程序的逻辑规划,txArm2通道的数据发送享有优先权,始终坚持txCan2=txArm2。从仿真成果能够看出,txCan2的波形与txArm2波形完全一致;当txArm2通道为“0”时,屏蔽rxCan2输入的数据,并坚持rxArm2输出一向为“1”,调查图4中任何时间一切输入/输出的波形,能够看出仿真成果正确。

最终,验证输出波形的时序性。这部分程序是一个组合逻辑的规划,也便是一切的输出跟着相应的输入的改变而改变。由图4可知,仿真成果的时序正确。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/149516.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部