微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于CAN核的四冗余通信板设计与仿真

基于CAN核的四冗余通信板设计与仿真

时间:03-18 来源:互联网 点击:
3 软件设计

CAN通信板的正常工作离不开强大的软件支持,本系统中控制部分的核心采用PC/104嵌入式计算机系统。PC/104嵌入式计算机拥有可以和PC机媲美的强大功能,CAN通信板软件部分的开发和设计就是在PC/104计算机上完成的,采用C语言进行设计。C语言具有通用性、高效性和实时性,能满足仪器的实时性要求。在设计过程中采用了模块化、结构化的设计方法,把软件按功能分成若干个模块,这些模块既有一定的独立性,又有一定联系。每个模块的编制要求相对独立,以便对各模块进行检验调试和修改、维护。这种框架模式的程序可以保证良好的通用性、可维护性、可扩展性、移植性、互换性和独立性。

由于CAN核的内部结构和SJA1000一样,因此,开发时就像面对SJA1000一样,编写起来简单方便。本设计采用中断处理的方式来进行任务的处理。在中断到来后进行相应的处理就可以了。

通信板初始化流程如图3所示。



数据发送流程如图4所示,数据接收流程如图5所示。



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核应用的综合性能都得到了很大的提高。

作者:徐军涛,许化龙 (第二炮兵工程学院,西安 710025)
来源:《单片机与嵌入式系统应用》2010年01期

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

网站地图

Top