总线控制器

2024-10-23

总线控制器(共12篇)

总线控制器 篇1

1 引言

为了减小空间大口径望远镜发射时的尺寸, 同时实现主镜在空中展开后, 子镜单元的精确定位和锁紧, 释放其展开动力和各个链接锁紧的动力源, 本系统设计了一种可展开空间大口径望远镜的可折叠展开主镜概念设计。通过7个步进电机来实现整个望远镜子镜模型折叠和展开, 同时满足在切除动力源之后的锁紧状态。基于PCI总线的运动控制器是一种基于PC机的PCI总线, 具有开放体系结构与PC机相结合, 用于控制伺服或步进电机的位置、速度、加速度等的控制器。运动控制器通常以专用运动芯片或者告诉DSP完成轨迹规划、曲线插补、伺服控制以及标准化通信接口控制功能。用户根据需要调用运动控制器的库函数开发相应的应用程序, 方便地实现各种运动控制功能, 在设计的人机界面上对控制对象进行实时监控, 运动控制卡使用方便, 因而在望远镜控制、机器人等领域有着重要的应用。

2 控制系统硬件组成

为了实现对大口径空间望远镜子镜折叠及展开控制系统的自动控制, 该控制系统采用工控机、PCI多轴控制器、步进电机驱动器和步进电机来组建整个控制系统。计算机控制运动控制器给步进电机驱动器发出一个脉冲信号, 驱动器便驱动步进电机旋转一定的角度, 步进电机的输出轴带动传动机构运动, 通过脉冲方式来实现对步进电机的精确定位和控制。

2.1 运动控制器

多轴步进电机运动控制器采用固高科技有限公司生产的GTS-800-PG-PCI系列运动控制器, 可以实现高速的点位运动。其核心由DSP和FPGA组成, 可以实现高性能的控制计算。它适用于广泛的应用领域, 包括机器人、数控机床、木工机械、印刷机械、装配生产线、电子加工设备、激光加工设备以及PCB钻铣设备等。GTS-800-PG-PCI系列运动控制器以工业控制计算机为主机, 提供标准的PCI总线的产品。运动控制器提供配套的运动调试软件, C语言函数库和Windows动态链接库, 能实现复杂的控制功能。能够将这些控制函数与自己控制系统所需的数据处理、界面显示、用户接口等应用程序模块集成在一起, 建造符合特定应用要求的控制系统, 以适应各种应用领域的要求。运动控制器提供两种不同的控制信号:正脉冲/负脉冲、脉冲+方向, 在控制步进电机时, 控制模式为开环控制。

2.2 步进电机和驱动器

步进电机采用的是伟通机电制造有限公司的60STH101-3004A步进电机和2H606M系列步进电机驱动器。电机和驱动器的参数如表1。

驱动器性能参数:输入电源:AC20V-60V 6A (MAX) ;电流输出:2.5A-6.0A;驱动方式:PWM (脉宽调制) 恒流载波, 两相正弦波电流输出;适配电机:60, 85, 86, 110系列两相混合式步进电机;工作环境:-10℃~55℃, 15~85%RH;细分:200~60000步数/转, 共有28档微步细分;信号接口与时序:共有共阳极, 共阴极和差分信号三种接法, 该系统采用差分信号接法如图1所示。

3 控制系统软件

GTS-800-PG-PCI系列运动控制器为用户提供了相应的调试软件MCT2008, 同时便于二次开发, 在Windows系统下, 用户可以使用任何能够支持动态链接库的开发工具开发应用程序, 支持Visual C++、Visual Basic和Delphi等应用程序。在该系统中, 我们采用Microsoft Visual Studio 2010进行了二次开发。

3.1 系统配置

在使用运动控制器进行各种操作之前, 我们需要对运动控制器进行配置, 使运动控制器的状态和工作模式满足要求。采用Motion Controller Tool Kit 2008中的配置组件, 生成相应的配置文件*.cfg, 在编程的时候通过调用相关的指令, 将配置信息传递给运动控制器, 即可完成整个运动器的配置工作。

该系统的步进控制方式的基本配置如图2所示。Profile输出的规划位置进入axis中, 在axis中进行当量变换的处理之后, 输出到step, 由step产生控制脉冲, 驱动电机运动。Axis需要驱动报警、正向限位信号、负向限位信号、平滑停止信号、紧急停止信号等一些数字量输出信号来对运动进行管理;同时, axis需要输出伺服时能信号给数字量输出, 来使电机使能。运动控制管理软件界面如图3所示。

3.2 运动指令

GTS运动控制器可以独立工作在点位、Jog、PT、PVT、电子齿轮或Follow运动模式 (电子凸轮) 下, 在该控制系统下我们采用点位控制模式。

(1) 在初始化函数On Init Dialog () 中打开GT_Open () 和复位GT_R es et () 运动控制器; (2) 配置运动控制器, 添加配置文件GT_Load Config (“test.cfg”) 并清除各轴的报警和限位GT_Clr Sts (1, 8) ; (3) 将AXIS轴设为点位模式GT_Prf Trap () ; (4) 读取点位运动参数GT_Get Trap Prm (1, &trap1) ; (5) 设置点位运动参数GT_Set Trap Prm (1, &trap1) ; (6) 添加定时器Set Timer (0, 1000, NULL) , 获取各个轴的位置信息GT_Get Prf Pos (1, &prf Pos1) ;

控制系统界面如图4所示。

状态指令和点位模式指令主要有:

4 结语

实验结果表明, 通过选取基于PCI总线的运动控制器以及采用Visual C++对运动控制器进行二次开发来组件整套运动控制系统能够很好的满足该空间望远镜子镜折叠及展开模型的控制要求, 而且实现简单调试方便, 为今后实际运用奠定了良好的基础。

参考文献

[1]孙鑫, 余安萍.VC++深入详解[M].北京:电子工业出版社, 2006.

[2]胡寿松.自动控制原理 (第五版) [M].北京:科学出版社, 2007.

[3]固高科技有限公司.GTS系列运动控制器用户手册[M].深圳:固高科技有限公司, 2011.

[4]常州市伟通机电制造有限公司.60STH系列混合式步进电机[M].常州:伟通机电制造有限公司, 2014.

总线控制器 篇2

在用Petri网理论建立航空电子综合系统模型[1]的基础上,通过对航空电子综合系统的拓扑结构和性能指标的分析,提出了航空电子综合系统总线数据流的安排方法、提高总线使用效率的.途径、总线数据流的控制规约和总线数据流传输方案的优化方法。按照这些规约和算法控制Petri网的运行,可以产生优化的总线传输时序表和计算相应的技术指标。

作 者:吴勇 陈铭 朱岩 Wu Yong Chen Ming Zhu Yan 作者单位:吴勇,陈铭,Wu Yong,Chen Ming(西北工业大学,西安710072)

朱岩,Zhu Yan(西安航空技术高等专科学校,710078)

解析CAN总线现场控制系统设计 篇3

关键词:CAN总线;现场控制;设计

0.引言

利用CAN总线技术设计一个较为简单的现场火灾探测系统,来说明CAN总线技术的性能和使用方便等优点,尤其是在信息通讯上的特点。基于CAN总线的现场火灾探测系统采用全总线机制,软件编程,分布式控制方案,使该系统称为集监视、报警、控制于一体的智能控制系统,利用CAN总线技术提高了系统的准确性、可靠性,又为工程设计、施工布线提供了极大的方便。

1.系统网络组成原理

系统中每个接点通过报警主控制器、CAN总线控制器、CAN收发器连接通讯。报警控制器接收信息并完成火灾判断、联动等功能;CAN控制器用于各节点之间的数据传递;CAN收发器增强了控制器的驱动能力,保证了控制器之间的通讯距离。发送数据时,报警控制器把需要传送的数据写入CAN控制器的发送缓冲区,启动发送,数据即通过CAN收发器发送到总线上;接收数据时,CAN控制器通过CAN收发器从总线上接收数据,在处理后存入接收缓冲区,并给出接收中断信号。这时,报警控制器就可以从CAN控制器的接收缓冲区取走数据。它所需要传输的信息包括:火警、故障、联动、恢复、显示、复位、自检、动作等多种命令。本系统采用了一套上主机巡检加下位机抢断的网络协议。

2.CAN总线控制系统的硬件设计

CAN总线是一种多主总线,理论上任何一个节点都可以作为主节点。在本系统中设置于CRT相连的AT89C51和SJA1000上位节点,其他节点为底层节点。与CRT相连的AT89C51为报警控制主机,SJA1000为CAN总线控制器,82C250和CAN总线收发器。CRT通过串口与节点上的CPU通信,CPU再与CAN控制器SJA1000通信,实现信息在CAN总线上的发送与接收。电路主要由4部分构成:主控制器89C51单片机、独立CAN总线控制器SJA1000、CAN总线驱动器82C250和告诉光电耦合器6N137。CAN总线系统只能节点采用89C51作为节点的微处理器,在CAN总线通信接口中采用SJA1000和82C250。芯片SJA1000是独立CAN通信控制器,82C250为高性能CAN总线收发器。

为了增强CAN总线节点的抗干扰能力,SJA1000的TXO和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块实现。这部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。

82C250和CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5V的电阻与CAN总线相连,电阻可以起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30P的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。

3. 89C51控制主机介绍

(1)主要特性

AT89C51是一个低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通过8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89c51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程序计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

4. SJA1000的简单介绍

SJA1000是一种独立CAN控制器,它是PCA82C200 CAN控制器的替代产品。SJA1000具有BasicCAN和PeliCAN两种工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0协议。

SJA1000在软件和引脚上都是与它前一款PCA82C200独立CAN控制器兼容的,在此基础上增加了很多新功能。工作方式通过时钟分频寄存器中的CAN方式位来选择。上电复位默认工作方式BasicCAN方式。

5. 82C250的简单说明

SJA1000的一端与单片机相连,另一端与CAN总线相连。但是,为了提高单片机对CAN总线的驱动能力,可以把82C250作为CAN总线控制器和物理总线间的接口,以提供对总线的差动发送能力和对CAN控制器的差动接收能力。

6.结束语

CAN总线的控制系统的全分散控制、开放、智能化和功能自治的这些特点,和传统控制系统的体系结构相比,具有节省硬件数量和投资,减少安装费,降低维护开销和用户具有高度的系统集成自主权及提高系统准确性和可靠性等优点。与传统的控制系统相比,CAN总线控制系统在信号标准、通信标准、系统结构和设计方法上均产生了很大的变革。

参考文献:

[1]赵亚军.基于CAN总线的智能照明系统设计与研究[J].武汉科技大学,2012(6).

[2]刘刚.汽车CAN总线网络控制系统设计与实现[J].电子科技大学,2012(3).

总线控制器 篇4

UVM是Universal Verification Methodology的缩写, 全称即通用验证方法学。

这种方法学是由Cadence、Mentor和Synopsys公司联合推出的验证方法学, 起源于OVM (Open Verification Methodology) [1]。它采用了诸多当前主流验证方法学的优点, 可以为工程师提供随机化的激励产生方式及具有可重构性的验证部件, 以此来提升验证效率。

本论文结合在研发某芯片设计中的SPI总线控制器, 应用UVM搭建仿真验证平台, 完成SPI总线控制器的验证工作, 为以后芯片研制中的SPI控制器验证提供了可重用的验证环境。

1 SPI总线控制器简介

SPI是一种高速的、全双工的同步通信总线, 使用四根通信线路, 极大的节约了芯片的管脚数目, 同时节省了PCB版上布局空间[2]。出于简单易用的特点与特性, 更多的芯片开始集成SPI总线接口。SPI通信双方为主、从关系, 在这种工作模式下, 通常有一个主设备和一个或多个从设备, 设备之间可以用4 线模式 (双向传输时) 或3 线模式 (单向传输时或单主单从工作模式) 连接。

