logo ng NXPAN13823 IEC 60730 Class B Software para sa mga LPC553x MCU
Gabay sa Gumagamit

AN13823 IEC 60730 Class B Software para sa mga LPC553x MCU

Rev. 0 — 4 Enero 2023
Tala ng aplikasyon
Impormasyon sa dokumento

Impormasyon Nilalaman
Mga keyword LPC553x, AN13823, IEC 60730, LPC5536-EVK, IEC60730B
Abstract Ang pangunahing layunin ng tala ng application na ito ay upang mapabilis ang pagbuo ng software ng customer at mga proseso ng sertipikasyon para sa mga produkto batay sa mga LPC553x MCU.

Panimula

Ang pamantayang pangkaligtasan ng IEC 60730 ay tumutukoy sa mga pamamaraan ng pagsubok at diagnostic na nagsisiguro sa ligtas na operasyon ng naka-embed na control hardware at software para sa mga gamit sa bahay.
Upang makamit ang kaligtasan sa paggana, kinakailangang alisin ang lahat ng panganib ng mga panganib na maaaring idulot ng malfunction ng system.
Inuuri ng pamantayan ng IEC 60730 ang naaangkop na kagamitan sa tatlong kategorya:

  • Class A: Hindi nilayon na umasa para sa kaligtasan ng kagamitan
  • Class B: Upang maiwasan ang hindi ligtas na operasyon ng kinokontrol na kagamitan
  • Class C: Upang maiwasan ang mga espesyal na panganib

Nagbibigay ang NXP ng IEC 60730 safety Class B library para tulungan ang mga manufacturer ng mga awtomatikong kontrol sa malaking appliance market na matugunan ang IEC 60730 class B na regulasyon. Sinusuportahan ng library ang mga IAR, Keil, at MCUXpresso IDE.
Maaari mong isama ang NXP safety library binary sa iyong application software. Para sa mas madaling pagbuo ng IEC60730B application, nagbibigay din ang library ng exampang proyekto. Itong example ay ipinamamahagi sa pamamagitan ng IEC 60730 Safety Standard para sa Mga Kagamitang Pambahay  on nxp.com website.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 1Ang pangunahing layunin ng tala ng application na ito ay upang mapabilis ang pagbuo ng software ng customer at mga proseso ng sertipikasyon para sa mga produkto batay sa mga LPC553x MCU.

Tapos na ang library ng NXP IEC 60730 Class Bview

Kasama sa library ng kaligtasan ang mga self-test na nakadepende sa core at bahagi na umaasa sa peripheral tulad ng nakalista sa ibaba:

  • Bahaging umaasa sa core
    - Pagsubok sa pagrerehistro ng CPU
    – Pagsubok sa counter ng CPU program
    – Variable memory test
    – Invariable memory test
    – Pagsusulit sa stack
  • Bahaging umaasa sa paligid
    - Pagsusuri sa orasan
    – Digital input/output na pagsubok
    – Analog input/output test
    – Pagsusulit ng asong tagapagbantay

Talahanayan 1. Pagsunod sa mga pamantayan ng IEC 60730 Class B

NXP IEC 60730 Class B Library IEC 60730
sangkap Pamamaraan Mga bagay Inilapat
Mga rehistro ng CPU Sinusubok ng pamamaraan ng pagsubok sa pagpaparehistro ng CPU ang lahat ng mga rehistro ng CM33 CPU para sa kondisyon na natigil. 1.1 Magrehistro H.2.16.6
Kontra ng programa Sinusubukan ng CPU program counter test procedure ang CPU program counter register para sa stuck-at condition. Ang pagsubok ng counter register ng programa ay maaaring isagawa nang isang beses pagkatapos ng pag-reset ng MCU at gayundin sa panahon ng runtime.
Pilitin ang CPU (program flow) na i-access ang kaukulang address na sumusubok sa pattern upang i-verify ang paggana ng counter ng program.
1.3 Tagabilang ng programa H.2.16.6
orasan Ang pamamaraan ng pagsubok sa orasan ay sumusubok sa mga oscillator ng processor para sa maling dalas. Ang prinsipyo ng pagsubok sa orasan ay batay sa paghahambing ng dalawang independiyenteng mapagkukunan ng orasan. Kung nakita ng routine ng pagsubok ang pagbabago sa ratio ng dalas sa pagitan ng mga pinagmumulan ng orasan, ibabalik ang error na code ng pagkabigo. 3. Orasan NA
Invariable memory Ang invariable memory test ay upang suriin kung may pagbabago sa nilalaman ng memorya (on-chip Flash) sa panahon ng pagpapatupad ng application. Maraming mga pamamaraan ng checksum (para sa halample, CRC16) ay maaaring gamitin para sa layuning ito. 4.1
Invariable memory
H.2.19.3.1
Pagsubok ng variable na memorya Sinusuri ang on-chip RAM para sa mga DC fault. Ang March C at March X scheme ay ginagamit bilang control mechanism. 4.2 Variable memory H.2.19.6
Digital
pagsubok ng input/output
Ang DIO test functions ay idinisenyo upang suriin ang digital input at output functionality at short circuit na kondisyon sa pagitan ng nasubok na pin at ng supply voltage, lupa, o opsyonal na katabing pin. 7.1 Digital I/O H.2.18.13
Analog Input/ Output (I/ 0) na pagsubok Sinusuri ng pagsubok ang analog input interface at tatlong reference value: mataas ang reference, mababa ang reference, at bandgap voltage. Ang analog input test ay batay sa isang conversion ng tatlong analog input na may alam na voltage halaga at sinusuri nito kung ang mga na-convert na halaga ay umaangkop sa mga tinukoy na limitasyon. Karaniwan, ang mga limitasyon ay dapat na humigit-kumulang 10 % sa paligid ng nais na mga halaga ng sanggunian. 7.2 Analog I/O H.2.18.13

NXP IEC 60730 Class B library halampang proyekto

Para sa mas madaling pagbuo ng IEC60730B application, ang library ay nagbibigay ng exampAng balangkas ng proyekto, na binuo sa isang nakalaang LPC553x evaluation board  Mag-sign in sa NXP.com | NXP Semiconductor (LPC5536-EVK). Dapat mong i-configure ang tamang mga setting ng library para sa aktwal na proyekto.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 23.1 Pagsasama ng library ng kaligtasan sa application ng user
Ang kaligtasan exampAng mga gawain ng proyekto ay nahahati sa dalawang pangunahing proseso: pre-run one time safety test at runtime periodical safety test.
Ang sumusunod na figure ay nagpapakita ng mga proseso ng pagsubok sa kaligtasan.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 3Upang isama ang library ng kaligtasan ng NXP, gawin ang mga sumusunod na hakbang:

  1. I-download ang safety exampang proyekto mula sa nxp.com
  2. Setting ng hardware na isinasaalang-alang ang mga peripheral na ginamit para sa self-test ng kaligtasan
  3. I-configure ang library ng kaligtasan ayon sa aktwal na disenyo ng hardware
  4. Isa-isang i-on ang mga function ng pagsubok sa kaligtasan sa safety_config.h
    • Para sa pag-debug, mas mabuting i-OFF muna ang flash test at watchdog
    • Alagaan ang mga pagkaantala, dahil ang ilan sa mga pagsusuri sa kaligtasan ay hindi maaantala
  5. Bumuo ng code ng aplikasyon batay sa kaligtasan halampang balangkas ng proyekto

LPC553x safety library halampang proyekto sa pagsasanay

4.1 Block diagram ng hardware
Ang mga sumusunod na module ay ginagamit para sa kaligtasan sa self-test bilang default tulad ng ipinapakita sa figure sa ibaba:NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 4Talahanayan 2. MCU module para sa kaligtasan sa sarili na pagsubok

Pangkaligtasang item sa pagsubok sa library MCU module
pagsubok ng CPU LPC5536 CM33 Core
Pagsusulit sa orasan Systick
CTIMER0
Pagsusulit ng asong tagapagbantay asong nagbabantay
CTIMER0
Pagsubok ng variable na memorya SRAM
Invariable memory test Flash
Digital I/O test GPIO1
Analog I/O na pagsubok ADC0

4.2 pagsubok sa CPU
4.2.1 Inirerehistro ng CPU ang paglalarawan ng pagsubok
Sinusuri ng pamamaraan ng pagsubok sa pagpaparehistro ng CPU ang lahat ng mga rehistro ng CM33 CPU para sa stuckat na kondisyon (maliban sa counter register ng program). Ang programang counter test ay ipinatupad bilang isang standalone na gawain sa kaligtasan. Kasama sa hanay ng mga pagsubok na ito ang pagsubok ng mga sumusunod na rehistro:

  • Mga rehistro ng pangkalahatang layunin:
    – R0-R12
  • Mga rehistro ng stack pointer:
    – MSP + MSPLIM (secure / hindi secure)
    – PSP + PSPLIM (secure / non-secure)
  • Mga espesyal na rehistro:
    – APSR
    – KONTROL (secure / non-secure)
    – PRIMASK (secure / hindi secure)
    – FAULTMASK (secure / hindi secure)
    – BASEPRI (secure / non-secure)
  • Link register:
    – LR
  • Mga rehistro ng FPU:
    – FPSCR
    – S0 – S31

Mayroong isang hanay ng mga pagsubok na isinasagawa nang isang beses pagkatapos i-reset ang MCU at gayundin sa panahon ng runtime. Maaari mong muling gamitin ang mga default na setting ng LPC553x safety library halampAng proyekto, gayunpaman, dapat mong bigyang-pansin ang pagkagambala dahil ang ilan sa mga pagsubok sa pagpaparehistro ng CPU ay hindi maaaring magambala.

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyCpuAfterResetTest /* Ang mga pagkagambala ay dapat na hindi pinagana nang ilang sandali */
    – FS_CM33_CPU_Register
    – FS_CM33_CPU_NonStackedRegister
    – FS_CM33_CPU_SPmain_S
    – FS_CM33_CPU_SPmain_Limit_S
    – FS_CM33_CPU_SPprocess_S
    – FS_CM33_CPU_SPprocess_Limit_S
    – FS_CM33_CPU_Primask_S
    – FS_FAIL_CPU_PRIMASK
    – FS_CM33_CPU_Special8PriorityLevels_S
    – FS_CM33_CPU_Control
    – FS_CM33_CPU_Float1
    – FS_CM33_CPU_Float2
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyCpuBackgroundTest /* Pagsubok sa nai-interruptible na pagrerehistro ng CPU */
    – FS_CM33_CPU_Register
    – FS_CM33_CPU_NonStackedRegister
    – FS_CM33_CPU_Control /* Ang mga pagkagambala ay dapat na hindi pinagana nang ilang sandali */
    – FS_CM33_CPU_SPprocess_S /* Ang mga pagkagambala ay dapat na hindi paganahin nang ilang sandali */

