KOEN中HI

सॉफ़्टवेयर संरचना · टेस्ट बेंच

2026-10-11 डिज़ाइन रिकॉर्ड · प्रोसेसिंग इकाई NXP i.MX 95 · ECG AFE159RP8 · SpO2 AFE4490 · पुर्ज़ा टेस्ट बेंच ESP32-S3 + ADS1293

चिह्न: पुष्ट विनिर्देश के रूप में पुष्ट मद · डिफ़ॉल्ट मान डिज़ाइन दस्तावेज़ द्वारा तय मान (पुष्ट नहीं) · असत्यापित मूल स्रोत·वास्तविक मापन से अभी सत्यापित न हुआ मान। अंकगणित से निकाला गया मान 「गणना」।

विषय-सूची

  1. समग्र चित्र
  2. कोर विन्यास और M33
  3. सैंपल रेट और सिग्नल पथ
  4. कोरों के बीच संचार (साझा रिंग · RPMsg)
  5. विलंब बजट
  6. होल्टर संग्रहण · ट्रेंड
  7. अलार्म इंजन
  8. स्टेट मशीन
  9. बूट स्व-परीक्षण
  10. क्लाउड · सुरक्षा · अपडेट
  11. सॉफ़्टवेयर श्रेणी पृथक्करण · मॉड्यूल
  12. विकास क्रम · वास्तविक मापन सूची
  13. टेस्ट बेंच फ़र्मवेयर (ESP32-S3 + ADS1293)
  14. टेस्ट बेंच सत्यापन परिणाम

1. समग्र चित्र

प्रोसेसिंग इकाई NXP i.MX 95 है। रोगी को छूने वाला मापन खंड (रोगी आइलैंड) आइसोलेटेड है, और डिजिटल आइसोलेटर (ISO7762) के माध्यम से प्रोसेसिंग इकाई से जुड़ता है। प्रोसेसिंग इकाई की चिप संरचना (i.MX 95 · AFE159RP8 · AFE4490 · दूसरे चरण में RM44L920) पुष्ट विनिर्देश है, और नीचे का कोर विन्यास डिफ़ॉल्ट मान है।

 रोगी आइलैंड (आइसोलेटेड, CF)          │ गैर-रोगी पक्ष (i.MX 95 SoM)
 ──────────────────────────────────────┼───────────────────────────────────────
 AFE159RP8 (ECG 8ch, इलेक्ट्रोड 10, पेस चिप में) ─ISO7762#1─ LPSPI-A ┐
 AFE4490   (SpO2, PRF 500 Hz)            ─ISO7762#2─ LPSPI-B ├─► Cortex-M7 800 MHz (FreeRTOS)
 V1/V5 स्विच · sim/signal स्विच अवस्था   ─(आइसोलेटेड GPIO)───┘   अधिग्रहण·फ़िल्टर·QRS·पेस·SpO2
 (+विकल्प) NIBP मॉड्यूल UART · Resp (AFE में अंतर्निहित)              ·अलार्म निर्णय·अलार्म ध्वनि
                                                    │ साझा DDR रिंग (तरंग) + RPMsg (कमांड·घटना)
                                                    ▼
                         Cortex-A55 ×6 (Linux, Yocto)  स्क्रीन (Qt)·होल्टर·ट्रेंड·क्लाउड·OTA·लॉग·अधिकार
                         Cortex-M33 (NXP SM)           पावर·क्लॉक·रीसेट·PMIC·दोष प्रतिक्रिया (LM इकाई रीसेट)
 बाहरी: TPS3430 विंडो वॉचडॉग (M7 किक करता है) → WDO → बैकअप बज़र + A55 GPIO   [चरण 2] RM44L920 सुरक्षा MCU (SPI)
 LTC1760 + स्मार्ट पैक A/B (SMBus, M7 का स्वामित्व) · VSYS अंडर-वोल्टेज कम्पैरेटर → M7 IRQ

कोर विन्यास के तीन सिद्धांत डिफ़ॉल्ट मान

  1. रोगी सुरक्षा से जुड़ा पथ (अधिग्रहण → निर्णय → अलार्म ध्वनि) अकेले M7 में बंद रहता है। Linux बंद हो जाए तब भी ध्वनि बजती है।
  2. Linux केवल 「दिखाना·संग्रहीत करना·भेजना」 करता है। Linux रुक जाए तो M7 पहचानकर उच्च-प्राथमिकता 「डिस्प्ले दोष」 बजाता है।
  3. M7 रुक जाए तो System Manager (SM) केवल M7 को रीसेट करता है, उस दौरान TPS3430 बैकअप बज़र बजाता है, और A55 तरंग को धूसर कर देता है।

2. कोर विन्यास और M33

डिज़ाइन समीक्षा में बदला गया बिंदु — M33 पर निगरानी·अलार्म बैकअप नहीं चलाया जा सकता। i.MX 95 का M33, NXP System Manager के लिए समर्पित कोर है। NXP imx-sm दस्तावेज़ (sm/doc/arch.md) का मूल पाठ:

  • 「SM owns the M33 core and does not support customers adding workloads to this core.」
  • 「the Cortex-M33 is not available to run customer applications. … additional customer functionality may interfere with the real-time response of the SM.」

इसलिए डिफ़ॉल्ट मान इस प्रकार रखा गया। M33 पर NXP SM को यथावत् रखा जाता है (कोड नहीं छुआ जाता, केवल कॉन्फ़िगरेशन फ़ाइल), और SM की दोष प्रतिक्रिया (FCCU·वॉचडॉग → केवल संबंधित LM रीसेट) को 「प्राथमिक हार्डवेयर निगरानी」 के रूप में उपयोग किया जाता है। SM कॉन्फ़िगरेशन में पहले से M7_LOCKUP → M7(LM1) रीसेट, WDOG3/WDOG4 → AP(LM2) रीसेट प्रतिक्रियाएँ हैं। निगरानी·अलार्म बैकअप: चरण 1: M7 ↔ A55 पारस्परिक निगरानी + बाहरी विंडो वॉचडॉग TPS3430 + बैकअप बज़र, चरण 2: RM44L920 इसे संभाल लेता है।

कोर-वार ज़िम्मेदारी डिफ़ॉल्ट मान

