双口RAM在无人机三余度飞控计算机数据交换中的应用

2015-01-16 05:27杨蕊姣李志宇
电子设计工程 2015年11期
关键词:余度双口总线

杨蕊姣,李志宇,陈 喆

(1.南京航空航天大学 自动化学院,江苏 南京 210016;2.南京航空航天大学 无人机研究院,江苏 南京 210016)

飞控计算机是整个飞行控制系统的核心部件,它的可靠运行是无人机安全的保障,它的微小故障都有可能引发灾难性的后果。为了寻求提高飞控计算机可靠性的有效途径,在国内外已进行了大量的研究工作,并且表明:除了选择高质量的元部件之外,提高飞控计算机可靠性的根本途径是采用余度技术[1]。采用余度技术的设计方法容易实现且高效,能有效抑制系统的随机故障,使系统的可靠性大幅度提高。本设计即是基于三余度飞控计算机。

在三余度飞控计算机中,飞控计算机内核之间进行数据交换是系统工作的基础,只有进行实时、高质量的数据传输,才能及时地交流信息、分析数据、发现故障、解除故障,从而保证整个系统可靠稳定地运行。鉴于飞控计算机工作过程中需要交换的数据量大,对传输的实时性要求高[2],本文提出了一种采用共享内存技术进行三余度飞控计算机数据交叉传输的方法。

1 总体方案设计

本文中设计的飞控计算机内核部分采用混合余度的设计方案,可以有效弥补相似余度和非相似余度两种结构存在的不足,其三个通道分别是PowerPC工作通道、x86工作通道和PowerPC监控通道。其中PowerPC工作通道作为主通道,x86通道作为备用通道。正常情况下,由PowerPC工作通道的输出信号控制执行机构动作;当PowerPC工作通道出现故障时,PowerPC监控通道将PowerPC工作通道切断,使x86工作通道接入系统;若是PowerPC监控通道判断出PowerPC工作通道、x86工作通道都出现故障,则由PowerPC监控通道输出控制信号控制执行机构动作。

飞控计算机的3个通道互相独立,通道之间的数据交叉传输通过三片双口RAM来实现,每两个通道间使用一片双口RAM,从而实现飞控计算机3个通道间两两通信。三片双口RAM的片选信号及读写控制逻辑由三片CPLD完成,系统结构如图1所示。

2 工作原理

图1 系统总体结构图Fig.1 Overall structure of the system

正常工作时,PowerPC工作通道、x86工作通道和PowerPC监控通道共同进行任务周期同步,同步完成后,三通道同时采集传感器数据,进行控制律解算,并把重要数据写进对应的双口RAM里,各个通道读取其它两个通道的数据,和自身数据进行比较,运用特定的算法判定自身和其它两通道是否工作正常。双口RAM的应用,为飞控计算机内核直接的数据交换提供了一种简单可靠的手段,其集成度高且数据交换更为快速、稳定,双端口RAM可以作为系统RAM的一部分进行访问,占用系统资源比较少[3]。

3 硬件设计

3.1 双口RAM IDT7006简介及设计

3.1.1 双口RAM简介

双端口RAM选用美国IDT公司研发的IDT7006,其存储容量为16K*8b,存储速度最高可达15ns,地址总线允许访问内部所有地址空间。IDT7006的内部逻辑如图2所示。其主要性能特点有:具有两套完全独立的数据总线、地址总线以及控制总线,能够实现异步双寻址访问;双片选,允许不需要外部逻辑的深度扩展;具有两套独立的BUSY信号,用来避免双机读写同一地址空间时发生争用,保证双机有序访问RAM存储空间[4]。

图2 IDT7006的内部逻辑图Fig.2 Internal logic diagram of IDT7006

3.1.2 双口RAM连接及地址分配

双口RAM的地址线A13~A0,连接到PC104总线的低14位地址线上;数据线D7~D0,连接到PC104总线的低8位数据线上;是双口RAM的片选信号,由PC104总线的高六位地址线A19~A14经过CPLD译码得到;是双口RAM的读写控制信号,由PC104总线读写控制信号smemw和smemr经过CPLD进行逻辑运算得到。

PowerPC板卡 PC104总线空间为 0X3000000~0X30FFFFF,x86板卡 RAM空间可用地址为 0XD0000~0XEFFFF,综合PowerPC板卡及x86板卡的内存空间,设定本系统外扩双口RAM的地址空间为0XD0000~0XDBFFF,3片双口RAM的内存地址分别为0XD0000~0XD3FFF,0XD4000~0XD7FFF,0XD8000~0XDBFFF。

3.1.3 双口RAM读写仲裁方式

对于双口RAM的读写操作,选用合适的仲裁方式极为重要。数据交换的仲裁如果处理不当,通信双方便会发生冲突。比如当PowerPC工作通道对双口RAM的一个存储单元进行写操作时,x86工作通道也对这个单元写入数据,就必然导致写操作的错误[5]。

为了有效协调通信双方的读写操作,双口RAM IDT7006自身提供了BUSY信号仲裁的方法,因PC104总线具有等待输入信号,可以很方便地应用这种方法。双口RAM两端信号分别接到PC104总线的IOCHRDY信号上,当左端PC104总线对双口RAM进行读写操作时,双口RAM的右忙信号会通知右端PC104总线RAM正在被访问,则右端总线的IOCHRDY自动插入等待状态;同理,右端PC104总线对双口RAM进行读写操作时,左端PC104总线插入等待状态。

3.2 CPLD接口电路的设计

