ክፍል 6 / 12

በተከተቱ ስርዓቶች እና በጽኑ ዌር ልማት ውስጥ ሰው ሰራሽ ብልህነት

ትርፍ፡

  • ማይክሮ መቆጣጠሪያ firmware አጽም ፣ ሾፌር እና የስቴት ማሽን ረቂቆችን ከ AI ጋር የማፋጠን ችሎታ
  • ከ AI ድጋፍ ጋር መቆራረጥን ፣ ጊዜን ፣ ጠባቂን እና ዝቅተኛ የኃይል አመክንዮ የመገምገም ችሎታ
  • በ AI የመነጨ የጽኑዌር ኮድ በማይንቀሳቀስ ትንተና፣ በሃርድዌር ላይ በመሞከር እና በደህንነት መስፈርቶች የማረጋገጥ ችሎታ

የተከተተ ሲስተም በማይክሮ መቆጣጠሪያ ዙሪያ የተሰራ ኤሌክትሮኒካዊ መሳሪያ ነው (አነስተኛ ኮምፒዩተር ፕሮሰሰር፣ ሚሞሪ እና ፔሪፈራል በአንድ ቺፕ ላይ የሚገኝ) አንድ የተወሰነ ስራ ለመስራት የተቀየሰ፡ ቴርሞስታት፣ ሞደም፣ ሴንሰር ኖድ፣ ሞተር ሾፌር። Firmware የዚህን መሳሪያ ሃርድዌር በቀጥታ የሚሰራ ሶፍትዌር ነው። በዚህ ክፍል ውስጥ AIን በ firmware ልማት (የአሽከርካሪ መፃፍ ፣ የስቴት ማሽን ፣ የማቋረጥ እና የጊዜ ሎጂክ ፣ ዝቅተኛ የኃይል አስተዳደር) እንዴት እንደ ማፋጠን እንደሚጠቀሙ ያያሉ። AI በኮድ ላይ በእውነት ኃይለኛ ነው; ነገር ግን በተሰቀለው ዓለም ውስጥ ኮድ ከሃርድዌር፣ ከእውነተኛ ጊዜ እና ከደህንነት ጋር የተሳሰረ ነው። ስለዚህ AI የሚያመርተው እያንዳንዱ መስመር የማይንቀሳቀስ ትንተና፣ መመዝገቢያ/ዳታ ሉህ በማጣራት እና በሃርድዌር ውስጥ ትክክለኛ ሙከራን ማለፍ አለበት።

የት ጠንካራ ነው ፣ በ AI firmware ውስጥ የት አደገኛ ነው።

AI በ firmware "አጽም" እና "መሞት" ክፍል ላይ በጣም ጠንካራ ነው-የ I2C/SPI ሾፌር መዋቅር, የስቴት ማሽን ማዕቀፍ (የመሳሪያውን ግዛቶች እና ሽግግሮች የሚገልጽ አመክንዮ), የቀለበት ቋት አተገባበር, የመመሪያ ትንተና, የሙከራ አጽም. ውስብስብ በሆነ የውሂብ ሉህ ውስጥ የመመዝገቢያ ሠንጠረዥን ማንበብ እና የመነሻ ኮድ መፍጠር ይችላል። ስህተትን ማብራራት፣ የአቀናባሪ ማስጠንቀቂያ መተርጎም ይችላል።

አደገኛ በሚሆንበት ጊዜ የተከተተው ስርዓት ምንነት ነው፡-

  • አድራሻዎችን እና ቢት መስኮችን ይመዝገቡ፡ AI የቺፕ መመዝገቢያ ካርታን በተሳሳተ መንገድ ሊያስታውስ ይችላል፤ እያንዳንዱ አድራሻ እና ቢት ከዳታ ሉህ መረጋገጥ አለባቸው።
  • ጊዜ እና እውነተኛ ጊዜ: አንድ ቀዶ ጥገና ስንት ማይክሮ ሰከንድ ይወስዳል, ምን ያህል ጊዜ መቋረጥ እንደሚመጣ, በሃርድዌር ላይ የተመሰረተ ነው; AI ይተነብያል, እርስዎ ይለካሉ.
  • ተመሳሳይነት፡ በማቋረጥ አገልግሎት መደበኛ (አይኤስአር) እና በዋናው ሉፕ መካከል የሚጋሩ ተለዋዋጮች በተለዋዋጭ እና በአቶሚክ ተደራሽነት ካልተጠበቁ ጸጥ ያለ እና ተደጋጋሚ ያልሆኑ ስህተቶች ይከሰታሉ።
  • የሀብት ገደቦች፡ የቁልል ብዛት፣ የማህደረ ትውስታ መፍሰስ፣ የጥበቃ ጊዜ ማብቂያ ማለት የተከተተ ብልሽት ማለት ነው።