SPI是为环形总线的结构, 主控制设备通过产生移位时钟来发起通讯。通讯时, 主设备通过发送时钟信号来控制数据的输入输出, 数据在总线上由MOSI输出, MISO输入, 数据与时钟信号的关系为用户自主克配置, 这样经过若干次时钟的改变, 完成相应位数的数据传输。

在SPI传输中, 数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲而产生的总线控制器输出时钟, 摩托罗拉没有定义任何通用SPI的时钟规范。然而, 最常用的时钟设置基于时钟极性 (CPOL) 和时钟相位 (CPHA) 两个参数, CPOL定义SPI串行时钟的活动状态, 而CPHA定义相对于数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。

2 UVM验证平台搭建

2.1 层次化验证平台

验证平台 (testbench) 通过硬件验证语言[3]搭建而成, 验证工程师在功能验证中, 在被测设计外部完成验证平台的搭建。验证通常采用向被测设计中施加不同的激励, 然后观察DUT的输出结果, 并且将这个结构和要求的期望值做比较, 从而验证DUT是否正确。所以生成各种不同的激励是一个验证平台最重要的功能。

验证工程师通过将各种验证方法集成在验证平台中来提高验证的效率。为了能够集成更多高级的验证方法, 引入了分层的验证平台的方法。这个过程中, 抽象程度随着层次的增高而增大。

1) 信号层是最底层的。DUT属于信号层, 连接DUT和验证平台的信号也属于信号层。

2) 命令层主要包含用于驱动DUT的激励同时监测从DUT中采集的输出信号。

3) 功能层负责将上层的事务接收后分解为数据包发送给命令层, 功能层的另一个作用就是预测结果, 将预测的结果和DUT的输出进行对比。

4) 场景层的作用主要就是产生激励。

验证环境是由以上几个层次相组合构成的。对于不同的DUT这个层次的划分会有所不同。虽然表面上看划分层次好像是提高了验证平台的复杂度, 但是事实上这样做划分了各个模块的功能, 提高了代码功能的清晰度, 有利于验证平台的搭建。

2.2 通用UVM验证平台逻辑结构

一个典型的UVM验证平台[4], 包括driver (驱动器) 、monito (监视器) 、sequencer (序列器) 、agent (代理器) 、scoreboard (计分板) 、reference model (参考模型) 和env (环境) 等通用验证组件 (Universal Verification Component, 简称UVC) 。

UVM预先定义好了一个类uvm_component。UVM平台中的主要部件, driver、monitor、model、scoreboard等都要从这个类来派生而来。通过类派生的形式, 把各个部件等都以树型结构组合起来, 使验证平台的层次清楚, 易于执行操作与更改。

整个UVM验证平台的各个部分就如同一棵倒置的树, 如下面图1 所示。

2.2.1 Driver

UVM验证平台中的driver派生自uvm_driver。driver是UVM验证平台的最基本的验证组件, 也是除reference_model之外最复杂的验证组件。driver会将由sequence受约束随机产生的事务级数据转变成DUT端口级别的数据, 再驱动到与DUT的相连的接口上。

2.2.2 Sequencer

UVM验证平台中的sequencer派生自uvm_sequencer, 并且在定义时会指定要产生的事务级数据类型。sequencer的作用非常简单, 就是将sequence中产生的受约束的随机事务级数据发送给driver。

2.2.3 Monitor

对于一个很大项目来说, 仅仅依靠波形来判断DUT的功能是否正确是不可靠也是不现实的。正确做法应该在验证平台中引入自对比机制, 通过log文件中有无error来确定DUT的功能是否正确, 这就要在验证平台中引入reference model、scoreboard和monitor。monitor是实现监测DUT行为的验证组件, 其派生自uvm_monitor。

2.2.4 Agent

为了提高验证组件的可移植性, UVM中通常将driver、monitor和sequencer封装在一起, 成为一个agent。因此不同的agent就代表了不同的协议。agent派生自uvm_agent。

2.2.5 Reference model

由于UVM验证平台需要自对比机制, 即需要将DUT的输入数据与DUT的输出数据进行对比, 所以需要在验证平台中引入reference model验证组件, reference model直接从uvm_component中派生出来。reference model分两种, 一种是与DUT的功能一样, 相当于用不可综合的风格写出的与DUT功能相同的算法;另一种reference model相当于DUT的逆运算。

2.2.6 Scoreboard

scoreboard派生自uvm_scoreboard, 是一个uvm_component, DUT的输入或输出数据与reference model输出的数据在scoreboard中进行自对比, 对比成功会打印一个标志, 比对失败也会打印一个标志, 这样使验证工程师不用根据波形来判断DUT功能是否正确, 减小了验证工作出错的机率。

3 基于UVM的SPI总线控制器验证平台搭建

结合UVM验证平台的逻辑结构与SPI控制器的工作模式, 搭建完整的验证平台。基于上节UVM通用验证验证平台的搭建, SPI总线控制器UVM验证平台的框图如图2 所示。平台主要包括两个SPI agent和reference model。其中, SPI sequencer用来获取SPI sequence, SPI driver将从SPI sequencer获取的事物级数据, 即总线上预想发送数据的时序要求与数据内容发送给SPI总线控制器即DUT。这些事物级数据包括了对SPI总线控制器的控制寄存器配置以及传输数据的取值。

SPI agent同时将相同的数据给SPI reference Model, 其中的数据为发送到总线上的数据。Out-agent只有Out monitor一个部件, 该部件用来监控SPI总线控制器的数据输出。Scoreboard接收SPI reference Model和Out agent传来的数据, 并进行比较, 输出结果信息。

在验证平台的搭建中, 将sequence分为两个部分。一方面为配置寄存器的cfg_sequence, 一方面为发送数据的配置。通过sequence的细化, 达到将数据与配置分离, 减小实际验证工作中的工作量的目的。

当验证平台向DUT输入信号后, DUT会对输入信号有一定的响应。这个响应需要在记分板中进行判断, 这时就需要有一个对比值, 而这个对比值就是reference model产生的。reference model向Scoreboard的输出为SPI总线控制器要发送的数据。在reference model中不需要考虑SPI总线控制器工作模式的问题, 只关注与需要发送的数据。在rx_monitor中, 通过接收DUT输出的串行数据信号与时钟信号, 判断发送数据的工作模式。在tx_monitor中, 通过接收DUT的输入配置来确定应有的发送模式, 通过对比确定DUT发送功能的正确。

4 总结

通过UVM验证平台验证SPI总线控制器, 经仿真验证, 功能覆盖率及代码覆盖率都达到了要求, 并且该验证环境可以灵活的集成到系统验证环境中, 使SPI模块可以在顶层验证中应用, 做到了可重用验证。

摘要:本文通过应用UVM高级验证方法学, 搭建适用于SPI总线控制器的验证平台和验证环境, 并实现对其不同模式下数据传输的功能验证, 提供了一种可重用的高效验证方法, 有利于提高验证效率, 缩短设计周期。

关键词:UVM,SPI总线控制器,仿真验证

参考文献

[1]柏才明.基于OVM的SoC功能验证系统的设计与实现[D].华中科技大学, 2011.

[2]杨美刚, 李小文.SPI接口及其在数据交换中的应用[J].通信技术, 2007, 40 (11) :385-387.

[3]钟文枫.SystemV erilog与功能验证[M].机械工业出版社, 2010.

总线控制器 篇5

(1)SCC:Supervisory Computer Control 计算机监督控制(2)DDC: Direct Digital Control 直接数字控制(3)DCS:Distributed Control System 集散控制系统

(4)CIMS:Computer Integrated Manufactured System 计算机集成制造系统(5)FCS:Fieldbus Control System 现场总线控制系统

(6)CIPS:Computer Integrated Process System 计算机集成过程系统(7)PLC:Programmable Logic Controller 可编程逻辑控制器

关于DCS: 集散型控制系统,又称分布式控制系统。是计算机技术(Computer),通信技术(Communication),图形显示技术(CRT),控制技术(Control)的发展产物。主要特点:可靠性高,灵活的扩展性,完善的自主控制性,完善的通信网络。设计思想:危险分散,控制功能分散,操作和管理集中。

DDZ_II DDZ_III:电动单元组合仪表

II特点:

(1)采用0-10mA的直流电流为统一的联络信号(信号制式),只有电流输出。

方便各单元联系

(2)将整套仪表分为若干能单独完成某项功能的典型单元

(3)信号下限从0开始,便于模拟量的加减乘除开方等数学运算,并能使用通

用刻度的指示、记录仪表。

III特点:

(1)采用国际上统一使用的4-20mA的直流电流或者1-5V的直流电压作为联络

信号(信号制式),信号电流与电压转换成电阻250欧姆。现场与控制室之 间的信号传输采用电流传输方式,控制室内的仪表之间使用电压传输方式。(2)信号下限不是从0开始,使仪表的电气零点和机械零点得以分开,便于检验信号传输线是否断线以及仪表是否断电,并为现场送变器实现两线制(既是电源线又是信号线)提供可能性。(3)集中统一供电,采用线性集成电路

SCC结构

计算机定时采集生产过程参数,按指定的控制算法求出输出关系和控制量,并通过一定方式提供现场信息。可以不经过人员的参与而直接对生产过程施加影响。闭环结构

DDC结构

计算机对被控参数进行检测,再根据设定值和控制算法经过运算输出到执行机构,是参数稳定在给定值上。

DCS主流网络协议: OSI:七层

TCP/IP:TCP(传输控制协议)和IP(网际协议)FF:Fieldbus Foundation现场总线基金会 FCS主流协议:

CAN: Controller Area Network 一种有效支持分布式控制系统的串行通信网络 性能高,可靠性高,传输速率高。采用一种称作广播式的传输工作方式,其特点是废除了传统的以节点地址为中心的编码方式,而代之以基于数据块的编码方式 LonWorks:Local Operation Networks 特色是智能节点,可以脱离上层的管理工具自行完成数据采集和处理,并能与其他节点共享数据。节点内部可以编程 ProfiBus: 应用最广泛,包括12M的高速总线DP和用于过程控制的低速总线PA,完美结合使其在结构和性能上优越于其他总线 FF:

DeviceNet:CAN总线的基础上建立起来的,开放,低成本,高效率,高可靠性

AI采集温度信号

现场PLC电源电源rCRRRRrBRTDRTADrRrRr 1-5V转化为4-20mA

这个电路叫郝兰德电路,是典型的电压电流转换电路。其特点是负载电阻有一端接地(恒流源通常有这个要求),而取样电阻两端均不接地。之所以能够实现这个要求,关键就是上面一个运放和电阻的匹配。上面一个运放显然是跟随器,其输入阻抗很高,可以看成开路,其输出阻抗很低,可以看成电压源,而电位与Rs右端相同。这样就避免了R2中电流对输出的影响(R2不从输出端取用电流)。利用运放的虚短和虚断可以退出加在RL两端的电压是 V*RL*R2/R1/RS,因此流过RL的电流IL为V/RS*R2/R1,与负载无关。由运放虚短概念可知,V2=V1,V5=V4 V3=V2+(V2/R3)*R4 ―> V3=V2*(1+R4/R3)=V1*(1+R4/R3)V1=R1*(V5-V)/(R1+R2)+ V -> V5=V1*(1+R2/R1)–V*(R2/R1)

= V3

–V*(R2/R1)= V4 采样电阻RS两端的电压为:V4-V3= V*(R2/R1)流过RS的电流为:(V*(R2/R1))/RS,其大小与负载电阻RL无关,受输入电压V

控制。电流源

4-20mA转化为0-5V

看门狗电路原理

看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位臵开始执行,这样便实现了单片机的自动复位.RTOS 当外界事件或数据产生时,能够接受并以足够快的速度予以处理,处理的结果又能在规定的时间内来控制生产过程或度对处理系统做出快速响应,并控制所有实时任务协调一致运行。特点:

 实时:每个可执行的任务都能及时响应,都可享用“时间片”。 多任务:多个程序并行执行。

 响应异步实体:能够接受来自外部的中断

 能够保证任务切换时间:必须有定时系统和实时时钟

 必须有尽快的中断响应时间:即对最高优先级中断的快速响应  可以实现多任务调度功能:循环、优先级  必须可以实现同步和互斥功能:资源共享

