首页 理论教育现场总线通信控制器FF-应用技术

现场总线通信控制器FF-应用技术

【摘要】:因此FF的通信控制器,一定要具备发送帧前引导序列,发送和识别帧前、帧后界定符的能力。通信控制器通过相应的状态位将接收数据是否正确通知CPU,由CPU决定本帧数据的取舍。以上所列几项的要求是FF通信控制器必需的。

基金会现场总线FF网络系统的运行涉及通信参考模型的各层,包括物理层数据链路层、总线访问层、系统管理层、报文规范层和用户层等,涉及通信栈、系统管理、网络管理和功能块等各部分。其中数据链路层以上的部分是通过软件编程来实现的,而数据链路层及物理层所需要的总线驱动、数据编码、时钟同步和帧检验等许多工作,则需要软件和硬件的结合来完成。

1.FF通信控制器的功能

FF通信控制器主要具有如下功能:

(1)通信信号的发送和接收

根据FF的物理层规范,对通信接口线路的电气要求主要有两点:一是发送时要有足够的驱动能力,以保证接收端能得到足够强度的信号,便于正确接收,并具有一定的抗噪声能力;二是能够适应总线供电的工作方式,支持电源线上的信号载波。

(2)对传输数据的串并行转换

现场总线采用的是串行数据通信方式,而CPU采用的是并行数据,通信控制器作为CPU对总线的接口,很重要的一项工作就是对传输数据的串并行转换。

(3)对串行数据的编码和解码

FF采用的是两线制同步数据通信方式。采用同步通信方式时,发收方必须采用频率和相位相同的时钟,通信才可进行。因此发送方需要在发送数据的同时,将自己的时钟也一同发往接收方。同步通信有四线制和两线制两种。四线制采用一对线传输数据信息,另一对线传输时钟信息。为了节省电缆,两线制则使用同一对线同时传输数据和时钟信息。为此发送方必须采用数据编码的方式,将时钟信息隐藏在数据中发送出去。接收方对接收到的信号解码,还原出时钟信号。数据编码的种类很多,FF采用的是反向曼彻斯特编码和解码技术。这种编码的最大特点是每个数据在发送时钟的中部都必然发生一次变化,如果传输的数据是“0”,则会发生由低到高的变化;相反如果传输的数据是“1”,则发生由高到低的变化。因此接收方在每个时钟周期内总能得到一次时钟信息,也就是说,传输的数据流中包含了充分的时钟信息。采用曼彻斯特编码的另一个重要优点在于,对于任意的数据流,传输数据的正负脉冲总是对称的,便于采用变压器隔离。

(4)信息帧的打包和解包

总线上的信息是采用分层打包的方式进行包装的,总线通信控制器在收到来自数据链路层的数据包后,还要加上网上传输所必需的信息才能用于传输。

在每一帧的起始部分,发送方都要发送一到几个字节的前导码,设置前导码的目的是使接收方能与发送方进行时钟同步。由于采用的是两线制同步数据传输,接收方和发送方一般采用各自的时钟来进行接收和发送,而双方时钟在频率和相位上是不可能完全一致的。基金会现场总线规定,各站的时钟频率误差应在±0.2%以内。接收方为了能从接收信号中解码出和发送时钟基本同步的时钟,一般在接收线路中都采用锁相环技术,锁相环线路采用内部16倍于数据速率的时钟来驱动,产生和发送时钟同步的时钟信号,用于数据接收,根据接收数据中跳变沿出现的时间,锁相环逐步调整自己的计数值,以使自己产生的时钟和发送方基本同位。发送方在每帧前发送前导码,就是为训练接收方的锁相环线路,目的是在双方进行正式数据通信之前,使接收方有足够的调整时钟相位的时间,以便能与发送方时钟同相。前导码是一组“1”和“0”相互交替的序列。当总线上使用了一个或几个中继器时,需要多个字节的前导码,使发送方、中继器和接收方的时钟顺序逐级同步。

帧前界定码和帧后界定码分别为一个字节的编码,帧前界定码和帧后界定码相当于一对括弧,将一帧信息括起来。在串行数据通信中,各种数据都是按一定的相对顺序进行发送和接收的,收发方是依据数据在帧内的相对位置来判定数据的种类和所代表的意义的;而确定数据在帧内位置的唯一依据就是帧的界定码。因此信息帧的起始和结束界定码必须是不同于一般数据的特殊数据,以便接收方能够清楚地从数据流中分辨出信息帧的起始和结束界定码,这在数据通信中称为数据通信的透明性问题。基金会现场总线采用了两组特殊码作为帧前界定码和帧后界定码,它们分别包含了两对特殊的N+和N-码。因为在N+和N-码的中部不出现任何跳变,按照曼彻斯特编码规则,N+和N-码既非“0”,也非“1”,因此在正常数据中是不可能出现的。所以基金会现场总线的数据传输是透明传输。信息帧中除来自链路层的数据链路协议数据之外,其同步前导码、帧前界定码、帧结束码和帧校验序列一般是由通信控制器在发送时加上的,这些信息纯粹是为了信息帧能在网上正确传输而使用的,因此接收方的通信控制器在收到信息帧后,要能够将这些加上去的信息再剥下来,将“干净的数据”送往高层。这就是所谓通信控制器对信息帧的打包和解包。因此FF的通信控制器,一定要具备发送帧前引导序列,发送和识别帧前、帧后界定符的能力。

