Nkeji 6 / 12

Ọgụgụ isi Artificial na Sistemụ agbakwunyere na Mmepe Firmware

Uru:

  • Ikike iji mee ngwa ngwa microcontroller firmware skeleton, ọkwọ ụgbọ ala na igwe steeti na AI
  • Ikike inyocha nkwụsịtụ, oge, onye nche na mgbagha ike dị ala site na nkwado AI
  • Ikike iji nyochaa koodu firmware AI mepụtara site na nyocha static, nnwale na ngwaike, yana ihe nchekwa chọrọ

Sistemụ agbakwunyere bụ ngwaọrụ eletrọnịkị nke e wuru gburugburu microcontroller (obere kọmpụta nke nwere igwe nrụpụta, ebe nchekwa na ihe dị n'otu mgbawa) emebere iji rụọ otu ọrụ: thermostat, modem, sensọ node, ọkwọ ụgbọ ala. Firmware bụ ngwanro na-arụ ngwaike nke ngwaọrụ a ozugbo. Na ngalaba a, ị ga-ahụ ka esi eji AI dị ka onye na-eme ngwa ngwa na mmepe ngwa ngwa (ịde ihe ọkwọ ụgbọ ala, igwe steeti, nkwụsịtụ na mgbagha oge, njikwa ike dị ala). AI dị ike n'ezie na koodu; Mana n'ime ụwa agbakwunyere, koodu jikọtara ya na ngwaike, ezigbo oge yana nchekwa mgbe mgbe. Yabụ na ahịrị ọ bụla AI na-emepụta ga-agarịrị site na nyocha static, ndebanye aha / ndebanye aha, yana nnwale n'ezie na ngwaike.

Ebe siri ike, ebe dị ize ndụ na AI firmware

AI siri ike na akụkụ "skeleton" na "anwụ" nke ngwa ngwa: nhazi nke onye ọkwọ ụgbọ ala I2C / SPI, nhazi nke igwe steeti (echiche nke na-akọwapụta steeti na ntụgharị nke ngwaọrụ), mmejuputa mgbanaka mgbanaka, nkọwa ntụziaka, ọkpụkpụ ule. Ọ nwere ike ịgụ tebụl ndekọ aha na mpempe akwụkwọ dị mgbagwoju anya wee mepụta koodu mmalite. Nwere ike ịkọwa njehie, kọwaa ịdọ aka ná ntị nchịkọta.

Ebe ọ dị ize ndụ bụ isi ihe nke sistemu agbakwunyere:

  • Deba aha adreesị na ubi bit: AI nwere ike icheta maapụ ndebanye aha mgbawa; A ga-enyocharịrị adreesị na bit ọ bụla site na mpempe akwụkwọ data ahụ.
  • Oge na ezigbo oge: ole microseconds ọrụ na-ewe, ugboro ole nkwụsị na-abịarute, dabere na ngwaike; AI na-ebu amụma, ị tụrụ.
  • Concurrency: Ọ bụrụ na mgbanwe ndị na-ekekọrịta n'etiti usoro nkwụsịtụ ọrụ (ISR) na isi loop anaghị echekwa ya site na ngbanwe na ohere atomiki, gbachi nkịtị, mperi na-enweghị ike ikwugharị.
  • Oke akụrụngwa: oke oke njupụta, mgbaka ebe nchekwa, nkwụsị oge nche pụtara mkpọka agbakwunyere.

Kwụsị, oge na onye nche

Nkwụsịtụ bụ mgbe ihe omume mere (data bịarutere, ngụ oge agwụla), onye nrụpụta na-ahapụ ọrụ bụ isi wee wụba na usoro ọrụ (ISR: Interrupt Service Routine). ISR bụ koodu kacha nwee mmetụta na sistemụ agbakwunyere. Iwu ndị bụ isi: ISR kwesịrị ịdị mkpụmkpụ (a na-ahapụ ọrụ ogologo na akaghị aka), ọ gaghị enwe ọrụ mgbochi (echere, bipụta) n'ime ya, a ga-echebe ndị na-agbanwe agbanwe.

Watchdog bụ usoro nchekwa nke na-emegharị ngwaọrụ ahụ na-akpaghị aka ma ọ bụrụ na ngwanrọ daa; Firmware "na-enye ya nri" mgbe niile, ọ bụrụ na ọ bụghị, a na-emegharị usoro ahụ. AI na-ewepụta ihe owuwu ndị a, mana ogologo oge na-eche nche, na-egbochi ihe ndị kacha mkpa, na ịhazi atụmatụ mmefu ego kwesịrị ịkwado megide ibu dị na sistemụ gị.

NDỤMỌDỤ: Mgbe ị na-ebipụta ISR na AI, kụziere ya hoo haa ka ọ "dobe ISR mkpụmkpụ, enweghị mgbochi, akara mgbanwe mgbanwe na-agbanwe agbanwe na ohere atomiki, nyefee ogologo ọrụ ahụ na akaghị isi na ọkọlọtọ." Wee lelee ahịrị n'ahịrị na koodu ọ na-emepụta na etinyere iwu ndị a n'ezie.

Ike dị ala na nchekwa

Njikwa ike dị ala dị oke mkpa na ngwaọrụ batrị na-arụ ọrụ: itinye ihe nrụpụta n'ụra, gbanyụọ akụkụ, na-eteta na mmemme. AI na-esepụta mgbanwe ọnọdụ ụra na mgbagha mgbata, mana a na-amata oriri ugbu a naanị site na nha (mita dị ugbu a na ọkwa microampere); AI na-ekwu "ọ na-adọta ~ 2 µA na ọnọdụ a" bụ echiche.

Site n'echiche nchekwa, ngwaọrụ agbakwunyere na-abawanye na netwọkụ yana adịghị ike ngwa ngwa (nkwadebe njupụta, ntinye na-akwadoghị, cryptography adịghị ike, oghere nbipu mepere emepe) bụ nnukwu ihe egwu. AI nwere ike ichetara gị ụkpụrụ nzuzo dị mma, mana nchekwa nke koodu emepụtara bụ ngwaọrụ nyocha static, nyocha koodu na nnwale nchekwa mgbe ọ dị mkpa. Na sistemu nchekwa dị oke egwu (ọgwụ ahụike, ụgbọ ala, ụlọ ọrụ mmepụta ihe) mmepụta AI ekwesịghị dochie usoro ndị injinia tozuru oke chọrọ yana ọkọlọtọ nchekwa dị mkpa (dịka IEC 61508, ISO 26262).

Obere ikpe atọ

Ikpe 1 - mgbanwe nkekọrịta anaghị echebe. Onye injinia rịọrọ ka UART nweta koodu sitere na AI. Koodu na-abawanye counter na ISR na isi akaghị na-agụ counter a; ma counter adịghị agbanwe agbanwe na multibyte na-agụ abụghị atomic. Ngwaọrụ na-arụ ọrụ ọtụtụ oge, mana mgbe ụfọdụ ọ na-agụgharị ọnụọgụ data na enweghị ike ịmegharị njehie ahụ. Ntụle static na nyocha koodu enwetaghị ihe na-agbanwe agbanwe; Njehie a na-apụ n'anya mgbe echedoro counter. Ihe nkuzi: njehie concurrency na-adịkarị na aghụghọ na koodu AI; Ọ dị mkpa ịgụ na nyochaa.

Ikpe 2 - bit ndekọ aha na-ezighi ezi. Onye nkuzi na-ebugo koodu mbido ADC nke AI mepụtara; ADC na-agụ ụkpụrụ ndị a na-atụghị anya ya. N'iji ya tụnyere akwụkwọ data ahụ, ọ dị ka AI ewepụtala nhazi nhazi na ebe na-ezighị ezi (map maka ụdị dị iche iche nke mgbawa). Ozugbo emeziri bit ahụ, ADC na-arụ ọrụ nke ọma. Ihe nkuzi: nyochaa mkpoputa ndekọ aha ọ bụla megide ụdị dị iche iche nke akwụkwọ data ahụ.

Ikpe 3 - Ojiji ziri ezi. Onye injinia na-arịọ AI maka skeleton igwe steeti maka usoro ihe mmetụta dị mgbagwoju anya; na-akọwa steeti, mgbanwe, na alaka oge nkwụsị. AI na-emepụta usoro dị ọcha, nke enwere ike ịgụ. Injinia na-ewere usoro a, na-enyocha ohere ịdebanye aha ọ bụla na mpempe data, jiri oscilloscope tụọ oge, wee nwalee ya na ngwaike. Emechara mmepe n'ime awa ole na ole kama ụbọchị ole na ole. Ihe nkuzi: AI na-eme ka ọkpụkpụ ahụ dị ngwa ngwa; Injinia na-eme nkwenye ahụ.

Ndebiri ozugbo enwere ike iṅomi

DRIVER SKELETON TEMPLATE"Dee skeleton nke onye ọkwọ ụgbọ ala [I2C/SPI/UART] maka [chip/peripheral]: mmalite, gụọ, dee, ọrụ njikwa njehie. Hapụ adreesị ndekọ na mpaghara bit na PLACEHOLDER (dịka REG_XXX) wee rịba ama 'bipụta wee nyochaa ha site na iji mpempe akwụkwọ oge mechie'. ahịrị."

ISR SECURITY TEMPLATE"Dee usoro nkwụsịtụ ọrụ (ISR) maka mmemme ndị a: [mmemme]. Iwu: Debe ISR mkpụmkpụ, egbochila, kaa akara mgbanwe dị iche iche na ịnweta vivolatile na atomiki, nyefee ogologo ọrụ ahụ na isi akaghị aka na ọkọlọtọ. Na njedebe nke koodu, kọwaa ebe iwu ndị a na-emetụta ka m nwee ike nyochaa."

TEMPLATE STATE MACHINE"Dee skeleton igwe steeti maka usoro / usoro ndị a: [kọwapụta steeti, mmemme, mgbanwe na oge ngwụcha]. Ezipụta ntinye / ọpụpụ omume na ngalaba njehie / oge ngwụcha maka steeti ọ bụla. Hapụ ụkpụrụ akọwapụtara nke ngwaike (debanye aha, oge) dị ka ndị na-edebe ebe wee mara na ọ dị mkpa ka enyocha ha. "

TEMPLATE CODE Nyochaa koodu "Nyochaa koodu firmware ndị a site na ntinye agbakwunyere na ihe ize ndụ ọkọlọtọ: mgbanwe na-enweghị nchebe (na-agbanwe agbanwe / atomity), ogologo oge / igbochi ọrụ na ISR, ihe ize ndụ nke oke njupụta, chere na-enweghị oge, deba aha njehie, ndepụta nche. Nye ndụmọdụ ka m ga-anwale / nyochaa maka nchọpụta ọ bụla. Koodu: [tapawa]."

Ngwa ngwa adịghị ike / Ike siri ike

EKWU IKE: "Deere m onye ọkwọ ụgbọ ala UART."

IKE IKE: "Dee ihe nkwụsịtụ dabeere na UART na-enweta usoro ọkwọ ụgbọ ala maka [microcontroller]. Jiri mgbanaka mgbanaka; debe ISR dị mkpụmkpụ ma dee naanị ihe nchekwa ahụ, nhazi na isi loop. Mee ka ndepụta nkekọrịtara na-agbanwe agbanwe na atomiki. Hapụ adreesị ndekọ aha na ndị na-edebe ihe, kaa akara ha ka a kwadoro site na datasheet. Na njedebe nke koodu, depụta ihe m chọrọ iji nwalee na tii.

Ngwa ngwa na-adịghị ike na-emepụta koodu bụ ngwaike na concurrency kpuru; Ngwa ngwa dị ike na-amanye iwu agbakwunyere yana mkpali maka ndepụta nkwenye.

Ngosipụta nkwenye firmware

oyi akwa

ihe na-ejide

Ọrụ AI

Lelee akwụkwọ data

Ndebanye aha/bit na-ezighi ezi

Na-emepụta ndetu ebe na njikwa

Nyocha kwụ ọtọ (linter)

na-agbanwe agbanwe, ụdị, njehie oke

Ndepụta iwu na nkọwa

Ịdọ aka ná ntị ndị nchịkọta

Ntughari ozugbo, uru ejighi ya

Okwu ịdọ aka ná ntị

Nnwale na ngwaike

Oge, omume n'ezie

Nwalee ntụnye ọnọdụ

Oscilloscope/analyzer

Izi ezi nrịbama na protocol

Ebe nledo na ifegharị a na-atụ anya ya

Akpachara anya: Naanị n'ihi na firmware "na-achịkọta" yana "na-arụ ọrụ ọtụtụ oge" apụtaghị na ọ bụ eziokwu. Njehie mgbanwe na oge na-eme naanị n'okpuru ọnọdụ ụfọdụ; Ọ bụ ya mere nyocha static na ezigbo nnwale na ngwaike ji dị mkpa.

Mmejọ ndị nkịtị

  • Anaghị echekwa mgbanwe mgbanwe. Data n'etiti ISR ​​na isi loop ga-abụ nke na-agbanwe agbanwe na atomic.
  • Ejighị akwụkwọ data akwadoghị adreesị / bit ndekọ aha. AI nwere ike ịdepụta ụdị ezighi ezi.
  • Idobe ISR ogologo ma ọ bụ igbochi n'ime ya. Usoro enweghị ike ịzaghachi, nkwụsịtụ na-atụ uche.
  • Na-eche oge na-enweghị atụ. Oge n'ezie na-adabere na ngwaike; jiri oscilloscope kwadoro.
  • Hapụ koodu nchekwa/ nchekwa dị mkpa maka nnabata AI. Onye injinia tozuru oke na usoro ọkọlọtọ dabara adaba dị mkpa.

Na nchịkọta

N'ime ngalaba a, ị jiri AI dị ka onye na-eme ngwangwa dị ike na-emepụta skeleton firmware, ọkwọ ụgbọ ala, igwe steeti na eserese ISR. Ma n'ime ụwa agbakwunyere, koodu jikọtara ya na ngwaike, ezigbo oge na nchekwa: a na-enyocha ụkpụrụ ndekọ / bit site na datasheet, a na-enyocha concurrency site na nyocha static, a na-enyocha oge site na oscilloscope, a na-enyocha omume site na ezigbo ule na ngwaike. AI na-ebuga ọkpụkpụ na nkeji; Onye injinia na-enyocha firmware na-arụ ọrụ nke ọma, na ntụkwasị obi yana n'oge. Na sistemụ nchekwa dị oke egwu, mmepụta AI anaghị edochi usoro ụkpụrụ nchekwa dị mkpa yana nnabata injinia tozuru oke.

Ọrụ ngwa

Họrọ mpaghara (dịka ihe mmetụta I2C). Site na ndebiri “ọkpụkpụ ọkwọ ụgbọ ala”, jụọ AI maka ọkpụkpụ ọkwọ ụgbọ ala nke na-ahapụ ndebanye aha na ebe nchekwa. Wepụta ihe osise ISR maka nkwụsị data dị njikere site na ihe mmetụta a na template "ISR nche". N'ikpeazụ, nyochaa koodu ọ na-emepụta na ndebiri "Ntụle koodu" maka ihe egwu agbakwunyere wee dee opekata mpe nkwenye/nnwale atọ.

ndetu

  • [ ] Achọpụtara m adreesị ndebanye aha ọ bụla yana ntakịrị site na ụdị akwụkwọ data ziri ezi.
  • [] Emere m mgbanwe mgbanwe dị n'etiti ISR ​​na isi loop na-agbanwe agbanwe na atomic.
  • [] Edebere m ISR mkpụmkpụ, etinyeghị mgbochi, nyefee ogologo ọrụ ahụ na akaghị isi.
  • [] Ezubere m iji nwalee oge na omume n'ezie na ngwaike yana oscilloscope.
  • [] Eji m nyocha na ịdọ aka ná ntị ndị nchịkọta nyocha nyocha koodu ahụ.
  • [] Ehapụrụ m akụkụ nchekwa / nchekwa-dị oke mkpa na nkwado nke injinia ruru eru na usoro ọkọlọtọ dị mkpa.