>
首页 » 技术文章 » CAN总线控制器模型的快速测试

CAN总线控制器模型的快速测试

作者:王 凌,胡海江,张凤登  时间:2006-10-22 00:23  来源:
摘 要:文章主要就Basic-CAN总线控制器模型的产生过程进行了探讨。首先将该控制器模拟为一个分级有限状态机,通过它自动生成一个VHDL行为描述,然后使用基于FPGA的仿真系统模拟这个控制器。硬件功能块的模型可以在几周内完成,从而证明了这种快速测试系统模型方法的可行性。

关键词:CAN总线控制器;快速成型;VHDL

前 言

除了功能的有效性与产品的性能以外,经济因素成了研发新产品成败的主要原因。随着市场上竞争者的增加,上市时间逐渐成为产品在商界成败的主导因素。快速成型,通过系统行为描述可以自动产生一个功能上等同的模型,这可以明显缩短产品的开发周期。对于具有更高理论层次的工程师来说,执行的细节已不再是他们最感兴趣的部分,他们更关心关系大局的决策,例如:算法的选择,系统的构架等等。快速成型的产生不仅缩短了周转时间,而且减少了重复设计。本文将通过一个真实的设计实例和独特的软硬件来证明快速成型的可行性及其优势。

CAN总线控制器

CAN是一个串行通信总线,被用来传递简短的实时控制信息。它最早由Bosch公司于1983年推出,应用于汽车工业,近年来在工业控制(例如:纺织工业) 和医疗器械领域中广受欢迎,用于连接分布式智能系统。它的优点是传输时间短,连接成本低,且有自动防故障的功能。本文主要讲述Basic-CAN控制器模型(DBCAN即达姆施塔特技术大学BCAN) 。一般情况下,它可以被集成到任何定制的特殊处理器上。遵照CAN规范2. 0,数据帧使用11位标志符,也可以扩充到29位标志符。主接口改为可支持32位的信息缓冲器和CAN控制器的控制/状态寄存器。DBCAN包含六个基础构造模块,其中接口管理处理器( IMP) 执行主处理器的命令,控制所有的DBCAN构造模块,必要时可向主处理器发送中断信号。位定时逻辑(BTL)使输入位流与DBCAN同步。收发控制逻辑(TCL)管理总线仲裁,发送特殊的接收数据帧。如果在数据传输过程中发生了错误,TCL会自动发送错误信息帧给另外一个CAN总线节点。错误管理逻辑(EML)中的特殊计数器不停的追踪所有发生的错误,并且根据节点的错误频率动态的控制总线的访问。位流处理器(BSP)使数据流串行或并行,同时检测由于不断的比较输入位和输出位所引起的仲裁丢失。DBCAN中所有的状态、控制和结构寄存器都放置在一个主处理器可以访问的双口存储器里。

模型产生

为了模拟DBCAN的行为,使用ExpressVHDL在状态图的基础上,产生一个控制器的已扩展的有限状态机描述。ExpressVHDL提供图像设计入口和生动、互动的有限状态机仿真。当系统确定了行为层,在无用户冲突的情况下,会生成DBCAN的一个合成VHDL描述,然后用设计编译器合成门级的设计,并链接到ASIC(大规模专用集成电路)目标库。为了用LogicAnimator的FPGA网络来仿真控制器,产生的网络列表必须被预处理、分割并链接到许多FPGA上。这完全由Animator软件自动进行,包括布置、安排线路以及不同的FPGA位流的产生。在实验网络中,DBCAN的仿真网络列表与飞利浦的BCAN控制器82C200相连接。同时进行DBCAN的功能合理性测试与性能测试。

建模与模拟
为了简化设计入口,将DBCAN设计成状态图。状态图是传统的FSM描述的扩展,包括三种特性,即层、共点和通讯。状态图由不同的状态和状态转换组成,而这两项又是由环境与事件共同决定的。DBCAN错误管理逻辑( EML)的状态图里用recessivecount、waitforimp、bus-off、bus-on这四个状态来描述EML。

层的概念是由状态bus-on引入的,bus-on本身也有许多并发的子状态(tec,rec,error-state) 。这种分解设计的策略大大降低了状态以及状态转换的指数级增长。一般情况下,这种策略常用于复杂的FSM,这些FSM本质上是平面、连续的。在设计中,通过把大量的事件与数据转换成状态图来实现同步。例如:如果另外一个状态图的swreset 事件发生,error-state状态就会被留置和重新输入。同样,状态检测可以用于交互表同步。表1中列出的是DBCAN状态图模型的特性参数。



强大的数据处理能力和定时功能使设计入口简化,除了FSM的图形接入,VHDL表述也提供详细的状态、行为和转换的动静态检测。模型还可用于设计早期阶段的检查,例如:死锁状态及状态的可达性和不确定性。在DBCAN设计中,这些分析方法可检测到系统错误和设计入口错误,并有助于减少重新设计的时间和成本。

交互式的模拟环境ExpressVHDL用于DBCAN的行为模拟。内部的数据项(例如:发送/接收缓冲,寄存器,错误计数器) ,事件和状态(例如:填充错误,位错误,中断) 在图形控制面板上可以方便的显示出来,模拟结果也可用波形显示。模拟过程中所有的行为状态和转换都被突出显示,而且用户可以通过面板或批处理文件来改变输入数据。同时可在单步和批处理模式DBCAN情况下集中检测多个模拟运行过程。批处理文件也可模拟第二个Basic-CAN控制器,该控制器在发送数据帧到DBCAN或接收DBCAN发出的数据帧时会产生一些状况,例如:错报。然而由于执行模拟的速度比较缓慢,导致在所有可能的状态中只有一个很小的子集适于模拟。基于FPGA的DBCAN模型将使测试加速到实时状态,并允许进行大型的后续测试。