CSMA/CD 优点:原理比较简单,技术上易实现,网络中各工作站处于平等状态,不需要集中控制,不提供优先级控制

缺点:网络负载增大时,发送时间增加,发送效率急剧下降。

原理:发送数据前先侦听信道是否空闲。如果空闲,则立即发送数据。如果忙碌,则等待一段时间至信道中的信息传输结束后再发送数据。若在上一段信息发送结束后有两个或以上的节点都提出发送请求,则判定为冲突。冲突的话就立即停止发送数据,等待一段时间后再重新尝试。先听先发,边发变听,冲突停发,随机延迟后重发。Token Bus/Token Ring 令牌总线(Token Bus)是一种在总线拓扑结构中利用令牌(Token)作为控制节点访问公共传输介质的控制方法。在令牌总线网络中,任何一个节点只有在拿到令牌后才能在共享总线上发送数据。若节点不需发送数据,则将令牌交给下一个节点。

CSMA/CD与Token Bus都是针对总线拓扑的局域网设计的,而Token Ring 是针对环型拓扑的局域网设计的。如果从介质访问控制方法的角度看,CSMA/CD属于随机型介质访问控制方法,而Token Bus 和Token Ring属于确定型介质访问控制方法。Token Bus适用于实时性要求较高的场合。OSI的七层:

 物理层:数据单位为比特。为数据端设备提供传送数据的通路  数据链路层:数据单位为帧。为网络层提供数据传送服务

 网络层:数据单位为数据包。选择合适的网间路由和交换节点,确保数据及时传送。主要设备是路由器  传输层:数据单位为数据段。

 会话层:以后单位均为报文。不参与具体的传输,提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如用户登录验证。

 表示层:主要解决用户信息的语法表示问题。将某一用户使用的抽象语法转化为OSI系统内部使用的传送语法。如数据的压缩和解压缩,加密和解密。 应用层:为操作系统或网络应用程序提供访问网络服务的接口。TCP/IP:

 网络接口层:定义物理介质的各种特性。

 网络层:负责相邻计算机之间的通信。Ip协议是网络层的核心

 传输层:提供应用程序之间的通信;格式化信息流,提供可靠传输。接收端必须发回确认,并且假如分组丢失,必须重新发送  应用层:提供常用的应用程序

PID:

U(t)Kc[e(t)1Tit0e(t)dtTdde(t)]dt

U(k)U(k)U(k1)Kc{[e(k)e(k1)]TTe(k)d[e(k)2e(k1)e(k2)]}TiT

PID整定方法:

(1)临界比例度法/闭环震荡法

通过试验得到临界比例度PB和临界周期Tk,然后根据经验公式求出控制器各参考值。被控系统稳定后,首先将积分时间放大最大,微分时间放到0,相当于只使用比例作用。然后观察其阶跃响应,从大到小逐步把控制器的比例度减小,看测量值震荡的变化情况,当产生恒定幅度和周期的震荡波形时,记下PB,Tk。然后根据经验公式求得PID参数。

特点:不需要求得控制对象的特性,而可以直接在闭合的系统中进行整定,适用于一般的系统。对于临界比例度比较小的系统不适用,而且有的系统是不容许震荡的。

(2)衰减曲线法

跟1差不多,只是不是等幅振荡,而是衰减4:1或者10:1的时候记下衰减比例度Ps和衰减周期Ts,然后根据经验公式求得

特点:简单实用,适用于一般的控制系统。但是对于干扰频繁,记录曲线不规则,不断有小摆动时,难以获取有效参数,不适合用。(3)经验凑试法

选取一个合适的P,Ti作为起始值;改变参数观察曲线变化形状,不断改变参数满足需求。然后在此基础上加入微分作用,选取微分参数后试着减小P,Ti凑试,得到最佳结果为止。Pid各参数的作用:

Kp越大,被控曲线越平稳。但是会产生余差,需要引入积分作用。Ti:消除余差

Td:超前控制,在偏差大之前调整

IEC标准编程语言: 1 梯形图:适合于逻辑控制 功能块图:合适于典型固定复杂算法控制如PID调节 3 顺序功能图:适合于多进程时序混合型复杂控制 4 指令表:适合于简单文本自编专用程序 结构化文本:适合于复杂自编专用程序,如特殊的模型算法 未来组态的发展:

组态就是利用工控软件中提供的工具和方法来完成工程中某一具体任务的过程,这个软件就叫做组态软件。

组态软件作为一种工业信息化的管理工具,其发展方向必然是不断降低工程开发工作量,提高工作效率。易用性是提高效率永恒的主题,但是提高易用性对于提高开发效率是有限的,亚控科技则率先提出通过复用来提高效率,创造性地开发出模型技术,并将这一技术集成到KingView7.0中。这一技术能将客户的工程开发周期缩短到原来的30%或更低,将组态软件为客户创造价值的能力提高到了一个新的境界,代表了组态软件的未来。

组态软件的发展必将沿着更好的人机交互、更加逼真的画面、能满足客户个性化需求、具备行业特征和区域特征、具有很好的开放性、信息唾手可得和更高的可靠性以及大型SCADA的方向发展。

FCS:

减少接线和安装的原因:由于现场总线系统设备前端的智能设备能执行多种功能,可以减少变送器的数量,也不需要信号的调理转换、隔离技术等,节省了一大笔硬件投资。

现场总线的接线非常简单,由于一对双绞线或一条电缆上通常可以挂接多个设备,所以电缆、端子、槽盒、桥架的用量大大减少。当需要增加现场控制设备时,无需增加新的电缆,可就近连接在原有的电缆上,这样可以节省大量的电缆。特点:

适应工业应用环境,要求实时性强,可靠性高,安全性好。多为短帧传送,通信的传输速率相对较低。

结构:全分布、网络集成式控制系统。企业的底层网络

FCS区别于DCS的特点

 系统的开放性、互用性  摆脱了传统常规模拟仪表的束缚  在各个层次上都采用了数字通信技术  系统结构的高度分散

 数字仪表在生产现场构成虚拟控制站(Virtual control station)

CAN总线: 特点:

 CAN不采用节点地址编码,而是对报文编码,节点通过报文滤波决定是否与其有关,即接受或发送相应的报文。

 CAN采用多主工作方式,节点不分主从。

 CAN总线节点报文分成不同的优先级,满足不同的实时需求。 CAN总线采用总线仲裁技术,保证优先级高的节点实时传输报文。

工业以太网与商业以太网的区别:

商用以太网具有价格低、通信速率和带宽高、兼容性好、软件资源丰富、广泛的技术支持基础和强大的发展潜力等优点。但是以太网采用了载波侦听多路访问/碰撞(冲突)检测(CSMA/CD)的传输规范,这无法满足工业控制中的实时性、确定性、可重复性等方面的要求;此外,现有的高层协议也无法满足工业控制要求。工业以太网需要应对更为恶劣的环境需求。工业以太网的优势

 可满足控制系统各个层次的要求,利于管控一体化。 设备成本下降。

 用户拥有成本下降。(维护) 易与Internet集成。 广泛的开发技术支持。 大量的现有软件资源。以太网的优势:

工业以太网面临的问题

 通信实时性

 环境适应性与可靠性(结构、连接器) 总线供电(5类线中的空闲线,10-36V) 本质安全(防爆安全栅)

本质安全是指通过设计等手段使生产设备或生产系统本身具有安全性,即使在误操作或发生故障的情况下也不会造成事故的功能。具体包括失误—安全(误操作不会导致事故发生或自动阻止误操作)、故障—安全功能(设备、工艺发生故障时还能暂时正常工作或自动转变安全状态)。

本质安全防爆方法是利用安全栅技术将提供给现场仪表的电能量限制在既不能产生足以引爆的火花,又不能产生足以引爆的仪表表面温升的安全范围内,从而消除引爆源的防爆方法。

现场总线的发展趋势: 1.注重系统的开放性

2.注重应用系统设备间的互操作性 3.注重控制网络与公用数据网络的结合 4.注重使测控设备具备网络浏览功能 5.以太网已直接进入控制网络

6.多种通信方式下的数据传输与数据集成,管控一体化目标下的数据综合利用

PLC 优点:

1.编程方法简单易学 2.功能强,性能价格比高

3.硬件配套齐全.用户使用方便。适应性强 4.可靠性高。抗干扰能力强

5.系统的设计、安装、调试工作量少

6.维修工作量小,维修方便 7.体积小,能耗低

发动机和变速箱的CAN总线控制 篇6

【关键词】CAN总线;变速箱;发动机;J1939

【中图分类号】S219.031 【文献标识码】A 【文章编号】1672—5158(2012)08—0153-01

一、现有系统介绍

主动式铲运车是动力系统主要包括发动机、变速箱,其协调控制是基于CAN总线通讯来实现,现已通过CAN总线实现了发动机与变速箱的协同控制,摆脱了以往依靠机械式或电气输口的输入控制方式。依托CAN总线发动机及ZF变速箱全开放J1939通信协议标准,根据发动机和变速箱的特性进行集中控制,使各方面专家的成熟控制方案得以实施,在控制其节能和功率控制方面创国内领先水平。该设备于2010年由欧洲引入国内,经过2年的试制研发,其电气控制系统完全由国内专家协作开发,已达到国内工程设备先进水平。

目前这在国内实用两年的成熟动力CAN总线控制系统在采用04排放的发动机的最新铲运机型上得到了继续沿用,并于2012年8月瑞士试机成功。

二、J1939协议简介

J1939是运用于移动车辆的一种支持闭环控制的多个组成部件控制器之间的高速通信网络协议,它CAN2.0为核心,一个J1939的CAN数据帧由标识符(ID)、数据度、最长8字节的数据内容组成。其中标识符信息包含了以下信息:优先权(P)、保留位(R)、数据页位(DP)、协议数据单元(PDU formamt)和源地址(sourceaddress)。

三、发动机J1939部分

通过发动机CAN总线J1939协议可以实现发动机诊断、状态监视、油门控制等多方面信息传递。发动机的状态和控制是通过数据长度为8字节不同的CAN数据包来进行传送,这些数据据包通过各自不同的ID号来加以区别,每个数据包在J1939协议中以不同的名字来命名。其中较常用的如是反映发动机当前故障点的故障号(DM1、DM2、DM5),发动机工作总时间,当前电池电压,燃油经济性,燃油温度和冷却液温度(EET),当前发动机转速及转矩(EEC1)、載荷百分比(EEC2)、冷却液位及机油压力(EFL/P),空压温度;用来控制的CAN数据包发动机转速\转矩控制(TSC1),发动机软启停和最重要的修改发动机工作曲线的CAN指令等。

对于04排放发动机J1939部分新增了冷却水位,后处理器(DPF)选择开关及DPF灯等需要强制安装的开关和灯等元器件相关协议,这样就只需要对虚拟仪表和PLC程序略加改动就能从以往旧有程序升级到适用于04排放发动机的程序。

四、变速箱CAN数据部分

变速箱与发动机和控制器通过CAN总线来进行联系,从发动机和变速箱所发出的CAN数据中可以获得足够的控制信息来协调整个电气系统工作在合理的工作范围内,实现功率分配的最优化和节能的最大化。在发动机所发出的CAN数据中,最常用的包括下列主要状态数据:发动机输入转速、输出转速、变档范围、当前档位、档位方向、OP模式等(TCU1);AEB模式及其子代码、各电气输入输出点的IO状态、油底壳温度等(TCU2)等。对于变速箱,将从总线上获取EEC1、EEC2、EEC3、ERC1、CCVS等各帧CAN数据作为变速箱运行的参考,同时发出TSC1、ETC1、ETC2数据放到CAN总线上供发动机和设备控制器使用。

