飞翔模仿器是现代飞翔员练习的必需设备,它是一种由计算机实时操控、多体系和谐作业、能模仿实在飞翔环境的模仿设备。相较于运用飞机的飞翔练习而言,运用飞翔模仿器的模仿飞翔练习不只不受气候等自然条件的约束,并且没有后勤、机务确保以及飞翔安全等要素的约束。国内外许多单位均研发了各种不同品种和规划的练习模仿器,并获得杰出的练习作用,确保了飞翔使命的圆满完结。
在飞翔模仿器的规划中,要求很多的信息能够快速有效地在飞翔模仿器的各个模块之间进行高速传递,这就需求必定的通讯接口协议来完结数据的交互。现在,飞翔模仿器一般选用CAN总线作为通讯协议,并选用单片机作为微处理器,可扩展性差。文章依据飞翔模仿器的结构特色,剖析了现场总线技能和FPGA技能的开展,依据飞翔模仿器的实际需求和总线本身特色,选用了CAN总线来作为主机和现场设备的通讯办法,并运用FPGA作为CAN总线节点结构中的中心处理器,对飞翔模仿器通讯接口进行了规划。
1 硬件体系规划
CAN(Controller Area Network)总线是一种串行通讯总线,是国际上运用最广泛的开放式现场总线之一。CAN最早被规划作为轿车环境中微操控器的通讯,但因为其灵活性好、牢靠性高、功用完善,现已被广泛运用到各个主动操控范畴,CAN总线具有依据优先级的多主结构、牢靠的过错检测和处理机制、传输速率高(最高可达1 Mb/s)、传输间隔远(波特率低于5 kb/s时最远可达10 km),克服了RS-485网络的低总线运用率、单主从结构、无硬件过错检测的缺乏。在飞翔模仿器的规划进程中,主控机需求与多个模块进行交互,选用CAN总线接口是十分合适的。
飞翔模仿器通讯接口的硬件规划,以CAN总线作为通讯协议,选用ALTERA公司CYCLONE系列EP1C6Q240C8作为CAN节点的中心处理器,选用Philips公司的SJA1000T作为CAN总线操控器,在CAN总线操控器与CAN物理总线之间选用PCA82C250作为CAN收发器,为了增强抗搅扰才能,
维护CAN总线操控器,在SJA1000T与PCA82C250之间运用6N137进行光电阻隔,其速度为10 MHz。在Quartus II软件中运用Verilog对FPGA编程,完结对SJA1000T的操控及CAN节点之间的通讯功用。接口电路规划如图1所示。
SJA1000芯片是一款独立的CAN总线操控器,相关于它的前一款PCA82C200,SJA1000是在原有的BasicCAN形式的基础上添加了PeliCAN形式,这种形式能够支撑CAN2.0B协议。为了进步SJA1000的总线驱动才能,在SJA1000与CAN总线之间加入了PCA82C250总线收发器,其首要功用是增大通讯间隔,进步体系的瞬间抗搅扰才能,维护总线,下降射频搅扰,完结热防护等。
体系规划中选用FPGA作为CAN总线节点的中心处理器,能够在速度和体积上有更好的适应性,能够增强飞翔模仿器通讯接口规划的灵活性和可扩展性,因为在飞翔模仿器规划中,有时还需求用到其他通讯接口,比方括RS232和RS422。EP1C6Q240是ALTERA公司推出的一款高性价比的FPGA,作业电压为3.3 V,内核电压1.5 V,选用0.13μm工艺技能,其内部具有5 980个LEs,含有20个MK4 RAM块(128×36 bits),总的RAM空间合计92 160比特,内嵌2个锁相环电路,最大用户I/O为185个,装备芯片选用EPCS1,关于FPGA的下载办法,一般能够选用JTAG办法和AS办法,不同下载办法,其硬件衔接办法不必。JTAG办法,下载程序到FPGA芯片内RAM中,FPGA芯片内的程序掉电后无法保存,JTAG下载办法合适调试程序时运用,而AS办法则能将程序下载到装备芯片内,装备芯片内的程序掉电后也能够保存,再次上电后主动装载到FPGA内并由FPGA开端运转。
在CAN总线接口硬件规划中,首要是CAN总线操控器与FPGA以及CAN总线操控器与CAN总线收发器之间的接口电路规划。在规划时,比较于选用单片机作为微处理器的规划,FPGA具有丰厚的I/O端口,为了使FPGA的3.3V I/O接口电平与SJA1000的5 V TTL电平规范相匹配,在FPGA与SJA1000衔接时需求运用74ALVC164245电平转换器,这样CAN总线操控器SJA1000的AD0~AD7、片选信号CS、RD、WR、ALE、INT、MODE别离经过电平转换器再与FPGA的I/O相连。为了增强抗搅扰才能,总线操控器SJA1000的发送输出端TX0与接纳输入端RX0别离经集成光电耦合器6N137,与总线收发器PCA82C250的TXD和RXD相连,PCA82C250的CANH、CANL端口直接与CAN物理总线相连。PCA82C250是CAN总线操控器和物理总线之间的接口,具有可向总线差动发送数据和从CAN总线操控器差动接纳数据的功用。别的,SJA1000的RX1引脚与PCA82C250的VREF引脚相连,运用输入比较器旁路功用,可削减内部延时,添加正常通讯的总线长度。
2 软件体系规划
CAN总线节点的软件的规划首要是对FPGA进行编程,一方面临飞翔模仿器各类接口数据的收集和输出,另一方面是对SJA1000的接口逻辑程序,来操控CAN总线的作业办法和作业状况,进行数据的发送和接纳。这儿首要介绍FPGA对总线操控器的程序规划,首要包含对SJA1000的初始化逻辑、数据发送逻辑和数据接纳逻辑。因为SJA1000地址总线与数据总线复用,这就需求FPGA不只要发生SJA1000读写操控引脚的信号逻辑,还需求发生对SJA1000的寻址信号,实际上是一个向SJA1000写地址的进程。因而规划的要害便是把SJA1000中的寄存器地址当成数据写入到SJA1000中,一起合作地址锁存信号ALE和写答应信号WR完结对SJA1000特定寄存器的命令字写入。
2.1 SJA1000初始化逻辑
初始化逻辑的首要功用是在体系上电或重启后,对SJA1000进行初始化,以确认作业主频、波特率、输出特性等。SJA1000支撑两种形式,即BasicCAN形式和PeliCAN形式,BasicCAN形式是上电后默许的操作形式。SJA1000的初始化逻辑首要包含作业办法的设置、检验滤波办法的设置、检验屏蔽寄存器(AMR)和检验代码寄存器(ACH)的设置、中止答应寄存器(IER)的设置、总线守时寄存器(BTR0、BTR1)、输出操控寄存器(OCR)和时钟分频器(CDR)的设置等。在完结SJA1000的初始化设置今后,SJA1000就能够回到作业状况,进行正常的通讯使命。
2.2 数据发送逻辑
数据发送逻辑需求FPGA经过模仿总线的办法对SJA1000进行操控,SJA1000的发送缓冲区的寄存器共有11个字节,其间前3个字节别离是帧信息字节和两个标识码,后8个字节是数据。发送时,用户需求将待发送的数据按特定的格局组合成一帧报文,送入SJA1000的发送缓冲区中,然后发动SJA1000发送即可。需求留意的是,在向SJA1000发送缓存区送报文之前,必须先判别发送缓冲区是否确定,假如确定则等候;判别前次发送是否完结,如未完结则需等候发送完结。总线操控器写周期的时序图如图2所示。
2.3 数据接纳逻辑
与数据发送逻辑相似,从接纳缓冲区中读取一条报文也需求接连读取11个字节,数据接纳逻辑除了正常的报文数据接纳,还要完结其他状况的处理。对接纳缓冲区的数据读取结束后要开释CAN接纳缓冲区。图3所示为总线操控器读周期的时序图。
在FPGA程序编写时,选用状况机完结逻辑的规划,别离包含初始化状况、闲暇状况、查询状况、数据接纳状况、数据发送状况。
3 定论
在体系规划进程中,选用ALTERA公司的EP1C6型FPGA进行规划,在Quartus II环境中运用Verilog HDL编程发生SJA1000的片选信号、地址锁存信号以及读写信号等,这些信号一起驱动SJA1000完结数据的发送和接纳。在选用FPGA完结对SJA1000的逻辑操控进程中,选用Quartus II中的SignalTap II Logic Analyzer东西对FPGA各接口信号进行了丈量,经查看各种逻辑均契合SJA1000的接口时序要求。
根据FPGA的飞翔模仿器通讯接口规划首要由Verilog言语进行描绘,易于修正和移植,一起因为FPGA的I/O丰厚,还能够将模仿器中一些常用的开关量衔接到FPGA上,这样就能够将多种功用集成在一个FPGA上,相较于选用单片机操控SJA1000完结CAN总线通讯,本规划方案可扩展性好,稳定性高,能下降成本、体系体积及功耗,在飞翔模仿器范畴中具有广泛的运用远景。