4.3 Pagsubok sa counter ng CPU program
4.3.1 paglalarawan ng counter test ng CPU program
Ang CPU program counter register test procedure ay sumusubok sa CPU program counter register para sa stuck-at condition. Taliwas sa iba pang mga rehistro ng CPU, ang counter ng programa ay hindi maaaring punan ng isang pattern ng pagsubok. Kinakailangang pilitin ang CPU (program flow) na ma-access ang kaukulang address na sumusubok sa pattern upang i-verify ang functionality ng program counter.
Tandaan na hindi maaantala ang counter test ng program.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 5Ang pagsubok ng counter register ng programa ay maaaring isagawa nang isang beses pagkatapos i-reset ang MCU at gayundin sa panahon ng runtime.

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyPcTest
    – FS_CM33_PC_Test
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyIsrFunction > SafetyPcTest
    – FS_CM33_PC_Test

4.4 Pagsusuri ng variable na memorya
4.4.1 Paglalarawan ng pagsubok ng variable na memorya
Sinusuri ng variable memory test para sa mga sinusuportahang device ang on-chip RAM para sa mga DC fault.
Maaari ding masuri ang application stack area. Ang March C at March X scheme ay ginagamit bilang control mechanism.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 6Ang mga function ng paghawak ay iba para sa after-reset test at para sa runtime test.
Ang after-reset test ay ginagawa ng FS_CM33_RAM_AfterReset () function. Ang function na ito ay tinatawag nang isang beses pagkatapos ng pag-reset, kapag ang oras ng pagpapatupad ay hindi kritikal. Magreserba ng libreng memory space para sa backup na lugar. Ang parameter ng block size ay hindi maaaring mas malaki kaysa sa laki ng backup area. Sinusuri muna ng function ang backup na lugar, pagkatapos ay magsisimula ang loop. Ang mga bloke ng memorya ay kinopya sa backup na lugar at ang kanilang mga lokasyon ay sinusuri ng kani-kanilang pagsubok sa Marso. Ang data ay kinopya pabalik sa orihinal na lugar ng memorya at ang aktwal na address na may sukat ng block ay ina-update. Ulitin ito hanggang sa masuri ang huling bloke ng memorya. Kung ang isang DC fault ay nakita, ang function ay nagbabalik ng isang pattern ng pagkabigo.
Ang runtime test ay ginagawa ng FS_CM33_RAM_Runtime () function. Upang makatipid ng oras, sumusubok lamang ito ng isang segment (tinukoy ng RAM_TEST_BLOCK_SIZE) ng SRAM sa oras. Habang sinusuri ng pagsubok pagkatapos ng pag-reset ang buong bloke ng espasyo ng RAM na nauugnay sa kaligtasan. Sa LPC553x safety library halampAng proyekto, RAM_TEST_BLOCK_SIZE ay naka-configure sa 0x4, nangangahulugan ito na 32 bytes ng RAM ang susuriin sa isang runtime RAM test routine.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 7

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyRamAfterResetTest /* Subukan ang buong espasyo ng RAM ng seksyong “.safety_ram“ bago patakbuhin ang pangunahing gawain. */
    – FS_CM33_RAM_AfterReset
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyIsrFunction(&g_sSafetyCommon, &g_sSafetyRamTest, &g_sSafetyRamStackTest) /* na isinagawa sa Systick ISR, hindi maaantala */
    – FS_CM33_RAM_Rtime

4.4.2 Pag-configure ng pagsubok ng variable na memorya
Ang pagsasaayos ng variable memory test sa :NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 8Ang configuration ng safety RAM block ay nasa :
tukuyin ang block SAFETY_RAM_BLOCK na may alignment = 8
{section .safety_ram };
ilagay sa RAM_region {block SAFETY_RAM_BLOCK};
Tandaan na ang .safety_ram lang ang sakop ng variable memory test. Idagdag ang mga variable sa seksyong .safety_ram nang manu-mano, tulad ng ipinapakita sa ibaba sa main.c.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 94.5 Invariable memory test
4.5.1 Invariable memory test description
Ang invariable memory sa LPC5536 MCU ay ang on-chip flash. Ang prinsipyo ng invariable memory test ay upang suriin kung mayroong pagbabago sa nilalaman ng memorya sa panahon ng pagpapatupad ng application. Maraming paraan ng checksum ang maaaring gamitin para sa layuning ito. Ang checksum ay isang algorithm na kinakalkula ang isang lagda ng data na inilagay sa nasubok na memorya. Ang lagda ng memory block na ito ay pana-panahong kinakalkula at inihahambing sa orihinal na lagda.
Ang lagda para sa nakatalagang memorya ay kinakalkula sa yugto ng pag-link ng isang application. Dapat i-save ang lagda sa invariable memory, ngunit sa ibang lugar kaysa sa kung saan kinakalkula ang checksum. Sa runtime at pagkatapos ng pag-reset, ang parehong algorithm ay dapat ipatupad sa application upang makalkula ang checksum. Ang mga resulta ay inihambing. Kung hindi sila pantay, nangyayari ang isang estado ng error sa kaligtasan.
Kapag ipinatupad pagkatapos ng pag-reset o kapag walang paghihigpit sa oras ng pagpapatupad, ang function na tawag ay maaaring ang mga sumusunod.
• Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
– SafetyFlashAfterResetTest
– FS_FLASH_C_HW16_K /* kalkulahin ang CRC ng buong Flash */
Sa runtime ng application at may limitadong oras para sa pagpapatupad, ang CRC ay kinukuwenta sa isang sequence. Nangangahulugan ito na ang mga parameter ng input ay may iba't ibang kahulugan kumpara sa pagtawag pagkatapos ng pag-reset. Ang pagpapatupad halample ay ang mga sumusunod:
• Runtime periodical safety test
– SafetyFlashRuntimeTest
– FS_FLASH_C_HW16_K /* kalkulahin ang CRC block sa pamamagitan ng block */
– SafetyFlashTestHandling /* ihambing ang CRC kapag kinakalkula ang lahat ng Flash blocks. */
4.5.2 Invariable memory test configuration
Sa LPC553x safety library halampsa proyekto, ang flash allocation ay ipinapakita sa ibaba gaya ng tinukoy sa Linker file . Ang bagay files at ay inilalagay sa safety flash block na sinusuri ng invariable memory test. Maaari kang maglagay ng higit pang bagay files sa SAFETY_FLASH_BLOCK Flash area sa pamamagitan ng pagbabago sa Linker file naaayon.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 10Mayroong dalawang checksum na ihahambing sa panahon ng runtime ng MCU para ma-verify kung ang mga nilalaman ng ibinigay na flash space ay nabago:

  • Checksum na kinakalkula ng Linker sa Compiling/Linking
  • Checksum na kinakalkula ng MCU sa runtime