依据变速箱的相关CAN总线指令协议,在控制方面变速箱可以摆脱电气物理控制接口,实现全CAN通讯控制,这也为生产厂家降低了相关硬件成本,并尽可能减少了维修故障点提供了可能性。

五、设备控制器

设备控制器接收以上发动机和控制器所发出的讯息,采集液压系统等传感器的电气讯号,将信息汇总分析后对设备执行机构发出操作指令,并依据协议规定的CAN数据对发动机转速和扭矩进行控制以及对变速箱的当前档位、采用的工作模式进行操作,并进行协同工作,同时将采集的信息如故障代码、状态信息发送到人机界面,并由人机界面给出相关提示信息和诊断讯息指导操作人员和维护人员进行相关操作或提供信息参考,另外可由专业技术人员通过人机界面来对发动机工作曲线、变速箱工作模式,对整台设备的功率分配方式及节能制式进行简单的配置。

六、前景探讨

整车控制系统通过J1939协议获取发动机和变速箱的转速及转矩信息,加上设备控制器从液压系统采集的液压信息,和通过电磁阀芯反馈电流值大小可控制液压回路的输出排量,合理估算出各子系统的功率分配,通过人工输入的当前工况,根据设备不同的工作特性,采用适当的发动机工作曲线和设置变速箱的不同变档工作曲线,使设备工作得以顺畅的工作在最经济的工作状态下。

现在如何节能已经成为全球面临的普遍问题,越来越多工程设备面临着如何更多地降低油耗的问题,设备各种组成部件由不同的专业厂家制造,而CAN总线通讯技术使得各组成部件按照预设的工作方式协调工作成为可能,基于开放式总线通讯技术的动力控制系统在节能这一方面具备不可比拟的优势,而基于CAN的J1939控制为实现这一最经济的工作方式铺平了道路,不难想像将来在这一基础之上,更先进的节能技术将会不断推陈出新,被开发出来并应用于不同的设备平台。

参考文献

[1]饶运涛,邹继军,郑勇芸S现场总线CAN原理与应用技术[M]北京:北京航空航天大学出版社,2003:18

[2]阳宪惠,现场总线技术及其应用。北京:清华大学出版社,1999

总线控制器 篇7

1. 1 硬件系统设计

基于PCIe总线接口的高速数据传输系统分为发送板与接收板两块PCB板,其在硬件上由相同的模块组成:主要由FPGA芯片,DDR3 内存条模块以及GTX高速差分收发器、时钟芯片与电源芯片组成,如图1 所示。

1. 2 FPGA系统逻辑设计

本设计中的FPGA逻辑设计分为两部分,分别是在发送板中的发送系统逻辑与接收板中的接收系统逻辑,如图2 所示。

发送系统逻辑的主要功能为:当计算机主机将待发送数据放入计算机内存后发起DMA传输。接收系统逻辑的主要功能为:由GTX模块将远端发送板的数据接收到DDR中,最后DMA控制器将DDR中的数据以PCIe报文的形式发送至系统主机内存中。

2 PCIe总线接口实现与DMA控制器设计

2. 1 PCIe协议

(1)PCIe分层结构

PCIe规范定义了分层的协议架构。整个PCIe协议由事务层、数据链路层和物理层组成。每一层都被分为发送部分和接收部分,发送部分处理待发送报文数据,接收部分处理已接收报文数据。如图3 所示。

(2)PCIe地址空间与事务报文

在系统初始化时,系统主机通过访问PCIe设备的配置空间来识别和配置PCIe设备的工作参数。在PCIe协议中,访问不同的地址空间需要不同的报文来完成。报文种类有:存储器读、写报文,IO读、写报文,配置读、写报文,完成报文等。

(3)PCIe中断与事务序

本设计中的PCIe设备使用MSI中断方式,该方式通过对系统主机的特定地址发起写指定数据的存储器写事务来实现中断请求。

2. 2 PCIe协议接口实现

PCIe接口的实现使用了Xilinx公司的FPGA内部提供的知识产权核,设计者只需根据设计需求设置核参数即可实现PCIe接口协议。该IP核实现了PCIe协议中事务层以下的所有功能,设计者只需实现数据报文的拆包组包即可。

(1)PCIe硬核调用

Xilinx公司FPGA采用ISE集成开发环境进行系统开发,其中IP核的例化采用开发环境中的Core Generator模组进行参数设置。

(2)PCIe硬核的AXI接口分析

PCIe IP核的接口上采用了AXI接口,本系统设计中的IP核使用AXI接口发送和接收总线分离,可以实现全双工通信模式;发送和接收事务层报文的时序如图4 所示。

2. 3 DMA控制器逻辑设计

本设计中的DMA控制器逻辑设计主要完成了以PCIe板卡设备做为Bus Master主动发起DMA读写事务的功能;整个DMA控制器主要由发送引擎、接收引擎、中断控制、DMA控制状态寄存器、乱序报文与Tag管理模块组成;其模块组成的整体结构如图5 所示。

(1)DMA控制状态寄存器设计

DMA控制状态寄存器映射在PCIe设备的BAR0 空间中,偏移地址为0x00 至0x3f。系统主机在初始化PCIe板卡设备时,给BAR0 空间分配基地址。在本设计中,DMA写操作的数据传输方向为从PCIe板卡到系统主机内存。DMA读写流程如图6所示。

(2)发送引擎与接收引擎设计

在DMA控制器中,发送引擎的主要任务是根据DMA控制状态寄存器的DMA读写状态或根据接收引擎由完成报文的请求来发送报文至PCIe硬核,发送和接收引擎状态机如图7 所示。

发送引擎中,Tstate_0 为系统上电的初始状态;当设备初始化完成后,状态机自动跳进Tstate_1。

在发送引擎的实现中为了在做DMA传输过程中不阻塞主机通过BAR0 空间读、写DMA控制状态寄存器或映射于BAR0 空间的PCIe配置信息,设计中使用了round - robin机制。在该机制下每发送4个DMA事务报文时,查询一次读完成请求信号。若该信号有效则优先发送读完成报文。

接收引擎中,Rstate_0 为系统上电复位后的初始状态,当PCIe设备链路初始化完成后状态机自动进入Rstate_1 状态;在该状态下若接收到事务报文则根据报文包头译码确定报文种类。

PCIe中断实现:

Virtex - 6 系列FPGA中的PCIe IP核提供了Legacy模式和MSI模式两种中断模式,本设计中的读写中断采用MSI中断方式。本系统中DMA写完成中断的向量号为5’h00,DMA读完成中断的向量号为5’h01。

3 系统验证与测试

本节重点进行DDR3 模块和DMA控制器模块的读写测试以及本设计的整体性能测试。本设计中的硬件平台结构如图8 所示,其中PCIe板卡即为本方案中设计的板卡。

3. 1 DMA控制器接口性能测试

(1)DMA读写测试验证

①DMA写测试验证

DMA写事务的工作任务是将从DDR3 中读取的数据通过PCIe硬核以DMA方式传输到系统内存上。在测试时,建立一个测试模块,在合适的时刻向DMA控制器发送递增码。图9( a) 中显示的是DMA写数据波形的初始波形。在系统上位机发起DMA写事务后执行以下操作。如图中标号1 所指示位置。DMA控制器中的接收引擎将接收到系统主机向PCIe设备的BAR0 空间发起的存储器写事务。此事务是为了设置DMA传输的写目的地址,DMA传输长度等DMA工作参数。如图中标号2 所指示位置。在完成DMA工作参数的设置后,dma_wr_start信号变为有效,随后发送殷勤引擎开始发送数据为递增码的报文至系统主机。

②DMA读测试验证

DMA读事务的工作任务是在系统内存中指定地址的位置读取指定大小的数据到PCIe设备上。该事务是由通过PCIe设备向系统主机发起存储器读事务来实现的。在DMA传输开始前,系统主机将准备好的递增码数据放到对应的系统内存中,等待DMA传输时读取该段数据。图9(b)中显示的是DMA读数据波形的初始波形。如图中标号1 所指示,系统主机将向PCIe设备的BAR0 空间发起几次写数据事务,图中标号2 所指,在完成DMA工作参数的设置后,发送引擎向系统主机发起DMA读请求事务。图中标号3 所指,在DMA控制器的发送引擎发送存储器读报文请求至系统主机后,接收引擎将接收到来自系统主机的存储器读完成报文,该报文携带了数据信息。

(2)PCIe中断测试验证

在完成DMA读写事务时,DMA控制器根据中断屏蔽状态决定是否发起MSI中断。当系统主机接收到来自PCIe设备发起的中断后将处理DMA传输结果。本设计中使用的中断方式以及波形图如图9( c) 和图9( d) 所示。

3. 2 系统整体性能测试

(1)发送板性能测试

发送控制板将系统内存中的递增码,通过PCIe接口以DMA方式将数据转移到发送板上的DDR3SDRAM中,最后通过4 路GTX模块将数据串行发送出去。发送板的上位机截图如图9(e)所示。

(2)接收板性能测试

PCIe接收板通过四路GTX接收数据,之后将其存入接收板中的DDR3 内存条中,最后通过PCIe接口以DMA方式将数据写入到系统主机的内存中。接收板的上位机截图如图9(f)所示。

4 结束语

本文提出了一种基于PCIe总线的高速数据收发板卡的实现方案,本方案的硬件是以FPGA为控制中心实现基于PCIe总线的DMA高速数据传输。在传输过程中处理器无需干预数据传输,仅由PCIe板卡设备作为总线事务发起者发起数据传输事务,完成数据传输;以DDR3 内存条作为外部高速大容量缓存,其存储容量达到1GB,线速度达到800MHz,在设计内部将DDR3 内存条接口封装为虚拟FIFO,实现了操作简易的高速大容量缓存;以4 路GTX高速差分收发器作为收发接口实现发送板与接收板之间的数据传递。

参考文献

[1]黄寅.高速数据存储系统的设计与应用[D].武汉:华中科技大学硕士论文,2009.

[2]Raviv Budruk.PCI Express System Architecture[M].Don Anderson,Tom Shanley.USA:MINDSHARE,2003:10-11.

[3]崔炳喆.基于PCIE总线的多DSP系统接口设计和驱动开发[J].电子设计工程,2012(9):89-91.

[4]夏玉立,雷宏,黄瑶.用Xilinx FPGA实现DDR SDRAM控制器[J].微计算机信息,2007(26):209-211.

[5]潘一飞,余海.基于FPGA的DDR3用户接口设计[J].电子科技,2013(15):9-11.

[6]王齐.PCI Express体系结构导读[M].北京:机械工业出版社,2010:101-102.

[7]何宾.Xilinx可编程逻辑器件设计技术详解[M].北京:清华大学出版社,2010:12-13.

总线控制器 篇8

1553B总线是在20世纪70年代末由美国提出的飞机内部电子系统互联的标准,具有灵活性和高可靠性,广泛应用于三代机中[1,2]。经过多年的发展和型号应用,1553B软硬件设计技术已经相当成熟,但随着系统性能的提升,系统对1553B总线的性能要求也越来越高,应用模式也发生较大的变化,如何让1553B总线适应新的系统性能要求及新的应用模式是当前研究的热点。

