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

发布者:知识的海洋最新更新时间:2010-02-02 来源: 单片机与嵌入式系统应用关键字:CAN总线  FPGA  通信  Modelsim 手机看文章 扫描二维码
随时随地手机看文章

    随着电子技术、计算机应用技术和EDA技术的不断发展,利用FPGA进行数字系统的开发已被广泛应用于通信、航天、医疗电子、工业控制等领域,FPGA成为当今硬件设计的首选方式之一。PC/104是一种专门为嵌入式控制而定义的工业控制总线,以其独特的堆栈式结构、低功率等优点,得到了广泛的应用。作为主流的现场总线,工业控制局域网CAN(Controller Area Network)总线抗干扰能力强,易于组网,具有非常广阔的应用前景。独特的PC/104总线与CAN总线的结合,进一步拓宽了CAN总线的应用领域。

1基于FPGA的CAN核设计

    本设计采用了Altera公司的Cyclone III系列FPGA EP3C25,开发平台采用了Altera公司的Quartus II软件。CAN核的设计以SJA1000功能结构为基础。

    CAN核的功能框图如图1所示。该CAN总线控制器IP核,遵循CANbus 2.0标准,其功能和寄存器操作与SJA1000兼容。IP核采用VHDL编码,并采用容错设计,可抑制存储性器件的数据位翻转,大大提高了IP核的可靠性。CAN核可在FPGA中实现,也可以实现为ASIC。其中包含3个主要模块:寄存器组(can_registers),位时序逻辑(can_btl),位流处理器(can_bsp)。

    寄存器组(CAN Register):外部微处理器可以通过地址直接访问这些寄存器。发送数据时,微处理器将要发送的数据写入发送缓冲器,置位命令寄存器的发送请求位来启动发送。接收到数据后,核心控制器将其存在接收缓冲器,并通知位控制器将其取走。同时,CAN寄存器中还有1个64字节的接收FIFO,可以1次存储至少2个数据帧。

    位时序逻辑(BTL):用来监视CAN总线并处理与CAN总线相关的位时序。在消息的开始处,当位时序逻辑检测到总线上由隐性位(recessive)到显性位(dominant)的跳变时,就会将其内部逻辑同步到位流,称之为硬同步;随后,在接收消息的过程中,检测到隐性位到显性位的跳变时,便会重同步到位流,称之为软同步。位时序逻辑还要根据总线定时寄存器0和总线定时寄存器1的值来决定每个位周期采样点的位置,以补偿传输延迟和相位漂移所造成的误差;同时,根据总线定时寄存器1的设置采取相应的采样模式(单次采样或3次)对总线上的数据采样。

    位流处理器(BSP):根据其实现的功能分为3个模块:数据接收模块、数据发送模块和错误处理模块。数据接收模块将从位时序逻辑送过来的采样数据去除位填充后送到移位寄存器进行串并转换,之后对并行数据进行CRC校验,在消息接收完时发送应答信号,表示接收无误。最后将接收到的消息的特征码与验收屏蔽寄存器的内容进行比较,以决定是否将接收的消息写入接收FIFO。数据接收模块将要发送的数据组成帧并进行CRC计算,之后送入移位寄存器进行并串转换,然后将串行数据编码(位填充)后送到总线上。错误监视模块根据协议规范中描述的错误监视机制检测系统错误,并设置相应的寄存器,通知设备控制器。模块根据协议描述的12种错误监视规则,在适当情况下对计数器进行加、减或清除。控制器根据这两个计数器的值以及错误限制寄存器的值来决定自己的故障状态:错误激活(Error Active),错误认可(Error Passire)或总线关闭(Bus off On)。

2硬件电路设计

    根据系统的总体设计方案,因为现有的CAN总线收发器最大的工作频率为1 MHz,在提高CAN的通信速度后,现有的CAN总线收发器就不能满足需要了,因此改用RS485收发器。由于RS485收发器是差分传输,不能完成通信卡的自发自收功能,因此需要外置的CAN Hub。另外,要进行光纤传输,要完成光的逻辑总线结构,也需要外置Hub。因此,本硬件设计分为CAN通信板的设计和CAN Hub的设计两部分。