कोरOSज़िम्मेदारी
M7 (800 MHz, SoM आपूर्तिकर्ता का उल्लेख)FreeRTOS + MCUXpresso SDK + RPMsg-Lite (विकल्प 2 Zephyr)AFE159RP8·AFE4490 अधिग्रहण, साझा समय-अक्ष, पेस पहचान, डेसिमेशन, द्वि-स्तरीय अनुकूली notch, HPF/LPF, QRS·HR, SpO2·PR·PI, (विकल्प) श्वसन·NIBP, अलार्म शर्त निर्णय·प्राथमिकता·अलार्म ध्वनि संश्लेषण, लीड-ऑफ·सेंसर-ऑफ़, पावर निगरानी (LTC1760·पैक·VSYS), बाहरी वॉचडॉग किक, A55 निगरानी
M33NXP SM (बेयर-मेटल, स्वयं का कोड नहीं)पावर·क्लॉक·रीसेट·PMIC, TRDC संसाधन पृथक्करण, FCCU दोष प्रतिक्रिया, रीसेट कारण रिकॉर्ड
A55 ×6Linux (NXP वेंडर कर्नेल)Qt 6 स्क्रीन, होल्टर रिकॉर्डिंग, ट्रेंड DB, अलार्म प्रदर्शन·संचालन·लॉग, सेटिंग·अधिकार, क्लाउड सिंक्रनाइज़ेशन, OTA·USB अपडेट, सर्विस मोड, सुरक्षा
RM44L920 (चरण 2)TI HALCoGen + स्वयं का (अनिर्धारित)अलार्म निर्णय का दोहरा मिलान, बैकअप अलार्म ध्वनि, बाहरी वॉचडॉग प्रबंधन, फ़ेल-सेफ़ निर्णय

संसाधन स्वामित्व (SM कॉन्फ़िगरेशन से स्थिर)

संसाधनस्वामीटिप्पणी
LPSPI ×2 (ECG·PPG समर्पित बस)M7AFE4490 अचयनित होने पर 3-स्टेट नहीं होता, इसलिए बस साझा करना निषिद्ध
DRDY·ADC_RDY इंटरप्ट GPIO, स्विच अवस्था GPIOM7
सामान्य-उद्देश्य टाइमस्टैम्प टाइमर 1M7ECG·PPG साझा समय-अक्ष
SAI या PWM + अलार्म ध्वनि एम्पM7Linux से स्वतंत्र रूप से ध्वनि बजनी चाहिए
I²C(SMBus) → LTC1760·पैक A/BM7क्योंकि पावर अलार्म M7 का निर्णय है
(विकल्प) NIBP UARTM7पंप चलते समय ECG शोर संकेत M7 को पता होना चाहिए
WDOG5M7 (SM दोष प्रतिक्रिया)WDOG5 → LM_RESET lm 1
PMIC I²C, क्लॉक, रीसेटSM
डिस्प्ले (LVDS)·GPU·eMMC·USB·Wi-Fi/BT·GbE ×2·बैकअप बज़र GPIOA55
ELE(EdgeLock Secure Enclave)बूट श्रृंखला·A55

संसाधन बजट (गणना·डिफ़ॉल्ट मान)

मदमानटिप्पणी
M7 ITCM / DTCM256 KB / 256 KBZephyr dts के आधार पर। NXP संदर्भ मैनुअल का मूल पाठ असत्यापित
M7 कोड स्थानITCM (DSP·ISR), बड़ी तालिकाएँ DDR मेंडिफ़ॉल्ट मान
M7 लोड अनुमान8 kHz इंटरप्ट (प्रति बार ≤ 5 µs → 4 %) + डेसिमेशन FIR लगभग 0.75 M MAC/s + notch·QRS (500 SPS) → 10 % से कमगणना। DWT साइकिल काउंटर से वास्तविक मापन नियोजित
साझा DDR आरक्षित क्षेत्र32 MiB (रिंग लगभग 23.2 MiB + मार्जिन)गणना

3. सैंपल रेट और सिग्नल पथ

8 kSPS क्यों

डिफ़ॉल्ट मान ECG के सभी चैनल 8 kSPS 24-बिट पर लिए जाते हैं। पेस: चिप के भीतर पहचान (प्राथमिक) + M7 सॉफ़्टवेयर पहचान (द्वितीयक पुष्टि)। विस्तृत डेटाशीट से चिप के भीतर की पहचान सभी आवश्यकताएँ पूरी करती है यह पुष्ट होने पर 2 kSPS तक घटाने पर विचार किया जाएगा, उससे पहले 8 kSPS स्थिर।

M7 के भीतर का पथ

AFE159RP8 8 kSPS × 8ch × 24bit ── DRDY ISR → LPSPI DMA ─┐
                                                         ├─ ① समय-चिह्न जोड़ना (सामान्य टाइमर 32bit, सैंपल नंबर u64)
AFE4490 500 SPS × 6 स्ट्रीम ── ADC_RDY ISR → LPSPI ──────┘
   ├─ ② पेस: चिप फ़्लैग + 8 kSPS ढलान·चौड़ाई जाँच → घटना {सैंपल नंबर, लीड, चौड़ाई}
   ├─ ③ पेस ब्लैंकिंग: पल्स खंड को 8 kSPS पर रैखिक इंटरपोलेशन से भरना
   ├─ ④ डेसिमेशन 8000 → 2000 → 500 SPS (रैखिक-फ़ेज़ FIR 2 चरण, ÷4·÷4)
   │      ग्रुप डिले अनुमान: 31 टैप (8k) 1.9 ms + 63 टैप (2k) 15.5 ms ≈ 17.4 ms (गणना)
   ├─ ⑤ 「कच्चा डेटा」 शाखा → होल्टर संग्रहण (500 SPS 24bit, notch से पहले·HPF से पहले) + calib पंक्ति
   ├─ ⑥ HPF → द्वि-स्तरीय अनुकूली notch (60·120 Hz) → LPF   (notch से पहले·बाद दोनों रखे जाते हैं — तुलना स्क्रीन के लिए)
   ├─ ⑦ QRS पहचान (अलग बैंड 5~15 Hz, notch अवस्था से स्वतंत्र)
   │      पेस घटना केवल 「Paced=Yes」 होने पर HR से बाहर·मार्कर
   └─ ⑧ PPG: 500 SPS → 5 सैंपल औसत 100 SPS → बैंड फ़िल्टर → R·SpO2·PR·PI। 1 सेकंड चक्र

500 SPS तक घटाने का कारण: पहले डिज़ाइन किए गए द्वि-स्तरीय notch के गुणांक fs = 500 Hz के आधार पर हैं, इसलिए उन्हें यथावत् उपयोग किया जा सकता है। ब्लैंकिंग की लंबाई और FIR टैप संख्या सिग्नल प्रोसेसिंग डिज़ाइन में वास्तविक मापन से तय की जाएँगी।

चैनल आवंटन डिफ़ॉल्ट मान

AFE चैनलमूल 5 इलेक्ट्रोड12-लीड विकल्प
CH1I (LA−RA)I
CH2II (LL−RA)II
CH3III (LL−LA) सीधा पुष्टV1
CH4V (V1/V5 स्विच)V2
CH5~8स्व-निदान चक्रण (आंतरिक परीक्षण सिग्नल → calib पंक्ति, पावर·तापमान)V3~V6
12-लीड विकल्प और 「III सीधा मापन」 एक साथ 8 चैनलों में नहीं समाते (I·II·III·V1~V6 = 9 चैनल)। केवल 12-लीड के समय III की गणना की जाए या AFE दो रखे जाएँ, यह अनिर्णीत है। सॉफ़्टवेयर चैनल मैप को सेटिंग तालिका के रूप में लेने के लिए लिखा जाता है, ताकि किसी भी स्थिति में कोड बदले बिना काम चले। CH5~8 स्व-निदान चक्रण सुविधा AFE159RP8 में है या नहीं, यह असत्यापित।