由于本设计需要完成双口RAM的选通及读写控制,而CPLD在组合逻辑方面具有优势[6],故本设计选用可编程逻辑器件EPM7128S来实现PC104总线和双口RAM的接口电路。EPM7128S是美国Altera公司开发的是第二代高性能CMOS EEPROM器件,具有128个宏单元,2500个可用编程门电路,计数器工作频率可达147 MHZ,并且可以通过JTAG接口实现在线编程。本设计PC104总线最大频率只有8MHZ,并且一个任务周期的时间为20ms,EPM7128S可以满足系统需求。

下面以A片CPLD为例说明PC104总线、CPLD及双口RAM的连接关系,A片CPLD跨接在PowerPC工作通道和x86工作通道之间,用来控制两边总线对双口RAM A的读写。根据功能需求,对CPLD A的IO管脚进行输入输出设置。其中输入信号包括:两通道PC104总线的高6位地址线PC1_A[19:14]、x86_A[19:14], 读 写 信 号 线 PC1_smemw、x86_smemw、PC1_smemr、x86_smemr, 地 址 使 能 信 号 线PC1_aen、x86_aen,IO 通 道 就 绪 信 号 线 PC1_IOCHRDY、x86_IOCHRDY,以及双口RAM的忙信号线BUSY。CPLD的输出信号包括:双口RAM A的片选信号线oe、ce及读写控制线r/w。各个部件的连接关系如图3所示。

4 CPLD内部逻辑及仿真结果

图3 CPLD A接口电路Fig.3 Interface circuit of CPLD A

CPLD正确的逻辑控制是本系统可正常工作的前提,下面以CPLD A为例说明CPLD内部的逻辑关系,CPLD A内部逻辑图如图4所示。工作原理为:PC104总线地址信号A19~A14与双口RAM基地址在CPLD中进行比较,当与某片双口RAM基地址相等并且此时RAM空闲,地址信号使能,相应的片选信号ce置为低电平,进行该双口RAM的读写访问;总线的读写控制信号smemr和smemw经过CPLD,产生读写信号,控制双口RAM的r/w信号。

图4 CPLD A内部逻辑图Fig.4 Internal logic diagram of CPLD A

利用QuartusⅡ软件对CPLD A芯片进行时序仿真,得出仿真结果如图5所示。

图5 CPLD A时序仿真图Fig.5 Timing simulation diagram of CPLD A

由图5可见,当PC104总线的地址信号 A19~A13为110100时,与第1片双口RAM的基地址0XD0000的高六位相等,该双口RAM的片选信号ce变为低,选中该片双口RAM;PC104总线读信号smemr为低时,读有效,oe信号变为低,r/w变为高,双口RAM可进行读操作;PC104总线写信号smemw为低时,写有效,r/w变为低,双口RAM可进行写操作。同理,当A19~A13取相应值时,可实现对其它两片双口RAM的控制。

5 结束语

文中提出了一种基于双口RAM[7]的内存共享技术进行混合三余度飞控计算机数据交换的方法,有效地解决了多机数据传输中的速度瓶颈问题。经过仿真验证,得出的波形符合预期效果。后序将结合实际的硬件电路设计对该方法进一步验证。此外,系统中所设计的PC104总线与双口RAM的接口电路,简单实用且逻辑控制可编程实现,具有较好的可移植性。

[1]张锦.三余度飞控计算机系统软件的研究与设计[D].西安:西北工业大学,2006.

[2]杨林芳.无人机容错飞行控制系统研究[D].南京:南京航空航天大学,2007.

[3]邹向阳,李锋,刘戎.基于双口RAM的双CPU之间的实时双向通信[J].微计算机信息,2008(32):99-100,168.ZOU Xiang-yang,LI Feng,LIU Rong.Real-time and double direction communication between double CPU based on dual-port RAM[J].Microcomputer Information,2008(32):99-100,168.

[4]韩钧,康怡.双口RAM在DSP与单片机数据通信中的应用[J].电力系统通信,2006(8):56-58.HAN Jun,KANG Yi.Application of Dual-port RAM in data communication of DSP and MCU[J].Telecommunications for Electric Power System,2006(8):56-58.

[5]姜平,周根荣,肖红升,等.基于双口RAM的多机数据通信技术[J].仪表技术与传感器,2010(11):105-107.JIANG Ping,ZHOU Gen-rong,XIAO Hong-sheng,etal.Multi-computer Data Communication Technology Based on Dual-port RAM[J].Instrument Technique and Sensor,2010(11):105-107.

[6]王琴,全书海.基于CPLD的双口RAM设计与应用[J].武汉理工大学学报:信息与管理工程版,2005(4):66-70.WANG Qin,QUAN Shu-hai.Design and application of dualport RAM-based on CPLD[J].Journal of WUT:Information&Management Engineering,2005(4):66-70.

[7]马旭.基于MPC8313E和FPGA的双口RAM驱动开发[J].电子科技,2013(1):110-111.MA Xu.Development of dual port RAM drive based on MPC8313E and FPGA[J].Electronic Science and Technology,2013(1):110-111.

猜你喜欢
余度双口总线
余度计算机在无人机系统中的应用研究
双口RAM在航天伺服系统中的应用
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
高空长航时无人机飞控机容错技术研究
新型操舵控制系统余度管理技术
Matching mechanism analysis on an adaptive cycle engine
混合余度传感器系统的可靠性建模与分析
CAN总线并发通信时下位机应用软件设计
双口RAM读写正确性自动测试的有限状态机控制器设计方法