(1)CAN通信板硬件电路设计

    CAN通信板的核心器件是FPGA,同时完成“双光双电”通信,硬件通信板结构如图2所示。

   作为PC/104系统的模块,要接在PC/104总线上,所以要在数据、地址、控制总线上与PC/104标准规定的总线标准一致。

    本设计要进行四冗余设计,在设计中要添加4个CAN核,选用Altera公司Cyclone II系列的FPGA EP3C25。

    由于PC/104的工作电压为5 V,而FPGA的工作电压为3.3 V,因此在PC/104和FPGA之间要加入1个电平转换器74LVC245来保护FPGA。

(2)光收发电路

    本系统的高速光发射器采用HFBR-1414低功耗高速光发射器件,其光发射波长为820 nm。此发射器能够与以下4种光纤配合使用:50/125 μm、62.5/125 μm、100/140 μm、200 μm(HCS)。HFBR-1414采用了双镜片的光学系统,光发射效率高,当驱动电流为60 mA时,在50/125 μm光纤上可得到-15 dBm的光功率。光接收器采用HFBR-2412,其内部集成了光电二极管、直流电路和开集电极的肖特基晶体管。HFBR-2412光接收器能与光发射器HFBR-1414及50/125 μm、62.5/125 μm、100/140 μm、200 μm(HCS)的光纤配合使用,最高通信速率可达5 MB。由于采用了开集电极电路,此接收器兼容TTL及CMOS电平。该电路的通信距离最远可达1.7 km。

    为提高CAN通信板的抗震性,抗干扰性等综合性能,采用了双面布线设计。该通信板尺寸规格严格按照PC/104板的要求做。

(3)冗余设计及CAN Hub设计

    该通信板设计了4路冗余,工作时只有1路CAN通道进行工作,采用高位片选的方式进行工作通道的选择,其片选模块在FPGA内部设计完成。

(4)GAN Hub的设计

    由于本系统采用“双光双电”四冗余的电路设计,为提高通信速度,采用485收发器代替标准的CAN收发器。光是“点对点”的传输,485收发器是差分传输,在形式上都无法构成总线式结构。因此,引入CAN Hub来对信号进行处理,在逻辑上达到总线式的结构。

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

关键字:CAN总线  FPGA  通信  Modelsim 引用地址:基于CAN核的四冗余通信板设计与仿真

上一篇:基于ProfiBus现场总线的碱回收车间DCS方案设计
下一篇:HART通信协议在现场仪表远程通信中的实现

推荐阅读最新更新时间:2024-03-30 21:30

