Бірліктер
1. Электроника және коммуникациялар инженериясындағы жасанды интеллектке кіріспе: шекаралар, тексеру, жауапкершілік және этика 2. Схема дизайнындағы жасанды интеллект және ПХД орналасуын қолдау 3. Сигналдарды өңдеу: сүзгілер, іріктеу және жиілікті талдау 4. Модуляция, цифрлық байланыс және қатені қалпына келтіру 5. RF, антенна және сілтеме бюджетін талдау 6. Енгізілген жүйелердегі жасанды интеллект және микробағдарламаны әзірлеу 7. Байланыс протоколдары және желілік стек 8. Желінің өнімділігі мен оңтайландыруындағы жасанды интеллект 9. EMC/EMI, сынақ және өлшеудегі жасанды интеллект 10. Болжалды техникалық қызмет көрсетудегі және жабдықтың денсаулығындағы жасанды интеллект 11. Стандартты және нормативтік зерттеулерді тексеру 12. Сигнал және телекоммуникациялық деректерді талдау және Python көмегімен AI шекаралары
Бірлік 6 / 12

Енгізілген жүйелердегі жасанды интеллект және микробағдарламаны әзірлеу

Табыстар:

  • AI көмегімен микроконтроллердің микробағдарлама қаңқасын, драйверді және мемлекеттік машина жобаларын жеделдету мүмкіндігі
  • AI қолдауымен үзіліс, уақыт, бақылау және төмен қуат логикасын қарау мүмкіндігі
  • Статикалық талдау, аппараттық құралдарды тестілеу және қауіпсіздік талаптары арқылы AI жасаған микробағдарлама кодын тексеру мүмкіндігі

Енгізілген жүйе – белгілі бір жұмысты орындауға арналған микроконтроллердің (процессорды, жадыны және перифериялық құрылғыларды бір микросхемада орналастыратын шағын компьютер) айналасында құрастырылған электронды құрылғы: термостат, модем, сенсорлық түйін, мотор драйвері. Микробағдарлама – бұл құрылғының аппараттық құралдарын тікелей іске қосатын бағдарламалық құрал. Бұл бөлімде сіз микробағдарлама әзірлеуде AI-ды үдеткіш ретінде қалай пайдалану керектігін көресіз (драйвер жазу, күй машинасы, үзу және уақыт логикасы, төмен қуатты басқару). AI кодтауда өте күшті; Бірақ ендірілген әлемде код аппараттық құралдармен, нақты уақытпен және көбінесе қауіпсіздікпен байланысты. Осылайша, AI шығаратын әрбір жол статикалық талдаудан, тіркеуден/деректер парағын тексеруден және аппараттық құралдағы нақты сынақтан өтуі керек.

AI микробағдарламасында қай жерде күшті, қай жерде қауіпті

AI микробағдарламаның «қаңқасы» және «өлі» бөлігінде өте күшті: I2C/SPI драйверінің құрылымы, күй машинасының құрылымы (құрылғының күйлері мен ауысуларын анықтайтын логика), сақиналық буферді іске асыру, нұсқауларды талдаушы, сынақ қаңқасы. Ол күрделі деректер парағындағы тіркелім кестесін оқи алады және инициализация кодын жасай алады. Қатені түсіндіре алады, компилятордың ескертуін түсіндіре алады.

Енгізілген жүйенің мәні тәуекелді болып табылады:

  • Тіркеу мекенжайлары мен бит өрістері: AI чиптің регистр картасын қате есте сақтауы мүмкін; Әрбір мекенжай мен бит деректер парағынан тексерілуі керек.
  • Уақыт және нақты уақыт: операция қанша микросекундты алады, үзіліс қаншалықты жиі келеді, аппараттық құралға байланысты; AI болжайды, сіз өлшейсіз.
  • Сәйкестік: үзу қызметінің тәртібі (ISR) мен негізгі цикл арасында ортақ пайдаланатын айнымалылар өзгермелі және атомдық қатынас арқылы қорғалмаған болса, үнсіз, қайталанбайтын қателер орын алады.
  • Ресурс шектеулері: стектің толып кетуі, жадтың ағуы, бақылау күтуінің күту уақыты ендірілгенде бұзылуды білдіреді.