ማቋረጥ፣ ጊዜ አጠባበቅ እና ጠባቂ

ማቋረጥ ማለት አንድ ክስተት ሲከሰት (መረጃ ሲደርስ፣ የሰዓት ቆጣሪው ጊዜው አልፎበታል)፣ ፕሮሰሰሩ ዋናውን ስራ ትቶ ወደ መደበኛ አገልግሎት ሲዘል ነው (ISR፡ Interrupt Service Routine)። ISRs በተከተተው ስርዓት ውስጥ በጣም ሚስጥራዊነት ያላቸው የኮድ ቁርጥራጮች ናቸው። መሰረታዊ ህጎች: ISR አጭር መሆን አለበት (ረጅም ስራ ወደ ዋናው ዑደት ይቀራል), በውስጡ ምንም የማገድ ስራዎች (መጠባበቅ, ማተም) መሆን የለበትም, የተጋሩ ተለዋዋጮች ሊጠበቁ ይገባል.

Watchdog ሶፍትዌሩ ከተበላሸ መሳሪያውን በራስ-ሰር ዳግም የሚያስነሳ የደህንነት ዘዴ ነው; ፈርሙዌር በመደበኛነት "ይመግባዋል" ካልሆነ ግን ስርዓቱ ዳግም ይጀመራል። AI እነዚህን አወቃቀሮች ያዘጋጃል፣ ነገር ግን ጠባቂው የሚቆይበት ጊዜ፣ ቅድሚያ የሚሰጣቸውን ነገሮች ያቋርጣል፣ እና የመርሃግብር በጀት በስርዓትዎ ላይ ካለው ትክክለኛ ጭነት ጋር መረጋገጥ አለበት።

ጠቃሚ ምክር፡ አይኤስአርን ወደ AI በሚታተምበት ጊዜ “አይኤስአርን አጭር፣ ምንም እንዳይከለክል፣ የተጋሩ ተለዋዋጮችን በተለዋዋጭ እና በአቶሚክ መዳረሻ ምልክት እንዲያደርግ፣ ረጅሙን ስራ በባንዲራ ለዋናው ሉፕ ውክልና እንዲሰጥ” በግልፅ መመሪያ ይስጡት። ከዚያም እነዚህ ደንቦች በትክክል መተግበራቸውን በሚያወጣው ኮድ ውስጥ በመስመር በመስመር ያረጋግጡ።

ዝቅተኛ ኃይል እና ደህንነት

ዝቅተኛ የኃይል አያያዝ በባትሪ በሚሠሩ መሳሪያዎች ውስጥ ወሳኝ ነው፡ ፕሮሰሰሩን እንዲተኛ ማድረግ፣ ተጓዳኝ ነገሮችን ማጥፋት፣ ከክስተት ጋር መቀስቀስ። AI የእንቅልፍ ሁነታ ሽግግሮችን እና የመቀስቀሻ ሎጂክን ይቀርጻል, ነገር ግን ትክክለኛው የአሁኑ ፍጆታ የሚታወቀው በመለኪያ ብቻ ነው (የአሁኑ ሜትር በማይክሮአምፔር ደረጃ); AI "በዚህ ሁነታ ~2 µA ይስላል" ማለቱ ግምት ነው።

ከደህንነት አንፃር፣ የተከተቱ መሳሪያዎች ከጊዜ ወደ ጊዜ በአውታረመረብ የተገናኙ ናቸው እና የጽኑ ዌር ተጋላጭነቶች (መያዣ ሞልቶ መፍሰስ፣ ያልተረጋገጠ ግቤት፣ ደካማ ክሪፕቶግራፊ፣ ክፍት ማረም በይነገጽ) ከባድ አደጋዎች ናቸው። AI ደህንነቱ የተጠበቀ የኮድ መርሆዎችን ሊያስታውስዎት ይችላል፣ ነገር ግን የመነጨው ኮድ ደህንነት በስታቲስቲክ ትንተና መሳሪያዎች፣ በኮድ ግምገማ እና አስፈላጊ ሆኖ ሲገኝ የተረጋገጠ ነው። በደህንነት-ወሳኝ ስርዓቶች (ህክምና፣ አውቶሞቲቭ፣ኢንዱስትሪ) AI ውፅዓት ብቃት ባለው መሐንዲስ ማፅደቅ እና ተገቢውን የደህንነት ደረጃ (ለምሳሌ IEC 61508፣ ISO 26262) የሚፈለጉትን ሂደቶች በፍፁም መተካት የለበትም።

