小原文学网
首页 > 都市言情 > 大国重工奔腾年代1983免 >

第638章 为每一微秒而战

章节目录

  夜色如墨,但中关村的启航大厦却灯火通明,在燕京的夜空中犹如灯塔一般矗立着。

  三十层的环实验室里,300ms的红色数字格外醒目。

  陆佳杰和他带领的十二名工程师如同被抽走了魂魄,呆立在原地。

  他们是天之骄子,是启航信息最锋利的矛,却在第一次冲锋时就折戟沉沙。

  “韩总,我……”陆佳杰的嘴唇动了动,后面的话却怎么也说不出口。

  这比承认自己无能更让人难受。

  “失败是好事。”

  韩栋的声音打破了沉闷的气氛。

  他走到垂头丧气的众人面前,目光平静地扫过每一张年轻的脸。

  “现在失败,好过将来在铁轨上失败,现在付出的是时间和精力,将来付出的可能就是无法挽回的代价。”

  他转头看向李云禾:

  “李老,您怎么看?”

  李云禾没有立刻回答,他倒了杯热水,然后走到陆佳杰面前。

  “小陆,知道当年我们在戈壁滩上搞导弹,第一次对接测试失败,延迟了多少吗?”

  陆佳杰茫然地摇摇头。

  “整整三秒。”李云禾伸出三根布满褶皱的手指。

  “三秒钟,导弹能飞出去多远,你知道吗?

  那一次,一个头发比我年长许多的老教授当场就哭了,他说对不起国家。”

  老人喝了一口热水,哈出一口白气。

  “但他哭完,擦干眼泪说的第一句话是,把所有数据扒下来,看是哪个王八蛋在捣乱。”

  实验室里响起几声压抑的笑,凝重的气氛稍稍缓和。

  “你们现在遇到的问题,叫总线优先级倒置。

  当年我们搞导弹制导,也想过一个办法,叫时间片轮转,跟韩栋同志说的那个TTCAN,一个道理。”

  “就是把时间这根线,切成一小段一小段,最重要的指令,给它留一个专属的通道。”

  李云禾看着陆佳杰:

  “这个道理,你们比我懂。现在,你们缺的不是理论,是把理论变成现实的决心。”

  陆佳杰猛地抬起头,眼中的迷茫尽散。

  “李老,韩总,我明白了。”

  他转身面对自己的团队,重拾自信。

  “所有人,听我命令。从现在开始七十二小时,要重写底层调度器,用C语言和汇编混编,把时间触发机制钉进系统内核里!”

  “淑仪!”他看向一旁的林淑仪。

  “我需要你和启航半导体硬件组的同事,配合我们重新设计控制节点的PCB。

  时钟同步需要更精密的晶振和独立的供电回路,这个板子得重新走线!”

  林淑仪干脆地点头。

  “没问题,给我二十四小时,出第一版图纸。”

  “好!”陆佳杰深吸一口气,像一个即将奔赴战场的将军。

  “七十二小时后,我们在这里,再战一次!”

  “是!”

  十二个工程师齐声应道。

  在1993年,嵌入式开发没有现成的实时操作系统,没有完善的开发库。

  陆佳杰必须用C语言和汇编语言混合编程,一行一行地手写出一个支持多任务抢占的微内核。

  启航大厦三十层的灯光彻夜未熄。

  陆佳杰坐在工作站前,手指在键盘上飞快敲击。

  屏幕上滚动着密密麻麻的汇编代码,每一行都关乎着列车控制系统的生死。

  “老大,咖啡。”

  一个年轻工程师递过来一杯咖啡,杯壁上还冒着热气。

  陆佳杰接过来一口闷掉,苦涩的液体灌进喉咙,大脑瞬间清醒了几分。

  “时钟同步模块改完了吗?”陆佳杰头也不抬地问。

  “改完了,用硬件定时器替换了软件延时,误差控制在0.5微秒以内。”

  那个工程师揉着发红的眼睛回答。

  “不够。”陆佳杰停下敲击键盘的动作,转过身看着对方。

  “0.5微秒在10毫秒的时间窗口里,累积误差会达到5%,我要0.1微秒。”

  年轻工程师愣住了。

  “老大,0.1微秒……这需要用原子钟级别的校准算法,咱们现在用的晶振精度根本达不到。”

  “那就换晶振。”陆佳杰站起身,走到实验台前,拿起一块PCB板。

  “淑仪那边不是在重新设计控制节点吗?让她用温补晶振,TCXO,温度漂移控制在正负0.5ppm以内。”

  “可是TCXO的价格是普通晶振的十倍……”

  “我不管价格。”陆佳杰打断他的话。

  “我只要精度,去跟淑仪说,就说是我的要求。”

  年轻工程师咽了口唾沫,转身快步离开。

  陆佳杰重新坐回工作站前。

  他盯着屏幕上那段代码,脑子里飞速运转。

  CAN总线的非破坏性仲裁机制,本质上是一种分布式的优先级调度。

  当多个节点同时发送数据时,总线会根据报文标识符的二进制位进行逐位比较,0占优先,1退让。

  这个机制在低负载下没问题。

  但在高铁这种极端环境下,几十个控制单元同时工作,总线负载率可能达到80%以上。

  这时候,即使紧急制动指令的优先级最高,也得排队等前面的数据包传完。

  陆佳杰在草稿纸上画了一个时间轴。

  假设基本周期是10毫秒。

  前5毫秒只允许传输关键指令。

  紧急制动、牵引切断、防滑保护。

  后5毫秒,才是共享窗口,其他非关键数据可以抢占。

  这样一来,紧急制动指令最多只需要等待当前正在传输的关键指令包结束,延迟可以精确计算。

  但问题来了。

  如何保证所有节点的时间窗口严格同步?

  如果某个节点的时钟快了1毫秒,它可能会在别人的专属窗口里发送数据,导致冲突。

  陆佳杰揉了揉太阳穴。

  时钟同步。

  这是分布式系统的终极难题。

  在1993年,GPS授时还没有民用化,NTP网络时间协议也才刚刚起步。

  陆佳杰必须自己设计一套时钟同步算法。

  他打开一个新的文件,开始写代码。

  算法的核心思想很简单。

  选一个主节点作为时间基准,其他从节点定期向主节点发送时间戳请求,根据往返延迟计算时钟偏差,然后调整本地时钟。

  但魔鬼藏在细节里。

  CAN总线的传输速度是1Mbps,一个字节需要8微秒。

  如果时间戳请求包是8字节,往返延迟就是128微秒。

  这128微秒里,主节点的时钟还在继续走,从节点收到回复时,时间戳已经过期了。

  陆佳杰必须在算法里补偿这个延迟。

  他在代码里加了一个修正项,用硬件定时器记录请求发送和回复接收的精确时刻,计算出单向传输延迟,然后用这个延迟去修正时钟偏差。

  写完这段代码,陆佳杰靠在椅背上,闭上眼睛。

  大脑像一台超负荷运转的机器,嗡嗡作响。

  他想起了在麻省理工大学读书时,导师说过的一句话:

  工程不是科学,工程是在约束条件下寻找最优解的艺术。

  现在,陆佳杰面对的约束条件是:

  无限的硬件资源。

  有限的开发时间。

  无限接近零的容错空间。

  他睁开眼睛,继续敲代码。

  ……

  五月十一日凌晨三点。

  信息中心的门被推开。

  韩栋端着一个保温杯走进来。

  陆佳杰正趴在键盘上,发出轻微的鼾声。

  屏幕上的代码编辑器还开着,光标在某一行闪烁。

  韩栋走过去,看了一眼屏幕。

  那是一段用汇编语言写的中断服务程序,每一条指令都经过精心优化,没有一个多余的时钟周期。

  韩栋没有叫醒陆佳杰。

  他拉过一把椅子坐下,打开陆佳杰的工作日志。

  日志里密密麻麻记录着这四十八小时的每一个技术决策:

  “5月10日22:15,决定采用TTCAN架构,放弃传统的事件触发机制。”

  “5月10日23:47,发现时钟同步误差累积问题,需要引入硬件定时器。”

  “5月11日01:23,完成时钟同步算法初版,理论误差0.3微秒。”

  “5月11日02:56,开始重写CAN驱动底层,用汇编优化中断响应时间。”

  韩栋合上日志。

  他知道陆佳杰在做什么。

  这个年轻人正在用七十二小时,走完西门子用了八年才走完的路。

  不仅仅是走完。

  而是超越。

  西门子的MVB协议,响应时间是50毫秒。

  陆佳杰要做到5毫秒。

  这是十倍的差距。

  韩栋站起身,然后轻轻关上门离开。

  ……

  五月十二日上午九点。

  林淑仪带着一块崭新的PCB板走进实验室。

  “佳杰,新板子出来了。”

  陆佳杰猛地抬起头,眼睛里布满血丝,但精神却异常亢奋。

  他接过PCB板仔细端详。

  板子比之前的版本大了一圈,上面密密麻麻焊满了元器件。

  最显眼的是中央那颗银白色的金属外壳芯片。

  “TCXO?”陆佳杰问。

章节目录
书友推荐: 机战:先驱者的归来 从楚汉争霸开始,打造不朽世家 开局龙蛇演义,全球第一作家 千面之龙 她们的修仙赢学 罗汉伏魔从倚天屠龙开始 皇帝们的世界 贞观六年,世民亦未寝 篮球终点站 说好3A大作,昆特牌什么鬼 从随心所欲开始神豪 无尽乐园 中世纪:天国拯救 蒸汽之国的爱丽丝 人在封神,观想证道 刚准备高考,离婚逆袭系统来了 我的女友死在了过去 战锤宇宙的唯一玩家 高武:从武科生到星空大帝 蜀山玄阴教主