प्रदर्शन के लिए डाउनसैंपल

4. कोरों के बीच संचार — साझा मेमोरी रिंग + RPMsg

पथक्याकारण
साझा DDR रिंग (SPSC, M7 लिखता·A55 पढ़ता)तरंग (कच्चा डेटा·प्रोसेस्ड·PPG)·धड़कन/पेस घटनाएँमात्रा अधिक (प्रति सेकंड दसियों kB)। शून्य कॉपी। A55 हर vsync पर राइट इंडेक्स पोल करता है → विलंब ≤ 1 फ़्रेम
RPMsgकमांड·सेटिंग·अलार्म अवस्था·संख्यात्मक मान·हार्टबीटसंदेश इकाई·क्रम की गारंटी। Linux डिफ़ॉल्ट बफ़र 512 B

RPMsg साझा हेडर (24 B, लिटिल-एंडियन) डिफ़ॉल्ट मान

फ़ील्डप्रकारविवरण
magicu160xEC61
veru8प्रोटोकॉल संस्करण (HELLO में मिलान, भिन्न हो तो उपकरण दोष)
typeu8संदेश का प्रकार
lenu16मुख्य भाग की लंबाई (≤ 472 B = 512 − RPMsg हेडर 16 − 24)
flagsu16bit0 उत्तर अपेक्षित, bit1 पुनः प्रेषण
sequ32भेजने वाले पक्ष की क्रम संख्या। छूटना·उल्टा क्रम पहचान
t_idxu64500 SPS आधारित वैश्विक सैंपल नंबर (साझा समय-अक्ष)
crcu32CRC-32C (crc फ़ील्ड को 0 रखकर हेडर+मुख्य भाग)

2 एंडपॉइंट: ekg-ctrl (A55 → M7 कमांड, M7 उत्तर) · ekg-evt (M7 → A55 घटना·अवस्था)।

मुख्य संदेश डिफ़ॉल्ट मान

typeनामदिशा · चक्रमुख्य बात
0x01/0x02HELLO / HELLO_ACKआरंभ परM7 फ़र्मवेयर संस्करण·प्रोटोकॉल संस्करण·रिंग लेआउट तालिका ↔ रिलीज़ नंबर। भिन्न हो तो उच्च-प्राथमिकता 「सॉफ़्टवेयर असंगति」
0x10HB_M7M7→A55 10 Hzचालू समय, उपकरण अवस्था, रिंग राइट इंडेक्स, CPU लोड, सैंपल हानि संख्या, notch अवस्था
0x11HB_UIA55→M7 10 Hzवास्तव में फ़्लिप हुए फ़्रेम का काउंटर, अभी स्क्रीन पर दिखाए गए अलार्म ID की सूची
0x20~0x22CFG_SET / ACK / SNAPSHOTअनुरोध·उत्तर·1 मिनटसुरक्षा सेटिंग भेजकर लागू मान को वापस पढ़कर पुष्टि। अनुमत सीमा से बाहर हो तो अस्वीकार
0x30~0x32ALARM_STATE / CMD / CMD_ACKपरिवर्तन पर तुरंत + 1 Hzनिर्णय M7 का। A55 केवल विराम (डिफ़ॉल्ट 2 मिनट)·स्वीकृति·लैच रिलीज़ संचालन
0x40NUMERICS1 HzHR (स्रोत ECG/PPG/SIM), PR, SpO2 (「संदर्भ मान · अकैलिब्रेटेड」 फ़्लैग), PI, पैरामीटर-वार वैध/अवैध
0x50~0x52DEVICE_STATE · POWER_STATUS · SELFTESTपरिवर्तन पर · 1 Hz · POSTउपकरण अवस्था, पैक A/B शेष·तापमान·SOH, स्व-परीक्षण परिणाम
0x60LEAD_STATUSपरिवर्तन परइलेक्ट्रोड-वार लीड-ऑफ, V1/V5 स्विच स्थिति, sim/signal स्थिति, SpO2 सेंसर अवस्था
0x70 · 0x80/0x81FAULT · SHUTDOWN_REQ/READYघटित होने परदोष कोड · बंद होने से पहले होल्टर फ़ाइल बंद होने की पुष्टि
0x90SERVICE_CMDकेवल सर्विस मोडमापन मोड में अस्वीकार
0xA0TIME_SYNC1 मिनटUTC ↔ t_idx संगति (रिकॉर्ड के लिए। अलार्म निर्णय केवल t_idx उपयोग करता है)

साझा मेमोरी रिंग (गणना·डिफ़ॉल्ट मान)

सभी रिंग 2 की घात लंबाई की हैं, इंडेक्स वैश्विक सैंपल नंबर u64 की मास्किंग है। M7 डेटा पूरा लिखने के बाद मेमोरी बैरियर → राइट इंडेक्स अपडेट। हर ब्लॉक (20 ms = 10 सैंपल) पर CRC-32C।

रिंगप्रारूपलंबाईआकारउपयोग
R_RAWint32 × 8ch, 500 SPS (notch से पहले·HPF से पहले)2¹⁹ = 17.5 मिनट16 MiBहोल्टर·calib। Linux के फिर से चालू होने तक रिकॉर्ड को थामे रखता है
R_PRE / R_POSTfloat32 × 8ch × 22¹⁶ = 131 s4 MiBस्क्रीन, notch तुलना स्क्रीन, फ़्रीज़
R_PPG{red, ir int32, pleth float}, 100 SPS2¹⁷ = 21.8 मिनट2.5 MiB5·6वीं पंक्ति, होल्टर
R_EVT32 B घटना2¹⁴512 KiBहार्ट आइकन सिंक, एनोटेशन
नियंत्रण ब्लॉकलेआउट तालिका·राइट इंडेक्स·ओवरराइट काउंटर—4 KiB
कुललगभग 23.2 MiB → आरक्षित 32 MiB

आरक्षित क्षेत्र non-cacheable है। केवल A55 रीसेट होने पर यह DDR क्षेत्र यथावत् बचा रहता है या नहीं, यह असत्यापित — वास्तविक मापन मद S-01।

5. विलंब बजट

इलेक्ट्रोड → स्क्रीन (गणना·डिफ़ॉल्ट मान)

चरणविलंब
AFE159RP8 आंतरिक डिजिटल फ़िल्टरअसत्यापित
डेसिमेशन FIR 2 चरण≈ 17.4 ms
M7 ब्लॉक प्रोसेसिंग (20 ms ब्लॉक)≤ 20 ms
साझा रिंग → A55 पोलिंग≤ 16.7 ms
स्थिर प्रदर्शन विलंब D (QRS पहचान विलंब समायोजन, हार्ट आइकन सिंक)300 ms प्रारंभिक मान
रेंडर + पेज फ़्लिप (डबल बफ़र 2 फ़्रेम)≤ 33 ms
कुललगभग 390 ms + AFE विलंब

अलार्म डिफ़ॉल्ट मान