ሶስት ጥቃቅን ጉዳዮች

ጉዳይ 1 - ያልተጠበቀ የተጋራ ተለዋዋጭ. አንድ መሐንዲስ የ UART ኮድ ከ AI እንዲቀበል ጠይቋል። ኮዱ በ ISR ውስጥ ያለውን ቆጣሪ ይጨምራል እና ዋናው ሉፕ ይህንን ቆጣሪ ያነባል; ግን ቆጣሪው ተለዋዋጭ አይደለም እና መልቲባይት ንባብ አቶሚክ አይደለም። መሣሪያው ብዙ ጊዜ ይሰራል, ነገር ግን አልፎ አልፎ የውሂብ ቆጠራውን በተሳሳተ መንገድ ያነብባል እና ስህተቱ ሊደገም አይችልም. የማይለዋወጥ ትንተና እና የኮድ ግምገማ የማይለዋወጥ ይጎድላል; ቆጣሪው ሲጠበቅ ስህተቱ ይጠፋል. ትምህርት: የተዛማጅ ስህተቶች በ AI ኮድ ውስጥ ብዙ ጊዜ እና ስውር ናቸው; ማንበብ እና ማረጋገጥ አስፈላጊ ነው.

ጉዳይ 2 - የተሳሳተ የመመዝገቢያ ቢት. ተለማማጅ በ AI የተፈጠረውን የኤዲሲ ማስጀመሪያ ኮድ ይሰቀላል። ADC ያልተጠበቁ እሴቶችን ያነባል። ከዳታ ሉህ ጋር በማነፃፀር ፣ AI ውቅር ቢት በተሳሳተ ቦታ ላይ ያዘጋጀ ይመስላል (ለተለየ የቺፑ ልዩነት ካርታ)። ቢት አንዴ ከተስተካከለ ኤዲሲው በትክክል ይሰራል። ትምህርት፡ እያንዳንዱ የምዝገባ ሆሄያት ከውሂቡ ሉህ ትክክለኛ ልዩነት ጋር ያረጋግጡ።

ጉዳይ 3 - ትክክለኛ አጠቃቀም. አንድ መሐንዲስ የኤአይአይኤን ለተወሳሰበ ዳሳሽ ፕሮቶኮል የግዛት ማሽን አጽም ይጠይቃል። ግዛቶችን፣ ሽግግሮችን እና የጊዜ ማብቂያ ቅርንጫፎችን ይገልጻል። AI ንፁህ ፣ ሊነበብ የሚችል ማዕቀፍ ያዘጋጃል። መሐንዲሱ ይህንን ማዕቀፍ ይወስዳል፣ እያንዳንዱን የመመዝገቢያ መዳረሻ በዳታ ሉህ ያረጋግጣል፣ ጊዜዎቹን በኦስቲሎስኮፕ ይለካል እና በሃርድዌር ውስጥ ይፈትነዋል። ልማት ከጥቂት ቀናት ይልቅ በጥቂት ሰዓታት ውስጥ ይጠናቀቃል። ትምህርት: AI አጽሙን ያፋጥናል; መሐንዲሱ ማረጋገጫውን ይሠራል.

ሊገለበጡ የሚችሉ የጥያቄ አብነቶች

የአሽከርካሪ አጽም አብነት"የ[I2C/SPI/UART] ሾፌር አጽም ለ[ቺፕ/ፔሪፈራል] ይፃፉ፡ ማስጀመሪያ፣ ማንበብ፣ መጻፍ፣ የስህተት አያያዝ ተግባራት። የመመዝገቢያ አድራሻዎችን እና ቢት መስኮችን በPLACEHOLDER ውስጥ ይተዉ (ለምሳሌ REG_XXX) እና እያንዳንዱን ጊዜ ካለፈበት ጊዜ ከማገድ ይልቅ 'ሙላ እና አረጋግጥ' የሚለውን አስታውስ። መስመር."

የአይኤስአር ደህንነት አብነት"ለሚከተለው ክስተት የማቋረጥ አገልግሎት መደበኛ (አይኤስአር) ረቂቅ ይፃፉ፡ [ክስተት]። ደንቦች፡ አይኤስአርን አጭር ያቆዩት፣ አታግድ፣ የተጋሩ ተለዋዋጮችን በተለዋዋጭ እና በአቶሚክ መዳረሻ ምልክት ያድርጉ፣ ረጅሙን ስራ ለዋናው ምልልስ በባንዲራ ያቅርቡ። በኮዱ መጨረሻ ላይ እነዚህ ህጎች የት እንደሚተገበሩ አረጋግጡ።"

የስቴት ማሽን አብነት"ለሚከተለው ፕሮቶኮል/ሂደት የስቴት ማሽን አጽም ይፃፉ፡(ግዛቶችን፣ክስተቶችን፣ሽግግሮችን እና ጊዜ ማብቂያዎችን ይግለፁ)።ለእያንዳንዱ ግዛት የመግባት/መውጫ እርምጃዎችን እና የስህተት/የጊዜ ማብቂያ ቅርንጫፍን ይግለጹ። ሃርድዌር-ተኮር እሴቶችን (ይመዝገቡ፣ ቆይታ) እንደ ቦታ ያዥ ይተዉ እና መረጋገጥ እንዳለባቸው ያስተውሉ።

የኮድ ክለሳ አብነት "የሚከተለውን የጽኑ ትዕዛዝ ኮድ ከተከተተ እይታ እና ባንዲራ አደጋዎችን ይመርምሩ፡ ያልተጠበቀ የተጋራ ተለዋዋጭ (ተለዋዋጭ/atomicity)፣ በ ISR ውስጥ ረጅም/የማገድ ክዋኔ፣ የመደራረብ አደጋ፣ ያለጊዜ ገደብ መጠበቅ፣ ስህተቶች መመዝገብ፣ ጠባቂ ምግብ። ለእያንዳንዱ ግኝቶች እንዴት መሞከር/ማጣራት እንዳለብኝ ይጠቁሙ። ኮድ፡ [ለጥፍ]።"

ደካማ ጥያቄ / ጠንካራ ጥያቄ

ደካማ ምላሽ፡ "የ UART ሹፌር ፃፉልኝ።"

ጠንከር ያለ ምላሽ: "በማቋረጥ ላይ የተመሰረተ UART ለ [ማይክሮ መቆጣጠሪያ] የመቀበያ ሾፌር ማዕቀፍ ይፃፉ። የቀለበት ቋት ይጠቀሙ፣ አይኤስአርን አጭር ያቆዩት እና ወደ ቋት ብቻ ይፃፉ፣ በዋናው ዑደት ውስጥ ያቀናብሩ። የተጋሩ ኢንዴክሶች ተለዋዋጭ እና አቶሚክ ያድርጉ። የመመዝገቢያ አድራሻዎችን በቦታ ያዢዎች ውስጥ ይተዉት፣ ከዳታ ሉህ ላይ እንዲረጋገጡ ምልክት ያድርጉባቸው። በኮዱ መጨረሻ ላይ ምን ማድረግ እንዳለብኝ በዝርዝር አስፍሩ።"

ደካማ መጠቆሚያ ሃርድዌር እና concurrency ዓይነ ስውር የሆነ ኮድ ያወጣል። ኃይለኛ መጠየቂያው የተካተቱ ደንቦችን እና የማረጋገጫ ዝርዝሩን ይጠይቃል።

የጽኑዌር ማረጋገጫ ንብርብሮች

ንብርብር

የሚይዘው

የ AI ሚና

የውሂብ ሉህ ያረጋግጡ

የተሳሳተ መዝገብ/ቢት

ቦታ ያዥ እና የቁጥጥር ማስታወሻ ያመነጫል።

የማይንቀሳቀስ ትንተና (ሊንተር)

ተለዋዋጭ, ዓይነት, የድንበር ስህተቶች

ደንብ ዝርዝር እና ማብራሪያ

የማጠናከሪያ ማስጠንቀቂያዎች

ስውር ልወጣ፣ ጥቅም ላይ ያልዋለ ዋጋ

የማስጠንቀቂያ አስተያየት

በሃርድዌር ውስጥ መሞከር

ጊዜ, ትክክለኛ ባህሪ

የሙከራ ሁኔታ ጥቆማ

ኦስቲሎስኮፕ / ተንታኝ

የምልክት እና የፕሮቶኮል ትክክለኛነት

የመለኪያ ነጥብ እና የሚጠበቀው ሞገድ

ማስጠንቀቂያ፡- ፈርምዌር “ያጠናቅራል” እና “ብዙውን ጊዜ ይሰራል” ማለት ትክክል ነው ማለት አይደለም። የመለዋወጫ እና የጊዜ ስህተቶች በተወሰኑ ሁኔታዎች ውስጥ ብቻ ይከሰታሉ; ለዚህም ነው የማይለዋወጥ ትንተና እና በሃርድዌር ውስጥ እውነተኛ ሙከራ አስፈላጊ የሆኑት።

