“我们重新设计了总线控制器协议栈,加入了一个动态优先级调整算法。”
陈致宁解释道,手指在屏幕上指点,“当多个子系统同时请求数据传输时,系统会根据数据的重要性和实时性自动分配带宽和时序。”
“比如,火控雷达的目标数据优先级最高,延时要求小于5毫秒,惯导系统次之,但数据量小,通讯系统再次之,可以容忍一定的延迟。”
他调出另一个界面,那是一张复杂的系统架构图,用不同颜色的方框表示不同的子系统,线条表示数据流。
“这是我们的航电系统总体架构。中央任务计算机采用双冗余设计,主备机之间通过高速交叉通道实时同步,切换时间小于50微秒。”
“六个主要子系统,雷达,惯导,火控,通讯,电子战,飞控,通过两条冗余的1553b总线连接,任何一条总线故障,系统都能自动切换到另一条,不影响功能。”
林默凑近屏幕,仔细看着架构图:“实时性测试结果如何?”
“从传感器数据采集,总线传输、中央处理到输出控制指令,端到端平均延迟小于10毫秒。”
陈致宁推了推眼镜,镜片后的眼睛闪着专业的光芒,“最坏情况下不超过20毫秒,完全满足空战格斗的需求。”
“要知道,人的反应时间还要200毫秒呢。”
“操作系统是你们自己写的?”秦怀民问,他也凑过来看屏幕。
“是的,完全自主开发,基于微内核的实时操作系统。”
陈致宁语气中带着自豪,“我们参考了国际上几种主流RtoS的设计理念,但架构完全重写了。内核只提供最基本的任务调度,内存管理和中断处理,其他功能都在用户态实现。”
“这样系统更稳定,一个应用崩溃不会导致整个系统宕机。”
他敲了几下键盘,调出代码统计界面:“目前代码总规模12万行,核心内核只有3万行,非常精简。”
“我们实现了内存保护,硬实时调度,优先级继承协议防止优先级反转,该有的都有了。”
“稳定性测试情况?”林默问到了关键点。
陈致宁调出测试报告:“连续运行测试已经超过1000小时,无死机,无内存泄漏,无任务饿死。”
“我们模拟了各种极端情况:电源波动测试,电压在22V到30V之间波动,系统稳定;电磁干扰测试,在强电磁场环境下工作,误码率在可接受范围内;我们设计了错误检测与纠正和看门狗机制,能自动检测并恢复。”
秦怀民插话,脸上露出赞许的笑容:“致宁他们还有个创新,把一部分非关键但计算密集的任务放到了专门的可编程逻辑芯片上。”
“这样既减轻了主cpU的负担,又提高了处理速度,还降低了功耗。”
陈致宁点头:“是的,秦老说得对,比如雷达信号的前端滤波、图像显示的几何变换、导航解算中的坐标转换,这些任务算法固定但计算量大,用硬件实现效率更高。”
“我们的FpGA芯片是和上海微电子所联合设计的,专门针对航电系统的需求优化,门电路规模15万门,运行频率100mhz,功耗只有8瓦。”
林默听着,不时点头。他忽然问:“和飞控系统的接口测试过了吗?”
“初步测试通过,基本功能正常。”陈致宁调出接口测试报告,但眉头微微皱起,“数据交换正常,时序匹配。不过……”
“不过什么?”林默敏锐地捕捉到了他语气中的迟疑。
陈致宁犹豫了一下,推了推眼镜:“陈建军陈工那边反映,在某些极端飞行状态下,比如大迎角,大过载机动时,航电系统给出的目标信息和飞控系统的响应之间存在微小延迟。”
“他们认为可能需要调整控制律参数,或者优化数据交换的时序。”
林默沉吟片刻,手指无意识地在桌面上轻轻敲击。
“带我去看看吧。”考虑一会儿,他说道。
飞控实验室在二楼另一侧,需要穿过整个走廊。
路上,林默问秦怀民:“建军那边压力大吗?”
秦怀民叹了口气:“有一点,大,飞控是三代机的灵魂,电传系统,静不稳定设计,高敏捷性……都是我们第一次搞。建军这半年瘦了十几斤,头发白了一半。”