CAN经典
2484 计算机测量与控制 第17卷
图4 系统读取CAN
图5 系统发送CAN总线数据的信号波形
有效,双向复用总线保持目的寄存器的写入值,在WR信号的上升沿,双向复用总线的数据写入到目的寄存器中。在这一状态要判断发送缓冲区是否已写满,如果写满则返回空闲状态,启动发送,如果没有写满则转到状态WR2。
与发送数据类似,在PeliCan工作模式下,接收缓冲区的寄存器地址也是16~26。从接收缓冲区中读取一条报文也需要连续读取11个字节。实现此过程的VHDL程序按照以下的状态转移设计:
(1)状态RD1:读状态的初始化,异步控制信号ALE、CS、WR和RD均为非有效状态。双向复用总线的值为接收缓冲区的首地址0X10,转到状态RD2。
(2)状态RD2:锁存控制信号ALE有效,其他三个控制信号均为非有效,双向复用总线的值保持要读入数据的目的寄存器地址,转到状态RD3。
(3)状态RD3:锁存控制信号ALE以及WR、RD信号非有效,而片选信号CS变为有效,在锁存控制信号的下降沿,寄存器地址被打入,完成寻址,转到状态RD4。
(4)状态RD4:片选信号CS保持有效,读使能控制信号RD有效,而ALE及WR非有效,双向复用总线的值为写入寄存器的数据,转到状态RD5。
(5)状态RD5:片选信号CS保持有效,RD信号变为非有效,双向复用总线的值保持目的寄存器的写入值,在RD信号的上升沿,从目的寄存器中读入数据,并在内部FIFO中缓存。在这一状态要判断是否接收缓冲区已读完,如果读完则返回空闲状态,并释放发送缓冲区,如果没有则转到状态RD2。
综上,通过总线模拟的方式,FPGA对CAN控制器的读写控制满足其时序要求,从而成功实现了数据的收发。
综合以及Post-map仿真,并在实际工程中得到了验证。实验中,该系统运行良好,稳定可靠。利用周立功公司的USB2CAN-Ⅱ设备产生CAN总线数据,进行FPGA片上测试实验,用Xilinx公司的ChipScope软件做片上数据测试,获得如图4和图5所示的波形。该系统读取CAN总线数据时,测试数据为00,01,02,03,04,05,06,07,片上的信号波形如图4所示。该系统发送数据时,给定CAN_WBUS的数据为0x05,片上的信号波形如图5所示。
5 结论
由于CAN总线结构简单,器件容易购置,开发技术易于掌握,且具有统一的国际标准,故在现场总线的发展中占有了重要位置,在实际工程中,也正在得到越来越广泛的应用。通过FPGA控制SJA1000实现CAN总线通信,可扩展性好,稳定性高,降低了重量、体积以及功耗,有利于空间实现。本方案为实现CAN总线通信提供了另外一种途径,并在星载电场仪的地检设备中获得了成功的应用。
参考文献:
[1]周新发,尚 志,刘 群.工业现场CAN总线在航天领域的应用
[J].现场总线与网络技术,2006,(1):60-63.
[2]饶云涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].
北京:北京航空航天大学出版社,2003.
[3]刘 涛.CAN总线接口电路设计中的关键问题[J].工矿自动化,
2007,(2):100-101.
[4]张绍兵,郭继坤,赵艳芹.基于CAN总线智能适配卡的软硬件设
计[J].计算机测量与控制,2008,16(8):1195-1196.
[5]孙 航,等.Xilinx可编程逻辑器件应用与系统设计[M].北京:
电子工业出版社,2008.
4 仿真与验证
本设计在XilinxISE和Modelsim612的软件平台上进行了
中华测控网
chinamca.
com