የተለመዱ ስህተቶች

  • የጋራ ተለዋዋጮችን አለመጠበቅ። በ ISR እና በዋናው ዑደት መካከል ያለው መረጃ ተለዋዋጭ እና አቶሚክ መሆን አለበት።
  • የመመዝገቢያ አድራሻ/ቢት በዳታ ሉህ አለመረጋገጥ። AI የተሳሳተ ተለዋጭ ካርታ ሊኖረው ይችላል።
  • ISR ረጅም ማድረግ ወይም በውስጡ ማገድ። ስርዓቱ ምላሽ መስጠት አይችልም, ማቋረጦች ጠፍተዋል.
  • ሳይለካ ጊዜን መገመት። ትክክለኛው ጊዜ በሃርድዌር ላይ የተመሰረተ ነው; በ oscilloscope የተረጋገጠ.
  • ለ AI ለማጽደቅ ከደህንነት/ደህንነት-ወሳኝ ኮድ በመተው ላይ። ብቃት ያለው መሐንዲስ እና አግባብነት ያለው መደበኛ ሂደት አስፈላጊ ናቸው.

በማጠቃለያው

በዚህ ክፍል ውስጥ የጽኑ ትዕዛዝ አጽምን፣ ሾፌርን፣ የግዛት ማሽንን እና የአይኤስአር ንድፍን በማመንጨት AIን እንደ ኃይለኛ አፋጣኝ ተጠቅመዋል። ነገር ግን በተሰቀለው ዓለም ውስጥ ኮድ ከሃርድዌር ፣ ከእውነተኛ ጊዜ እና ከደህንነት ጋር የተቆራኘ ነው-የመመዝገቢያ / ቢት እሴቶች ከመረጃ ወረቀቱ የተረጋገጡ ናቸው ፣ concurrency ከስታቲክ ትንተና የተረጋገጠ ፣ ጊዜ ከ oscilloscope የተረጋገጠ ነው ፣ ባህሪ በሃርድዌር ውስጥ ካለው ትክክለኛ ሙከራ የተረጋገጠ ነው። AI በደቂቃዎች ውስጥ አጽሙን ያቀርባል; መሐንዲሱ firmware በትክክል፣ በአስተማማኝ እና በሰዓቱ መስራቱን ያረጋግጣል። በደህንነት-ወሳኝ ስርዓቶች፣ AI ውፅዓት ተገቢውን የደህንነት ደረጃ ሂደቶችን እና ብቃት ያለው መሐንዲስ ማፅደቅን አይተካም።

የመተግበሪያ ተግባር

ዳር (ለምሳሌ I2C ዳሳሽ) ይምረጡ። በ"ሾፌር አጽም" አብነት፣ በቦታ ያዢዎች ውስጥ መመዝገቢያውን የሚተው የአሽከርካሪ አጽም AI ን ይጠይቁ። ከዚያ ከዚህ ዳሳሽ በ"ISR ደህንነት" አብነት ለመረጃ ዝግጁ የሆነ የአይኤስአር ንድፍ ያመነጫሉ። በመጨረሻም የሚያወጣውን ኮድ በ"ኮድ ግምገማ" አብነት ለተከተቱ አደጋዎች ይቃኙ እና ቢያንስ ሶስት የማረጋገጫ/የሙከራ ደረጃዎችን ይፃፉ።

የማረጋገጫ ዝርዝር

  • [ ] እያንዳንዱን የመመዝገቢያ አድራሻ እና ቢት ከትክክለኛው የውሂብ ሉህ ልዩነት አረጋገጥኩ።
  • [] በ ISR እና በዋናው ሉፕ መካከል ያሉትን የተጋሩ ተለዋዋጮች ተለዋዋጭ እና አቶሚክ አድርጌአለሁ።
  • [] ISR አጭር አደረግኩት፣ እገዳን አላስቀመጥኩም፣ ረጅሙን ስራ ለዋናው ሉፕ ሰጠሁት።
  • [ ] ጊዜውን እና ትክክለኛ ባህሪን በሃርድዌር እና በኦስቲሎስኮፕ ለመሞከር አቅጄ ነበር።
  • [] ኮዱን በማይለዋወጥ ትንታኔ እና በአቀናባሪ ማስጠንቀቂያዎች ቃኘሁት።
  • [] የደህንነት/የደህንነት-ወሳኝ ክፍሎችን ብቃት ላለው መሐንዲስ ይሁንታ እና ለሚመለከተው መደበኛ ሂደት ትቻለሁ።