BC是1553B总线消息传输的组织者和发起者,即总线上所有的消息传输都由BC通过发送1553B命令来实现,RT响应BC发送的命令并执行操作。1553B总线是双冗余的传输线,具有A、B两个互为备份的通道,增强了系统的可靠性[3,4]。但是,由于总线上只能存在一个BC,一旦BC出现故障,则整个总线将瘫痪。工程实践中通过增加BBC的方法来提升系统的可靠性,殷杰波等人提出了利用RT模式作为BBC的设计方法[1],该RT只接收一条BC的特定消息,通过查询该消息的时间标志寄存器判断在周期内是否收到了该消息,以此判断BC是否工作正常。此设计方法简单有效,一旦BC故障,BBC可以切换为BC模式,进行总线管理与维护。杨卫军等人提出了利用MT模式作为BBC的设计方法[2];以上设计中,BBC仅用于监控BC的工作状态,功能单一。新的应用需求中,BBC需要具备三个功能:监控BC的工作状态、与其他子系统通信、同步获取BC与其他子系统之间的应用数据传输,完成系统应用的同步解算,传统RT或者MT模式作为BBC的设计方法无法满足系统的要求,本文依据某1553B协议芯片,针对新的应用模式,给出了一种BBC工作于RTMT模式的设计方法。

1 1553B应用模式

1553B采用总线型拓扑结构,节点按照功能可以划分为3类[3]:BC、RT及MT,新的应用模式下,接口控制文件定义了应用相关的所有RT-BC及BC-RT的消息,如图1所示,A系统为主,B系统为备份,A系统主机通过BC负责消息的组织与发送,B系统主机作为备份具有三个功能:

(1)通过BBC监控A系统的运行状态,一旦A系统故障,B系统复位BBC并将其切换为BC,控制整个网络的正常运行;

(2)BBC要能够完成与BC及其他RT的数据通信;

(3)B系统主机需要实时获取ICD文件中定义的所有应用相关的消息,用于同步解算。例如,ICD文件中MSG1为一条RT-BC的消息,当BC组织此消息时,A系统主机通过BC获取到该消息,与此同时,B系统也要通过BBC获取到该消息。

在以往设计模式中,如果BBC工作在RT模式,要满足功能(3),必须根据原ICD文件中定义的RT-BC及BC-RT的消息增加相同数量的RT-BBC及BC-BBC的消息,会导致消息量倍增,无法保证系统的实时性,甚至超出1553B协议可承载的消息数量;如果BBC工作于MT模式,则无法满足功能(2)。针对新的应用模式,RT功能可以满足条件(1),(2),MT功能则可以满足条件(1),(3),若BBC工作于RTMT模式,某一时刻仅能工作于其中一种工作模式,即作RT时,完成RT功能,MT功能停止,作MT时,有选择的监控总线上的通信数据,RT功能停止,RTMT功能根据总线上消息的类型完成自动切换,如果总线上的消息是与BBC的RT地址相关,则工作于RT模式,如果总线上的消息和BBC的RT地址无关,则工作于MT模式,则可以在不增加消息通信量的条件下满足新的应用模式。依据备份总线控制器工作于RTMT模式的思想,本文基于1553B协议芯片给出了BBC工作于RTMT模式的设计与实现方法,其应用模式如图1所示。

2 设计与实现

1553B协议芯片内部功能强大,接口灵活、便于控制,可设置为BC、RT、MT及RTMT模式,在需要主机较小干预的情况下,基于RT地址、T/R位及子地址进行选择性消息监控。MT模式包含一个命令栈和一个数据栈,位于共享RAM的固定位置,且与BC或RT的命令栈独立,选择消息监控模式下,协议芯片接收到一个有效命令,根据“选择监控表”(RAM中固定位置)决定是否使能该消息,如果指定的BIT位在“选择监控表”内是0,命令将不被使能,忽略该消息,如果BIT位为1,命令被使能,进入监控命令栈并将数据内容存放到相应的监控数据栈中。

RTMT模式使得协议芯片除了处理和自己RT地址相关的消息外,其余时间用来有选择的监控总线上的数据,其通过一个中断状态队列实现RT模式与MT模式的判断,如图2所示。

该队列按中断产生的次序记录中断条件和中断事件。中断状态队列为64 B长度,可存储32条监控消息中断。中断状态队列的指针存储在中断向量队列指针寄存器(寄存器地址0x1F)中,该寄存器必须由主机初始化,并由主机累加,中断向量队列指针寄存器始终指向下一个中断的存储地址。每个中断事件产生,协议芯片将2 B写入中断队列,第一个字为中断向量,表明哪一类事件导致了中断。中断事件被分为2类:消息中断事件和非消息中断事件,第二个字为消息描述块指针,指向消息描述块的首地址。

基于以上1553B协议芯片的特点,RTMT功能实现主要包括两部分:相关资源初始化及中断服务处理程序的设计。

2.1 协议芯片初始化

初始化协议芯片由主机完成,主要包括协议芯片固定地址初始化及寄存器初始化,表1给出了在共享RAM为64 KB的硬件环境下,RTMT的资源分配表,其中标明“固定”的表示该地址为1553B协议芯片单独使用,且地址的值不能变更。

2.1.1 固定地址初始化

RTMT模式中需要初始化的固定地址包括:RT命令栈指针A、监控命令栈指针A、监控数据栈指针A、方式代码选择中断表、方式代码数据、RT查询表A、忙位查询表、选择监控查询表、命令非法表。固定地址初始化步骤及方法如下:双端口RAM地址0000H-00FFH初始化为0000H,作为RT命令站空间;双端口RAM地址0100H初始化为0000H,用于设置RT命令栈指针首地址为0000H;双端口RAM地址0102H初始化为0400H,用于设置MT命令栈指针A起始地址为0400H;双端口RAM地址0103H初始化为0800H,用于设置MT数据栈指针A起始地址为0800H;设置方式代码选择中断表;双端口RAM地址0110H~013FH设置为0000H,用于初始化方式代码数据值为0000H;双端口RAM地址0240H~0247H设置为0000H,清除RT的所有子地址忙位;双端口RAM地址000H~03FFH设置为FFFFH,设置命令非法表;初始化RT查找表数据指针空间,接收缓冲区地址从0x6000开始,发送缓冲区地址从0x8000开始;每个数据块长度为40 B,开始的一个字作为消息块标志字,广播接收消息与非广播接收消息共用同一个缓冲区,具体初始化流程如下:

2.1.2 寄存器初始化

通过配置1553B协议芯片的寄存器,设置协议芯片处于不同的工作模式,RTMT工作模式下的协议芯片寄存器初始化方法及步骤如下:向启动/复位寄存器写入值0001H,复位ACE协议芯片;配置寄存器3写入8000H,使ACE协议芯片工作于增强模式;中断掩码寄存器1设置为0201H,使能握手失败中断及消息结束中断;配置寄存器1设置为9B80H,使能BUSY,SSFLAG,RTFLAG RT/BM;配置寄存器2设置为8498H,使能电平中断,256 B边界禁止,RT子地址发送/接收采用单缓冲模式;配置寄存器3设置为8D5DH,使能方式命令的相关操作,设置RT命令栈为256 B,MT命令栈为1 024 B,MT数据栈为2 048 B;配置寄存器4设置为C008H,外部BIT字使能,使能RT地址软件锁存方式;将经过奇校验RT地址写入配置寄存器5,作为备份总线控制器的RT地址;配置寄存器6设置为6172H,设置时钟频率为20 MHz,使能软件配置RT地址,使能协议芯片中断队列操作;将中断向量队列指针寄存器初始化为1000H,表明中断向量队列是从1000H开始的64 B空间;将数据栈指针寄存器初始化为0800H,用于设置MT数据栈指针的起始地址为0800H;读取配置寄存器1的值或上0400H后写入配置寄存器1,用于清除RT忙位,使能协议芯片进行通信。

2.2 中断服务处理

共享RAM中固定地址及ACE协议芯片寄存器初始化完成后,协议芯片即工作于RTMT模式,当协议芯片接收到有效命令,将触发消息结束中断,中断服务程序完成对该条消息的处理[5]。首先,用全局变量Curr Queue Ptr记录尚未处理的中断队列指针,其初始值为中断队列的起始地址0x1000;中断向量队列指针寄存器始终存放的是下一次中断待写入的中断队列指针,读取中断向量队列指针寄存器(1F)内下一次待写入的中断队列指针Next Queue Ptr,并进行如下处理:

其中Rt_Do_Msg()函数主要完成RT功能下消息接收或发送后的相关处理,如新数据标志的置位与清除等,方式命令的处理等。Mt_Do_Msg()函数主要完成MT功能,将数据从较小的MT数据栈(0x800~0x9FF)根据监控过滤位,将需要监控的消息按照特定的格式重新组织并存储到较大的MT数据缓冲区(0x A000~0x F000)内,以备用户使用。

3 应用实例及分析

某项目采用1553B总线作为主干总线,总线上共有RT 13个,RT地址分别为1~13,1个BC,1个BBC,工作于RTMT模式下,RT地址为18。系统应用的消息类型及条数见表2,系统应用要求BBC应能够与BC同时获取BC-RT及RT-BC之间的应用数据通信内容,用于同步解算。根据应用要求,若采用BBC工作于RT模式,排列出的总线消息类型及消息条数见表3,根据应用需求,共有BC-RT消息24条,为了满足BBC同时获取BC-RT消息的需求,必须增加24条BC到BBC的消息,同样,共有RT-BC的消息65条,为了满足BBC同时获取RT-BC消息的需求,必须增加65条RT-BBC的消息,BBC需排列接收消息为BC-BBC及RT-BBC的消息综合,共计92条,远远大于BBC作为RT模式,仅能接收消息30条消息的限制,且总线传输存在延迟,导致BBC不能与BC同步获取BC-RT与RT-BC的消息,因此,BBC工作于RT模式无法满足应用需求。若采用BBC工作于MT模式,则无法满足BC-BBC、BBC-BC及BBC-RT之间的数据传输要求。

采用新的设计方法后,BBC工作于RTMT模式,作为RT18可以满足BBC-BC、BC-BBC、BBC-RT及RT-BBC之间的消息通信,同时作为MT可以有选择的监控BC-RT及RT-BC的消息,无需额外增加BC-BBC及RT-BBC的消息,即可让BBC与BC同步获取相应应用数据内容,在不增加消息量的前提下,满足了系统应用的需求。

4 结论

本文首先介绍了当前1553B方向BBC的最新应用模式,并基于1553B协议芯片给出了工作于RTMT模式下BBC的设计与实现方法,并结合工程实例,从实际应用需求出发,分析了RTMT模式与以往RT或MT模式下的应用差别,在RT模式或者MT模式均不能满足系统要求的前提下,采用RTMT模式很好的解决了系统对于BBC新的应用需求,且无需增加任何总线负载,具有较强的工程实践意义。

摘要:总线控制器是1553B总线的核心,总线控制器出现故障,将导致整个网络瘫痪。工程实践中通过设置备份总线控制器的方法提高总线的可靠性,给出了一种新型备份总线控制器的设计方法,其同时工作于RT模式和MT模式,设置RT地址为x,RTx功能与其他RT功能相同,MT功能可有选择的监控除RTx以外的总线上的任何消息。与RT或MT作为备份总线控制器的传统设计方法相比,RTMT模式作为备份总线控制器在不增加总线负载的情况下满足了新的应用需求,已在工程实践中得到成功应用。

关键词:1553B总线,总线控制器,备份总线控制器,远程终端,监控终端

参考文献

[1]殷杰波,张书滨.1553B总线控制器双机热备份设计[J].现代电子技术,2010,33(7):39-40.

[2]杨卫军,许化龙,訾向勇.基于1553B总线的嵌入式网络BBC设计与实现[J].微电子学与计算机,2007,24(1):63-65.

[3]陈丹,赵文静.基于1553B的总线控制器的设计[J].现代电子技术,2007,30(2):41-43.

[4]颜猛,蒋轩祥.1553B总线BC BBC配置下总线管理软件的研究与实现[J].微电子学与计算机,2003,20(1):20-22.

[5]史国庆,高晓光,吴勇.基于DSP的1553B总线接口卡设计与实现[J].计算机测量与控制,2005,13(12):92-93.

总线控制器 篇9