Dialog成为赛灵思SoC和FPGA领先电源管理合作伙伴
Dialog半导体公司 (德国证券交易所交易代码: DLG )日前宣布,成为领先FPGA、SoC和3D IC供应商赛灵思的关键电源管理合作伙伴。通过与赛灵思合作,Dialog将充分发挥其在开发针对下一代传感器处理、网络连接和汽车应用的高效、可扩展电源管理解决方案的丰富经验。Dialog为赛灵思 Zynq®-7000 SoC、 Zynq UltraScale+ ™ MPSoC 和 Spartan®-7 FPGA 平台提供完整的电源管理解决方案组合。 这次合作将带来结合了两家公司器件的高效、成本优化的解决方案。 DA9063 电源管理IC(PMIC)和 DA9213 子-PMIC可满足Zynq UltraScale+ MPS
[嵌入式]
Dialog成为赛灵思SoC和<font color='red'>FPGA</font>领先电源管理合作伙伴
STC15F2K60S2串口通信程序代码
//********************************************** //STC15F2K60S2串口通信程序,将串口接受到的数据从串口发出去 //采用22.1184M晶振,波特率115200 //为方便大家调试,特附该程序的项目工程文件下载地址,下载打开即可调试下载到单片机 // //********************************************* #include stc15fxxxx.h //调用stc15f系列头文件,下载地址: http://pan.baidu.com/s/1eRUbjLS /*************常量定义************
[单片机]
STC15F2K60S2串口<font color='red'>通信</font>程序代码
STM8 单线半双工通信
UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_CR5寄存器的HDSEL位实现。在该模式下,下面的位必须保持清零状态: UART_CR3寄存器的LINEN和CLKEN位 UART_CR5寄存器的SCEN和IREN位 注意:该功能只适用于STM8的UART1。 当HDSEL写'1'时 UART_RX不再被使用 。 当没有数据传输时,UART_TX处于释放状态。因此,它在空闲状态的或接收状态时表现为一个标准I/O口。这就意味该I/O在不被UART驱动时,必须配置成悬空输入(或开漏的输出高)。 除此以外,通信与正常UART模式类似。要注意的是必须由软件来管理线上的冲突(例如通过使用一
[单片机]
FPGA:下一个技术突破点?
  二十一世纪最具决定性的集成电路技术就是现场可编程门阵列(FPGA),而传统门阵列和结构阵列技术将退居到特殊的大批量应用。无论是用来完成关键功能还是直接作为系统核心,今天的FPGA所提供的性能、成本、功耗和容量都已经达到甚至超过此前专用IC或专用标准器件(ASSP)的水平。可编程硬件的可配置特点不仅具备产品差异化和快速上市等传统优点,同时当批量达不到足以支持开发专用IC成本的时候还可以加快投资回报速度。现在,FPGA已经从最初主要应用于原型设计逐渐延伸到最终产品的整个生命周期。业界共识:可编程技术势在必行。   FPGA的下一个技术突破点是什么?笔者认为,突破点也就是创新点,有些技术突破点是共性的,例如上面提到的FPGA的性能
[嵌入式]
一种基于FPGA控制全彩大屏幕显示的设计
随着数字技术的飞速发展,各种数字显示屏也随即涌现出来有LED、LCD、DLP等,各种数字大屏幕的控制系统多种多样,有用ARM+FPGA脱机控制系统,也有用PC+DVI接口解码芯片+FPGA芯片联机控制系统,在这里我们讲述一种不仅可以用于控制全彩LED大屏幕的显示,而且还可以作为发送端输出高清图像数据。采用的联机控制系统对全彩LED大屏幕进行控制。即PC+DVI接口解码芯片+FPGA芯片+输出接口模式的联机控制系统。 DVI接口概述 DVI全称为Digital Visual Interface,它是基于TMDS(Transition Minimized Differential Signaling,最小化传输差分信
[工业控制]
一种基于<font color='red'>FPGA</font>控制全彩大屏幕显示的设计
Altium针对NanoBoard推出原型设计外设电路板
日前,Altium宣布针对其基于FPGA的开发板NanoBoard 推出了全新原型设计外设插件板。 全新电路板可配合固定 FPGA的 NanoBoard 3000 以及完全可重构的NanoBoard NB2 这两款产品进行工作。该产品将于12月份以3片或20片装开始供货,用户可通过 Altium 在线分销商合作伙伴进行订购。 有了这块电路板,用户无需再为电路原型设计创建特殊的定制PCB板。板载连接器可插入 NanoBoard板上,直接连接到NanoBoard 上的主控FPGA 的 I/O管脚 以及通用 NanoBoard 资源,包括电源与 JTAG 线路等。设计人员可非常方便地将定制电路与标准 NanoBoa
[嵌入式]
基于FPGA的DDC滤波器设计与仿真
近年来,软件无线电已经成为通信领域一个新的发展方向,数字下变频技术(Digital Down Converter-DDC)是软件无线电的核心技术之一,也是计算量最大的部分。基于FPGA的DDC设计一般采用CIC、HB、FIR级联的形式组成。同时,由于CIC滤波器的通带性能实在太差,所以中间还要加上一级PFIR滤波器以平滑滤波器的通带性能。而众所周知用FPGA从事算法的开发是一件难度比较大的工作,而Xilinx公司开发的System Generator工具为算法的快速开发及仿真带来了巨大的方便。本文首先对CIC、HB、FIR滤波器的原理及设计作了简单的说明,最后用Matlab结合System generator对本文所设计的DDC滤
[模拟电子]
基于<font color='red'>FPGA</font>的DDC滤波器设计与仿真
基于CAN控制器的对等式单片机多机系统的通信
    摘要: 针对单片机多机系统主从式通信的缺点,提也了利用CAN控制器实现单片机多机系统对等式通信,并对其硬件组成原理、通信程序的设计做了详细的分析。     关键词: 单片机多机系统 “对等式”通信 控制器局域网(CAN) 关于单片机的多机通信,许多文章及相关书籍都有介绍,但就其多机通信的方式而言大多为“主从式”,这一通信方式限制了单片机功能的发挥及广泛的应用。虽然文献 利用巧秒的硬件手段实现了单片机多机之间的“对等式”通信,但其通信方式实质上仍是“主从式”。本文介绍了一种基于CAN控制器的单片机多机系统,从本质上实现了任意两机之间直接相互通信,从而克服了“主从式”多机通信的缺点。 1 CAN技术简
[应用]
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved