基于CAN核的四冗余通信板设计与仿真
通信板初始化流程如图3所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20130807/157649_3_0.jpg)
数据发送流程如图4所示,数据接收流程如图5所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20130807/157649_3_1.jpg)
4系统的仿真
采用Modelsim进行仿真。
系统的测试平台(TestBench),例化了模块can4core和1个CAN核cantop,并仿真它们之间的通信。
本仿真完全按照CAN核正常工作过程进行,仿真过程如下:
①初始化设置。首先进行时间寄存器的设置和数据格式的设置。通过平台对本系统设计模块和CAN核进行设置。
②同步测试。包括硬同步测试和重新同步测试。一个硬同步后,内部的位时间以同步段重新开始。硬同步使引起硬同步的跳变沿位于重新开始的位时间同步段之内。
③空FIFO测试(test_empty_fifo_ext)。该测试通过接收2个数据帧,然后读取接收缓冲器,接着清空缓冲器,再读取缓冲器,反复清空和读取,看FIFO中的数据是否被完全清除。
④满FIFO测试(test_full_fifo_ext)。首先清空寄存器,然后通过不断地接收数据帧来填满FIFO并读取信息,检测是否能正常工作。
⑤总线空闲测试(bus-off-test)。通过不断发送数据来使总线处于忙状态,致使总线产生错误,测试中断寄存器是否能检测到错误,以及错误清除后CAN核能否继续正常工作。
⑥Basic CAN模式发送帧检测。测试CAN核能否正常发送帧。
⑦寄存器测试。通过不停地读写寄存器,检测CAN核寄存器是否正常工作。
⑧总线上数据的传输。仿真过程中重要的一点就是总线上是否能够正常传输数据信息。
经过仿真可以看到该CAN通信板突破了SJA1000在速度方面的限制,传输速度可达2 MHz,有效传输速率得到了大幅提高,工作性能良好。
结语
本文设计的CAN总线通信板完成了PC/104与CAN总线的通信转换,改变了传统的应用CAN控制器加外部控制器的设计方法,在设计CAN核的基础上,将通信板中所有数字信号处理部分都放在FPGA内部来实现,使通信速度得到很大提高。无论是在传输速率还是在抗干扰、抗震性等方面,CAN核应用的综合性能都得到了很大的提高。
评论