पथबजट
हृदय गति ऊपरी·निचली सीमा, एसिस्टोल (शर्त विलंब + सिग्नल उत्पादन विलंब)योग ≤ 10 s (शर्त निर्णय ≤ 8 s + ध्वनि आरंभ ≤ 1 s + मार्जिन) — घरेलू उपयोग पर लागू न होने वाले IEC 60601-2-27 मानदंड को स्वेच्छा से अपनाया
लीड-ऑफ·संतृप्ति प्रदर्शन≤ 1 s (मानक ≤ 10 s)
SpO2 अपडेट रुकना> 30 s होने पर निम्न-प्राथमिकता
बैटरी समाप्तिशेष 20 मिनट पर उच्च-प्राथमिकता (मानक 「कम से कम 5 मिनट पहले」)
M7 निर्णय → A55 स्क्रीन प्रदर्शन≤ 50 ms
M7 निर्णय → क्लाउड·देखभालकर्ता सूचनासर्वोत्तम प्रयास (कोई गारंटी नहीं) — अलार्म प्रणाली का हिस्सा नहीं माना जाता

6. होल्टर संग्रहण · ट्रेंड

सिद्धांत

1 सेकंड ब्लॉक डिफ़ॉल्ट मान

स्थिर आकार के स्लॉट: 4 चैनल 8 KiB, 8 चैनल 16 KiB (eMMC 4 KiB संरेखण)। 1 घंटा = 3600 स्लॉट वाली सेगमेंट फ़ाइल पहले से आवंटित की जाती है ताकि लिखते समय फ़ाइल मेटाडेटा न बदले।

स्थानफ़ील्डआकार
हेडरmagic 'EKGB', प्रारूप संस्करण, सत्र UUID, ब्लॉक क्रम संख्या, पहला सैंपल नंबर, UTC + मोनोटोनिक समय, सैंपलिंग (500), चैनल संख्या·मैप·स्केल, फ़िल्टर सेटिंग की प्रति, notch अवस्था, फ़्लैग (SIM·लीड-ऑफ·Paced·चार्जिंग के दौरान)128 B
ECG500 × N चैनल × 3 B (24-बिट पैकिंग)6,000 B (4ch) / 12,000 B (8ch)
PPG100 × 2 × 3 B (red·IR)600 B
ट्रेंडइस 1 सेकंड का HR·PR·SpO2·PI·(RR·NIBP) + वैधता फ़्लैग32 B
एनोटेशन TLVधड़कन (प्रकार 「संदर्भ हेतु」), पेस समय-बिंदु (8 kSPS विभेदन), लीड परिवर्तन, V1/V5 स्विचिंग, अलार्म आरंभ·अंत, रोगी बटन, समय सुधारपरिवर्ती
अंत भागCRC-32C + पिछले ब्लॉक का SHA-256 शामिल हैश श्रृंखला36 B

ट्रेंड DB डिफ़ॉल्ट मान

7. अलार्म इंजन (IEC 60601-1-8 प्राथमिकता)

प्राथमिकता·संकेत डिफ़ॉल्ट मान

मदउच्चमध्यमनिम्न
रंग#FF0000 भरावपीला भराव + काले अक्षरसियान भराव + काले अक्षर
झपकनावर्तमान 1 Hz बनाए रखना (मानक का मूल पाठ जाँचने से पहले)समाननहीं
ध्वनि10-पल्स बर्स्ट3 पल्स1~2 पल्स

अलार्म सूची (अंश) डिफ़ॉल्ट मान

प्रकारअलार्मप्राथमिकता
शारीरिकHR ऊपरी·निचली सीमा (डिफ़ॉल्ट 50~120, समायोजन चरण ≤ 5 bpm)मध्यम
शारीरिकएसिस्टोलउच्च
शारीरिकSpO2 निचली सीमा (डिफ़ॉल्ट 90 %, 85 % से कम डिफ़ॉल्ट निषिद्ध) — 「संदर्भ मान · अकैलिब्रेटेड」 साथ में दिखाया जाता हैमध्यम
शारीरिकPR ऊपरी·निचली सीमा (डिफ़ॉल्ट 50~120)मध्यम
तकनीकीलीड-ऑफ (इलेक्ट्रोड नाम प्रदर्शन) · एम्पलीफ़ायर संतृप्ति · SpO2 सेंसर-ऑफ़मध्यम
तकनीकीAC कटना (बिजली-कटौती मोड में प्रवेश) · SOC 10 % · होल्टर रिकॉर्डिंग विफलतामध्यम
तकनीकीशेष समय ≤ 20 मिनट · उपकरण दोष · डिस्प्ले दोष (A55 रुकना)उच्च
तकनीकीSpO2 अपडेट रुकना > 30 s · संग्रहण स्थान 90 % · क्लाउड कनेक्शन टूटनानिम्न
सूचनाSIMULATION (पूरी स्क्रीन) · चार्जिंग के दौरान मापन संभव नहीं · AC वापसी—

अतालता वर्गीकरण के परिणाम अलार्म में उपयोग नहीं होते। केवल रिकॉर्ड·संदर्भ हेतु हैं।

8. स्टेट मशीन

तीन अक्ष परस्पर व्याप्त होते हैं: उपकरण अवस्था (S) × पैरामीटर-वार सिग्नल वैधता × पावर अवस्था (P)।

उपकरण अवस्था डिफ़ॉल्ट मान

अवस्थाप्रवेश की शर्तस्क्रीनध्वनि
BOOT/POSTपावर चालू, M7 आरंभसफ़ेद स्प्लैश + प्रगतिPOST के अंत में छोटी स्व-ध्वनि 1 बार
S0 सामान्यPOST पास6 पंक्ति तरंग·संख्यात्मक मानशारीरिक अलार्म पर
S1 सिग्नल अवैध (पैरामीटर-वार)लीड-ऑफ·सेंसर-ऑफ़·संतृप्ति·NaN·स्व-निदान विचलन·रिंग डेटा 0.5 s बाधितसंबंधित पंक्ति बिंदीदार/धूसर, संख्या 「---」 (पिछला मान नहीं रखा जाता)तकनीकी अलार्म मध्यम/निम्न
S2 उपकरण दोषPOST विफल, वॉचडॉग रीसेट इतिहास, AFE संचार टूटना, संस्करण असंगति, हार्टबीट हानि「उपकरण दोष — मापन संभव नहीं」 पूरी स्क्रीनउच्च (M7 स्पीकर या बैकअप बज़र)
S3 सुरक्षा विरामरोगी आइलैंड पावर असामान्य, बोर्ड अति-ताप, शेष समय ≤ 5 मिनट「मापन रोका गया」 + कारणउच्च
SERVICEरोगी असंबद्ध + सर्विस अधिकारसर्विस स्क्रीन—

दो सिद्धांत: रुकी हुई सामान्य तरंग नहीं दिखाई जाती · मुख्य प्रोसेसिंग इकाई बंद हो जाए तब भी अलार्म ध्वनि जीवित रहती है।

पावर अवस्था डिफ़ॉल्ट मान

अवस्थाशर्तक्रिया
P0 ACAC उपस्थितचार्जिंग। चार्जिंग के दौरान मापन 2-चरणीय अनलॉक नियम — चरण 1 के दौरान 「चार्जिंग के दौरान मापन संभव नहीं」 प्रदर्शन + हार्डवेयर इंटरलॉक
P1 बिजली-कटौती मोडAC कटामध्यम-प्राथमिकता अलार्म 1 बार, बैकलाइट 30 %, DVFS, अपलोड अंतराल बढ़ाना। मापन·रिकॉर्डिंग·अलार्म यथावत्
P2 कमीशेष ≤ 20 मिनटउच्च-प्राथमिकता, होल्टर 1 s चक्र बनाए रखना, अपलोड रोकना
P3 शटडाउन अनुक्रमशेष ≤ 5 मिनट या सेल सीमाM7 → SHUTDOWN_REQ → A55 होल्टर बंद·fsync·लॉग → SHUTDOWN_READY → आइलैंड पावर बंद → बैकलाइट·पैनल·SoM क्रम से
P4 अचानक बिजली हानिVSYS कम्पैरेटरलेखन रोकना। हानि ≤ 1~2 s

9. बूट स्व-परीक्षण (POST) · आवधिक परीक्षण

क्रममदज़िम्मेदारविफलता पर
1AHAB हस्ताक्षर सत्यापन श्रृंखला (ROM → कंटेनर)ELE / ROMबूट नहीं होता
2SM रीसेट कारण पढ़ना — ठीक पहले वॉचडॉग·दोष हुआ या नहींA55लॉग
3M7 स्वयं: TCM कोड CRC, RAM पैटर्न, क्लॉक मिलान (सामान्य टाइमर vs AFE DRDY चक्र)M7S2
4AFE159RP8: चिप ID, आंतरिक परीक्षण सिग्नल, इनपुट शॉर्ट शोर, पावर·तापमान, लीड-ऑफ कम्पैरेटर (सुविधा सूची असत्यापित)M7S2
5AFE4490: SPI लिखना-पढ़ना मिलान, ADC_RDY = PRF, LED·PD निदानM7S2
6बैटरी पैक A/B अवस्था·SOH, LTC1760 अवस्थाM7अलार्म श्रेणी के अनुसार
7अलार्म ध्वनि संक्षेप में 1 बारM7S2
8DDR इनलाइन ECC, eMMC जीवनकाल रजिस्टर, डेटा पार्टिशन माउंट·होल्टर पुनर्प्राप्तिA55अलार्म श्रेणी के अनुसार
9सेटिंग CRC, M7 ↔ A55 रिलीज़ नंबर मिलानA55·M7S2
10बैकअप बज़र पथ (केवल सर्विस मोड में)——

आवधिक परीक्षण (मापन के दौरान): calib पंक्ति = आंतरिक परीक्षण सिग्नल को निरंतर स्व-निदान के लिए भी उपयोग, आयाम ±2 % से बाहर हो तो 「AFE गेन असामान्य」। पावर·तापमान को बचे हुए चैनलों पर कुछ सेकंड में चक्रित किया जाता है।

10. क्लाउड · सुरक्षा · अपडेट

क्लाउड — ऑफ़लाइन संग्रहण के बाद सिंक्रनाइज़ेशन डिफ़ॉल्ट मान

बूट श्रृंखला (AHAB)

Boot ROM ─(ELE सत्यापन)─► बूट कंटेनर [SM(M33) · U-Boot SPL · ATF · OP-TEE · U-Boot]
         U-Boot ─(AHAB प्रमाणीकरण)─► M7 फ़र्मवेयर कंटेनर (A/B स्लॉट के भीतर) → M7 आरंभ → अधिग्रहण आरंभ
         U-Boot ─(हस्ताक्षरित FIT)──► कर्नेल + DTB + initramfs (A/B स्लॉट) → rootfs dm-verity

M7 फ़र्मवेयर को A/B स्लॉट में रखकर Linux के साथ एक बंडल में साथ अपडेट·साथ रोलबैक किया जाता है। इसकी कीमत यह है कि M7 का आरंभ U-Boot चरण तक देर से होता है (कुछ सेकंड, वास्तविक मापन नियोजित)। i.MX 95 के लिए AHAB हस्ताक्षर प्रक्रिया·रोलबैक काउंटर असत्यापित।

OTA (RAUC A/B, हस्ताक्षर अनिवार्य) डिफ़ॉल्ट मान

उपयोगकर्ता अधिकार डिफ़ॉल्ट मान

भूमिकाक्या कर सकते हैंप्रमाणीकरण
उपयोगकर्तादेखना, इवेंट बटन, ध्वनि विराम (2 मिनट), चमकनहीं
देखभालकर्ता+ रिकॉर्डिंग आरंभ·रोकना, दूरस्थ सूचना कनेक्शन, निर्यातPIN
चिकित्सा कर्मी+ अलार्म सीमा·विलंब, फ़िल्टर मोड, Paced सेटिंग, विकल्प चालू करनाPIN
सर्विस+ सर्विस मोड, लॉग निर्यात, अपडेट, स्व-निदानPIN + हस्ताक्षरित सर्विस टोकन
निर्माणसीरियल·कुंजी प्रविष्टि·कैलिब्रेशन मान रिकॉर्ड → शिपमेंट के बाद लॉककेवल कारख़ाना

सुरक्षा सेटिंग (अलार्म सीमा·न्यूनतम ध्वनि·Paced) M7 को CFG_SET → वापस पढ़कर पुष्टि पूरी होने पर ही 「लागू」 होती है। M7 अंतिम पुष्ट मान से चलता रहता है।

11. सॉफ़्टवेयर श्रेणी पृथक्करण (IEC 62304) · मॉड्यूल

सॉफ़्टवेयर मदश्रेणी (डिफ़ॉल्ट मान)पृथक्करण का आधार
M7: अधिग्रहण·फ़िल्टर·QRS·पेस·SpO2·AlarmCore·अलार्म ध्वनि·पावर निगरानी·A55 निगरानीCसीधे हानि तक ले जाने वाले निर्णय यहीं हैं
A55: तरंग·संख्यात्मक मान प्रदर्शन (Qt)BM7 फ़्रेम काउंटर·दिखाए गए अलार्म की सूची की निगरानी करता है → रुकने पर M7 उच्च-प्राथमिकता ध्वनि
A55: AlarmUIBनिर्णय·ध्वनि M7 के। विराम समय की ऊपरी सीमा M7 लागू करता है
A55: होल्टर·ट्रेंड·क्लाउड·OTA·अधिकार·लॉगBविफलता तकनीकी अलार्म से प्रकट होती है या रोलबैक। अलार्म पथ से स्वतंत्र
M33: NXP SMSOUPकोर पृथक्करण का हार्डवेयर आधार
RM44L920 (चरण 2)C

पृथक्करण का आधार: अलग कोर + SM का संसाधन पृथक्करण (LM इकाई) + M7 बिना Linux के चलता है + बाहरी विंडो वॉचडॉग। यह पृथक्करण मानक के अनुसार मान्य है या नहीं, यह परीक्षण संस्था का निर्णय है इसलिए असत्यापित।

मॉड्यूल (अंश)

मॉड्यूलस्थानइनपुट → आउटपुट
acq_ecg · acq_ppgM7AFE इंटरप्ट·SPI → 8 kSPS फ़्रेम / 500 SPS 6 स्ट्रीम + समय
pace · decim · notch2 · filtM78 kSPS → पेस घटना · 500 SPS · notch अवस्था
qrs · spo2M7धड़कन घटना·HR / SpO2·PR·PI·गुणवत्ता
power · alarm_core · supervisorM7पावर अवस्था · अलार्म अवस्था·अलार्म ध्वनि · वॉचडॉग किक·डिस्प्ले दोष
ipcM7·A55रिंग·RPMsg (एक ही परिभाषा से C/C++/Python हेडर स्वतः उत्पन्न)
ekg-ui · ekg-alarmuiA55रिंग·संख्यात्मक मान·अलार्म अवस्था → स्क्रीन, HB_UI, अलार्म संचालन
ekg-recorder · ekg-trend · ekg-syncA551 सेकंड ब्लॉक · SQLite · MQTT·अपलोड
ekg-config · ekg-update · ekg-serviceA55CFG_SET·ऑडिट लॉग · RAUC · सर्विस कमांड

सिग्नल प्रोसेसिंग कोड (dsp/) हार्डवेयर से स्वतंत्र C में रखा जाता है ताकि PC पर भी बिल्ड हो, और सार्वजनिक ECG डेटाबेस के पुनःप्रसारण से यूनिट परीक्षण किया जाता है। RTOS बदलने पर भी लागत कम रहती है।

12. विकास क्रम · वास्तविक मापन सूची डिफ़ॉल्ट मान

चरणविवरणपूर्ण मानने का मानदंड
0 (बिना बोर्ड)प्रोटोकॉल परिभाषा, सिग्नल प्रोसेसिंग PC पर — डेसिमेशन·notch·QRS·अलार्म निर्णय को रिकॉर्डेड तरंग·सिम्युलेटर तरंग सेपहचान प्रदर्शन के आँकड़े आउटपुट, notch परीक्षण, अलार्म स्टेप परीक्षण (80 → 40·120·0 bpm)
1i.MX 95 मूल्यांकन बोर्ड से सीधे आरंभ। Yocto मूल इमेज, SM कॉन्फ़िगरेशन, M7 hello + RPMsg + साझा रिंगHELLO/HB राउंड-ट्रिप, A55 ज़बरदस्ती रीसेट वास्तविक मापन S-01
2AFE कनेक्शन, 8 kSPS अधिग्रहण, Qt 6 पंक्ति स्क्रीनसैंपल हानि 0 (24 h), स्क्रीन विलंब वास्तविक मापन
3AlarmCore + अलार्म ध्वनि + स्टेट मशीन + POST + वॉचडॉगदोष इंजेक्शन (M7 रुकना·A55 रुकना·AFE तार निकालना)
4होल्टर·ट्रेंड·पावर इंटरलॉकपावर को बार-बार ज़बरदस्ती काटना → हैश श्रृंखला हानि ≤ 1~2 s
5सुरक्षा: AHAB हस्ताक्षर, dm-verity, RAUC, USB अपडेटगलत हस्ताक्षर अस्वीकार, 3 बार विफलता पर रोलबैक
6क्लाउड (घरेलू रीजन परीक्षण सर्वर)संचार 1 सप्ताह कटने के बाद क्रमवार पुनर्प्राप्ति, अपुष्ट भाग नहीं हटाया
7विकल्प (12-लीड·श्वसन·NIBP), RM44L920 इंटरलॉकदोहरे निर्णय का मिलान
मापन IDक्या
S-01A55 रीसेट के समय साझा DDR·M7 का चलते रहना, Linux रीबूट समय
S-02M7 रीसेट के बाद पुनः आरंभ समय (उस दौरान रिकॉर्ड बाधा की अवधि)
S-03M7 लोड, 8 kHz इंटरप्ट जिटर
S-04इलेक्ट्रोड → स्क्रीन विलंब, AFE159RP8 फ़िल्टर विलंब
S-05ext4 vs F2FS पावर कटौती परीक्षण, eMMC Reliable Write व्यवहार
S-06U-Boot से M7 आरंभ तक का समय

अनिर्णीत मद: 12-लीड विकल्प में lead III का प्रबंधन (गणना या 2 AFE), V1/V5 तरंग का स्क्रीन पर स्थान।

13. टेस्ट बेंच फ़र्मवेयर — ESP32-S3 + ADS1293 + हृदय गति·ऑक्सीजन मॉड्यूल

यह मुख्य उत्पाद (AFE159RP8 · AFE4490 · i.MX 95) से भिन्न केवल टेस्ट बेंच हेतु संरचना है। उद्देश्य बाज़ार में उपलब्ध मॉड्यूलों से सिग्नल पथ·फ़्रेम·रिसीव स्क्रीन की पहले जाँच करना है।

स्थिति (2026-10-11 के अनुसार): पुर्ज़े नहीं पहुँचे। केवल कम्पाइल पास, बोर्ड अपलोड·वास्तविक मापन 0 बार। नीचे के 「असत्यापित」 पुर्ज़े आने पर मापकर हटाए जाएँगे।

वायरिंग (ESP32-S3 N16R8)