Үзіліс, уақыт және бақылаушы

Үзіліс – бұл оқиға орын алған кезде (деректер келді, таймер мерзімі бітті), процессор негізгі жұмысты тастап, қызмет көрсету режиміне өтеді (ISR: үзіліс қызметі). ISR ендірілген жүйедегі кодтың ең сезімтал бөліктері болып табылады. Негізгі ережелер: ISR қысқа болуы керек (ұзақ жұмыс негізгі циклге қалдырылады), онда блоктау операциялары (күту, басып шығару) болмауы керек, ортақ айнымалылар қорғалған болуы керек.

Watchdog — бағдарламалық құрал бұзылған жағдайда құрылғыны автоматты түрде қайта жүктейтін қауіпсіздік механизмі; Микробағдарлама оны үнемі «береді», егер олай болмаса, жүйе қалпына келтіріледі. AI бұл құрылымдардың жобаларын жасайды, бірақ бақылау ұзақтығы, үзіліс басымдықтары және жоспарлау бюджеті сіздің жүйеңіздегі нақты жүктемемен салыстырылуы керек.

Кеңес: AI-ға ISR басып шығарған кезде, оған «ISR қысқа, блокталмаған, өзгермелі және атомдық қатынасы бар ортақ айнымалыларды белгілеу, ұзақ тапсырманы жалаушамен негізгі циклге беру» туралы нақты нұсқау беріңіз. Содан кейін осы ережелердің нақты қолданылғанын шығаратын кодтағы жолды тексеріңіз.

Төмен қуат және қауіпсіздік

Төмен қуатты басқару батареямен жұмыс істейтін құрылғыларда өте маңызды: процессорды ұйқы режиміне қою, перифериялық құрылғыларды өшіру, оқиғадан ояту. AI ұйқы режимінің ауысуын және ояту логикасын сызады, бірақ токтың нақты тұтынуы тек өлшеу арқылы белгілі (микроампер деңгейіндегі ток өлшегіш); AI «осы режимде ~2 мкА тартады» деген болжам.

Қауіпсіздік тұрғысынан ендірілген құрылғылар барған сайын желіге қосылып келеді және микробағдарламаның осалдықтары (буфердің толып кетуі, аутентификацияланбаған енгізу, әлсіз криптография, ашық жөндеу интерфейсі) елеулі тәуекелдер болып табылады. AI қауіпсіз кодтау принциптерін еске түсіруі мүмкін, бірақ жасалған кодтың қауіпсіздігі статикалық талдау құралдарымен, кодты қараумен және қажет болған жағдайда қауіпсіздік сынағымен тексеріледі. Қауіпсіздік тұрғысынан маңызды жүйелерде (медициналық, автомобильдік, өнеркәсіптік) AI өнімі ешқашан құзыретті инженер мақұлдауымен және тиісті қауіпсіздік стандартымен (мысалы, IEC 61508, ISO 26262) талап етілетін процестерді алмастырмауы керек.

үш шағын іс

1-жағдай — қорғалмаған ортақ айнымалы. Инженер AI-дан UART қабылдау кодын сұрайды. Код ISR-де есептегішті ұлғайтады және негізгі цикл осы есептегішті оқиды; бірақ есептегіш тұрақсыз емес және көпбайтты оқу атомдық емес. Құрылғы көп жағдайда жұмыс істейді, бірақ кейде деректер санын қате оқиды және қатені қайталау мүмкін емес. Статикалық талдау және кодты тексеру жетіспейтін ұшпаны; Есептегіш қорғалған кезде қате жоғалады. Сабақ: AI кодында параллельдік қателер жиі және жасырын болады; Оқып, тексеру керек.

2-жағдай – қате регистр биті. Интерн AI жасаған ADC баптандыру кодын жүктеп салады; ADC күтпеген мәндерді оқиды. Оны деректер парағымен салыстыру, AI конфигурация битін дұрыс емес жерде орнатқаны көрінеді (чиптің басқа нұсқасы үшін карта). Бит түзетілгеннен кейін ADC дұрыс жұмыс істейді. Сабақ: деректер парағының дұрыс нұсқасына сәйкес әрбір тіркелім емлесін тексеріңіз.

