微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种通用基于CPLD实现的CAN接口连接设计

一种通用基于CPLD实现的CAN接口连接设计

时间:09-12 来源:互联网 点击:

当ARM处理器要对SJA1000进行读操作时,它先通过CANCTL片选在U7中写入‘1’高电平,使U8工作在读的状态,然后把要读的地址通过片选CANAW写入U1,片选CANAW还启动了U8的TG触发信号(图4的前半部分、CANE为低与CANR/W为高的那部分),使U8的CANE(即CANCS)输出低电平,CANCS0输出低脉冲打开门电路U3,使CAN地址出现在SJA1000的总线上,同时CANALE出现一个正脉冲,将该地址锁存到SJA1000的地址寄存器中,随后CANCSR(即CANRD)输出低电平对SJA1000进行读数据,在CANCSR低电平脉冲结束的上升沿处出现SJA1000总线上的数据被锁存到U5寄存器中,然后CANE变高,读时序完成。随后ARM处理器通过CANDR片选打开门U6将数据读走。

当ARM处理器要对SJA1000进行写操作时,它先通过CANCTL片选在U7中写入‘0’低电平,使U8工作在写的状态,然后再把要写的数据通过片选CANDW写入U2,最后把要写的地址通过片选CANAW写入U1,片选CANAW还启动了U8的TG触发信号(图4的后半部分、CANE与CANR/W同时为低的那部分),使U8的CANE(即CANCS)输出低电平,CANCS0输出低脉冲打开门电路U3,使CAN地址出现在SJA1000的总线上,同时CANALE出现一个正脉冲,将该地址锁存到SJA1000的地址寄存器中,随后CANCS1输出低脉冲打开门电路U4,使CAN要写入的数据出现在SJA1000的总线上,同时CANCSW(即CANWR)输出低电平对SJA1000进行数据写入,然后CANE变高,写时序完成。

4 ARM处理器软件读写接口程序设计

5 结论

本文系统详细的介绍了利用CPLD设计实现的一种通用的CAN接口连接方案。该方案基本能适用于能够访问外存的所有处理器,本人用该方案在电路设计中使SJA1000成功连接过PPC MPC850、MPC860、和DSP TI的TMS320VC33、ARM7 WP90P710B等芯片,根据处理器的运行速度的不同,只要微调程序中的循环延时等待时间就可以了。该方案占用处理器一个中断、4个地址资源,并可按同样的设计扩充成多路CAN口工作。该方案给出了详细设计,并在工业设备中得到了实际应用的检验,是一种可靠,成本低廉的方案。解决了许多没有地址、数据分时总线的ARM、DSP与CAN控制器SJA1000的连接问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top