सिग्नलESP32-S3टिप्पणी
ADS1293 SCLK / SDI / SDO / CSBGPIO 12 / 11 / 13 / 10HSPI बस (2.0" स्क्रीन की बस·पिन से अलग)
ADS1293 DRDYBGPIO 2फ़ॉलिंग एज इंटरप्ट, आंतरिक पुल-अप
ADS1293 ALARMBGPIO 1 (वैकल्पिक)केवल स्थिति पंक्ति में प्रदर्शन
MAX30102 SDA / SCLGPIO 8 / 9400 kHz, INT अप्रयुक्त · 10 ms पोलिंग
पावर3V3 · GNDADS1293 मॉड्यूल पर 5 V निषिद्ध — VDDIO अधिकतम 3.6 V

टाले गए पिन: 4·5·6·7·15 (2.0" स्क्रीन) · 19·20 (USB) · 43·44 (UART0) · 26~32 (फ़्लैश) · 33~37 (OPI PSRAM) · 0·3·45·46 (बूट स्ट्रैपिंग) · 38·48 (बोर्ड के अनुसार RGB LED)।

ADS1293 — lead I·II·III सभी का सीधा मापन

चैनल+−लीडFLEX मान
CH1LA (IN2)RA (IN1)I0x11 (डेटाशीट उदाहरण के समान)
CH2LL (IN3)RA (IN1)II0x19 (उदाहरण के समान)
CH3LL (IN3)LA (IN2)III (सीधा)0x1A — उदाहरण में CH3 बंद करके III = II − I गणना की जाती है
LA एक साथ CH1 के + और CH3 के − पर लगता है। समान ध्रुवता का साझा उपयोग डेटाशीट उदाहरण की विधि है, पर भिन्न ध्रुवता के साझा उपयोग पर न निषेध का वाक्य है न अनुमति का असत्यापित। इसलिए रिसीव स्क्रीन पर आइंटहोवन अवशेष II − (I + III) हर सैंपल पर बनाकर निर्णय किया जाता है। ADS1293 में केवल 3 चैनल हैं, इसलिए V1/V5 जोड़ने पर III के सीधे मापन के साथ एक साथ नहीं हो सकता — यह केवल टेस्ट बेंच की सीमा है।

इलेक्ट्रोड आवंटन डिफ़ॉल्ट: RA→IN1, LA→IN2, LL→IN3, RL←IN4 (RLD आउटपुट)। मॉड्यूल जैक की वायरिंग असत्यापित है, इसलिए कमांड e से IN नंबर बदले जा सकते हैं।

मुख्य रजिस्टर

पतामानअर्थ
0x06 · 0x07 · 0x080x00 · 0x07 · 0x01DC लीड-ऑफ चालू, IN1~3 में करंट इंजेक्शन, 8 nA। तुलना संदर्भ VDD − 0.5 V। RL फ़ीडबैक न हो तो सभी 「अलग」 दिखना सामान्य है
0x0A · 0x0B · 0x0C0x07 · 0x00 · 0x04कॉमन मोड = RA·LA·LL औसत → RLD आउटपुट → IN4 (RL)
0x11 · 0x13 · 0x140x00 · 0x07 · 0x00आंतरिक 2.4 V संदर्भ, तीनों चैनल उच्च विभेदन, सभी चालू
0x27 · 0x2F0x08 · 0x71DRDYB = CH1 ECG, स्ट्रीमिंग = स्थिति + 3 चैनल (1+9 बाइट)
0x12 · 0x000x04 · 0x01बाहरी 4.096 MHz क्रिस्टल → डिजिटल, 15 ms प्रतीक्षा के बाद रूपांतरण आरंभ। मॉड्यूल में क्रिस्टल है या नहीं असत्यापित — न हो तो फ़र्मवेयर हर 1 सेकंड चेतावनी देता है

RL का अलग होना लीड-ऑफ से नहीं पकड़ा जाता, इसलिए RLD आउटपुट रेल के निकट है या नहीं (RLDRAIL) यह अलग से आउटपुट किया जाता है। त्रुटि रजिस्टर हर 32 सैंपल पर, या ALARMB बिट सेट होते ही तुरंत पढ़ा जाता है।

सैंपल रेट (डेटाशीट तालिका 8, SDM 102.4 kHz, R1 = 4)

कमांडODRबैंडADCMAXशोर (µV rms, तालिका मान)1 LSBप्रति 1 mV कोड
r 533 डिफ़ॉल्ट533.33 Hz105 Hz0xF300002.070.0861 µV11,612
r 853853.33 Hz175 Hz0xB964F02.670.1129 µV8,859
r 400400 Hz80 Hz0x8000001.810.1635 µV6,117

533 को डिफ़ॉल्ट रखने का कारण यह है कि यह 500 SPS आधारित notch डिज़ाइन के सबसे निकट है (notch गुणांक 533.33 Hz पर फिर से गणना करने होंगे)। निदान बैंड 150 Hz को केवल 853 ढकता है, और मॉनिटर बैंड 40 Hz को तीनों ढकते हैं। इनपुट सीमा INA डिफ़रेंशियल ±400 mV है।

अंतर्निहित परीक्षण सिग्नल

कमांडसिग्नलअपेक्षित कोड (533 मोड)
t ++VTEST = VREF/12 = +200 mV DC10,285,056
t -−200 mV DC5,640,192
t 0इनपुट शॉर्ट (शोर मापन)7,962,624 (= ADCMAX/2)
t xबंद (इलेक्ट्रोड)—

VTEST और VREF एक ही संदर्भ से आते हैं, इसलिए यह गेन कैलिब्रेशन नहीं है, बल्कि स्व-परीक्षण·चैनलों के बीच गेन अंतर की जाँच के लिए है। 1 mV कैलिब्रेशन सिग्नल (calib) बाहरी बैटरी सिम्युलेटर का काम है।

हृदय गति·ऑक्सीजन मॉड्यूल (MAX30102 अनुमानित, I2C 0x57)

सीरियल प्रोटोकॉल

533 SPS × 16 B + 100 × 12 B ≈ 9.7 kB/s (853 SPS होने पर 14.9 kB/s)। बाइनरी फ़्रेम + # से आरंभ होने वाली टेक्स्ट पंक्तियाँ (सूचना·1 सेकंड स्थिति·चेतावनी), CSV मोड भी है।

ECG फ़्रेम 16 B : A5 5A 'E' seq(u16 LE) CH1 CH2 CH3(u24, MSB पहले) flags crc8
PPG फ़्रेम 12 B : A5 5A 'P' seq(u16 LE) RED IR(u24)                 crc8
crc8 = बहुपद 0x07, प्रारंभिक 0, 'E'/'P' से flags तक

flags: 1 RA अलग · 2 LA अलग · 4 LL अलग · 8 RLD रेल · 16 कॉमन मोड सीमा से बाहर
       32 इनपुट सीमा से बाहर · 64 संश्लेषित · 128 परीक्षण सिग्नल

CRC गणना भाग का अंश (फ़र्मवेयर और PC परीक्षण कोड एक ही हेडर उपयोग करते हैं):

static inline uint8_t ekg_crc8(const uint8_t *p, size_t n) {   // बहुपद 0x07, प्रारंभिक मान 0
  uint8_t c = 0;
  for (size_t i = 0; i < n; i++) {
    c ^= p[i];
    for (int b = 0; b < 8; b++) c = (c & 0x80) ? (uint8_t)((c << 1) ^ 0x07) : (uint8_t)(c << 1);
  }
  return c;
}

कोड → वोल्टेज रूपांतरण डेटाशीट सूत्र 13: V = (ADC_OUT/ADCMAX − ½)·2·VREF/3.5।

कमांडअर्थ
m a / m sADS1293 वास्तविक मापन / संश्लेषित (मॉड्यूल न हो तो स्वतः संश्लेषित)
o b / o cबाइनरी / CSV
r 533 · r 853 · r 400सैंपल रेट
t + · t - · t 0 · t xअंतर्निहित परीक्षण सिग्नल
e 1 2 3 4RA LA LL RL के IN नंबर
l 1 · g 1 / g 0लीड-ऑफ करंट ×8 nA (0 = बंद) · RLD चालू/बंद
h 72 · n 50 · w 2 · c 1संश्लेषित: हृदय गति · 60 Hz इंजेक्शन µV (RA 0 गुना·LA 1 गुना·LL 2 गुना) · श्वेत शोर µV rms · calib वर्ग तरंग
dADS1293 रजिस्टर डंप

संश्लेषित सिग्नल ADS1293 के समान ADC कोड रूप में जाता है, इसलिए प्राप्त करने वाले पक्ष को वास्तविक मापन और संश्लेषित में अंतर करने की ज़रूरत नहीं (केवल flags 64 भिन्न है)। संश्लेषण मॉडल में अंग विभव φRA=0, φLA=I, φLL=II रखकर लीड को विभवांतर से फिर से गणना किया जाता है, जिससे III = II − I परिभाषा से ही सिद्ध होता है। विद्युत अक्ष 50° संश्लेषण हेतु मनमाना मान है।

रिसीव·प्रदर्शन स्क्रिप्ट (PC · Raspberry Pi दोनों के लिए)

सुरक्षा — मानव शरीर को छूने से पहले

इस टेस्ट बेंच में आइसोलेशन नहीं है। मॉड्यूल → ESP32 → USB → कंप्यूटर विद्युत रूप से एक ही इकाई हैं।

  1. लैपटॉप केवल बैटरी पर। चार्जर निकाल दें
  2. लैपटॉप में अन्य तार (HDMI मॉनिटर, ईथरनेट, पावर एडाप्टर वाली बाहरी डिस्क, ऑडियो) न लगाएँ
  3. एडाप्टर पावर वाले Raspberry Pi + स्क्रीन को शरीर इलेक्ट्रोड परीक्षण में उपयोग न करें — केवल संश्लेषित·शॉर्ट·सिम्युलेटर चरणों में
  4. ग्राउंडेड डेस्कटॉप में सीधे लगाकर शरीर पर इलेक्ट्रोड न लगाएँ
  5. लगाते समय धातु की मेज़·रेडिएटर·पानी के पाइप को न छुएँ
  6. गीली त्वचा·घाव पर न लगाएँ। इलेक्ट्रोड डिस्पोज़ेबल, एक बार
  7. पेसमेकर·प्रत्यारोपित उपकरण वाले व्यक्ति पर न लगाएँ
  8. इस उपकरण की तरंग·संख्याओं से स्वास्थ्य का निर्णय न करें — यह टेस्ट बेंच है
  9. मॉड्यूल में 5 V न दें (VDDIO अधिकतम 3.6 V)

परीक्षण क्रम

चरणक्यापास मानदंड
① संश्लेषितकेवल ESP32 USB से। मॉड्यूल के बिना प्राप्त करने वाले पक्ष के पूरे पथ की जाँच (m s · n 50 · c 1)बाधा 0 · अवशेष ≤ 2 LSB · हृदय गति 72 · 60 Hz का आकार I·III में समान और II में उसका 2 गुना
② शॉर्ट शोरमॉड्यूल जुड़ा, इलेक्ट्रोड नहीं। REVID=0x01 जाँच के बाद t 0 10 सेकंड · t + · t -, फिर जैक पर चारों इलेक्ट्रोड एक बिंदु पर बाँधकर t xt 0 शोर rms ≈ तालिका मान (533 मोड 2.07 µV rms) · t ± कोड अपेक्षित मान के समान · DRDYB चेतावनी नहीं · लीड-ऑफ बिट 0
③ सिम्युलेटरबाहरी बैटरी सिम्युलेटर (1 V p-p → 1000:1 → 1 mV)। अभी नहीं बना1 mV, 1 mV के रूप में · अवशेष शोर स्तर पर (III सीधे मापन की सिद्धि का निर्णय) · 60 Hz notch से पहले/बाद का कच्चा डेटा संग्रहण · इलेक्ट्रोड एक-एक कर निकालकर लीड-ऑफ प्रतिक्रिया
④ मानव इलेक्ट्रोडऊपर के सभी सुरक्षा मदों का पालन करने के बाद RA·LA·LL·RL 4लीड-ऑफ 0 · RLD रेल 0 · QRS दिखे · हृदय गति कलाई की नाड़ी से मेल खाए · 60 Hz अवशेष का आकार रिकॉर्ड

④ से पहले ②·③ से अवश्य गुज़रें। ② में DRDYB चेतावनी आए (क्रिस्टल न होने का संदेह) तो वहीं रुकें।

14. टेस्ट बेंच सत्यापन परिणाम (2026-10-11)

  • 2 प्रकार कम्पाइल पास, टेस्ट बेंच स्रोत में चेतावनी 0 (--warnings all, arduino-cli 1.5.2-rc.1 · esp32 कोर 3.3.12)
    • मूल ESP32-S3 — फ़्लैश 365,710 B (27 %) · RAM 24,336 B (7 %)
    • नेटिव USB CDC + OPI PSRAM + 16 MB — 366,348 B (27 %) · 25,016 B (7 %)
  • बोर्ड अपलोड नहीं किया गया (पुर्ज़े नहीं पहुँचे)
  • फ़्रेम क्रॉस-सत्यापन: फ़र्मवेयर के समान हेडर (फ़्रेम·संश्लेषित सिग्नल) को PC पर कम्पाइल करके 20 सेकंड की स्ट्रीम बनाई और Python रिसीव पक्ष से खोला
    • ECG 10,666 फ़्रेम में से जानबूझकर CRC बिगाड़ा गया 1 फ़्रेम सही ढंग से छोड़ा गया (बाधा 1 के रूप में गिना), PPG 2,000 फ़्रेम हानि 0
    • 0xA5 0xA5 बाइट वाली कोरियाई अक्षरों की टेक्स्ट पंक्तियाँ मिली होने पर भी सिंक नहीं खोया
    • आइंटहोवन अवशेष अधिकतम 0.086 µV = 1 LSB, rms 0.042 µV → जाँच पास
    • CSV पथ (पंक्ति पार्सिंग·seq बाधा·flags) अलग से जाँचा गया
संश्लेषित सिग्नल पुनःप्रसारण रिसीव स्क्रीन: lead I, II, III, अवशेष, पल्स तरंग लाल, पल्स तरंग IR 6 पंक्तियाँ
संश्लेषित स्ट्रीम पुनःप्रसारण स्क्रीन। संश्लेषित 60 Hz 50 µV इंजेक्शन I·II·III में दिखता है, और अवशेष II−(I+III) पंक्ति 0 के निकट है। शीर्षक का R अनुपात संदर्भ मान है और SpO2 संख्या अकैलिब्रेटेड है। यह सेंसर का वास्तविक मापन नहीं, संश्लेषित सिग्नल है।

शेष असत्यापित (पुर्ज़े आने के बाद जाँच)

  1. ADS1293 मॉड्यूल की पावर संरचना (VDD·VDDIO), 4.096 MHz क्रिस्टल की उपस्थिति, जैक पिन आवंटन, इनपुट सुरक्षा·RLD पुर्ज़ों के मान
  2. एक इनपुट पिन को एक साथ CH1 + और CH3 − पर लगाने की अनुमति (अवशेष से निर्णय)
  3. सेंसर मॉड्यूल MAX30102 है या नहीं, लाल·IR अदला-बदली तो नहीं हुए
  4. MAX30102 मूल डेटाशीट से मिलान
  5. ESP32-S3 बोर्ड का RGB LED पिन, USB पोर्ट प्रकार
  6. लीड-ऑफ 8 nA केबल कैपेसिटेंस पर कितने सेकंड में प्रतिक्रिया देता है
  7. चिकित्सा मानक में इलेक्ट्रोड DC करंट सीमा का संख्यात्मक मान