前言:想要写出一篇引人入胜的文章?我们特意为您整理了安全计算机双口RAM数据通信论文范文,希望能给你带来灵感和参考,敬请阅读。
1安全数据交互方式
为避免MPU和HCU同时对双口RAM的同一个内存单元进行访问,本设计没有采用双口RAM的中断或者信号量等机制,而是采用一种基于角色的环形缓冲收发机制,将双口RAM划分为两个独立环形缓冲区:发送环形缓冲区和接收环形缓冲区。发送环形缓冲区负责将MPU数据传递给HCU,最终发送给外部设备;HCU从外部设备接收到数据,放到接收环形缓冲区,并传递给MPU。
1.1数据处理
三取二安全计算机逻辑运算模块的运行周期为600ms,该模块按照周期进行数据接收、数据处理、数据输出。在第n个周期,MPU上的控制逻辑运算模块从双口ram接收到数据后,放到逻辑接收缓冲区;从逻辑接收缓冲区取出n-1个周期的数据并进行逻辑处理;将n-2个周期的逻辑处理结果,从逻辑发送缓冲区中取出,放到双口RAM中。MPU上的控制逻辑运算模块对安全数据进行逻辑处理的时间不超过300ms,如果超过,就会影响MPU接收或者发送数据。同样,MPU上的控制逻辑运算模块接收、发送数据超过300ms,也会影响逻辑处理功能。在接收发送处理阶段,300ms中的280ms被分为20个发送接收子周期,每一个子周期的时间为14ms。在HCU中,也是按照同样的运行节拍从双口RAM中写入或读出数据。MPU与HCU之间交互的数据,按照预先定义的双口RAM交换数据帧进行。数据帧定义略———编者注。
1.2数据接收
HCU通过网络接口接收到数据后,对数据进行预处理,按照交换数据帧进行数据组包。根据当前周期号设置“cycle”,同时确定该数据包需要被放到D、E、F三个区块中写入区块角色标志“role”,将“flag”设置为1(即为输入),并交换数据帧的其他字段,按照源网络数据包中的信息进行设置。HCU根据当前周期号确定在接收环形缓冲区中的写入区块后,将组包之后的交换数据帧放到写入区块中。MPU根据当前周期号确定在接收环形缓冲区中的读出区块后,从读出区块中获取交换数据帧,然后对数据帧进行解包,并通过“cycle”、“role”、“flag”、“safety”、“crc”等信息来验证数据帧的唯一性和正确性,正常的数据帧被放到逻辑接收缓冲区,异常的数据帧被丢弃。同时MPU根据当前周期号,确定在接收环形缓冲区中的测试区块,利用内存检测算法对测试区块进行双口RAM内存区块检测。
1.3数据发送
在当前周期的600ms内,MPU进行逻辑运算处理在300ms内完成后,MPU从逻辑发送缓冲区中读取上个周期的逻辑处理结果数据,并对结果数据进行预处理,按照交换数据帧进行数据组包。根据当前周期号设置“cycle”,同时确定该数据包需要被放到A、B、C三个区块中写入区块角色标志“role”,将“flag”设置为1(即为输入),并交换数据帧的其他字段,按照源网络数据包中的信息进行设置。MPU根据当前周期号,确定在发送环形缓冲区中的写入区块后,将组包之后的交换数据帧放到写入区块中。HCU根据当前周期号,确定在接收环形缓冲区中的读出区块后,从读出区块中获取交换数据帧,然后对数据帧进行解包,并通过“cycle”、“role”、“flag”、“safety”、“crc”等信息来验证数据帧的唯一性和正确性,验证数据帧的正确性。异常的数据帧被丢弃,正常的数据帧按照网络数据帧进行组包,并通过网络发送给轨旁设备或者车载控制器。同时HCU根据当前周期号,确定在发送环形缓冲区中的测试区块,利用内存检测算法对测试区块进行双口RAM内存区块检测。
1.4区块角色轮换
双口RAM的发送与接收环形缓冲区的3个区块,在任意一个周期都只能处于读出、写入、测试3种中的某一种角色,而且这3个角色进行周期轮换,区块角色轮换表略———编者注。MPU与HCU通过双口RAM区块角色进行数据交互的步骤略———编者注。MPU与HCU通过相同的外部时钟中断来驱动数据处理软件模块的运行,MPU与HCU在对双口RAM进行访问时可以做到同步、流水线作业。在同一个处理周期内,发送环形缓冲区或者接收环形缓冲区中任何一个区块都有明确固定的角色,MPU板和HCU板不会同时访问操作相同区块,只有一个板卡对特定区块进行访问,从而解决了双口RAM的访问冲突问题,不需要另外采取硬件仲裁、软件仲裁或者信号量交互等手段。
1.5双口RAM检测
应用在三取二安全计算机中双口RAM可能存在一些功能性缺陷。无论门级电子元件的制造缺陷,还是板卡电路级的设计错误,都可能导致双口RAM的存储功能性故障,从而降低其功能完整性和可靠性。双口RAM存储单元具有多种类型的故障略———编者注。实际项目应用中,开发人员需要关注双口RAM存储功能的完整性和可靠性,可以通过存储器检测算法来对其进行检测和诊断,能够及时地发现和定位双口RAM的存储功能故障,并及时采取相应的措施,避免因双口RAM存储单元的数据错误导致的严重后果。本文采用硬件BIST架构(HBIST),在硬件电路中设计专门的硬件逻辑部件来对内存进行测试,其图形测试向量有专门的硬件电路模块生成,自动对内存的各种功能故障进行测试,硬件架构内建测试的内存故障测试覆盖率高,而且测试速度快,设计选取的图形测试向量主要用于覆盖高层次的内存故障,如NPSF、CF、DRF。HBIST利用March-TB内存测试算法对系统的内存进行测试,使用硬件HBIST电路来生成图形测试向量,并由硬件HBIST电路来进行测试,HBIST测试电路模型略———编者注。在硬件BIST处于非工作状态时,会拉低BIST的时钟信号,BIST电路进入休眠状态。当系统在夜间进入非繁忙状态,会产生BIST_MODE信号,来激活BIST电路的BIST模式控制器,并拉高时钟信号,BIST模式控制器发出控制信号,会接管对整个RAM的访问控制,并对RAM开始进行测试。BIST模式控制器控制测试向量产生器、地址与数据生成逻辑工作,产生相应的测试向量对RAM进行测试。同时,并将测试结果在BIST结果比较器中进行比较,如果发现异常,退出BIST_MODE模式,通知MPU测试异常,MPU产生相应的告警和错误处理。HBIST在进行内存检测时一共具有4种状态:idle、test、error、wait。idle表示处于等待测试数据进行测试的空闲状态;test表示获得测试向量对相应内存单元进行测试;error表示检测到内存单元出错;wait表示处于休眠状态,等待CPU模块激活HBIST。HBIST状态机的状态转移图略———编者注。HBIST状态机的VHDL程序略———编者注。在测试的过程中,通过植入内存故障,并用逻辑分析仪获取出错信号,硬件BIST模块检测内存出错图如图3所示。圆圈里面的测试结果与期望结果不一致,内存检测出错。
1.6数据交互软硬件设计
双口RAM是双端口SRAM芯片,本设计采用CY7C028V-15AXI,读写速度最高为15ns,数据容量为64K×16位。双口RAM连接HCU板的一端为MPC8247的LO-CALBUS总线,连接MPU板的一端为CPCI总线桥接芯片的LOCALBUS总线,HCU可以直接通过LOCALBUS总线访问双口RAM,而MPU板通过PCI总线访问,其中还有控制信号,如片选、读写、中断、BUSY信号等。双口RAM交互电路图略———编者注。在MPU和HCU中,通过设计的软件模块,来完成双口RAM的访问操作。双口RAM的MPU上软件交互关键代码略———编者注。
2结语
分析了应用在轨道交通行业中的三取二安全计算机的双口RAM数据通信要求,并在实际的项目设备开发中,设计了基于角色轮换和自检技术的数据通信方案,可以满足三取二安全计算机数据通信的安全性、可靠性和实时性要求。
作者:徐军 张磊 孙军峰 单位:卡斯柯信号有限公司