Ang kahulugan ng lokasyon kung saan ilalagay ang resulta ng checksum (paunang kinakalkula ng mga tool ng linker) ay nasa :
tukuyin ang simbolo __FlashCRC_start__ = 0x0300; /* para sa paglalagay ng checksum */
tukuyin ang simbolo __FlashCRC_end__ = 0x030F; /* para sa paglalagay ng checksum */
tukuyin ang rehiyon CRC_region = mem: [mula sa __FlashCRC_start__ hanggang __FlashCRC_end__];
tukuyin ang block CHECKSUM na may alignment = 8 {section. checksum}; lugar sa CRC_region { block CHECKSUM};
Kunin ang IAR IDE, para sa halample, sa setting ng opsyon sa proyekto > Build Actions > Post-build command line.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 11Command line:
ielftool –fill 0xFF;c_checksumStart-c_checksumEnd+3 –checksum __checksum:2,crc16,0x0;c_checksumStart-c_checksumEnd+3 –verbose “$TARGET_PATH$” “$TARGET_PATH$”
Kinakalkula ng linker ang orihinal na checksum ng flash addressing mula sa _checksumStart hanggang c_checksumEnd, pagkatapos ay inilalagay ang resulta ng checksum sa _checksum, na nasa block na CHECKSUM na tinukoy ng Linker file.
Ang kahulugan ng tinukoy na flash space na susuriin ay nasa :
tukuyin ang block SAFETY_FLASH_BLOCK na may alignment = 8, fixed order { readonly section checksum_start_mark, section .text object main.o, section .text object safety_cm33_lpc.o, section .rodata object safety_cm33_lpc.o, readonly section checksum_end_mark };
ilagay sa ROM_region { block SAFETY_FLASH_BLOCK};
4.6 Pagsusulit sa stack
4.6.1 Salansan ang paglalarawan ng pagsubok
Ang stack test ay isang karagdagang pagsubok, na hindi direktang tinukoy sa IEC60730 annex H table.
Ginagamit ang test routine na ito para subukan ang overflow at underflow na kondisyon ng application stack. Ang pagsubok ng mga stuck-at fault sa memory area na inookupahan ng stack ay sakop ng variable memory test. Ang overflow o underflow ng stack ay maaaring mangyari kung ang stack ay hindi wastong kontrolado o sa pamamagitan ng pagtukoy sa "masyadong mababa" na lugar ng stack para sa ibinigay na aplikasyon.
Ang prinsipyo ng pagsubok ay upang punan ang lugar sa ibaba at sa itaas ng stack ng isang kilalang pattern. Dapat tukuyin ang mga lugar na ito sa configuration ng linker file, kasama ang stack. Pagkatapos ay pinupunan ng pagpapasimula ng function ang mga lugar na ito ng iyong pattern. Ang pattern ay dapat na may halaga na hindi lumalabas sa ibang lugar sa application. Ang layunin ay suriin kung ang eksaktong pattern ay nakasulat pa rin sa mga lugar na ito. Kung hindi, ito ay isang senyales ng hindi tamang pag-uugali ng stack. Kung nangyari ito, dapat na iproseso ang FAIL return value mula sa test function bilang isang error sa kaligtasan.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 12Isinasagawa ang pagsubok pagkatapos ng pag-reset at sa panahon ng runtime ng application sa parehong paraan.

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyStackTestInit
    – FS_CM33_STACK_Init /* isulat ang STACK_TEST_PATTERN (0x77777777) sa STACK_TEST_BLOCK */
    – SafetyStackTest
    – FS_CM33_STACK_Test /* suriin ang mga nilalaman ng STACK_TEST_BLOCK, nabigo kung ang halaga ay hindi katumbas ng STACK_TEST_PATTERN (0x77777777).
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyStackTest
    – FS_CM33_STACK_Init /* isulat ang STACK_TEST_PATTERN (0x77777777) sa STACK_TEST_BLOCK */
    – SafetyStackTest
    – FS_CM33_STACK_Test /* suriin ang mga nilalaman ng STACK_TEST_BLOCK, nabigo kung ang halaga ay hindi katumbas ng STACK_TEST_PATTERN (0x77777777)

4.6.2 Stack test configuration
Ang configuration ng stack test ay nasa at ang linker file NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 134.7 Pagsusuri sa orasan
4.7.1 Paglalarawan ng pagsubok sa orasan
Ang prinsipyo ng pagsubok sa orasan ay batay sa paghahambing ng dalawang independiyenteng mapagkukunan ng orasan.
Sa LPC553x safety library halampAng proyekto, CTIMER0 at Systick sa MCU LPC5536 ay ginagamit bilang dalawang independiyenteng orasan para sa pagsubok sa kaligtasan ng orasan, hindi sila nakadepende sa LPC5536-EVK hardware board.
Ang clock test routine ay isinasagawa sa runtime periodical safety test lang.

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    - Walang pagsubok sa orasan
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyClockTestCheck
    – SafetyClockTestIsr

NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 144.7.2 Pag-configure ng pagsubok sa orasan
Dahil kailangan ng dalawang independiyenteng orasan para sa pagsubok ng orasan sa LPC553x safety library halampang proyekto:

  • Ang SYSTICK timer ay nagmula sa PLL0 150 M (nagmula sa panlabas na 16 MHz na kristal)
  • Ang timer ng CTIMER0 ay nagmula sa panloob na FRO_96M

NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 15

Ang mga detalyadong configuration ng Systick at CTIMER0 ay ipinapakita sa ibaba:

  • Systick config: SystickISR_Freq = 1000 Hz, sa pamamagitan ng pagtatakda ng 150,000 reload value sa ilalim ng 150 MHz core clock
  • CTIMER config: CTIMER_Freq = 96 MHz, mula sa 96 MHz FRO_96M na orasan
  • Ang inaasahang CTIMER counter ay dapat CTIMER _Freq/SystickISR_Freq = 96 MHz / 1000 = 96,000
  • Sa bawat Systick interrupt ISR, i-save ang CTIMER counter value
  • Sa runtime habang (1) loop, suriin: (96,000 – 20 %) < CTIMER expect counter < (96,000 + 20 %)

Ang configuration ng clock test ay nasa Safety_config.h.
Ayon sa aktwal na aplikasyon, maaari mong baguhin ang instance ng CTIMER para sa pagsubok sa orasan sa kaligtasan sa pamamagitan ng pag-configure ng REF_TIMER_USED macro. Gayundin, dapat mong i-configure ang REF_TIMER_CLOCK_FREQUENCY ayon sa aktwal na dalas ng orasan. NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 164.8 Digital I/O na pagsubok
4.8.1 Paglalarawan ng pagsubok sa Digital I/O
Sa LPC553x safety library halampAng proyekto, GPIO P1_4 at P1_17 sa LPC5536-EVK ay pinili para sa kaligtasan ng digital I/O test, ang dalawang pin na ito ay konektado sa J10 header sa LPC553x EVK board.
Ang digital I/O test routines ay nahahati sa dalawang pangunahing proseso: pre-run one time safety test at runtime periodical safety test

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyDigitalOutputTest
    – SafetyDigitalInputOutput_ShortSupplyTest
    – SafetyDigitalInputOutput_ShortAdjTest
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyDigitalOutputTest
    – SafetyDigitalInputOutput_ShortSupplyTest

4.8.2 Digital I/O test configuration
Ang configuration ng digital I/O test ay nasa safety_test_items.c.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 17Ang pagpapatupad ng mga digital na I/O na pagsubok ay dapat iakma sa panghuling aplikasyon. Mag-ingat sa mga koneksyon at disenyo ng hardware. Maaari mong baguhin ang GPIO para sa kaligtasan
digital I/O test sa pamamagitan ng pag-configure ng dio_safety_test_items[] sa safety_test_items.c. Sa karamihan ng mga kaso, ang nasubok (at kung minsan ay pantulong din) na pin ay dapat na muling i-configure habang tumatakbo ang application. Inirerekomenda na gamitin ang hindi nagamit na mga pin para sa digital I/O test.
4.9 Analog I/O na pagsubok
4.9.1 Analog I/O test description
Sa LPC553x safety library halampAng proyekto, P0_16/ADC0IN3B, P0_31/ADC0IN8A, at P0_15/ADC0IN3A sa LPC5536-EVK ay pinili para sa safety analog I/O test, dahil hindi pinapayagan ng ADC module sa MCU LPC5536 na ikonekta ang VREFH, VREFL sa loob ng ADC input. Kinakailangang ikonekta ng user ang mga signal na ito (para sa analog na I/O test) gamit ang mga flying wire tulad ng ipinapakita sa ibaba.

  • Nakakonekta ang GND sa P0_16/ADC0IN3B (J9-5) para sa ADC VREFL Test
  • 3.3 V na konektado sa P0_31/ADC0IN8A (J9-31) para sa ADC VREFH Test
  • 1.65 V na konektado sa P0_15/ADC0IN3A (J9-1) para sa ADC Bandgap Test

Ang analog I/O test routines ay nahahati sa dalawang pangunahing proseso:

  • Paunang tumakbo ng isang beses na pagsubok sa kaligtasan
    – SafetyAnalogTest
  • Runtime periodical na pagsubok sa kaligtasan
    – SafetyAnalogTest

4.9.2 Analog I/O test configuration
Ang pagpapatupad ng mga analog na I/O na pagsubok ay dapat iakma sa panghuling aplikasyon. Mag-ingat sa mga koneksyon at disenyo ng hardware. Mababago mo ang mga channel ng ADC para sa safety analog I/O test sa pamamagitan ng pag-configure ng FS_CFG_AIO_CHANNELS_INIT at
FS_CFG_AIO_CHANNELS_SIDE_INIT sa safety_config.h.

  • Ang FS_CFG_AIO_CHANNELS_INIT ay nagpapahiwatig ng numero ng channel ng ADC.
  • Ang FS_CFG_AIO_CHANNELS_SIDE_INIT ay nagpapahiwatig ng side ng channel ng ADC.

NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 18Gaya ng ipinapakita sa figure sa itaas:

  • Ang unang elemento ay tumutugma sa ADC VREFL test
  • Ang pangalawang elemento ay tumutugma sa pagsubok ng ADC VREFH
  • Ang ikatlong elemento ay tumutugma sa pagsubok ng ADC Bandgap

Para kay example, “3” sa FS_CFG_AIO_CHANNELS_INIT at “1” in
Ang FS_CFG_AIO_CHANNELS_SIDE_INIT ay nagpapahiwatig na ang ADC0 channel 3 side B ay pinili para sa ADC VREFL test.
4.10 Pagsusulit ng asong tagapagbantay
4.10.1 Pagsusulit na paglalarawan ng asong tagapagbantay
Ang watchdog test ay hindi direktang tinukoy sa IEC60730 – annex H table, gayunpaman, ito ay bahagyang tumutupad sa mga kinakailangan sa kaligtasan ayon sa IEC 60730-1, IEC 60335, UL 60730, at UL 1998 na mga pamantayan.
Ang watchdog test ay nagbibigay ng pagsubok ng watchdog timer functionality. Isang beses lang tatakbo ang pagsubok pagkatapos ng pag-reset. Ang pagsubok ay nagdudulot ng pag-reset ng WDOG at inihahambing ang preset na oras para sa pag-reset ng WDOG sa real time.NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs - Larawan 20Sa LPC553x safety library halampsa proyekto, ang asong tagapagbantay ay nasubok gamit ang mga sumusunod na hakbang:

  1. Pagkatapos ng pag-reset, paganahin ang watchdog at ihinto ang pagre-refresh nang kusa upang ma-trigger ang watchdog reset ng MCU.
  2. I-enable ang CTIMER0 upang sukatin kung gaano katagal ang oras para sa watchdog timeout at pag-reset.
  3. Pagkatapos mag-reset ng watchdog, kumpirmahin na ang pag-reset na ito ay sanhi ng watchdog sa pamamagitan ng pagsuri sa PMC->AOREG1 register.
  4. Basahin ang CTIMER0 para makuha ang eksaktong oras ng watchdog timeout at pag-reset.

Kasaysayan ng rebisyon

Ang talahanayan sa ibaba ay nagbubuod ng mga pagbabago sa dokumentong ito.
Talahanayan 3. Kasaysayan ng rebisyon

Numero ng rebisyon Petsa Mga makabuluhang pagbabago
0 4-Ene-23 Paunang pampublikong paglabas

Legal na impormasyon

6.1 Mga Kahulugan
Draft — Ang isang draft na status sa isang dokumento ay nagpapahiwatig na ang nilalaman ay nasa ilalim pa rin ng panloob na review at napapailalim sa pormal na pag-apruba, na maaaring magresulta sa mga pagbabago o pagdaragdag. Ang NXP Semiconductor ay hindi nagbibigay ng anumang mga representasyon o warranty tungkol sa katumpakan o pagkakumpleto ng impormasyong kasama sa isang draft na bersyon ng isang dokumento at walang pananagutan para sa mga kahihinatnan ng paggamit ng naturang impormasyon.
6.2 Mga Pagwawaksi
Limitadong warranty at pananagutan — Ang impormasyon sa dokumentong ito ay pinaniniwalaang tumpak at maaasahan. Gayunpaman, ang NXP Semiconductor ay hindi nagbibigay ng anumang mga representasyon o warranty, ipinahayag o ipinahiwatig, tungkol sa katumpakan o pagkakumpleto ng naturang impormasyon at walang pananagutan para sa mga kahihinatnan ng paggamit ng naturang impormasyon. Ang NXP Semiconductor ay walang pananagutan para sa nilalaman sa dokumentong ito kung ibinigay ng isang mapagkukunan ng impormasyon sa labas ng NXP Semiconductor.
Sa anumang pagkakataon ay mananagot ang NXP Semiconductor para sa anumang hindi direkta, incidental, punitive, espesyal o kinahinatnang pinsala (kabilang ang – walang limitasyon ang mga nawalang kita, nawalang ipon, pagkagambala sa negosyo, mga gastos na may kaugnayan sa pagtanggal o pagpapalit ng anumang mga produkto o rework charges) man o hindi ang mga naturang pinsala ay batay sa tort (kabilang ang kapabayaan), warranty, paglabag sa kontrata o anumang iba pang legal na teorya.
Sa kabila ng anumang pinsala na maaaring makuha ng customer sa anumang dahilan, ang pinagsama-samang pananagutan ng NXP Semiconductor at pinagsama-samang pananagutan sa customer para sa mga produktong inilarawan dito ay dapat na limitado alinsunod sa Mga Tuntunin at kundisyon ng komersyal na pagbebenta ng NXP Semiconductors.
Karapatang gumawa ng mga pagbabago — Inilalaan ng NXP Semiconductors ang karapatang gumawa ng mga pagbabago sa impormasyong nai-publish sa dokumentong ito, kasama ang walang limitasyong mga detalye at paglalarawan ng produkto, anumang oras at nang walang abiso. Pinapalitan at pinapalitan ng dokumentong ito ang lahat ng impormasyong ibinigay bago ang paglalathala nito.
Angkop para sa paggamit — Ang mga produkto ng NXP Semiconductors ay hindi idinisenyo, awtorisado o ginagarantiyahan na angkop para sa paggamit sa suporta sa buhay, mga sistema o kagamitan na kritikal sa buhay o kritikal sa kaligtasan, o sa mga aplikasyon kung saan ang pagkabigo o malfunction ng isang produkto ng NXP Semiconductors ay maaaring makatwirang inaasahan na magreresulta sa personal na pinsala, kamatayan o matinding pag-aari o pinsala sa kapaligiran. Ang NXP Semiconductor at ang mga supplier nito ay hindi tumatanggap ng pananagutan para sa pagsasama at/o paggamit ng mga produkto ng NXP Semiconductor sa naturang kagamitan o aplikasyon at samakatuwid ang nasabing pagsasama at/o paggamit ay nasa sariling peligro ng customer.
Mga aplikasyon — Ang mga application na inilalarawan dito para sa alinman sa mga produktong ito ay para sa mga layuning panglarawan lamang. Ang NXP Semiconductor ay hindi gumagawa ng representasyon o warranty na ang mga naturang application ay magiging angkop para sa tinukoy na paggamit nang walang karagdagang pagsubok o pagbabago. Responsable ang mga customer para sa disenyo at pagpapatakbo ng kanilang mga application at produkto gamit ang mga produkto ng NXP Semiconductors, at walang pananagutan ang NXP Semiconductor para sa anumang tulong sa mga application o disenyo ng produkto ng customer. Nag-iisang responsibilidad ng customer na tukuyin kung ang produkto ng NXP Semiconductors ay angkop at akma para sa mga aplikasyon at produktong pinlano ng customer, gayundin para sa nakaplanong aplikasyon at paggamit ng (mga) customer ng third party. Dapat magbigay ang mga customer ng naaangkop na disenyo at mga pananggalang sa pagpapatakbo upang mabawasan ang mga panganib
nauugnay sa kanilang mga aplikasyon at produkto. Ang NXP Semiconductor ay hindi tumatanggap ng anumang pananagutan na may kaugnayan sa anumang default, pinsala, gastos o problema na nakabatay sa anumang kahinaan o default sa mga application o produkto ng customer, o sa aplikasyon o paggamit ng (mga) third party na customer ng customer. Responsable ang Customer sa paggawa ng lahat ng kinakailangang pagsubok para sa mga application at produkto ng customer gamit ang mga produkto ng NXP Semiconductors upang maiwasan ang default ng mga application at mga produkto o ng application o paggamit ng (mga) customer ng third party ng customer. Ang NXP ay hindi tumatanggap ng anumang pananagutan sa bagay na ito.
Mga tuntunin at kundisyon ng komersyal na pagbebenta — Ang mga produkto ng NXP Semiconductors ay ibinebenta alinsunod sa pangkalahatang tuntunin at kundisyon ng komersyal na pagbebenta, gaya ng inilathala sa http://www.nxp.com/profile/terms, maliban kung napagkasunduan sa isang wastong nakasulat na indibidwal na kasunduan. Kung sakaling ang isang indibidwal na kasunduan ay natapos lamang ang mga tuntunin at kundisyon ng kaukulang kasunduan ang dapat ilapat. Ang NXP Semiconductors ay tahasang tumututol sa paglalapat ng mga pangkalahatang tuntunin at kundisyon ng customer patungkol sa pagbili ng mga produkto ng NXP Semiconductors ng customer.
Kontrol sa pag-export — Ang dokumentong ito pati na rin ang (mga) item na inilarawan dito ay maaaring sumailalim sa mga regulasyon sa pagkontrol sa pag-export. Maaaring mangailangan ng paunang awtorisasyon ang pag-export mula sa mga karampatang awtoridad.
Angkop para sa paggamit sa mga produktong hindi kwalipikado sa automotive — Maliban kung ang data sheet na ito ay malinaw na nagsasaad na ang partikular na produktong NXP Semiconductors na ito ay automotive qualified, ang produkto ay hindi angkop para sa automotive na paggamit. Hindi ito qualified o nasubok alinsunod sa automotive testing o application requirements. Ang NXP Semiconductor ay hindi tumatanggap ng pananagutan para sa pagsasama at/o paggamit ng mga hindi automotive na kwalipikadong produkto sa automotive na kagamitan o mga application.
Kung sakaling gamitin ng customer ang produkto para sa pagdidisenyo at paggamit sa mga automotive na application sa mga detalye at pamantayan ng sasakyan, dapat gamitin ng customer (a) ang produkto nang walang warranty ng produkto ng NXP Semiconductor para sa mga naturang automotive na aplikasyon, paggamit at mga detalye, at ( b) sa tuwing gagamitin ng customer ang produkto para sa mga automotive na application na lampas sa mga detalye ng NXP Semiconductor ang naturang paggamit ay nasa sariling peligro lamang ng customer, at (c) ganap na binabayaran ng customer ang NXP Semiconductor para sa anumang pananagutan, pinsala o nabigong mga claim sa produkto na nagreresulta mula sa disenyo at paggamit ng customer ng ang produkto para sa mga automotive application na lampas sa karaniwang warranty ng NXP Semiconductor at mga detalye ng produkto ng NXP Semiconductor.
Mga pagsasalin — Ang isang hindi Ingles (naisalin) na bersyon ng isang dokumento, kasama ang legal na impormasyon sa dokumentong iyon, ay para sa sanggunian lamang. Ang Ingles na bersyon ay mananaig sa kaso ng anumang pagkakaiba sa pagitan ng isinalin at Ingles na bersyon.
Seguridad — Nauunawaan ng customer na ang lahat ng produkto ng NXP ay maaaring sumailalim sa hindi natukoy na mga kahinaan o maaaring suportahan ang mga itinatag na pamantayan sa seguridad o mga detalye na may alam na mga limitasyon. Responsable ang Customer para sa disenyo at pagpapatakbo ng mga application at produkto nito sa kabuuan ng kanilang mga lifecycle upang mabawasan ang epekto ng mga kahinaang ito sa mga application at produkto ng customer. Ang responsibilidad ng customer ay umaabot din sa iba pang bukas at/o pagmamay-ari na teknolohiya na sinusuportahan ng mga produkto ng NXP para gamitin sa mga aplikasyon ng customer. Ang NXP ay hindi tumatanggap ng pananagutan para sa anumang kahinaan. Dapat na regular na suriin ng customer ang mga update sa seguridad mula sa NXP at mag-follow up nang naaangkop.
Ang customer ay dapat pumili ng mga produkto na may mga tampok na panseguridad na pinakamahusay na nakakatugon sa mga panuntunan, regulasyon, at pamantayan ng nilalayon na aplikasyon at gagawa ng mga pinakahuling desisyon sa disenyo patungkol sa mga produkto nito at tanging responsable para sa pagsunod sa lahat ng legal, regulasyon, at mga kinakailangan na nauugnay sa seguridad tungkol sa mga produkto nito, anuman ang ng anumang impormasyon o suporta na maaaring ibigay ng NXP.
Ang NXP ay mayroong Product Security Incident Response Team (PSIRT) (maaabot sa PSIRT@nxp.com) na namamahala sa pagsisiyasat, pag-uulat, at pagpapalabas ng solusyon sa mga kahinaan sa seguridad ng mga produkto ng NXP.
6.3 Mga Trademark
Paunawa: Ang lahat ng mga reference na brand, pangalan ng produkto, pangalan ng serbisyo, at trademark ay pag-aari ng kani-kanilang mga may-ari.
NXP — Ang wordmark at logo ay mga trademark ng NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — ay mga trademark o nakarehistrong trademark ng Arm Limited (o mga subsidiary nito) sa US at/o saanman. Ang kaugnay na teknolohiya ay maaaring protektado ng anuman o lahat ng mga patent, copyright, disenyo at lihim ng kalakalan. Lahat ng karapatan ay nakalaan.
Mangyaring magkaroon ng kamalayan na ang mahahalagang paunawa tungkol sa dokumentong ito at ang (mga) produkto na inilarawan dito, ay kasama sa seksyong 'Legal na impormasyon'.

© 2023 NXP BV
Para sa karagdagang impormasyon, mangyaring bisitahin ang: http://www.nxp.com
Lahat ng karapatan ay nakalaan.
Petsa ng paglabas: 4 Enero 2023
Tagatukoy ng dokumento: AN13823

Mga Dokumento / Mga Mapagkukunan

NXP AN13823 IEC 60730 Class B Software para sa LPC553x MCUs [pdf] Gabay sa Gumagamit
AN13823 IEC 60730 Class B Software para sa LPC553x MCUs, AN13823, IEC 60730 Class B Software para sa LPC553x MCUs, AN13823 IEC 60730 Class B Software

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *