LPC13823x MCU-д зориулсан AN60730 IEC 553 ангиллын В програм хангамж
Хэрэглэгчийн гарын авлага
LPC13823x MCU-д зориулсан AN60730 IEC 553 ангиллын В програм хангамж
Илчлэлт 0 - 4 оны 2023-р сарын XNUMX
Өргөдлийн тэмдэглэл
Баримт бичгийн мэдээлэл
Мэдээлэл | Агуулга |
Түлхүүр үгс | LPC553x, AN13823, IEC 60730, LPC5536-EVK, IEC60730B |
Хийсвэр | Энэхүү хэрэглээний тэмдэглэлийн гол зорилго нь LPC553x MCU дээр суурилсан бүтээгдэхүүний хэрэглэгчийн програм хангамжийг хөгжүүлэх, баталгаажуулах үйл явцыг хурдасгах явдал юм. |
Танилцуулга
IEC 60730 аюулгүй байдлын стандарт нь гэр ахуйн цахилгаан хэрэгсэлд суурилуулсан хяналтын техник хангамж, програм хангамжийн аюулгүй ажиллагааг хангах туршилт, оношлогооны аргуудыг тодорхойлдог.
Функциональ аюулгүй байдлыг хангахын тулд системийн эвдрэлээс үүдэлтэй бүх эрсдлийг арилгах шаардлагатай.
IEC 60730 стандарт нь холбогдох тоног төхөөрөмжийг гурван ангилалд ангилдаг.
- Ангилал А: Тоног төхөөрөмжийн аюулгүй байдалд найдах зориулалтгүй
- Ангилал В: Хяналттай тоног төхөөрөмжийн аюулгүй ажиллагаанаас урьдчилан сэргийлэх
- C ангилал: Онцгой аюулаас урьдчилан сэргийлэх
NXP нь IEC 60730 аюулгүй байдлын B ангиллын номын сангаар хангадаг бөгөөд томоохон цахилгаан хэрэгслийн зах зээл дэх автомат удирдлага үйлдвэрлэгчдэд IEC 60730 ангиллын В зохицуулалтыг хангахад тусалдаг. Номын сан нь IAR, Keil, MCUXpresso IDE-г дэмждэг.
Та NXP аюулгүй байдлын номын сангийн хоёртын файлыг өөрийн хэрэглээний програм хангамжид нэгтгэж болно. IEC60730B програмыг илүү хялбар хөгжүүлэхийн тулд номын сан нь хуучин програмыг өгдөгample төсөл. Энэ эксample-ээр дамжуулан тараагддаг IEC 60730 Гэр ахуйн цахилгаан хэрэгслийн аюулгүй байдлын стандарт on nxp.com webсайт.Энэхүү хэрэглээний тэмдэглэлийн гол зорилго нь LPC553x MCU дээр суурилсан бүтээгдэхүүний хэрэглэгчийн програм хангамжийг хөгжүүлэх, баталгаажуулах үйл явцыг хурдасгах явдал юм.
NXP IEC 60730 B ангиллын номын сан дууссанview
Аюулгүй байдлын номын санд доор жагсаасан үндсэн хэсгээс хамааралтай хэсэг болон захын хэсгээс хамааралтай бие даасан туршилтуудыг багтаасан болно.
- Үндсэн хамааралтай хэсэг
– CPU бүртгэлийн тест
– CPU програмын тоолуур тест
- Хувьсах санах ойн тест
- Хувьсашгүй санах ойн тест
- Стек тест - Захын хэсгээс хамааралтай хэсэг
- Цагийн туршилт
– Дижитал оролт гаралтын тест
– Аналог оролт/гаралтын тест
- Харуулын шалгалт
Хүснэгт 1. IEC 60730 Б ангиллын стандартад нийцсэн байдал
NXP IEC 60730 B ангиллын номын сан | IEC 60730 | ||
бүрэлдэхүүн хэсэг | Арга | Эд зүйлс | Хэрэглэсэн |
CPU бүртгэлүүд | CPU бүртгэлийн туршилтын процедур нь бүх CM33 CPU регистрийг гацсан байдлыг шалгадаг. | 1.1 Бүртгүүлэх | H.2.16.6 |
Програмын тоолуур | CPU програмын тоолуурыг шалгах процедур нь CPU програмын тоолуурын бүртгэлийг гацсан байдлыг шалгадаг. Програмын тоолуур бүртгэлийн тестийг MCU дахин тохируулсны дараа нэг удаа, мөн ажиллах хугацаанд хийж болно. Програмын тоолуур ажиллаж байгаа эсэхийг шалгахын тулд хээг шалгаж байгаа харгалзах хаяг руу CPU-г (хөтөлбөрийн урсгал) хүчээр хандана уу. |
1.3 Програмын тоолуур | H.2.16.6 |
Цаг | Цагийн туршилтын процедур нь процессорын осцилляторыг буруу давтамжтай эсэхийг шалгадаг. Цагийг шалгах зарчим нь хоёр бие даасан цагны эх сурвалжийг харьцуулах үндсэн дээр суурилдаг. Хэрэв туршилтын горим цагны эх үүсвэрүүдийн хоорондох давтамжийн харьцааны өөрчлөлтийг илрүүлбэл алдааны алдааны кодыг буцаана. | 3. Цаг | NA |
Тогтворгүй санах ой | Тогтворгүй санах ойн тест нь програмыг ажиллуулах явцад санах ойн агуулгад (чип дээрх Flash) өөрчлөлт орсон эсэхийг шалгах явдал юм. Хэд хэдэн шалгах нийлбэрийн аргууд (жишээ ньample, CRC16) энэ зорилгоор ашиглаж болно. | 4.1 Тогтворгүй санах ой |
H.2.19.3.1 |
Хувьсах санах ойн тест | Чип дээрх RAM-г тогтмол гүйдлийн алдаа байгаа эсэхийг шалгана. Гуравдугаар сарын C ба гуравдугаар сарын X схемийг хяналтын механизм болгон ашигладаг. | 4.2 Хувьсах санах ой | H.2.19.6 |
Дижитал оролт/гаралтын туршилт |
DIO туршилтын функцууд нь дижитал оролт, гаралтын ажиллагаа, шалгасан зүү болон тэжээлийн хүчдэлийн хоорондох богино залгааны нөхцлийг шалгах зорилготой юм.tage, газар, эсвэл нэмэлт зэргэлдээ зүү. | 7.1 Дижитал I/O | H.2.18.13 |
Аналог оролт/гаралтын (I/ 0) тест | Туршилт нь аналог оролтын интерфэйс болон гурван лавлагааны утгыг шалгадаг: лавлагаа өндөр, лавлагаа бага, bandgap voltagд. Аналог оролтын тест нь мэдэгдэж буй боть бүхий гурван аналог оролтыг хөрвүүлэхэд суурилдагtage утгууд бөгөөд хөрвүүлсэн утгууд нь заасан хязгаарт тохирох эсэхийг шалгадаг. Ихэвчлэн хязгаар нь хүссэн лавлагааны утгуудын ойролцоогоор 10% байх ёстой. | 7.2 Аналог I/O | H.2.18.13 |
NXP IEC 60730 В ангиллын номын сан жишээлбэлample төсөл
IEC60730B програмыг илүү хялбар хөгжүүлэхийн тулд номын сан нь хуучин програмыг өгдөгampТусгай зориулалтын LPC553x үнэлгээний самбар дээр суурилсан төслийн хүрээ NXP.com | руу нэвтэрнэ үү NXP хагас дамжуулагч (LPC5536-EVK). Та бодит төслийн номын сангийн зөв тохиргоог хийх ёстой.3.1 Аюулгүй байдлын номын санг хэрэглэгчийн програмд нэгтгэх
Аюулгүй байдлын эксampТөслийн дэг журам нь хоёр үндсэн процесст хуваагддаг: нэг удаагийн аюулгүй байдлын туршилтыг урьдчилан ажиллуулах, ажлын үеийн үечилсэн аюулгүй байдлын туршилт.
Дараах зурагт аюулгүй байдлын туршилтын үйл явцыг харуулав.NXP аюулгүй байдлын номын санг нэгтгэхийн тулд дараах алхмуудыг хийгээрэй.
- Аюулгүй байдлын экс програмыг татаж авахampnxp.com сайтаас авсан төсөл
- Аюулгүй байдлын өөрийгөө шалгахад ашигладаг нэмэлт төхөөрөмжүүдийг харгалзан техник хангамжийн тохиргоо
- Аюулгүй байдлын номын санг бодит техник хангамжийн дизайны дагуу тохируулна уу
- Safe_config.h дотор аюулгүй байдлын туршилтын функцуудыг нэг нэгээр нь асаана уу
• Дибаг хийхдээ эхлээд флаш тест болон watchdog-г унтраасан нь дээр
• Аюулгүй байдлын зарим шалгалтыг тасалдуулах боломжгүй тул тасалдлыг анхаарч үзээрэй - Аюулгүй байдлын үндсэн дээр програмын кодыг боловсруулampтөслийн хүрээ
LPC553x аюулгүй байдлын номын сан жишээлбэлample төсөл практикт
4.1 Техник хангамжийн блок диаграмм
Дараахь модулиудыг доорх зурагт үзүүлсний дагуу аюулгүй байдлын өөрийгөө шалгахад ашигладаг.Хүснэгт 2. Аюулгүй байдлын өөрийгөө шалгах зориулалттай MCU модуль
Аюулгүй байдлын номын сангийн тестийн зүйл | MCU модуль |
CPU-ийн туршилт | LPC5536 CM33 цөм |
Цагийн туршилт | Систем CTIMER0 |
Харуулын шалгалт | Харагч нохой CTIMER0 |
Хувьсах санах ойн тест | SRAM |
Тогтворгүй санах ойн тест | Флэш |
Дижитал I/O тест | GPIO1 |
Аналог I/O тест | ADC0 |
4.2 CPU-ийн туршилт
4.2.1 CPU нь туршилтын тодорхойлолтыг бүртгэдэг
CPU бүртгэлийн туршилтын процедур нь бүх CM33 CPU регистрийг гацах нөхцөлийг шалгадаг (програмын тоолуурын бүртгэлээс бусад). Хөтөлбөрийн эсрэг тестийг бие даасан аюулгүй ажиллагааны горим болгон хэрэгжүүлдэг. Энэхүү багц тест нь дараахь бүртгэлийн тестийг багтаасан болно.
- Ерөнхий зориулалтын бүртгэлүүд:
– R0-R12 - Стек заагч бүртгэлүүд:
- MSP + MSPLIM (аюулгүй / аюулгүй биш)
- PSP + PSPLIM (аюулгүй / аюулгүй биш) - Тусгай бүртгэлүүд:
- APSR
– ХЯНАЛТ (аюулгүй/аюулгүй)
– PRIMASK (аюулгүй/аюулгүй)
– ГЭРЭЛТИЙН МАСК (аюулгүй / найдвартай бус)
– BASEPRI (аюулгүй/аюулгүй) - Холбоос бүртгэл:
– LR - FPU бүртгэлүүд:
- FPSCR
– S0 – S31
MCU-г дахин тохируулсны дараа, мөн ажиллах хугацаанд нэг удаа хийдэг олон тооны туршилтууд байдаг. Та LPC553x аюулгүй байдлын номын сангийн анхдагч тохиргоог дахин ашиглаж болноampТөслийн хувьд зарим CPU бүртгэлийн туршилтыг тасалдуулах боломжгүй тул та тасалдлыг анхаарч үзэх хэрэгтэй.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
– SafetyCpuAfterResetTest /* Тасалдлыг хэсэг хугацаанд идэвхгүй болгох шаардлагатай */
– FS_CM33_CPU_Бүртгүүлэх
– 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_Special8 Priority Levels_S
– FS_CM33_CPU_Хяналт
– FS_CM33_CPU_Float1
– FS_CM33_CPU_Float2 - Ашиглалтын үеийн аюулгүй байдлын туршилт
– SafetyCpuBackgroundTest /* Тасалдах боломжтой CPU бүртгэлийн тест */
– FS_CM33_CPU_Бүртгүүлэх
– FS_CM33_CPU_NonStackedRegister
– FS_CM33_CPU_Control /* Тасалдлыг хэсэг хугацаанд идэвхгүй болгох шаардлагатай */
– FS_CM33_CPU_SPprocess_S /* Тасалдлыг хэсэг хугацаанд идэвхгүй болгох шаардлагатай */
4.3 CPU програмын тоолуурын тест
4.3.1 CPU програмын тоолуурын туршилтын тодорхойлолт
CPU програмын тоолуурын бүртгэлийн туршилтын процедур нь CPU програмын тоолуурын бүртгэлийг гацсан байдлыг шалгадаг. Бусад CPU регистрүүдээс ялгаатай нь програмын тоолуурыг тестийн загвараар дүүргэх боломжгүй юм. Програмын тоолуур ажиллаж байгаа эсэхийг шалгахын тулд процессорыг (хөтөлбөрийн урсгал) загварыг туршиж буй харгалзах хаяг руу хүчээр оруулах шаардлагатай.
Програмын тоолуурын тестийг таслах боломжгүй гэдгийг анхаарна уу.Хөтөлбөрийн тоолуур бүртгэлийн тестийг MCU-г дахин тохируулсны дараа нэг удаа, мөн ажиллах хугацаанд хийж болно.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
- SafetyPcTest
– FS_CM33_PC_Test - Ашиглалтын үеийн аюулгүй байдлын туршилт
– SafetyIsrFunction > SafetyPcTest
– FS_CM33_PC_Test
4.4 Хувьсах санах ойн тест
4.4.1 Хувьсах санах ойн туршилтын тодорхойлолт
Дэмжигдсэн төхөөрөмжүүдийн хувьсах санах ойн тест нь чип дээрх RAM-г тогтмол гүйдлийн доголдол байгаа эсэхийг шалгадаг.
Хэрэглээний стекийн талбайг мөн шалгаж болно. Гуравдугаар сарын C ба гуравдугаар сарын X схемийг хяналтын механизм болгон ашигладаг.Харьцуулах функцууд нь дахин тохируулсны дараах тест болон ажиллах хугацааны тестийн хувьд өөр өөр байдаг.
Дахин тохируулсны дараах туршилтыг FS_CM33_RAM_AfterReset () функцээр гүйцэтгэдэг. Энэ функцийг дахин тохируулсны дараа гүйцэтгэх хугацаа чухал биш үед нэг удаа дуудагдана. Нөөцлөх хэсэгт зориулж санах ойн хоосон зайг нөөцлөөрэй. Блокны хэмжээ параметр нь нөөц талбайн хэмжээнээс том байж болохгүй. Функц нь эхлээд нөөцлөх хэсгийг шалгаад дараа нь давталт эхэлнэ. Санах ойн блокуудыг нөөцлөх хэсэгт хуулж, байршлыг нь XNUMX-р сарын тестээр шалгана. Өгөгдлийг анхны санах ойн хэсэгт хуулж, блокийн хэмжээтэй бодит хаягийг шинэчилнэ. Энэ нь санах ойн сүүлчийн блокийг шалгах хүртэл давтагдана. Хэрэв тогтмол гүйдлийн доголдол илэрсэн бол функц нь бүтэлгүйтлийн загварыг буцаана.
Ажиллах цагийн тестийг FS_CM33_RAM_Runtime () функцээр гүйцэтгэдэг. Цаг хэмнэхийн тулд SRAM-ийн зөвхөн нэг сегментийг (RAM_TEST_BLOCK_SIZE-р тодорхойлсон) цаг хугацаанд нь шалгадаг. Дахин тохируулсны дараа туршилт нь аюулгүй байдалтай холбоотой RAM-ийн бүхэл бүтэн блокыг шалгадаг. LPC553x аюулгүй байдлын номын санд жишээлбэлampТөсөлд RAM_TEST_BLOCK_SIZE-г 0x4 болгож тохируулсан бөгөөд энэ нь RAM-ийн туршилтын нэг горимд 32 байт RAM-г шалгана гэсэн үг юм.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
– SafetyRamAfterResetTest /* Үндсэн горимыг ажиллуулахын өмнө “.safety_ram” хэсгийн RAM-ийн бүх зайг туршина. */
– FS_CM33_RAM_Reset хийсний дараа - Ашиглалтын үеийн аюулгүй байдлын туршилт
– SafetyIsrFunction(&g_sSafetyCommon, &g_sSafetyRamTest, &g_sSafetyRamStackTest) /* Systick ISR дээр гүйцэтгэсэн, таслах боломжгүй */
– FS_CM33_RAM_Runtime
4.4.2 Хувьсах санах ойн туршилтын тохиргоо
Хувьсагчийн санах ойн тестийн тохиргоо :Аюулгүй байдлын RAM блокийн тохиргоо байна :
SAFETY_RAM_BLOCK блокыг тэгшитгэх = 8-аар тодорхойлно
{хэсэг .safety_ram};
RAM_region {block SAFETY_RAM_BLOCK}-д байрлуулах;
Зөвхөн .safety_ram нь хувьсах санах ойн тестэд хамрагддаг гэдгийг анхаарна уу. Үндсэн.c хэсэгт доор үзүүлсэн шиг хувьсагчдыг .safety_ram хэсэгт гараар нэмнэ үү.4.5 Тогтворгүй санах ойн тест
4.5.1 Хувьсашгүй санах ойн туршилтын тодорхойлолт
LPC5536 MCU дээрх хувиршгүй санах ой нь чип дээрх флаш юм. Тогтворгүй санах ойг шалгах зарчим нь програмыг ажиллуулах явцад санах ойн агуулгад өөрчлөлт орсон эсэхийг шалгах явдал юм. Энэ зорилгоор шалгах нийлбэрийн хэд хэдэн аргыг ашиглаж болно. Шалгалтын дүн нь шалгагдсан санах ойд байрлуулсан өгөгдлийн гарын үсгийг тооцоолох алгоритм юм. Дараа нь энэ санах ойн блокийн гарын үсгийг үе үе тооцож, анхны гарын үсэгтэй харьцуулна.
Өгөгдсөн санах ойд зориулсан гарын үсгийг програмын холбох үе шатанд тооцдог. Гарын үсэг нь өөрчлөгдөөгүй санах ойд хадгалагдах ёстой, гэхдээ хяналтын нийлбэрийг тооцсон газраас өөр газар хадгалагдах ёстой. Ажиллах үед болон дахин тохируулсны дараа хяналтын нийлбэрийг тооцоолохын тулд програмд ижил алгоритмыг хэрэгжүүлэх шаардлагатай. Үр дүнг харьцуулж байна. Хэрэв тэдгээр нь тэнцүү биш бол аюулгүй байдлын алдааны төлөв үүснэ.
Дахин тохируулсны дараа хэрэгжсэн эсвэл гүйцэтгэх хугацаанд ямар нэгэн хязгаарлалт байхгүй үед функцийн дуудлага дараах байдалтай байж болно.
• Аюулгүй байдлын туршилтыг нэг удаа хийхээс өмнө
– SafetyFlashAfterResetTest
– FS_FLASH_C_HW16_K /* бүх Flash-ийн CRC-ийг тооцоолох */
Аппликешн ажиллах үед болон гүйцэтгэх хугацаа хязгаарлагдмал үед CRC-ийг дарааллаар нь тооцдог. Энэ нь оролтын параметрүүд нь дахин тохируулсны дараа дуудлага хийхтэй харьцуулахад өөр өөр утгатай гэсэн үг юм. Хэрэгжилт жишээлбэлample нь дараах байдалтай байна.
• Ажиллах үеийн аюулгүй байдлын туршилт
– SafetyFlashRuntimeTest
– FS_FLASH_C_HW16_K /* CRC блокыг блокоор тооцоолох */
– SafetyFlashTestHandling /* бүх Flash блокуудыг тооцоолох үед CRC-ийг харьцуулна. */
4.5.2 Хувьсашгүй санах ойн туршилтын тохиргоо
LPC553x аюулгүй байдлын номын санд жишээлбэлample төслийн хувьд флэш хуваарилалтыг Linker-д заасны дагуу доор харуулав file . Объект fileс болон өөрчлөгдөөгүй санах ойн тестээр шалгагдсан аюулгүйн флаш блокт байрлуулсан байна. Та илүү олон объект тавьж болно fileХолбогчийг өөрчилснөөр SAFETY_FLASH_BLOCK Flash талбарт оруулна file үүний дагуу.Өгөгдсөн флэш зайны агуулгыг өөрчилсөн эсэхийг шалгахын тулд MCU ажиллах хугацаанд хоёр хяналтын нийлбэрийг харьцуулах шаардлагатай.
- Хяналтын нийлбэрийг Хөрвүүлэх/Холбох үед Linker тооцоолсон
- Ажиллах үед MCU тооцоолсон шалгах нийлбэр
Шалгах нийлбэрийн үр дүнг байрлуулах байршлын тодорхойлолт (холбогч хэрэгслээр урьдчилан тооцоолсон) байна :
тэмдэгтийг тодорхойлох __FlashCRC_start__ = 0x0300; /* шалгах нийлбэр байршуулахад */
тэмдэгтийг тодорхойлох __FlashCRC_end__ = 0x030F; /* шалгах нийлбэр байршуулахад */
бүс нутгийг тодорхойлох CRC_region = mem: [__FlashCRC_start__-аас __FlashCRC_end__ хүртэл];
блок CHECKSUM-ийг зэрэгцүүлэн тодорхойлох = 8 {хэсэг. шалгах нийлбэр}; CRC_region-д байрлуулах { блок CHECKSUM};
Жишээлбэл, IAR IDE-г аваарайample, төслийн сонголтын тохиргоо > Build actions > Post-build командын мөрөнд.Тушаалын мөр:
ielftool – дүүргэх 0xFF;c_checksumStart-c_checksumEnd+3 –checksum __checksum:2,crc16,0x0;c_checksumStart-c_checksumEnd+3 – дэлгэрэнгүй “$TARGET_PATH$” “$TARGET_PATH$”
Холбогч нь _checksumStart-аас c_checksumEnd хүртэлх флаш хаягжилтын анхны шалгах нийлбэрийг тооцоолж, дараа нь шалгах нийлбэрийн үр дүнг _checksum-д байршуулдаг бөгөөд энэ нь Linker-ийн тодорхойлсон CHECKSUM блокт байрладаг. file.
Шалгах шаардлагатай флаш зайны тодорхойлолт байна :
SAFETY_FLASH_BLOCK блокыг тэгшитгэх = 8, тогтмол дарааллаар тодорхойлох {зөвхөн уншигдах хэсгийн checksum_start_mark, хэсэг .текст объект main.o, хэсэг .текст объект security_cm33_lpc.o, хэсэг .rodata объект security_cm33_lpc.o, зөвхөн унших хэсгийн checksum_end_mark };
ROM_region-д байрлуулах { блок SAFETY_FLASH_BLOCK};
4.6 Стекийн тест
4.6.1 Стекийн туршилтын тодорхойлолт
Стекийн туршилт нь IEC60730 хавсралт H хүснэгтэд шууд заагаагүй нэмэлт шалгалт юм.
Энэхүү туршилтын горимыг програмын стекийн халих болон дутуу урсгалын нөхцлийг шалгахад ашигладаг. Стекийн эзэлдэг санах ойн хэсэгт гацсан алдааг шалгах нь хувьсах санах ойн тестэд хамрагдана. Хэрэв стекийг буруу удирдсан эсвэл тухайн програмын "хэт бага" стекийн талбайг тодорхойлсон тохиолдолд стек халих эсвэл дутуу урсах боломжтой.
Туршилтын зарчим нь стекийн доорх ба түүнээс дээш хэсгийг мэдэгдэж буй загвараар дүүргэх явдал юм. Эдгээр хэсгүүдийг холбогч тохиргоонд тодорхойлсон байх ёстой file, стекийн хамт. Дараа нь эхлүүлэх функц нь эдгээр хэсгийг таны хээгээр дүүргэнэ. Загвар нь програмын өөр хэсэгт харагдахгүй утгатай байх ёстой. Эдгээр газруудад яг хэв маяг нь бичигдсэн хэвээр байгаа эсэхийг шалгах зорилготой юм. Хэрэв тийм биш бол энэ нь стекийн буруу үйлдлийн шинж юм. Хэрэв ийм зүйл тохиолдвол туршилтын функцээс FAIL буцах утгыг аюулгүй байдлын алдаа болгон боловсруулах ёстой.Туршилтыг дахин тохируулсны дараа болон програмын ажиллах хугацаанд ижил аргаар гүйцэтгэдэг.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
– SafetyStackTestInit
– FS_CM33_STACK_Init /* STACK_TEST_BLOCK руу STACK_TEST_PATTERN (0x77777777) бичнэ үү */
– SafetyStackTest
– FS_CM33_STACK_Test /* STACK_TEST_BLOCK-ийн агуулгыг шалгана уу, хэрэв утга нь STACK_TEST_PATTERN (0x77777777)-тай тэнцүү биш бол амжилтгүй болсон. - Ашиглалтын үеийн аюулгүй байдлын туршилт
– SafetyStackTest
– FS_CM33_STACK_Init /* STACK_TEST_BLOCK руу STACK_TEST_PATTERN (0x77777777) бичнэ үү */
– SafetyStackTest
– FS_CM33_STACK_Test /* STACK_TEST_BLOCK-ийн агуулгыг шалгана уу, хэрэв утга нь STACK_TEST_PATTERN (0x77777777)-тай тэнцүү биш байвал амжилтгүй болно.
4.6.2 Стекийн туршилтын тохиргоо
Стек тестийн тохиргоо байна болон холбогч file 4.7 Цагны туршилт
4.7.1 Цагийн туршилтын тодорхойлолт
Цагийг шалгах зарчим нь хоёр бие даасан цагны эх сурвалжийг харьцуулах үндсэн дээр суурилдаг.
LPC553x аюулгүй байдлын номын санд жишээлбэлample төсөл, MCU LPC0 дээрх CTIMER5536 болон Systick-ийг аюулгүйн цагны туршилтад хоёр бие даасан цаг болгон ашигладаг бөгөөд тэдгээр нь LPC5536-EVK тоног төхөөрөмжийн самбараас хамаардаггүй.
Цагийн туршилтын горимыг зөвхөн ажиллах үеийн аюулгүй байдлын үечилсэн туршилтаар гүйцэтгэдэг.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
- Цагийн шалгалт байхгүй - Ашиглалтын үеийн аюулгүй байдлын туршилт
- SafetyClockTestCheck
– SafetyClockTestIsr
4.7.2 Цагны туршилтын тохиргоо
LPC553x аюулгүй байдлын номын санд цагийг шалгахын тулд хоёр бие даасан цаг шаардлагатайample төсөл:
- SYSTICK таймерыг PLL0 150 M (гадаад 16 MHz болороос авсан)
- CTIMER0 таймерыг дотоод FRO_96M-ээс авсан
Systick болон CTIMER0-ийн нарийвчилсан тохиргоог доор харуулав.
- Системийн тохиргоо: SystickISR_Freq = 1000 Гц, 150,000 дахин ачаалах утгыг 150 МГц-ийн үндсэн цагт тохируулснаар
- CTIMER тохиргоо: CTIMER_Freq = 96 МГц, 96 МГц FRO_96M цагаас авсан
- Хүлээгдэж буй CTIMER тоолуур нь CTIMER _Freq/SystickISR_Freq = 96 MHz / 1000 = 96,000 байх ёстой
- Systick тасалдлын ISR бүрт CTIMER тоолуурын утгыг хадгал
- Ажиллах үед (1) давталт хийхдээ: (96,000 – 20 %) < CTIMER expect counter < (96,000 + 20 %)
Цагны тестийн тохиргоо Safety_config.h-д байна.
Бодит хэрэглүүрийн дагуу та REF_TIMER_USED макро тохируулснаар аюулгүйн цагны тестийн CTIMER жишээг өөрчилж болно. Мөн та бодит цагийн давтамжийн дагуу REF_TIMER_CLOCK_FREQUENCY-г тохируулах ёстой. 4.8 Дижитал оролт гаралтын тест
4.8.1 Дижитал оролт/гаралтын туршилтын тодорхойлолт
LPC553x аюулгүй байдлын номын санд жишээлбэлample төсөл, LPC1-EVK дээрх GPIO P4_1 ба P17_5536 нь аюулгүй байдлын дижитал I/O тестээр сонгогдсон бөгөөд эдгээр хоёр зүү нь LPC10x EVK самбар дээрх J553 толгойтой холбогдсон байна.
Дижитал оролт/гаралтын туршилтын горимыг хоёр үндсэн процесст хуваадаг: нэг удаагийн аюулгүй байдлын туршилт, ажлын үеийн аюулгүй байдлын туршилт.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
– SafetyDigitalOutputTest
– SafetyDigitalInputOutput_Short SupplyTest
– SafetyDigitalInputOutput_ShortAdjTest - Ашиглалтын үеийн аюулгүй байдлын туршилт
– SafetyDigitalOutputTest
– SafetyDigitalInputOutput_Short SupplyTest
4.8.2 Дижитал оролт гаралтын туршилтын тохиргоо
Тоон оролт/гаралтын тестийн тохиргоо нь security_test_items.c-д байна.Дижитал I/O тестийн гүйцэтгэлийг эцсийн хэрэглээнд тохируулсан байх ёстой. Техник хангамжийн холболт болон дизайнд болгоомжтой хандах хэрэгтэй. Та аюулгүй байдлын үүднээс GPIO-г өөрчилж болно
security_test_items.c доторх dio_safety_test_items[]-г тохируулах замаар дижитал I/O тест. Ихэнх тохиолдолд програмыг ажиллуулах явцад туршиж үзсэн (заримдаа туслах) зүүг дахин тохируулах шаардлагатай байдаг. Тоон оролт гаралтын шалгалтанд ашиглагдаагүй зүүг ашиглахыг зөвлөж байна.
4.9 Аналог оролт/гаралтын туршилт
4.9.1 Аналог оролт/гаралтын туршилтын тодорхойлолт
LPC553x аюулгүй байдлын номын санд жишээлбэлampMCU LPC0 дээрх ADC модуль нь VREFH, VREFLC-ийг дотооддоо холбохыг зөвшөөрдөггүй тул LPC16-EVK дээрх P0_3/ADC0IN31B, P0_8/ADC0IN15B, P0_3/ADC5536IN5536A, PXNUMX_XNUMX/ADCXNUMXINXNUMXA-г аюулгүй байдлын аналоги туршилтын туршилтаар сонгосон. оролт. Хэрэглэгч эдгээр дохиог (аналог оролт/гаралтын туршилтын хувьд) доор үзүүлсэн шиг нисдэг утсаар холбох шаардлагатай.
- GND нь ADC VREFL тестийн P0_16/ADC0IN3B (J9-5)-д холбогдсон
- ADC VREFH туршилтын P3.3_0/ADC31IN0A (J8-9) -д 31 В холбогдсон
- ADC зурвасын туршилтын хувьд P1.65_0/ADC15IN0A (J3-9) -д холбогдсон 1 В
Аналог I/O туршилтын горимыг хоёр үндсэн процесст хуваадаг.
- Аюулгүй байдлын туршилтыг нэг удаа хийнэ
– Аюулгүй байдлын аналог тест - Ашиглалтын үеийн аюулгүй байдлын туршилт
– Аюулгүй байдлын аналог тест
4.9.2 Аналог оролт гаралтын туршилтын тохиргоо
Аналог I/O тестийн гүйцэтгэлийг эцсийн хэрэглээнд тохируулсан байх ёстой. Техник хангамжийн холболт болон дизайнд болгоомжтой хандах хэрэгтэй. Та FS_CFG_AIO_CHANNELS_INIT болон тохиргоог хийснээр аюулгүй байдлын аналог оролт/гаралтын тестийн ADC сувгийг өөрчилж болно.
security_config.h доторх FS_CFG_AIO_CHANNELS_SIDE_INIT.
- FS_CFG_AIO_CHANNELS_INIT нь ADC сувгийн дугаарыг заана.
- FS_CFG_AIO_CHANNELS_SIDE_INIT нь ADC сувгийн талыг заана.
Дээрх зурагт үзүүлснээр:
- Эхний элемент нь ADC VREFL тесттэй тохирч байна
- Хоёрдахь элемент нь ADC VREFH тесттэй тохирч байна
- Гурав дахь элемент нь ADC Bandgap тесттэй тохирч байна
Жишээ ньample, FS_CFG_AIO_CHANNELS_INIT дотор "3" ба "1"
FS_CFG_AIO_CHANNELS_SIDE_INIT нь ADC VREFL тестэнд ADC0 сувгийн 3 B тал сонгогдсоныг харуулж байна.
4.10 Харуулын шалгалт
4.10.1 Харуулын туршилтын тодорхойлолт
Харуулын туршилтыг IEC60730 – Хавсралт Н хүснэгтэд шууд заагаагүй боловч IEC 60730-1, IEC 60335, UL 60730, UL 1998 стандартын аюулгүй байдлын шаардлагыг хэсэгчлэн хангаж байна.
Харуул нохойн тест нь харуулын цаг хэмжигчийг шалгах боломжийг олгодог. Туршилтыг дахин тохируулсны дараа зөвхөн нэг удаа явуулна. Туршилт нь WDOG-г дахин тохируулахад хүргэдэг бөгөөд WDOG-г дахин тохируулах урьдчилан тогтоосон цагийг бодит цагтай харьцуулдаг.LPC553x аюулгүй байдлын номын санд жишээлбэлampТөсөлд харуулын нохойг дараах алхмуудыг ашиглан шалгана.
- Дахин тохируулсны дараа watchdog-г идэвхжүүлж, MCU-г дахин тохируулахын тулд зориудаар сэргээхээ зогсооно уу.
- CTIMER0-г идэвхжүүлж, харуулын хугацаа хэр удаан үргэлжлэхийг хэмжиж, дахин тохируулна уу.
- Watchdog-г дахин тохируулсны дараа PMC->AOREG1 бүртгэлийг шалгаснаар энэхүү шинэчлэлт нь watchdog-ээс үүдэлтэй гэдгийг баталгаажуулна уу.
- CTIMER0-г уншина уу, харуулын цаг дуусах хугацааг яг таг олж, дахин тохируулна уу.
Хяналтын түүх
Доорх хүснэгтэд энэ баримт бичгийн засваруудыг нэгтгэн харуулав.
Хүснэгт 3. Хяналтын түүх
Хяналтын дугаар | Огноо | Үндсэн өөрчлөлтүүд |
0 | 4-р сарын 23-XNUMX | Анхны олон нийтэд хүргэх |
Хууль эрх зүйн мэдээлэл
6.1 Тодорхойлолт
Ноорог — Баримт бичиг дээрх нооргийн төлөв нь агуулга нь дотоод шинэчлэлт хэвээр байгааг харуулж байнаview мөн албан ёсны зөвшөөрөлтэй байх бөгөөд үүнд өөрчлөлт, нэмэлт оруулах боломжтой. NXP Semiconductors нь баримт бичгийн ноорог хувилбарт оруулсан мэдээллийн үнэн зөв, бүрэн байдлын талаар ямар нэгэн мэдэгдэл, баталгаа өгөхгүй бөгөөд ийм мэдээллийг ашигласны үр дагаварт хариуцлага хүлээхгүй.
6.2 Сануулга
Хязгаарлагдмал баталгаа ба хариуцлага — Энэхүү баримт бичигт байгаа мэдээллийг үнэн зөв, найдвартай гэж үзэж байна. Гэсэн хэдий ч NXP Semiconductors нь эдгээр мэдээллийн үнэн зөв, бүрэн байдлын талаар илэрхий эсвэл далд хэлбэрээр ямар нэгэн мэдэгдэл, баталгаа өгөхгүй бөгөөд ийм мэдээллийг ашигласны үр дагаварт хариуцлага хүлээхгүй. NXP Semiconductors нь NXP Semiconductors-аас гадуурх мэдээллийн эх сурвалжаас өгсөн бол энэ баримт бичгийн агуулгад хариуцлага хүлээхгүй.
NXP Semiconductors нь ямар ч тохиолдолд шууд бус, санамсаргүй, шийтгэл, тусгай болон үр дагаварт учирсан хохирлыг хариуцахгүй (үүнд алдагдсан ашиг, алдагдсан хуримтлал, бизнесийн тасалдал, аливаа бүтээгдэхүүнийг зайлуулах, солихтой холбоотой зардал эсвэл дахин боловсруулалтын төлбөр гэх мэт) Ийм хохирол нь гэм буруутай (үүнд хайхрамжгүй байдал), баталгаа, гэрээг зөрчсөн эсвэл бусад хууль эрх зүйн онолд үндэслээгүй болно.
Хэрэглэгч ямар нэгэн шалтгаанаар учирч болох аливаа хохирлыг үл харгалзан NXP Semiconductors-ийн нийт болон энд тайлбарласан бүтээгдэхүүний хэрэглэгчийн өмнө хүлээх хариуцлага нь NXP Semiconductors-ийг арилжааны хэлбэрээр худалдах нөхцөл, нөхцлийн дагуу хязгаарлагдана.
Өөрчлөлт хийх эрхтэй — NXP Semiconductors нь энэхүү баримт бичигт нийтлэгдсэн мэдээлэл, түүний дотор техникийн үзүүлэлтүүд болон бүтээгдэхүүний тайлбарыг ямар ч хязгаарлалтгүйгээр, хэзээ ч, мэдэгдэлгүйгээр өөрчлөх эрхтэй. Энэхүү баримт бичиг нь нийтлэхээс өмнө өгсөн бүх мэдээллийг орлож, орлоно.
Хэрэглэхэд тохиромжтой — NXP Semiconductors бүтээгдэхүүнүүд нь амьдралыг дэмжих, амьдралын чухал эсвэл аюулгүй байдлын чухал систем, тоног төхөөрөмж, түүнчлэн NXP Semiconductors бүтээгдэхүүний эвдрэл, доголдолд хүргэж болзошгүй тохиолдолд хэрэглэхэд тохиромжгүй байхаар төлөвлөгдөөгүй, зөвшөөрөгдөөгүй эсвэл баталгаагүй болно. хувийн гэмтэл, үхэл, эд хөрөнгө, байгаль орчны ноцтой хохирол. NXP Semiconductors болон түүний ханган нийлүүлэгчид нь NXP Semiconductors бүтээгдэхүүнийг ийм төхөөрөмж, хэрэглээнд оруулах болон/эсвэл ашиглах хариуцлага хүлээхгүй тул ийм оруулах болон/эсвэл ашиглалтын эрсдэл нь үйлчлүүлэгч өөрөө хариуцна.
Програмууд - Эдгээр бүтээгдэхүүний аль нэгэнд зориулсан энд тайлбарласан програмууд нь зөвхөн тайлбарлах зорилготой. NXP Semiconductors нь нэмэлт туршилт, өөрчлөлт хийхгүйгээр эдгээр хэрэглээг заасан хэрэглээнд тохирно гэсэн баталгаа, баталгаа өгөхгүй. Үйлчлүүлэгчид NXP Semiconductors бүтээгдэхүүнийг ашиглан өөрсдийн хэрэглээ, бүтээгдэхүүний загвар, ашиглалтыг хариуцдаг бөгөөд NXP Semiconductors нь хэрэглээний болон хэрэглэгчийн бүтээгдэхүүний дизайнтай холбоотой аливаа тусламжийн төлөө хариуцлага хүлээхгүй. NXP Semiconductors бүтээгдэхүүн нь хэрэглэгчийн хэрэглээ, төлөвлөж буй бүтээгдэхүүн, түүнчлэн гуравдагч этгээдийн үйлчлүүлэгч(үүд)-ийн төлөвлөсөн хэрэглээ, хэрэглээнд тохирох эсэхийг тодорхойлох нь зөвхөн хэрэглэгчийн үүрэг юм. Хэрэглэгчид эрсдэлийг багасгахын тулд зохих дизайн, ашиглалтын хамгаалалтыг хангах ёстой
тэдгээрийн хэрэглээ, бүтээгдэхүүнтэй холбоотой. NXP Semiconductors нь хэрэглэгчийн хэрэглээний программууд, бүтээгдэхүүнүүд, хэрэглэгчийн гуравдагч талын үйлчлүүлэгч(үүд)-ийн хэрэглээ, хэрэглээнд үндэслэсэн аливаа дутагдал, гэмтэл, зардал, асуудалтай холбоотой аливаа хариуцлага хүлээхгүй. Үйлчлүүлэгч нь NXP Semiconductors бүтээгдэхүүнийг ашиглан хэрэглэгчийн хэрэглээний программууд болон бүтээгдэхүүнүүдэд шаардлагатай бүх туршилтыг хийх үүрэгтэй бөгөөд уг программууд болон бүтээгдэхүүнүүд эсвэл хэрэглэгчийн гуравдагч талын үйлчлүүлэгч(үүд)-ийн хэрэглээнээс зайлсхийхийн тулд хэрэглэгчдэд шаардлагатай бүх туршилтыг хийх үүрэгтэй. NXP энэ талаар ямар ч хариуцлага хүлээхгүй.
Арилжааны борлуулалтын нөхцөл — NXP Semiconductors бүтээгдэхүүнийг нийтэлсэн арилжааны ерөнхий нөхцөл, нөхцлийн дагуу зардаг http://www.nxp.com/profile/terms, хүчин төгөлдөр бичгээр байгуулсан хувь хүний гэрээнд өөрөөр заагаагүй бол. Ганцаарчилсан гэрээ байгуулсан тохиолдолд зөвхөн тухайн гэрээний нөхцөл, болзлыг баримтална. NXP Semiconductors нь үйлчлүүлэгч NXP Semiconductors бүтээгдэхүүнийг худалдан авахтай холбоотой хэрэглэгчийн ерөнхий нөхцөлийг хэрэгжүүлэхийг үүгээр эсэргүүцэж байна.
Экспортын хяналт — Энэхүү баримт бичиг болон энд тайлбарласан зүйл(үүд) нь экспортын хяналтын зохицуулалтад хамрагдаж болно. Экспортод эрх бүхий байгууллагаас урьдчилан зөвшөөрөл авах шаардлагатай байж болно.
Автомашины бус шаардлага хангасан бүтээгдэхүүнд хэрэглэхэд тохиромжтой — Энэхүү мэдээллийн хуудсанд энэхүү NXP Semiconductors бүтээгдэхүүн нь автомашины шаардлага хангасан гэдгийг тодорхой заагаагүй бол уг бүтээгдэхүүн нь автомашинд ашиглахад тохиромжгүй. Энэ нь автомашины туршилт эсвэл хэрэглээний шаардлагын дагуу мэргэшсэн эсвэл шалгагдаагүй болно. NXP Semiconductors нь автомашины бус шаардлага хангасан бүтээгдэхүүнийг автомашины тоног төхөөрөмж, хэрэглээнд оруулах ба/эсвэл ашиглах хариуцлага хүлээхгүй.
Үйлчлүүлэгч уг бүтээгдэхүүнийг автомашины техникийн үзүүлэлт, стандартын дагуу автомашины хэрэглээнд загварчлах, ашиглах зорилгоор ашиглах тохиолдолд (а) уг бүтээгдэхүүнийг NXP Semiconductors-ын баталгаагүйгээр автомашины хэрэглээ, техникийн үзүүлэлтүүдэд ашиглах ёстой бөгөөд ( б) хэрэглэгч бүтээгдэхүүнийг NXP Semiconductors-ийн техникийн үзүүлэлтээс хэтрүүлэн автомашины хэрэглээнд ашиглах бүрд түүний эрсдэл нь зөвхөн хэрэглэгчийн өөрийнх нь хариуцах бөгөөд (в) хэрэглэгчийн дизайн болон ашиглалтын үр дүнд үүссэн аливаа хариуцлага, гэмтэл, бүтэлгүйтсэн бүтээгдэхүүний нэхэмжлэлийг хэрэглэгч NXP Semiconductors-д бүрэн хариуцна. NXP Semiconductors-ийн стандарт баталгаа болон NXP Semiconductors-ын техникийн үзүүлэлтээс давсан автомашины хэрэглээнд зориулагдсан бүтээгдэхүүн.
Орчуулга — Баримт бичгийн англи бус (орчуулсан) хувилбар, түүний дотор тухайн баримт бичигт байгаа хууль эрх зүйн мэдээлэл нь зөвхөн лавлагаанд зориулагдсан болно. Орчуулсан болон англи хэл дээрх хувилбаруудын хооронд зөрүү гарсан тохиолдолд англи хувилбарыг баримтална.
Аюулгүй байдал — Хэрэглэгч бүх NXP бүтээгдэхүүнүүд нь тодорхойгүй эмзэг байдалд өртөж болзошгүй эсвэл тогтоосон аюулгүй байдлын стандартууд эсвэл мэдэгдэж буй хязгаарлалттай техникийн үзүүлэлтүүдийг дэмждэг болохыг ойлгодог. Үйлчлүүлэгч нь эдгээр эмзэг байдлын хэрэглэгчийн хэрэглээ, бүтээгдэхүүнд үзүүлэх нөлөөллийг багасгахын тулд өөрийн хэрэглээний болон бүтээгдэхүүний амьдралын мөчлөгийн туршид дизайн, ашиглалтыг хариуцна. Хэрэглэгчийн үүрэг хариуцлага нь NXP бүтээгдэхүүнээр дэмжигдсэн бусад нээлттэй ба/эсвэл хэрэглэгчийн программд ашиглахад зориулагдсан өмчлөлийн технологид хамаарна. NXP нь аливаа эмзэг байдлын төлөө хариуцлага хүлээхгүй. Хэрэглэгч NXP-ийн аюулгүй байдлын шинэчлэлтүүдийг тогтмол шалгаж, зохих ёсоор дагаж мөрдөх ёстой.
Үйлчлүүлэгч нь зориулалтын хэрэглээний дүрэм, журам, стандартад хамгийн сайн нийцсэн хамгаалалтын шинж чанартай бүтээгдэхүүнийг сонгож, бүтээгдэхүүнийхээ дизайны эцсийн шийдвэрийг гаргах бөгөөд бүтээгдэхүүнтэй холбоотой хууль эрх зүй, зохицуулалт, аюулгүй байдалтай холбоотой бүх шаардлагыг дангаараа хариуцна. NXP-ээс өгч болох аливаа мэдээлэл эсвэл дэмжлэг.
NXP нь Бүтээгдэхүүний аюулгүй байдлын ослын хариу арга хэмжээ авах багтай (PSIRT) (хэрэглэх боломжтой PSIRT@nxp.com) нь NXP бүтээгдэхүүний аюулгүй байдлын эмзэг байдлыг судлах, тайлагнах, шийдлийг гаргах ажлыг удирддаг.
6.3 барааны тэмдэг
Анхааруулга: Бүх иш татсан брэнд, бүтээгдэхүүний нэр, үйлчилгээний нэр, барааны тэмдэг нь тус тусын эздийнхээ өмч юм.
NXP - үгийн тэмдэг болон лого нь 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 — АНУ болон/эсвэл бусад газар дахь Arm Limited (эсвэл түүний салбар компаниудын) худалдааны тэмдэг эсвэл бүртгэгдсэн худалдааны тэмдэгнүүд юм. Холбогдох технологи нь патент, зохиогчийн эрх, загвар, худалдааны нууцаар хамгаалагдсан байж болно. Бүх эрх хуулиар хамгаалагдсан.
Энэхүү баримт бичиг болон энд тайлбарласан бүтээгдэхүүн(үүд)тэй холбоотой чухал мэдэгдлүүдийг "Хууль эрх зүйн мэдээлэл" хэсэгт оруулсан болохыг анхаарна уу.
© 2023 NXP BV
Дэлгэрэнгүй мэдээллийг дараах хаягаар авна уу. http://www.nxp.com
Бүх эрх хуулиар хамгаалагдсан.
Гарсан огноо: 4 оны нэгдүгээр сарын 2023
Баримт бичгийн танигч: AN13823
Баримт бичиг / нөөц
![]() |
LPC13823x MCU-д зориулсан NXP AN60730 IEC 553 В ангиллын програм хангамж [pdf] Хэрэглэгчийн гарын авлага LPC13823x MCU-д зориулсан AN60730 IEC 553 ангиллын В програм хангамж, AN13823, LPC60730x MCU-д зориулсан IEC 553 ангиллын програм хангамж, AN13823 IEC 60730 ангиллын В програм хангамж |