关于SDRAM控制器的设计,在国内外的文献中已有较多报道,但阐述注重于SDRAM的命令和控制过程本身;在用户接口设计方面,多采用自定义的接口方式,而且往往接口命令与SDRAM本身的命令也存在较大程度的对应关系,封装程度、可复用性不高,用户仍然需要设计较复杂的外部模块才能完成SDRAM的数据存取。另外,在FPGA与SDRAM芯片的物理接口方面,在时钟频率达到100MHz以上时,FPGA的IO模块和系统时钟的设计非常重要,但在相关设计的文献中较少提及。有鉴于此,本文不再重点描述SDRAM控制命令,而将在介绍WishboneSOC总线的基础上,着重阐述如何使用简单灵活的WishboneSOC总线接口,充分发挥SDRAM猝发传输的优势,并且通过把整个SDRAM控制器封装成标准的Wishbone总线从设备,使得外部逻辑只需要满足简单的Wishbone协议,甚至不需要知道SDRAM协议本身,即可实现高效率的SDRAM存取操作。

1 WishboneSOC总线

SoC总线目前有四种较为流行的标准:1)由ARM公司开发的,广泛用于基于ARM处理器内核的SoC设计中的AMBA(Advanced Microcontroller BusArchitecture);2)由IBM开发,被Xillinx公司用于其SoPC(System onProgrammableChip)的CoreConnect总线;3)是Altera公司设计用于SoPC的Avalon总线;4)最初由Silicore公司开发,目前由OpenCores组织维护Wishbone总线。其中Wishbone总线结构简单灵活,并且完全开放和免费,拥有丰富的免费IP核资源,可以在不同的FPGA平台和ASIC上实现,有很好的可移植性,正成为目前最具发展前景的SOC总线。

Wishbone是采用主从模式的结构同步总线,所有操作由时钟上升沿触发。其信号非常简单,如图1所示,除了系统信号(RST,CLK),数据总线信号(ADR,DAT,WE,SEL)和用户自定义信号(TAGN)外,主要的总线操作通过CYC,STB,ACK 3个信号控制完成。如图2所示,首先主设备把CYC信号拉高,发起一次总线操,然后当主设备准备好后把STB拉高;而从设备采样到CYC和STB同时为高时,准备传输数据,并以ACK表示从设备准备好,通知主设备完成一个数据的传输。通过这种方式两者实现握手,并使主从设备都可插入等待周期,控制传输速率[1]。本文的设计正是利用此特性,实现一次总线操作可对SDRAM进行无限长的猝发传输。

本文所述的SDRAM控制器作为Wishbone的Slave设备。数据、读写控制、握手信号的定义和Wishbone标准一致,而32位地址信号具体定义为:0~7位为列地址,8~18位是行地址,19~20位是Bank地址,高12位保留。

2 SDRAM控制器设计

与静态RAM相比,SDRAM本身的控制指令多,接口复杂。基本指令就包括ACTIVE、READ、WRITE、PRECHARGE、AUTOREFRESH等[2,3],而且,在向SDRAM发出各种指令之后,通常需要等待一定的时钟周期,才能得到相应的操作结果,例如作为SDRAM主要性能参数之一的CAS延迟时间,就是在发出READ操作后的到数据读出之间的等待时间。

为了达到用Wishbone总线接口实现对SDRAM接口的封装的目标,设计系统框图如图2。其中初始化模块负责在上电之后的等待、预充电(PRECHARGE)、两次刷新(REFRESH)、以及设置模式寄存器(LOAD MODE REGISTER)等操作,在初始化完成之后切换多路选择器,把SDRAM的控制权交给主状态机。

主状态机负责处理Wishbone的握手控制信号,以及产生相应的SDRAM操作指令。SDRAM一个最主要的特性就是猝发成组传输,也就是当发起一次操作之后,可连续存取多个数据,这种特性非常适合用于图像数据的高速缓存,也与Wishbone总线的数据传输模式非常吻合,可达到很高的存储效率。然而,对于连续存取数据的长度,SDRAM本身有两个限制:首先,每次操作不得超出当前Bank中激活的行,要读取其他Bank或者同一Bank中其他行的数据,必须重新发出激活指令;其次就是每隔一定时间要停止所有操作,关闭所有Bank,进行刷新操作,否则存储的数据会丢失。这些繁琐的操作,都通过主状态机实现,而对外部逻辑隐藏起来。

如图3所示,主状态机采用摩尔状态机实现。在初始化完成后,主状态机进入IDLE状态;当Wishbone接口输入的CYC和STB信号变高,表示开始一次读写操作时,进入CMD-ACTIVE状态,向SDRAM发出ACTIVE指令,然后进入WAIT-TRCD状态,等待ACTIVE到READ/WRITE指令的最短时间;之后,根据WE信号的输入,决定进入读或者写状态;如果是读操作,则经过CMD-READ状态发出READ指令后,进入WAIT-CL状态,等待READ指令到数据读出的时间,然后进入ST-READ,并拉高ACK信号,表示数据已经准备好,外部可以接收数据;如果是写操作,则经过CMD-WRITE状态,发出WRITE指令,然后马上就进入ST-WRITE,并给出ACK,表示当前数据已经写入;在ST-READ和ST-WRITE状态下,如果CYC信号变低或者刷新时间到,需要本次读写操作结束,进入TERMINAT状态,发出相应指令;然后PRECHARGE,关闭已打开的行,并在等待完TRP(PRECHARGE to AUTOREFRESH/ACTIVE)时间后,根据要求,进入REFRESH或者IDLE状态,完成读写整个操作过程。其中,在ST-READ和ST-WRITE中,如果发现STB变低,表示外部没有准备好,则需要进入PAUSE状态,发出TEMINATE指令,停止当前的读写操作,接着等待STB变高后重新发出READ/WRITE指令,继续读写操作。在ST-READ和ST-WRITE状态中,发现输入的地址跨越了SDRAM行边界,则先挂起ACK信号,同样进入结束操作流程,然后重新开始ACTIVE新的行,并在处理完一系列操作或,再给出ACK应答。此外,在ST-READ、ST-WRITE、PAUSE和WAIT-STB状态中,如果刷新定时器时间到,则自动进入结束操作的流程,然后发出REFRESH指令,并等待TRFC时间,然后根据当前Wishbone接口的状态,自动重新开始操作。

3 FPGA设计实现

控制器使用Verilog硬件描述语言编写,可使用逻辑综合和自动布线的方法实现并达到在100 MHz频率以上的工作频率。在系统和逻辑上有以下设计要点:

(1)系统时钟设计。控制器属于高速同步数字系统,系统时钟设计是保证其工作稳定性的关键。图4是本控制器时钟设计方案。方框中是FPGA内部的两个数字延时锁相环,dll0锁定后保证提供给SDRAM的时钟源Clk-SDp和输入时钟Clkp相位一致,dll1锁定后保证FPGA内部系统时钟Clkj与Clkp相位一致,因此Clkj和Clkp相位一致,保证整个系统的是同步的。

(2)IO接口设计及约束。对于工作在100 MHz以上的SDRAM控制器,一个时钟周期小于10 ns,而SDRAM本身数据的读出会在时钟上升沿后5 ns左右[2,3],信号在PCB走线上的传输时间小于1 ns,这样就只剩下不到4 ns左右的时间作为从FPGA管脚到其内部的触发器的信号传播延时和寄存器的建立时间。如果接收数据的寄存器在逻辑块中,FPGA内部从逻辑块到IO Block的布线延时为纳秒级,因此,需要把输入输出数据用IO Block中的触发器锁存,减少管脚到其内部的触发器的信号传播延时,并且设置IO接口的延迟时间约束,以保证信号可以满足触发器建立时间的要求。

(3)高速状态机设计。状态机的结构和编码方式直接决定了状态转移条件的复杂程度,设计中应采用摩尔状态机和独热码编码,以提高主状态机运行速度。

4 实验结果及讨论

经过逻辑仿真和自动综合和布线,本文所述的控制器稳定工作频率可以达到120 MHz以上。该SDRAM控制器已经实际应用于1920×1200×60 Hz的真彩色DVI视频处理系统,在Xilinx Spartan 3系列FPGA XC3S400上实现,并与两片Micron公司的MT48LC2M32B2 SDRAM芯片组成显存模块,可提供最高高达6.4 Gb/s的内存带宽,工作稳定。

控制器对SDRAM操作细节的封装,提供给外部一个标准Wishbone设备的接口,极大地方便了对SDRAM的访问,实现了透明的无限长度的猝发传输,对构建SoPC系统有很高的利用价值。

参考文献

[1] OpenCores Silicore.WISHBONE SoC Architecture Specification,Re-vision B.3

[2] Hynix Semiconductor,128M(4Mx32) GDDR SDRAM Data Sheet

[3] Micron Technology Inc.MT48LC2M32B2 Synchronous DRAM Data Sheet

[4]Lakshmi Gopalakrishnan.Synthesizable400Mb/s DDR SDRAM Con-troller,Xilinx Inc Xapp253

总线控制器 篇10

目前,基于PC的数控系统是国产数控系统系列的主要产品之一。PC数控系统性能稳定、可靠性高,但由于PC具有面向桌面应用、硬件结构复杂、功耗较大等特点,从而导致基于PC的数控系统成本居高不下。采用ARM(advanced RISC machines)处理器为核心部件的硬件平台和开源实时Linux操作系统开发的嵌入式数控系统,不但硬件结构简单,而且软件资源丰富,可靠性与可重构性较强,极具市场竞争力[1,2]。以32位ARM芯片和高速大容量FPGA(field-programmable gate array)为核心的嵌入式平台构建数控系统,能够以低的成本实现接近PC平台的性能,已成为中低端数控系统发展的主要方向之一。

国内外针对FPGA在嵌入式数控系统中的应用研究主要包括:①用FPGA替代固定逻辑器件的组合,以减小硬件体积,降低硬件复杂度[3];②用FPGA对功能较弱的微控制器进行端口扩展,如脉冲宽度调制接口、编码器接口、键盘接口等[4,5];③对数控系统的轴数进行扩展,如将单轴扩展为三轴[5,6]等。这样的数控系统虽因引入FPGA而使功能有所增强,却没有充分挖掘FPGA的应用潜力,仍然具有分布式控制系统(distributed control system,DCS)一对一传输、模拟信号控制等特点,技术固有的封闭性使其功能和性能的发挥受到限制,难以和现场总线控制系统(fieldbus control system,FCS)相提并论。

传统的数控系统中,运动控制器与伺服驱动器间的接口通常采用模拟的方式,该方式存在以下问题:①运动控制器需采用数模转换器,分辨率低;②一个模拟接口只能连接一个驱动器,系统缺乏柔性;③模拟接口只能传送一种信息且只能单向传送,信息量有限;④模拟接口的连接距离有限,且连接线很多,难于分布式控制[7]。现场总线采用全数字通信,支持数据双向传输,线缆大大简化,从根本上突破了传统点对点式的模拟信号或数/模信号控制的局限性,同时具有传输速率高、传输距离远、抗干扰能力强等优点,能够满足高速高精数控系统的需求[8]。

针对上述问题,本文采用基于ARM和FPGA的设计方案,在嵌入式数控系统中引入SSB-III现场总线,并给出了总线式运动控制器性能的评测方法。

1 数控系统现场总线通信

1.1 基于现场总线的数控系统

基于现场总线的数控系统结构如图1所示。数控系统中的主要部件包括:由人机接口单元(human machine unit,HMU)及机床控制单元(machine control unit,MCU)构成的数字控制器、伺服驱动器、主轴设备、IO设备。

现场总线的主设备以板卡的形式插入数控装置,从设备一般直接集成到伺服驱动器的硬件中。数控装置的命令通过现场总线发给指定的伺服或IO;伺服或IO的反馈也通过现场总线传给数控装置。总线系统中允许有一个主设备(主站)及多个从设备,如从站1、从站2等。主设备与各从设备间采用一主多从、问答方式进行通信,通信时序由主设备进行控制[9,10]。

1.2 现场总线通信模型

