一种多通道总线控制器设计

2015-01-08 13:46王海滨刘超华
火力与指挥控制 2015年10期
关键词:模拟系统电子对抗寄存器

王海滨,刘超华

(海军航空兵学院,辽宁 葫芦岛 125001)

一种多通道总线控制器设计

王海滨,刘超华

(海军航空兵学院,辽宁 葫芦岛 125001)

随着电子对抗在现代战争中作用地位的提升,利用模拟训练手段提升电子对抗能力是一种重要途径。为了有效提升电子对抗模拟训练效果,提高模拟系统数据传输速率,同时简化系统硬件设计,提出了多通道总线控制器的设计思路,将FPGA作为USB总线与CAN总线的控制核心,根据系统时序要求实现了对总线控制器的逻辑控制。实践表明,此种设计方法具有较高的可靠性、可扩展性和效费比。

电子对抗,多通道,控制器,模拟训练

0 引言

随着信息技术的飞速发展,作战模式发生了巨大变化,现代战争中飞行员面临的空中环境非常复杂,而电子对抗系统能够进行告警,释放有源干扰和无源干扰,能够提高飞机在作战中的生存能力[1]。随着分布式仿真技术、计算机建模技术、虚拟现实技术和网络技术的发展和应用,为模拟训练提供了有效的实现途径。由于模拟系统具有良好的交互性、可靠性、逼真性、系统兼容性以及可扩展性等特点,因此,在训练中得到广泛应用。

电子对抗模拟系统是一种由计算机实时控制、多系统协调工作、能模拟电磁环境的模拟设备[2],通常需要上位机与多台下位机进行数据交换,因此,在模拟系统的设计中,要求大量的信息能够快速有效地在模拟系统的各个模块之间进行高速传递,同时还要求能及时采集各控制面板的开关、电位器状态、仪表显示驱动,这就需要一定的通信接口协议来实现数据的交互。目前,模拟系统通常采用CAN总线作为通信协议,根据模拟系统的结构特点,分析了现场总线技术和FPGA技术的发展,根据模拟系统的实际需要和总线自身特点,选用了CAN总线来作为主机和现场设备的通信方式,并使用FPGA作为CAN总线节点结构中的核心处理器,克服了目前大多数模拟系统采用单片机作为微处理器,可扩展性差的缺点,并对模拟系统通信接口进行了整体设计,极大地提高了模拟系统的可扩展性。

1 总线控制器硬件设计

根据模拟系统硬件实现结构,采用CAN总线作为通信协议,CAN(Controller Area Network)由于其灵活性好、功能完善、可靠性高,已经被广泛应用到各个自动控制领域,作为一种串行通信总线,已经成为国际上应用最广泛的开放式现场总线之一[3]。CAN总线协议具有两个国际标准,分别是ISO11898和ISO11519。CAN总线具有根据优先级的多主结构、可靠的错误检测和处理机制、传输速率高、传输距离远(波特率低于5 kb/s时最远可达10 Km),其中IS011898是通信速率为125 kb/s~1 Mb/s的高速CAN通信标准,属于闭环总线,总线最大长度为40 m/1 Mb/s。由于电气特性限制,即总线分布电容和分布电阻对总线波形的影响,CAN总线上最大节点数目为110个。在模拟系统的设计过程中,当上位机与下位机或者系统多个模块之间进行数据交互时,选用CAN总线接口是非常适合的。

FPGA技术是实现嵌入式系统的最高形式,基于IP软核的设计与应用也必将成为替代硬核的一种发展趋势,基于FPGA的Verilog语言设计的IP核能够提供灵活性和性能更好的控制器。模拟系统通信接口的硬件设计,利用ALTERA公司Quartus II工具,以CAN总线作为通信协议,选用CYCLONE系列EP1C6作为CAN节点的核心处理器,其中PCA82C250是CAN总线接收器,SJA1000是CAN总线通信控制器,使用6N137进行光电隔离,增强抗干扰能力,保护CAN总线控制器,在SJA1000T与PCA82C250之间其速度为10 MHz。模拟系统通信接口如图1所示,FPGA在模拟系统通信接口中处于核心地位,向上通过USB总线与上位机进行数据传输,向下通过CAN总线协议与模拟系统的各个子模块进行数据交互,一片FPGA能够完成多个处理器完成的任务,极大地节省了硬件资源,运用Verilog HDL编程,实现FPGA对同步Slave FIFO方式USB通信、SJA1000T控制及CAN节点之间的通信功能。