合成
ExpressVHDL从已测试过的DBCAN模型开始,生成适合于下一个综合步骤的VHDL码。除了一些编译选项(如reset logic,clockingscheme,stateencodingstyle等) 以外,用户不需要考虑编码的产生。

虽然通过VHDL的合成设计可以方便地重新定位已设计好的系统,但我们还是选用模型合成最终装置中的0. 7μmCMOS标准单元处理方法。这样产生的模型最接近运行的最终结果,因为它们的合成过程是一样的。不过,目标标准单元必须与仿真器的FPGA的基础模块相连。为此需要先建立一个转换库,并且由Verilog模拟验证,因为在以后的仿真器特殊设计编辑中要用这个库。因此第一步就是由设计编译器和EDIF格式的DBCAN门级网络列表直接合成设计。

仿真
在实时条件下,仿真是一种测试系统模型的有效方法,尤其是像DBCAN这样的实时系统。因为DBCAN与外界(例如:总线访问) 有大量的交互作用,所以对整个设计的确认模拟速度很慢。仿真的加速作用(可达到模拟的106倍) 可使目标系统中的实时测试成为可能。不过,由于门级网络列表的逻辑仿真中用到了FPGA网络,致使最终的模型速度仍旧只有硬件系统速度的十分之一。因此我们期望的不是那些按照绝对时间来设计的模型,而是那种在时钟周期层上显示同样行为的模型。

与常规的电路测试版技术形成鲜明对比的是,仿真大大缩短了模型产生的时间。在功能强大的分区与布局软件的支持下,第一个门级网络列表模型可以在数小时内产生(表2),相比之下,ASIC的生成则长达两个月左右。


首先,网络列表不适合单个的FPGA,因此要对其进行分区。其次,要把设计连接到基础构造块上,为每一个FPGA布局、布线。在编辑过程中会出现多达448个双向信号引脚,要将其定义到仿真器的外部连接器上。至于所有的控制流量驱动设计,它们的状态寄存器则主要受DBCAN行为的影响。因此,为了便于监视,它们与许多控制器的控制和状态寄存器一起被做成可由外部连接器接入的形式。用于多路FPGA的位流一旦产生后,设计也就预备好下载了。

整个设计编辑过程完全依靠软件的支持。由11824个门和736个寄存器组成的网络列表可以以4MHz的频率进行第一步仿真(这个频率只是系统最终频率的四分之一) 。通过对已用的FPGA的平均资源利用率(表3)的分析,可以证明模型的设计就是对I/O驱动的设计,因为FPGA几乎所有的引脚都被占用了。剩余的10%是作为冗余留给以后增加器件用的,这样就可以避免重新编辑整个设计。


系统有效性


为了实时检测DBCAN模型,我们建立了包含两个Basic-CAN节点的CAN总线系统(图1) 。

仿真DBCAN通过CAN总线和BCAN控制器连接。控制器的限定时钟频率为4MHz,通讯数据传输速率为250KBit/s。DBCAN的主处理器以FSM为模型,并由CAN控制器仿真。BCAN控制器的状态(发送/接收缓冲,状态/控制寄存器) 可以在主PC机上显示。这使逻辑分析器(跟踪总线数据和DBCAN的内部信号节点等) 有可能与模型功能块的有效性联系在一起。如果为了测试而必须在传输过程中引入错误(位错误、材料错误等) ,则可以使用一个测试信号发生器来取代控制器。

与模拟相比,仿真的速度极快,因而我们可以使用大量的输入指令序列,这样它就具有更高的设计有效性。而且,其它系统原件的耗时模拟也显得多余,因为测试状态下的器件是在它真正的目标环境中运行的。

结果

观察表2的模型产生时间表,可以看到设计的重心都落在了系统建模与第一个行为模拟上。由于使用的是可执行模型,因此可在模型产生之前就检查设计的详细规范。这样一来,就可以及时发现错误,从而减少重复设计循环的次数。一旦开始模拟,设计者无需详细了解VHDL和底层的硬件( FPGA),第一个模型就会在数小时内几乎完全由软件工具自动生成,而且这个模型与它的规范相匹配,以4MHz的模拟频率和250KBit/s的传输速率运行,即系统最终频率的四分之一。如果模型的运行状况不能令人满意,那么设计人员就需要更多建模、合成和仿真方面的知识来提高仿真的速度。

结 论

从DBCAN被模拟为一个分级的有限状态机开始,到在FP2GA基础上硬件模型的产生,本文详细阐述了Basic-CAN总线控制器(DBCAN)的产生过程。硬件功能块的模型可以在一周内完成,这证明了这种快速成型的可行性。新设计的反复循环可以在数小时内执行,所以传统的电路实验板技术和ASIC模型技术的几个月的转变时间被大大的缩短了。设计者不再被执行的细节所束缚,他们可以专心研究系统模型方面的问题。这使得模型的质量得以进一步提高,并且可以减少重新设计的次数。

相关推荐

单片机多机冗余设计及控制模块的VHDL语言描述

单片机  VHDL  2011-05-19

嵌入式单总线控制器设计

DS1820  VHDL  总线控制器  2011-01-11

SDH中E1接口数字分接复用器VHDL设计及FPGA实现

SDH  E1  VHDL  FPGA  2010-09-01

一种用VHDL语言实现的帧同步算法

帧同步  搜索态  VHDL  2010-08-16

VHDL设计中信号与变量问题的研究

VHDL  仿真  maxplus  2010-04-20

VHDL设计中信号与变量问题的研究

VHDL  信号  变量  初始值  2010-04-12
在线研讨会
焦点