(5)帧检验序列的产生和验证

在数据通信中,环境条件会对通信数据带来各种各样的干扰,影响数据的正确传输。为了能克服干扰,保证数据通信的正确性,一般在通信协议中都要采用一定的差错控制措施,基金会现场总线采用了同步通信协议中广泛使用的CRC校验法检查数据传输的正确性。实现CRC校验可以采用软件按位来计算和处理数据,但软件开销太大,因此一般都由通信控制器中的专用硬件线路来完成。在数据发送的过程中,通信控制器一边发送数据,一边对发送的每一位数据进行相应的CRC计算处理,一直到本帧最后一位数据发送完毕,CPU不再向发送寄存器送数,此时通信控制器将CRC计算结果发送出去。同样在数据接收的过程中,通信控制器对每一位接收的数据都进行CRC计算处理,一直到帧后界定码为止,CRC校验结果反映数据接收的正确性。通信控制器通过相应的状态位将接收数据是否正确通知CPU,由CPU决定本帧数据的取舍。

以上所列几项的要求是FF通信控制器必需的。另外为了方便编程和满足系统可靠性的要求,对通信控制器还有一些其他的要求,下面将结合芯片做进一步介绍。(www.chuimin.cn)

2.FB3050通信控制器

目前,有多家公司生产用作基金会现场总线通信控制器的芯片,如日本的横河公司、富士公司,美国的SHIPSTAR公司,巴西的SMAR公司等。各家公司的产品功能各不相同,各有特色。但是它们都符合规定的现场总线标准。下面简要介绍SMAR公司的FB3050的主要特点。

FB3050是SMAR公司推出的第三代基金会现场总线通信控制器芯片,该芯片符合ISA SP50-2-1992 PART2中所规定的现场总线物理层规范。芯片设计时考虑了各种流行的微处理器接口。FB3050采用TQFP100封装,具有100个引脚。

FB3050内部有信号极性识别和矫正电路,因此允许总线网络的两根线无极性的任意连接。

FB3050的数据总线宽度为8位,外接CPU的16位地址线。16位地址线经过FB3050缓冲和变换后输出,输出的地址线称作存储器总线,CPU和FB3050二者都能够通过存储器总线访问挂接在该总线上的存储器。因此挂接在该总线上的存储器是CPU和FB3050的公用存储器。

在FB3050通信控制器发送和接收模块中,分别包含曼彻斯特数据编码和解码器,可以对发送和接收的数据进行曼彻斯特编码解码。因此FB3050仅需要一个外部介质存取单元和相应的滤波线路就可以直接接到现场总线上,简化了用户对电路的设计程序。

FB3050内部包含帧校验逻辑,在接收数据的过程中帧校验逻辑能自动地对接收数据进行帧校验。在发送数据过程中,是否对发送数据产生帧校验序列由用户通过软件编程来控制。帧的状态信息随时供软件读取和查询。

为了保证网络通信系统的可靠性,FB3050内部设置了禁止“闲谈”的功能,以保证本节点不会无限制地占用网络,从而保证了网络的可靠性。所谓禁止“闲谈”功能,实际上是一个定时器,因为根据基金会现场总线的规范,信息帧的长度是有限制的。当传输速率一定时,每发送一帧的时间不会超过某个确定的时间间隔。只有当某个节点在非正常情况下,比如软件出现死锁,才会长期占用网络的发送权,使得整个网络通信瘫痪。在通信控制器内设置一个定时器,从本节点占有发送权开始计时,当超过规定时间仍然不交出发送权时,定时器将强制剥夺本节点的发送权。

FB3050通信控制器内部包含两个DMA电路,DMA电路可以通过存储器总线访问存储器,从而可以直接将存储器中的数据块发送出去,或直接将数据帧接收到存储器中。DMA控制下的数据接收和数据发送是在不中断CPU的正常程序执行的情况下进行的,因此就有可能出现CPU和DMA两者争用存储器总线的情况。FB3050采用两种不同的仲裁机制,以分别适应Motorola、INTEL两大系列的CPU总线。

通过内部的寄存器组,用户可以方便地写入控制字,对FB3050进行组态和操作,也可以容易地读到FB3050内部的状态。

为了适应不同的CPU总线接口,FB3050使用了两个时钟源:其中一个用于和系统同步;另一个用于控制通信数据的速率。

为了减轻CPU软件的负担,FB3050内部设计了数据链路层地址及帧的自动识别处理器,提供了一套自动识别帧控制字和帧目的地址的逻辑机制,有了这套机制,再加上DMA电路,FB3050几乎可以在不用CPU干预的情况下就能从网上全部正确接收属于本节点的信息帧。

为了方便编程,FB3050内部还提供了3个定时器供数据链路层编程使用,它们分别是字节传输时间定时器、1/32 ms定时器和1 ms定时器。

FB3050控制器内部有一套灵活的中断机制,通过一条中断申请信号线向CPU申请中断,CPU通过读内部的中断状态寄存器就能确定中断源。总线上发生的许多变化条件都可以作为中断源。此外FB3050内部的定时器都可以产生中断申请。所有的中断源都是可屏蔽和可识别的。

FB3050可以和大多数微处理器相连接,FB3050有两个片选输入端:一个用于选择通过FB3050访问的64 KB存储器;一个用于选择FB3050内部寄存器。