3-жағдай — Дұрыс пайдалану. Инженер AI-дан күрделі сенсорлық хаттама үшін мемлекеттік машинаның қаңқасын сұрайды; күйлерді, өтулерді және күту уақытының тармақтарын сипаттайды. AI таза, оқылатын құрылымды жасайды. Инженер осы құрылымды қабылдайды, деректер парағы арқылы әрбір тіркелімге қол жеткізуді тексереді, осциллографпен уақытты өлшейді және оны аппараттық құралда тексереді. Даму бірнеше күннің орнына бірнеше сағатта аяқталады. Сабақ: AI қаңқаны жылдамдатады; Инженер тексеру жүргізеді.

Көшіретін шақыру үлгілері

DRIVER SKELETON TEMPLATE"[чип/перифериялық] үшін [I2C/SPI/UART] драйверінің қаңқасын жазыңыз: инициализациялау, оқу, жазу, қателерді өңдеу функциялары. PLACEHOLDER ішінде тіркеу мекенжайлары мен бит өрістерін қалдырыңыз (мысалы, REG_XXX) және олардың орнына "толтырыңыз және әр функцияны блоктауды көрсетіңіз." түсініктеме жолымен қабылдайды."

ISR ҚАУІПСІЗДІК ҮЛГІСІ"Келесі оқиға үшін үзіліс қызметінің (ISR) жобасын жазыңыз: [оқиға]. Ережелер: ISR қысқаша сақтаңыз, бұғаттамаңыз, ортақ айнымалыларды виволитті және атомдық қатынаспен белгілеңіз, ұзақ тапсырманы жалаушасы бар негізгі циклге тапсырыңыз. Кодтың соңында осы ережелердің әрқайсысын қай жерде тексере алатынымды көрсетіңіз."

STATE МАШИНА ҮЛГІСІ"Келесі протокол/процесс үшін күй машинасының қаңқасын жазыңыз: [күйлерді, оқиғаларды, өтулерді және күту уақыттарын сипаттаңыз]. Әрбір күй үшін енгізу/шығу әрекеттерін және қате/күту уақыты тармағын көрсетіңіз. Аппараттық құралға тән мәндерді (тіркеу, ұзақтық) толтырғыш ретінде қалдырыңыз және олардың тексерілуі қажет екенін ескеріңіз."

КОДТЫ ҚАРАУ ҮЛГІСІ "Келесі микробағдарлама кодын ендірілген перспективадан қарап шығыңыз және қауіптерді белгілеңіз: қорғалмаған ортақ айнымалы (ұшпа/атомдық), ISR-де ұзақ/блоктау операциясы, стектің толып кету қаупі, күту уақытынсыз күту, қателерді тіркеу, бақылаушы арнасы. Әр табу үшін кодты сынау/тексеру әдісін ұсыныңыз: [pa.]

Әлсіз шақыру / Күшті шақыру

ƏЛСІЗ СҰРАҚ: «Маған UART драйверін жазыңыз».

ҚҰТТЫ СҰРАҚ: "[микроконтроллер] үшін үзіліс негізіндегі UART қабылдау драйверін жазыңыз. Сақиналық буферді пайдаланыңыз; ISR қысқаша сақтаңыз және жай ғана негізгі циклде өңделетін буферге жазыңыз. Ортақ индекстерді тұрақсыз және атомды етіп жасаңыз. Тіркеу мекенжайларын толтырғыштарда қалдырыңыз, оларды деректер парағының соңында тексеру үшін белгілеңіз. уақыты».

Әлсіз шақыру аппараттық және параллельдік соқыр кодты шығарады; Күшті шақыру ендірілген ережелер мен тексеру тізіміне сұрауларды жүктейді.

Микробағдарламаны тексеру қабаттары

қабат

не ұстайды

АИ рөлі

Деректер парағын тексеру

Қате регистр/бит