SJA1000芯片是一款独立的CAN总线控制器,在原有的BasicCAN模式的基础上增加了PeliCAN模式,并且这种模式能够支持CAN2.0B协议。在SJA1000与CAN总线之间增加PCA82C250,主要是提高SJA1000的总线驱动能力,同时还能增大通信距离,保护总线,降低射频干扰,实现热防护,提高系统的瞬间抗干扰能力等[4]。

在模拟系统通信接口硬件设计中,主要是CAN总线控制器、FPGA以及CAN总线收发器之间的接口电路设计。FPGA具有丰富的I/O端口,但其I/O接口电平为3.3 V,而SJA1000采用5V TTL电平标准,因此,需要使用74ALVC164245电平转换器实现二者接口电平相匹配,SJA1000的AD0~AD7、片选信号CS、RD、WR、ALE、INT、MODE分别经过电平转换器再与FPGA的I/O相连。SJA1000的接收输入端RX0与发送输出端TX0经光电耦合器6N137,与总线收发器PCA82C250的RXD和TXD相连,PCA82C250的CANH、CANL端口直接与CAN物理总线相连。PCA82C250具有可向总线差动发送数据和从CAN总线控制器差动接收数据的功能。SJA1000的RX1引脚与PCA82C250的VREF引脚相连,使用输入比较器旁路功能,可减少内部延时,增加正常通信的总线长度。设计中选用FPGA作为USB与CAN总线节点的核心处理器,能够在速度和体积上有更好的适应性,可以增强模拟系统通信接口设计的灵活性和可扩展性。选用ALTERA公司一款高性价比的cyclone FPGA EP1C,其工作电压为3.3 V,内核电压1.5 V,采用0.13 um工艺技术,最大用户I/O为185个,其内部具有5 980个LEs,RAM空间共计92 160 bit,配置芯片选用EPCS1。

2 总线控制器软件设计

模拟系统通信接口的软件设计主要针对CAN总线节点的软件进行设计,这其中最核心的内容就是设计SJA1000的接口逻辑程序,从而控制CAN总线的工作方式和工作状态,进行数据的发送和接收。由于SJA1000地址总线与数据总线复用,这就需要FPGA不仅要产生SJA1000读写控制引脚的信号逻辑,还需要模拟单片机等处理器产生对SJA1000的寻址信号,实际上是一个向SJA1000写地址的过程。因此,设计的关键就是按照SJA1000技术手册的时序要求,把SJA1000中的寄存器地址当成数据写入到SJA1000中,同时配合地址锁存信号ALE和写允许信号WR完成对SJA1000特定寄存器的命令字写入。对于SJA1000的逻辑控制采用状态机的来实现,如下页图2所示。主要包括起始态IDLE,ADDRESS、写状态(WR1~WR3)、读状态(RD1~RD3)。在FPGA程序编写时,采用状态机完成逻辑的设计,FPGA对SJA1000的控制模块主要包括对SJA1000的初始化状态、空闲状态、查询状态、数据发送状态和数据接收状态。

2.1 SJA1000初始化逻辑

初始化逻辑的主要功能是在系统上电或重启后,对SJA1000进行初始化,以确定工作主频、波特率、输出特性等。初始上电,FPGA接收到复位信号后,则开始对SJA1000内部寄存器初始化。SJA1000支持两种模式,即BasicCAN模式和PeliCAN模式,BasicCAN模式是上电后默认的操作模式。ROM中存储着初始化寄存器的地址和数据,控制模块读取地址,锁存地址信号,将写控制信号WR置低,打开写允许信号,把数据写到复用总线上,对相应地址的寄存器赋值。SJA1000的初始化逻辑主要包括工作方式的设置、验收滤波方式的设置、验收代码寄存器和验收屏蔽寄存器的设置、中断允许寄存器的设置、输出控制寄存器和时钟分频器的设置等。SJA1000通信波特率是由总线定时器决定的,这就需要与后端节点的波特率相同才能进行节点间的正常通信。需要注意的是,要等待SJA1000复位完成后才能进行SJA1000的初始化,这就需要FPGA在上电后需要延时一段时间。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。

2.2 数据发送逻辑

程序采用查询方式,进入空闲状态后就查询状态寄存器的状态。如果收到写信号则转到写过程。数据发送逻辑需要FPGA通过模拟总线的方法对SJA1000进行控制,SJA1000的发送缓冲区的寄存器共有11个字节,其中前3个字节分别是帧信息字节和两个标识码,后8个字节是数据。发送时,用户需要将待发送的数据按特定的格式组合成一帧报文,送入SJA1000的发送缓冲区中,然后启动SJA1000发送即可。总线控制器写周期的时序图如图3所示。根据写周期的时序图,在FPGA程序设计时,首先应控制信号ALE、WR、RD、CS为非有效状态,复用总线为发送缓冲区首地址,状态转移;控制ALE信号有效,使其他3个信号处于无效状态,状态转移;设置片选信号CS有效,锁存ALE、WR、RD非有效,寄存器地址被写入,完成寻址,状态转移;WR信号有效,保持CS信号有效,ALE、RD无效,此时双向复用总线的值为写入寄存器的数据,状态转移;CS保持有效,WR信号置高无效,在WR上升沿,总线数据写入到目的寄存器中,判断发送缓冲区是否已经写满,如写满则返回空闲状态。需要注意的是,在向SJA1000发送缓存区送报文之前,必须先判断发送缓冲区是否锁定,如果锁定则等待;判断上次发送是否完成,如未完成则需等待发送完成。

2.3 数据接收逻辑

空闲状态下查询状态寄存器完成后,如果收到读信号,则转到读过程。与数据发送逻辑类似,从接收缓冲区中读取一条报文也需要连续读取11个字节,数据接收逻辑除了正常的报文数据接收,还要实现其他情况的处理。图4所示为总线控制器读周期的时序图。其具体FPGA程序控制过程与数据发送逻辑相似,需要注意的是对接收缓冲区的数据读取完毕后要释放CAN接收缓冲区。

3 结束语

在电子对抗模拟系统设计过程中,采用了模块化设计方法,将USB总线与CAN总线作为系统数据交互方式,同时利用FPGA完成了对多总线的逻辑控制,借助Quartus II环境编程产生SJA1000的片选信号、地址锁存信号以及读写信号,完成系统数据的接收和发送,系统设计中采用SignalTap II Logic Analyzer工具对FPGA各接口信号进行了测量,各输出信号满足SJA1000的接口时序要求,能够实现数据的有效传输。实践表明,采用FPGA作为主控器,在电子对抗模拟系统中多通道总线控制器的设计是合理的,能够满足电子对抗训练需求,效费比高,同时具有较好的可扩展性和重组能力,在模拟系统设计领域具有广泛的参考价值。

[1]侯印鸣.综合电子战——现代战争的杀手锏[M].北京:国防工业出版社,2000.

[2]徐忠富,陈永光,熊玫,等.电子战训练仿真系统开发方法研究[J].指挥控制与仿真,2007,29(3):81-87.

[3]段守福,杨凯,徐慧.机载通信模拟训练系统的设计与实现[J].火力与指挥控制,2011,36(5):149-152.

[4]Johnk E,Dietmayer K.Application Note Determination of Bit TimingParametersforSJA1000CAN Controller[Z]. AN97046,Philips Semiconductors,1997.

Design of Multi-channel Bus Controller

WANG Hai-bin,LIU Chao-hua
(Naval Air Force College,Huludao 125001,China)

With the electronic warfare role in modern war,the use of simulation training method to improve the ECM capability is an important way.In order to effectively enhance the EW simulation training effect,the simulation system data transmission rate is improved,and the system hardware design is simplified,the design idea of multi-channel bus controller is put forward,FPGA as the control core of USB bus and CAN bus,according to the system timing requirements realized the bus controller logic control.Practice shows that the method has the advantages of high reliability,scalability and cost effectiveness.

electronic countermeasure,multi-channel,controller,simulation training

E251

A

1002-0640(2015)10-0163-04

2014-08-18

2014-10-15

王海滨(1982- ),男,内蒙古赤峰人,硕士,研究方向:电子对抗与信息作战。

猜你喜欢
模拟系统电子对抗寄存器
基于VR技术的变电站三维场景设计模拟系统研究
Lite寄存器模型的设计与实现
《航天电子对抗》编辑部召开第九届编委会成立会
《航天电子对抗》欢迎来稿
二进制翻译中动静结合的寄存器分配优化方法
基于STM32单片机的微电网模拟系统设计
移位寄存器及算术运算应用
大数据技术在电子对抗情报系统中的应用
基于ARM和Zigbee 的变压器试验培训模拟系统
实培计划—初中开放性科学实践课程