目前,现场总线的体系结构基本都以“开放系统互连模型”为参考模型。为适应控制系统中信息长度短、实时性要求高的特点,现场总线没有采用网络层、传输层、会话层和表示层,而是将这4层的必要功能设置在应用层和数据链路层中,以降低层间操作、数据转换所带来的时间开销。因此,典型的基于以太网的现场总线协议一般包括物理层、数据链路层和应用层,如表1所示[11]。

SSB-III现场总线通信模型如图2所示。主站为CNC,从站为多个伺服驱动器、主轴驱动器或I/O板卡,主从站之间使用问答的方式进行通信,主站从从站的应答协议帧中获取通信状态信息(数据收发是否错误等)。站点的连接采用菊花链拓朴结构,每个从站有两个通信接口,分别向前、向后连接到别的从站。每个从站除了作为通信主体外,还采用交换技术对其他站的信息进行实时转发。

2 运动控制器硬件设计

2.1 运动控制器硬件结构

运动控制器由OMAP3530主控板和SSB-III总线控制板构成,如图3a所示。图3b所示为两块电路板的机械组装及通信接口连接方式。

(b)OMAP3530主控板与SSB-III总线控制板连接方式

2.2 OMAP3530平台

OMAP3530平台由核心板和扩展板构成,核心板定义了一个OMAP的最小系统,主要包括主处理器OMAP3530、多制层封装芯片(包括DDR、NAND)、电源管理芯片和Mini USB-AB连接器。OMAP3530应用处理器具有异构双核结构,包括:频率600MHz的ARM Cortex-A8 Core,可用于运行数控系统用RTOS及其上的应用软件;430MHz的TMS320C64x+ DSP Core,可用于数控系统中运算需求量大的插补计算等。

2.3GPMC通信接口

通用存储控制器(general-purpose memory controller,GPMC)是一个16位的外部存储控制器,可为NOR flash、NAND flash、pSRAM等传统存储器件提供读写接口。如图4所示,GPMC包括6个功能模块:①L3互连端口接口;②地址译码器、GPMC配置寄存器、片选配置寄存器;③访问引擎;④预取和写置入引擎;⑤纠错代码引擎;⑥外部存储器端口接口。

2.4SSB-III总线控制板

SSB-III总线控制板功能模块划分如图5a所示,分为3个逻辑功能块:通信外围电路、通信专用芯片和GPMC通信接口。通信外围电路主要由两个100兆的以太网物理层芯片构成。由这两个芯片引出两个接口(RJ45),一个接口连到前继站点,另一个连接到后继站点,从而构成菊花链的拓扑网络结构。GPMC接口用于和上位机OMAP3530平台通信。

通信专用芯片采用FPGA实现SSB-III总线的链路层功能,其功能如图5b所示。整个链路层可以划分为3个逻辑部分:物理层接口(MII interface)、链路层逻辑功能和用户层接口。物理层和用户层接口主要实现物理层和用户层信息的接入。链路层逻辑功能实现现场总线链路层的全部功能:实时数据交换、主/从站调度、数据帧的编解码、数据存储组织等[12]。

(b)SSB-III总线链路层功能框图

3 运动控制器软件设计

3.1基于Xenomai的实时操作系统

Xenomai采用双内核机制对Linux内核进行强实时扩展。在双内核技术下存在一个支持强实时的微内核,实时内核与Linux内核共同运行于硬件平台。与其他实时性改造项目相比,Xenomai更关注可扩展、轻便和可维护性,代码的移植工作量较小,尤其适合嵌入式系统的改造与移植。

Xenomai基于Adeos(adaptive domain environment for operating system)实现双内核机制,如图6所示。Adeos的主要功能包括:中断管道机制(I-Pipe)、域调度模块功能和域管理模块功能。Linux内核和Xenomai分别作为 Adeos中的一个域存在。Linux内核负责非实时任务的调度,Xenomai采用精度更高的定时中断来调度实时任务,实现更小的调度延时。Xenomai域的优先级高于Linux域,每当中断到来,Adeos会先将中断交给Xenomai处理,如果Xenomai没有需要处理的中断,才会将中断交给Linux内核处理,保证了Xenomai的中断响应和任务调度的实时性[13]。

3.2SSB-III总线控制板驱动程序设计

SSB-III总线控制板采用GPMC接口与OMAP3530平台进行通信,设置GPMC接口工作方式为地址和数据非复用、同步读写。使用到的信号包括地址线gpmc_a[10∶1],数据线gpmc_d[15∶0],时钟线gpmc_clk,并且对控制信号做了精简,只用到nCE、nOE、nWE[14]。

SSB-III总线控制板,驱动程序包括三部分:模块初始化、中断服务函数、模块退出处理。各部分的流程如图7、图8所示。

(b)模块清除流程

4 运动控制器性能评估

数控系统的高速高精运动控制对总线的要求主要体现在以下几方面[15]:①实时循环周期一般在1~10ms之间;②总线传输的确定性(控制器的控制指令及伺服系统的反馈均有确定的收发时间);③执行命令与反馈的同步性(高精度多轴控制系统要求各轴严格同步运行,即各个控制轴要同时执行收到的控制指令,将同一时刻的反馈数据传输给控制器);④支持I/O设备信号的传递;⑤支持非周期的数据。

针对上述要求,论文在基于ARM和FPGA的总线式运动控制器上,对影响总线传输实时性的中断响应延迟和影响总线传输确定性的中断抖动两个性能参数,开展了相关实验测试工作。

4.1 实验环境搭建

整套实验装置由OMAP3530主控板、SSB-III总线控制板、SSB-III总线伺服驱动单元、伺服电机、供电和通信电缆、键盘、液晶显示器等输入输出设备构成。

4.2 中断响应延迟

SSB-III现场总线传输机制中,当链路层的数据包到达应用层时将触发一个中断事件,应用层响应中断后进入中断服务函数进行相应的数据处理,然后将新的数据包发送给链路层。这部分时间开销包括设备中断响应延迟和应用层开销,是SSB-III现场总线的一个重要性能参数。如图9所示,Tm为主设备中断响应及应用层开销,Ts为从设备中断响应及应用层开销[11]。

中断响应延迟为从硬件产生中断,到进入中断服务程序开始执行第一条语句的时间,这部分时间包含在图9中的Tm(Ts)中。

本文采用OMAP3530处理器自身的定时器来测量中断延迟。测试程序包括模块初始化函数、中断函数、模块清除函数。模块初始化函数负责申请定时器(timer_ptr)并予以初始化、向系统申请定时器中断并绑定Linux/Xenomai中断服务函数;中断函数用于系统响应中断时获取定时器的数值;模块清除函数负责定时器、中断号等资源的释放,并将测试模块从内核中清除。

gt_rate为定时器的频率,则定时器的初始值start_tick

start_tick=0xFFFFFFFF-(n*gt_rate) (1)

start_tick开始经过ns后定时器将产生一个溢出中断,此时定时器会自动重载start_tick,然后继续计时。系统响应该中断后进入相应中断服务函数,此时调用针对OMAP平台的内核系统函数,获得定时器当前的数值end_tick:

end_tick=omap_dm_timer_read_counter(timer_ptr) (2)

start_tickend_tickgt_rate代入即可获得中断响应延迟intr_delay:

int r_delay=(end_tick-start_tick)/gt_rate (3)

测得中断响应延迟如图10a所示,典型的中断响应延迟为36.769μs,最大抖动(最大延迟与最小延迟时间之差)为52.462μs。

现在考虑修改测试程序,将定时器中断注册为Xenomai内核下的实时中断。测得数据如图10b所示,典型中断响应延迟为2.4615μs,最大抖动为3μs,可以看到采用了实时中断之后,系统性能有了大幅度的提升。

(b)引入Xenomai后的OMAP3530平台中断响应延迟

4.3 中断周期抖动

抖动是实时系统中的一个重要性能指标,指的是同样的过程每次的完成时间或响应时间之间的偏差。SSB-III现场总线支持31.25μs、62.5μs、125μs、250μs、500μs、1ms、2ms多种通信周期,本文选取2ms作为通信周期,实验测得的Xenomai实时中断周期数据如图11所示,最大偏差(实际周期与理论周期2ms的最大偏离值)为34.615μs,即周期抖动最大幅度为1.73%,可见总线周期具有很好的确定性。

5 结论

(1)使用OMAP3530的GPMC作为主控平台和总线控制板的通信接口,采用FPGA实现现场总线功能,使系统具有良好的可扩展性。

(2)测试了系统中断响应延迟,并通过对比实验证明了Linux+Xenomai实时改造方案的有效性。

(3)对中断响应延迟及中断周期抖动的测量与分析证明,本文所设计的基于ARM和FPGA的运动控制器能满足数控系统和现场总线性能需求。

摘要:针对基于PC的数控系统及采用传统模拟接口存在的不足,提出了一种基于ARM处理器和FPGA的总线式运动控制器设计方法,并采用了Linux+Xenomai架构的实时化构建方案。重点阐述了基于GPMC接口和FPGA的现场总线控制板的实现,及实时操作系统下内核驱动模块的编写。最后,针对中断响应延迟和中断周期抖动开展了实验。结果表明,该方法完全可满足嵌入式数控系统及现场总线通信的性能需求。

总线控制器 篇11

关键词:光电经纬仪 现场总线 CAN 总线

1、引言

在靶场试验的测控系统中,光电经纬仪一直发挥着重要的作用。光电经纬仪是一种用于空间移动目标跟踪定位成像的高精度光电探测仪器。因其具有实时、高精度、动态跟踪和能够实现图像再现等优点,被广泛应用于航空、航天、武器实验、天文观测等科研和军事领域。光电经纬仪各分系统的输出数据结构不同,通信方式主要有RS232,RS422/485,并口等。这几种通信方式存在较多的先天性缺陷:通信速率低、传输距离短、线路利用率低、抗干扰能力差、容错性差、不易扩展、难以维修和测试。

随着光电跟踪探测技术迅速发展,对目标的测量技术要求不断提高,传统的通讯方式已无法满足要求。要解决上述问题,就需要寻找一种在实时性、可靠性等方面均能满足经纬仪要求的通信方式来统一设备内部的通信。经过对各种数据通信方式的比较,发现现场总线控制具有明显的优势。

2、现场总线控制系统

现场总线:安装在制造或过程区域的现场装置与控制室内的自动控制装置之间的数字式、串行、多点通信的数据总线称为现场总线。它是一种开放的、全数字化、双向,多站的通訊系统。

采用现场总线将使控制系统结构简单、系统安装费用少并且易于维护;现场总线技术越来越受到人们的重视。但由于各种现场总线侧重面不同,各有相应的应用领域,目前多种现场总线并存的现象。目前比较流行的现场总线主要有:FF(Foundation FieldBus,基金会现场总线),PROFIBUS(Process FieldBus,过程现场总线),LonWorks(Local Operating Network,局部操作网),HART(Highway Addressable Remote Transducer,可寻址远程传感器数据通路),CAN(Controller Area Network,控制器局域网)。在对各种现场总线的综合比较中发现,CAN总线具有突出、优异的性能。本文不对其它总线作具体介绍,只详细介绍CAN总线。

3、CAN总线

3.1CAN总线简介 CAN (Controller Area Network,控制器局域网)是一种有效支持分布式实时控制的串行通信网络,具有通信率高、实时性好、可靠性高、连接方便和性价比高等特点。CAN协议最大的特点就是废除传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数在理论上不受限制,还可以使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而扩展到了机械工业、纺织机械、农用机械、机器人、数控机床、医疗机械、家用电器及传感器等领域。