Толтырғыш пен бақылау жазбасын жасайды

Статикалық талдау (линтер)

өзгермелі, типтік, шекаралық қателер

Ережелер тізімі және түсініктеме

Компилятордың ескертулері

Жасырын түрлендіру, пайдаланылмаған мән

Ескерту пікірі

Аппараттық құралдарда тестілеу

Уақыт, нақты мінез-құлық

Сынақ сценарийі бойынша ұсыныс

Осциллограф/анализатор

Сигнал және хаттама дәлдігі

Өлшеу нүктесі және күтілетін толқын

Абайлаңыз: Микробағдарламаның «құрастыруы» және «көбінесе жұмыс істеуі» оның дұрыс екенін білдірмейді. Сәйкестік пен уақыт қателері белгілі бір жағдайларда ғана орын алады; Сондықтан статикалық талдау және аппараттық құралдағы нақты тестілеу өте қажет.

Жалпы қателер

  • Ортақ айнымалыларды қорғамайды. ISR мен негізгі цикл арасындағы деректер өзгермелі және атомдық болуы керек.
  • Деректер парағы арқылы тізілім мекенжайы/бит тексерілмейді. AI қате нұсқаны көрсетуі мүмкін.
  • ISR ұзақ сақтау немесе оның ішінде блоктау. Жүйе жауап бере алмайды, үзілістер өткізілмейді.
  • Уақытты өлшеусіз қабылдау. Нақты уақыт аппараттық құралға байланысты; осциллографпен тексеріледі.
  • AI мақұлдау үшін қауіпсіздік/қауіпсіздік үшін маңызды кодты қалдыру. Құзыретті инженер және тиісті стандартты процесс маңызды.

Қысқаша

Бұл құрылғыда сіз микробағдарлама қаңқасын, драйверді, күй машинасын және ISR эскизін жасауда қуатты үдеткіш ретінде AI қолдандыңыз. Бірақ ендірілген әлемде код аппараттық құралмен, нақты уақытпен және қауіпсіздікпен байланысты: регистр/бит мәндері деректер парағынан тексеріледі, параллельдік статикалық талдаудан тексеріледі, уақыт осциллографтан тексеріледі, мінез-құлық аппараттық құралдағы нақты сынақтан тексеріледі. AI қаңқаны бірнеше минут ішінде жеткізеді; Инженер микробағдарламаның дұрыс, қауіпсіз және уақытында жұмыс істеп тұрғанын тексереді. Қауіпсіздік маңызды жүйелерде AI шығысы тиісті қауіпсіздік стандартының процестерін және құзыретті инженердің рұқсатын алмастырмайды.

Қолданбалы тапсырма

Перифериялық құрылғыны таңдаңыз (мысалы, I2C сенсоры). «Драйвер қаңқасы» үлгісімен АИ-ден толтырғыштарда регистрлерді қалдыратын драйвер қаңқасын сұраңыз. Содан кейін «ISR қауіпсіздік» үлгісімен осы сенсордан деректерге дайын үзу үшін ISR нобайын жасаңыз. Соңында, енгізілген тәуекелдер үшін «Кодты шолу» үлгісімен шығаратын кодты сканерлеңіз және кемінде үш растау/тестілеу қадамын жазыңыз.

бақылау парағы

  • [ ] Мен әрбір регистр мекенжайы мен битті деректер парағының дұрыс нұсқасынан тексердім.
  • [ ] Мен ISR мен негізгі цикл арасындағы ортақ айнымалыларды өзгермелі және атомдық етіп жасадым.
  • [ ] Мен ISR-ді қысқа ұстадым, блоктауды қоймадым, ұзақ жұмысты негізгі циклге тапсырдым.
  • [ ] Мен уақытты және нақты әрекетті аппараттық құралда және осциллографпен тексеруді жоспарладым.
  • [ ] Мен статикалық талдау және компилятор ескертулері бар кодты сканерледім.
  • [ ] Қауіпсіздік/қауіпсіздік маңызды бөліктерін құзыретті инженердің және тиісті стандартты процестің мақұлдауына қалдырдым.