核心内容摘要
PROPKA蛋白质pKa预测技术指南:从基础到高级应用
在汽车电å�系统里轻é‡�级ECU电å�æ�§åˆ¶å�•å…ƒå�¯æ˜¯ä¸ªä¸�容å°�觑的角色。它们往往被用在资æº�å�—é™�的场景下比如ä½�æˆ�æœ¬çš„ä¼ æ„Ÿå™¨æ�§åˆ¶ã€�简å�•的执行器管ç�†æˆ–者一些é��æ ¸å¿ƒåŠŸèƒ½çš„å®�ç�°ã€‚相比äº�那些“全副æ¦è£…â€�的高性能ECUè½»é‡�级ECU对æˆ�本ã€�功耗和体积的è¦�求都高得离谱但å�ˆå¾—ä¿�è¯�基本功能ä¸�出岔å�。这就逼得开å�‘者ä¸�å¾—ä¸�在软硬件设计上精打细算特别是在AUTOSARæ�¶æ�„下对基础软件BSWBasic Software模å�—çš„è£�剪æˆ�了é‡�ä¸ä¹‹é‡�。为啥è¦�è£�剪BSW模å�—呢说白了AUTOSARçš„BSW层是个大而全的框æ�¶æ¶µç›–了通信ã€�诊æ–ã€�å˜å‚¨ç®¡ç�†ç‰ä¸€å¤§å †åŠŸèƒ½è®¾è®¡åˆ�衷是为了适é…�å�„ç§�å¤�æ�‚çš„ECU需求。å�¯åœ¨è½»é‡�级ECU上很多功能å�‹æ ¹ç”¨ä¸�上硬å¡�è¿›å�»ä¸�仅浪费å®�贵的内å˜å’Œè®¡ç®—资æº�还å�¯èƒ½æ‹‰é«˜åŠŸè€—å½±å“�系统å“�应速度。è£�å‰ªçš„ç›®æ ‡å¾ˆç®€å�•在ä¿�è¯�功能性和兼容性的å‰�æ��下把资æº�å� 用å�‹åˆ°æœ€ä½�æ‰“é€ ä¸€ä¸ªâ€œåˆšåˆšå¥½â€�çš„è½¯ä»¶æ ˆã€‚ä¸�过这事儿说起æ�¥å®¹æ˜“å�šèµ·æ�¥å�¯æ²¡é‚£ä¹ˆç®€å�•。è£�剪BSW模å�—å¾—å…ˆæ��清楚哪些是必须的哪些å�¯ä»¥ç �æ�‰è¿˜è¦�ç¡®ä¿�è£�剪å��系统ä¸�会出幺蛾å�比如通信å��è®®ä¸�兼容或者诊æ–功能挂æ�‰ã€‚更别æ��è½»é‡�级ECU本身就é�¢ä¸´ç�€å†…å˜å°�ã€�算力弱的硬性é™�制评估出一个最å°�çš„BSW模å�—集å�ˆæ—¢æ˜¯ä¸ªæŠ€æœ¯æ´»ä¹Ÿæ˜¯ä¸ªå¹³è¡¡è‰ºæœ¯ã€‚如何在功能和资æº�间找到那个甜蜜点æˆ�了工程师们头疼的问题。æ�¥ä¸‹æ�¥å°±å¾—深挖AUTOSARçš„æ�¶æ�„梳ç�†è£�剪的æ€�路和方法争å�–把这事儿æ�°æ‰¯æ¸…楚。AUTOSAR BSW模å�—çš„æ�¶æ�„ä¸�功能概述è¦�è�ŠBSW模å�—è£�剪先得æ��æ˜�白AUTOSAR里这å�—儿是干嘛的。AUTOSARAutomotive Open System Architectureæ˜¯ä¸ªæ ‡å‡†åŒ–æ�¶æ�„BSW是它的基础软件层负责å±�蔽硬件差异æ��ä¾›æ ‡å‡†åŒ–çš„æœ�务给上层的应用软件ASWApplication Software。BSW本身是个模å�—化设计包å�«äº†å¥½å‡ å¤§ç±»åŠŸèƒ½æ¯”å¦‚é€šä¿¡æ ˆCOM Stack管CANã€�LINã€�Ethernetç‰å��è®®è¯Šæ–æœ�务DCMDiagnostic Communication Manager负责故障ç �读写å˜å‚¨ç®¡ç�†NVMNon-Volatile Memory处ç�†æ•°æ�®æŒ�久化还有æ“�作系统OSå’Œè¿�行时ç�¯å¢ƒRTEå��调任务调度和数æ�®äº¤äº’。这些模å�—å�¬èµ·æ�¥ä¸€ä¸ªæ¯”一个é‡�è¦�但在å®�é™…ECU里资æº�å� 用å�¯ä¸�是闹ç�€ç�©çš„ã€‚ä»¥é€šä¿¡æ ˆä¸ºä¾‹ä¸€ä¸ªå®Œæ•´çš„CANæ ˆå�¯èƒ½å� å‡ KBåˆ°å‡ å��KBçš„ROMç©ºé—´å¤–åŠ è¿�行时的RAMå¼€é”€è¯Šæ–æ¨¡å�—如æ�œæ”¯æŒ�UDSUnified Diagnostic Services全功能å�¯èƒ½è¿˜ä¼šé¢�外拉高计算负载。对äº�一个高性能ECUæ�¥è¯´è¿™ç‚¹å¼€é”€ä¸�ç®—å•¥å�¯è¦�是æ�¢æˆ�è½»é‡�级ECU比如å�ªæœ‰å‡ KB内å˜ã€�å‡ å��MHz主频的å�•片机那真是分分钟把资æº�榨干。更别æ��BSW模å�—之间还有å¤�æ�‚çš„ä¾�赖关系ç �æ�‰ä¸€ä¸ªå�¯èƒ½ç‰µè¿�ä¸€å¤§ç‰‡ã€‚æ¯”å¦‚é€šä¿¡æ ˆä¾�èµ–äº�æ“�作系统æ��供的定时æœ�åŠ¡è¯Šæ–æ¨¡å�—å�ˆå¾—é� é€šä¿¡æ ˆå�‘é€�æ•°æ�®ç�¯ç�¯ç›¸æ‰£åЍ䏀å�‘而牵全身。轻é‡�级ECU对资æº�ä¼˜åŒ–çš„éœ€æ±‚å°±æ˜¾å¾—æ ¼å¤–è¿«åˆ‡å¼€å�‘者ä¸�å¾—ä¸�在功能完整和资æº�é™�制之间找平衡è£�剪BSW模å�—æˆ�了绕ä¸�过å�»çš„å��儿。为啥è£�ã€�è£�å•¥ã€�å’‹è£�è¿™å¾—ä¸€æ¥æ¥åˆ†æ��下å�»ã€‚BSW模å�—è£�剪的å�Ÿåˆ™ä¸�约æ�Ÿæ�¡ä»¶è£�剪BSW模å�—å�¯ä¸�是éš�便ç �å‡ åˆ€å°±å®Œäº‹å„¿å¾—æœ‰ä¸€å¥—å�Ÿåˆ™å’Œåº•线ä¸�ç„¶ç³»ç»Ÿåˆ†åˆ†é’Ÿå´©ç›˜ã€‚æ ¸å¿ƒå�Ÿåˆ™ä¹‹ä¸€æ˜¯åŠŸèƒ½å®Œæ•´æ€§æ„�æ€�是è£�剪å��剩下的模å�—必须能支æŒ�ç›®æ ‡åº”ç”¨çš„æ‰€æœ‰éœ€æ±‚æ¯”å¦‚ä¸€ä¸ªä¼ æ„Ÿå™¨ECU至少得ä¿�ç•™CAN通信和基本的数æ�®å˜å‚¨åŠŸèƒ½ã€‚å�¦ä¸€æ�¡æ˜¯å…¼å®¹æ€§è£�剪å��çš„BSW得符å�ˆAUTOSARæ ‡å‡†ä¸�èƒ½å› ä¸ºç �æ�‰æŸ�些模å�—导致跟其他ECU通信时出问题。还有安全性汽车电å�对安全è¦�求æ��高è£�剪时得确ä¿�ä¸�会影å“�故障检测或关键数æ�®çš„ä¿�护。除了这些å�Ÿåˆ™è½»é‡�级ECUæœ¬èº«è¿˜æœ‰ä¸€å †ç¡¬æ€§çº¦æ�Ÿå¾—æ�‚é‡�清楚。先说内å˜ROMå’ŒRAM通常å�ªæœ‰å‡ KBåˆ°å‡ å��KBBSW模å�—ç¨�微大点就能把空间å� 满。å†�看计算能力ä½�端MCU主频å�¯èƒ½å�ªæœ‰å‡ å��MHzå¤�æ�‚çš„BSWåŠŸèƒ½æ¯”å¦‚åŠ å¯†ç®—æ³•è·‘èµ·æ�¥ç›´æ�¥å�¡æ»ã€‚功耗也是个大问题轻é‡�级ECU多用äº�ä½�功耗场景BSW模å�—如æ�œé¢‘ç¹�唤醒系统或者å� ç”¨è¿‡å¤šå‘¨æœŸç”µæ± å¯¿å‘½ç«‹é©¬æ‰“æŠ˜æ‰£ã€‚è¿™äº›çº¦æ�Ÿæ�¡ä»¶ç›´æ�¥å½±å“�è£�剪决ç–。比如内å˜å°�就得优先ç �æ�‰é‚£äº›åŠŸèƒ½å¤�æ�‚ã€�代ç �é‡�大的模å�—åƒ�å¤�æ�‚çš„è¯Šæ–æœ�务或者ä¸�常用的通信å��议算力弱就得é�¿å…�高负载的任务调度算法尽é‡�简化æ“�作系统功能功耗æ•�感就得å‡�å°‘å��å�°ä»»åŠ¡ä¼˜åŒ–ä¼‘çœ ç–略。说到底è£�剪BSW模å�—å¾—å› åœ°åˆ¶å®œæ ¹æ�®ECU的具体应用场景和硬件é™�制æ�¥å®šä¸�能一刀切。æ�¥ä¸‹æ�¥å°±å¾—è�Šè�Šæ€�么具体评估找出那个最å°�的模å�—集å�ˆã€‚评估BSW模å�—最å°�集å�ˆçš„æ–¹æ³•ä¸�工具评估BSW模å�—è£�剪的最å°�集å�ˆè¯´ç™½äº†å°±æ˜¯æ��清楚哪些模å�—能ç �哪些必须留。这事儿得é� 系统化的方法ä¸�èƒ½å‡æ„Ÿè§‰æ‹�脑袋。一ç§�常è§�çš„æ€�路是ä¾�赖分æ��ä»�应用需求出å�‘å��æ�¨BSW模å�—çš„ä¾�赖链。比如一个ECUå�ªéœ€è¦�通过CANå�‘é€�ä¼ æ„Ÿå™¨æ•°æ�®é‚£é€šä¿¡æ ˆé‡Œçš„CAN模å�—和相关驱动是必ä¸�å�¯å°‘的但LIN或者Ethernet相关的部分就å�¯ä»¥ç›´æ�¥ç �æ�‰ã€‚除了ä¾�赖分æ��功能优先级æ�’åº�也很关键。把ECUçš„æ ¸å¿ƒåŠŸèƒ½åˆ—å‡ºæ�¥æŒ‰é‡�è¦�性æ�’个åº�优先ä¿�留支æŒ�æ ¸å¿ƒåŠŸèƒ½çš„BSW模å�—。比如å®�时性è¦�求高的任务得é� æ“�作系统支æŒ�那就得留ç�€OS模å�—如æ�œå�ªæ˜¯ç®€å�•的数æ�®é‡‡é›†å�¯èƒ½è¿�RTEè¿�行时ç�¯å¢ƒéƒ½èƒ½ç®€åŒ–æ�‰ã€‚å†�者模å�—间的耦å�ˆæ€§ä¹Ÿå¾—评估清楚。有的模å�—看似ä¸�é‡�è¦�但跟其他关键模å�—耦å�ˆå¤ªç´§ç �æ�‰ä¼šå¯¼è‡´ç³»ç»Ÿä¸�稳定。这ç§�情况å�¯ä»¥ç”¨é�™æ€�分æ��工具比如AUTOSAR工具链里的é…�置编辑器扫æ��代ç �ä¾�赖关系找出潜在问题。å�¦å¤–动æ€�测试也很é‡�è¦�è£�剪å��çš„BSW得在仿真ç�¯å¢ƒæˆ–者真å®�硬件上跑一跑看看有没有功能缺失或者性能瓶颈。工具方é�¢AUTOSAR生æ€�é‡Œæœ‰ä¸€å †ç�°æˆ�çš„ç�©æ„�儿能帮忙。åƒ�Vectorçš„DaVinci Configuratorå�¯ä»¥ç”¨æ�¥é…�ç½®BSW模å�—生æˆ�è£�剪å��的代ç �MATLAB/Simulink支æŒ�仿真测试验è¯�è£�剪å��的系统行为。硬件在ç�¯HIL测试也能派上用场模拟真å®�工况确ä¿�è£�剪å��çš„BSW在å�„ç§�场景下都稳得ä½�。总之评估最å°�集å�ˆå¾—é� 方法和工具å�Œç®¡é½�ä¸‹æ¥æ¥ä¸ºè�¥æ‰�能ä¿�è¯�è£�剪å��系统ä¸�翻车。案例分æ��ä¸�è£�剪å®�è·µä¸çš„æŒ‘战为了把ç�†è®ºè�½åœ°æ‹¿ä¸€ä¸ªå®�际场景æ�¥è¯´äº‹å„¿ã€‚å�‡è®¾æœ‰ä¸ªä½�æˆ�æœ¬ä¼ æ„Ÿå™¨æ�§åˆ¶ECU主è¦�功能是采集温度数æ�®é€šè¿‡CAN总线å�‘é€�给主æ�§ECUå�¶å°”支æŒ�简å�•的诊æ–功能。硬件平å�°æ˜¯ä¸ªåŸºç¡€æ¬¾MCUROMå�ªæœ‰32KBRAMä¸�到4KB主频16MHz资æº�ç´§å¾—ä¸�è¡Œã€‚ç›®æ ‡æ˜¯è£�剪BSW模å�—把资æº�å� 用å�‹åˆ°æœ€ä½�ã€‚ç¬¬ä¸€æ¥æ˜¯æ¢³ç�†éœ€æ±‚æ ¸å¿ƒåŠŸèƒ½æ˜¯CAN通信和数æ�®é‡‡é›†è¯Šæ–功能å�ªè¦�支æŒ�最基本的故障ç �读å�–就行。按ä¾�赖分æ��CAN Stack和底层驱动是必须留的OS模å�—也得ä¿�ç•™å› ä¸ºCAN通信需è¦�å®šæ—¶ä»»åŠ¡è°ƒåº¦ã€‚è¯Šæ–æ¨¡å�—DCMå�¯ä»¥ç®€åŒ–å�ªä¿�ç•™UDS的基本æœ�务ç �æ�‰å¤�æ�‚的会è¯�管ç�†å’Œå®‰å…¨è®¿é—®åŠŸèƒ½ã€‚å˜å‚¨æ¨¡å�—NVM用处ä¸�大直æ�¥å�»æ�‰ç”¨ç®€å�•çš„RAM缓å˜ä»£æ›¿ã€‚è£�剪å��的模å�—集å�ˆå¤§æ¦‚æ˜¯è¿™æ ·çš„æ¨¡å�—å��是å�¦ä¿�留备注CAN Stackæ˜¯æ ¸å¿ƒé€šä¿¡åŠŸèƒ½OS是任务调度必备DCM简化仅ä¿�ç•™åŸºæœ¬è¯Šæ–æœ�务NVMå�¦ç”¨RAMç¼“å˜æ›¿ä»£è£�剪过程看似顺利但å®�é™…æ“�ä½œé‡Œé—®é¢˜ä¸€å¤§å †ã€‚é¦–å…ˆæ˜¯åŠŸèƒ½å†²çª�简化DCMå��å�‘ç�°éƒ¨åˆ†CAN消æ�¯æ ¼å¼�ä¸�支æŒ�导致诊æ–工具读ä¸�到数æ�®å¾—å›�过头调整é…�置浪费ä¸�少时间。其次是性能瓶颈OS模å�—虽然ä¿�留了但任务调度算法没优化ä½�主频下å“�应有点慢最å��改用更轻é‡�的调度ç–ç•¥æ‰�解决。还有扩展性问题è£�剪å��系统跑得是没问题å�¯ä¸€æ—¦éœ€æ±‚å�˜æ›´æ¯”å¦‚åŠ ä¸ªæ–°åŠŸèƒ½é‡�新集æˆ�BSW模å�—çš„æˆ�本高得å�“人。应对这些挑战ç»�验是得留点余é‡�别è£�å¾—å¤ªç‹ å°¤å…¶æ˜¯å…³é”®æ¨¡å�—的功能é…�ç½®å®�å�¯å¤šå� 点资æº�也别为çœ�空间把系统æ��得太脆弱。测试ç�¯èŠ‚ä¹Ÿå¾—ä¸‹è¶³åŠŸå¤«è£�剪å��å¤šè·‘å‡ ç§�工况尽é‡�把éš�è—�问题æ�ªå‡ºæ�¥ã€‚è£�剪BSW模å�—是个è¿ä»£çš„过程得在å®�è·µä¸ä¸�æ–调整ç–ç•¥æ‰�èƒ½çœŸæ£æ»¡è¶³è½»é‡�级ECU的需求。