3.2CAN总线的技术特点CAN总线构建的通信系统具有很多优秀的特性:CAN网络具备良好的可靠性设计,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,保证了基于CAN总线可以构成多主结构或冗余结构的系统。系统具有良好的故障隔离能力,CAN总线接口电路通过2个输出端(CANH,CANL)与物理总线相连。在任意时刻,CANH端的电平只能是高电平或悬浮状态,而CANL端的电平则只能是低电平或悬浮状态,从而使得即使多个节点同时向总线发送数据,也不会出现总线“短路”的情况。CAN具有良好的传输防错设计,CAN采用短帧结构,数据传输的时间短、受干扰的几率低,且CAN的每帧信息都有CRC校验及其他检错措施。CAN总线的通信距离远,速率高。直接通信距离最远可达10Km(速率在5Kb/s以下),通信速率最高可达1Mb/s(通信距离最长为40m)。CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活、结构简单、器件容易购置、每个节点的价格较低,而且开发技术容易掌握,能充分的利用现有的单片机开发工具,具有较高的性能价格比。从以上可以看出应用CAN总线能够很好地解决光电经纬仪内部通信的问题。

4、基于CAN总线的光电经纬仪通信方案

4.1基于传统通信方式的光电经纬仪结构 在传统的控制领域,集中控制系统占据主流地位,它具有系统实时性强、扩展方便、稳定性高等优点;但它的缺点在于:集中控制系统将带来大量复杂的接线工作,使现场维护以及故障诊断变得极为困难。经纬仪对目标进行跟踪的过程中,需要采集和交换的数据主要有:被跟踪目标的位置信息、目标位置与视场中心偏差值、引导信息、当前设备位置信息、图像信息、时间信息、伺服控制位置信息、伺服控制速度信息等。分系统在采集数据、主机交换数据的同时还要获得其他分系统的数据。可见主控微机要负担大量的数据计算和交换任务,控制功能不能分散,导致任务风险集中于主机,一旦主机出现问题将导致整台设备瘫痪。点对点的连接方式不仅使得接口结构复杂,大量的电缆也增加了设备内部的电磁辐射和干扰,设备的体积庞大,布线的难度高。

4.2基于CAN总线的光电经纬仪通信方案 基于CAN总线的光电经纬仪结构使用单一的串行总线结构代替了多种通信方式的并行结构。主控微机所需信息可以从CAN总线上取得,分系统通过总线与主机交换数据的同时还可以从总线上直接获取其他分系统的数据,提高了总线利用率、数据传输的实时性还减轻了主机的压力、提高了系统工作的稳定性。现场总线将所有的信号点通过一根通信连接在一起,这样就使得整个系统的接线变得更加简洁、方便。现场总线往往可以同时使用总线电缆、光纤、红外技术及无线技术。可以根据现场需要选择不同的传输媒介:距离较短,没有特殊要求的场合选择普通总线电缆;距离较远不易布线的场合还可以选择无线通信。这些都是传统的集中控制所无法实现的。

很多人认为总线控制对系统的安全性以及可靠性不信任。其实,总线电缆在抗损坏、抗干扰能力强方面都大大优于以往所选用的普通信号线缆,故障的发生率低,从大的方面上来讲系统的稳定性要优于传统的集中控制方式。目前总线控制中常选择智能分散技术或分层、分支技术。当我们需要在现场处理一些过程数据,同时又不希望整个系统的其它部分对此处造成影响,我们可以选择一个智能分散控制器用于此处,在现场对数据处理后再将一些系统控制器需要的数据上传。

5、结语

随着计算机、控制器、通信和CRT显示器技术的发展,现场总线技术在工业控制、自动化领域得到了飞速的发展。现场总线技术的应用为光电跟踪探测设备提供了一个新的发展空间,使系统结构趋于简单明了,数据传输将具有突出的实时性和可靠性,跟踪探测精度随之会有大幅度的提高,但是在具体实施方面还有很多需要注意的问题,有待于进一步的研究和试验。

参考文献

[1]郭长艳。光电经纬仪中现场总线的选择和应用。现代电子技术。2005。

[2]徐争颖。CAN总线及其网络系统的实现。自动化与仪表。2005。

一种新型I2C总线控制器的设计 篇12

关键词:I2C总线,CPLD,总线控制器

I2C (Inter-Integrated Circuit) 总线是philips公司开发的芯片间串行通讯总线, 它用两根信号线 (串行数据线、串行时钟线) 进行数据传输。I2C总线以其接口简单、总线通讯模块可裁剪性等特点获得了广泛的应用。在嵌入式系统中, CPU/MCU和多个外围器件进行通信时, I2C总线被普遍采用。

1 I2C总线技术应用

1.1 I2C总线的特点

I2C总线利用两根信号线 (SDA、SCL) 将外围通讯模块连接起来, 是真正的多主总线, 具有冲突侦测和仲裁能力, 防止两个或两个以上主机同时控制总线而使数据被破坏。I2C总线能将快速设备和慢速设备连接到同一个总线上, 通过调整传输速率, 兼容快慢速设备。I2C总线的传输速率有:标准模式 (100Kbit/s) 、快速模式 (400Kbit/s) 、高速模式 (3.4Mbit/s) 。I2C总线的寻址范围有7位地址模式和10位地址模式, 连接到I2C总线的每个设备都有一个唯一的地址。连接到相同总线的设备数量只受总线的最大电容400pF限制。

1.2 I2C总线的接口电路

I2C总线只需由两根信号线组成, 一根是串行数据线SDA, 另一根是串行时钟线SCL, SDA和SCL都是双向线路, 连接到总线的器件输出需为漏极开路或集电极开路, 当总线空闲时, 这两条信号线均为高电平, 因此, SDA和SCL信号线都必须接上拉电阻至高电平为VCC (pulled-up to VCC) , I2C总线的典型连接如图1所示。

1.3 I2C总线的数据传输

SCL为高电平期间, SDA线上的数据需保持不变, 器件之间传递数据, 数据线上的数据只能在SCL为低电平时发生跳变, 改变为下一位数据的状态, 时序关系见图2所示。

I2C总线上数据的传输起始状态和终止状态由主控器产生。开始信号:当时钟线SCL保持高电平期间, SDA由高电平跳变为低电平, 表示开始传送数据;终止信号:当时钟线SCL保持高电平期间, SDA由低电平跳变为高电平, 表示终止数据传送。时序关系见图3所示。

一个标准的I2C总线通信数据由四部分组成 (如图4) :开始信号、从机地址信号、传输的数据、终止信号。I2C总线协议的技术规范中规定每次发送到I2C总线SDA上的数据必须是一个字节, 每次传输可以发送的字节数量是不受限制的。传输的数据字节按照由高位到低位的顺序发送, 每发送一个字节后必须跟一个响应位。

响应位 (应答信号) :发送器每发送完一个字节, 将数据线SDA拉高, 由主控制器产生第9个脉冲, 接收器将SDA拉低, 以此作为接收器对发送器的应答。发送器在第9个脉冲探测SDA为低, 表明接收器已成功接收到发送器发送的一个字节, 可以继续进行后面的通信。

1.4 I2C总线的寻址方式

在起始条件产生后, 主机向总线发送一个从机地址, 第一个字节的头7位 (D7-D1) 为从机地址, 最低位 (D0) R/W决定数据的传输方向。最低位R/W若为'0', 表示向从机写数据;最低位R/W若为'1', 表示从从机读取数据。当发送一个地址后, 连接到总线的每个设备都会将头7位同设备自身地址进行比较, 若相同, 则该设备为被主控设备寻址, 并发送应答信号, 根据R/W位决定读写工作方式。

2 I2C总线控制器的设计

2.1 I2C总线控器的功能描述

I2C总线控制器是处理器与I2C器件之间的接口, 其要完成接收处理器的控制信号、命令与数据, 还需发送I2C器件的数据和状态响应到处理器, 实现处理器与I2C器件之间的通信, 根据I2C总线的技术规范, 其接口主要完成6项功能: (1) 软件可编程系统时钟的实现, (2) 软件可编程响应位的实现, (3) 启动/终止/重启/响应各种出发状态的实现, (4) 支持系统扩展, (5) 支持时钟同步, (6) 随机读取总线数据和状态。

2.2 I2C总线控制器的顶层设计

I2C总线控制器要实现处理器和I2C器件交换数据, 接口电路需要8位数据线、2位地址线、时钟线、复位端、使能信号线、响应信号线, 以及SDA和SCL。I2C总线控制器实现外部处理器与I2C总线器件的桥接, 外部处理器发送出控制信号和地址信号, 不同的地址信号指向不同的寄存器, 当地址信号为00时, 指向字地址寄存器, 处理器进入读/写状态, 将数据写入字地址寄存器或从字地址寄存器中读出数据, 当地址信号为01、10时, 则分别对数据寄存器和状态寄存器进行操作。本设计采用自上而下的设计方法, 控制器分为6个功能模块:时钟分频器、输出缓冲器、时序控制器、数据接收器、数据发送器、寄存器组。其接口结构图如图5所示。

2.3内部模块的设计与实现

时钟信号发生器

时钟信号发生器将系统提供的时钟信号分频, 输出满足I2C总线时钟信号线SCL要求的频率。根据输出频率要求, 设定计数器计数上限值 (或者利用FPGA芯片内的锁相环实现) 。系统复位时, 时钟分频器内的计数寄存器清零, 当时钟上升沿时, 计数器加1操作, 计数到上限值时, SCL的状态发生跳变, 从而产生满足系统所需的频率。

接收寄存器

接收器接收处理器的数据信号, 并输出反馈信号和触发信号给处理器。接收器的使能信号 (ena) 输入端和命令信号 (n_cmd) 输入端同时有效时, 且地址指针指向字地址寄存器, 由处理器送往总线控制器的8位数据以字地址信息存储, 并触发一个启动I2C总线的命令, 同时反馈给处理器一个响应信号, 完成数据的接收。

发送寄存器

发送寄存器根据处理器给出的两位地址信号, 分别输出字地址寄存器、数据寄存器、状态寄存器3个寄存器的内容。其中数据寄存器中为控制器从总线数据线SDA上接收的8位数据信息, 状态寄存器中的各位定义为:D7是I2C器件准备就绪位, D6为I2C器件不能响应读命令位, D0为I2C总线周期激活状态位。

时序控制模块

时序控制模块是接口的核心部分, 它控制着整个系统的工作过程, 通过控制SCL和SDA信号线来触发开始和停止信号实现对I2C总线器件的控制。I2C总线在传输过程中有5个固定的状态:空闲、开始、响应、接收发送、停止, 数据传输的过程即为状态转换的过程, 其流程图如图6所示。输出缓冲器:输出缓冲器结构为三态输出端口, 实现多个I2C总线器件能连接到同一总线。其输出的8为数据data[7:0]送往外部处理器, 输出信号线SDA、SCL与I2C总线器件连接。

3 I2C总线控制器的硬件仿真

写字地址寄存器仿真时序;处理器要将数据写入总线控制器的字地址寄存器, 此时, addr=00, 控制器的状态机产生一个触发信号, 启动一个随机周期读取I2C总线。写字地址寄存器仿真波形如图7所示。

读取数据寄存器时序:当addr=01时, 指向数据寄存器, 此时数据寄存器保存的是数据线的信息。读数据寄存器仿真波形如图8所示。

结束语

通过对各模块进行功能仿真, 能实现其功能。将各模块通过顶层例化语句描述组合成I2C总线控制器, 对顶层文件进行仿真, 满足I2C总线的传输规范。

参考文献

[1]赵辉, I2C总线技术及其应用实例[J], 微型电脑应用, 2005, 21 (4) :61.

[2]苏建志, 王冰锋, I2C总线及其应用[J], 现代电子技术, 2004, 22:32.

[3]Philips Semiconductor I2C Bus Specifica-tion[s], version2.1, January2000, 8-38.

[4]吕炎军, 基于FPGA的总线接口设计[J], 自动化技术与应用, 2006, 25 (4) :37-38.

[5]李泽文, I2C总线控制及基于FPGA的实现[J], 科技经济市场, 2006, 8:35-37.

上一篇:比较记忆法下一篇:核桃优质丰产管理技术