Kysymys:
Miksi minun pitäisi oppia mikro-ohjainarkkitehtuuri?
C K
2017-02-09 17:00:49 UTC
view on stackexchange narkive permalink

Aloitin äskettäin työskennellä pienessä yrityksessä, joka tuottaa autoteollisuuteen liittyvää elektroniikkaa. Pomo, joka on 50-luvun puolivälissä, sanoi käyttävänsä 8051 johdannaista, ja he tekivät työtä. Jatkoin hakua Googlesta saadakseni tietää, onko 8051 edelleen suosittu tänään. Ja Quorassa näin nämä:

... se on luultavasti yksinkertaisin MCU-arkkitehtuuri. Jokainen oheislaite näyttää olevan paljain luun versio. Käsitteeni ajastimista, kellosta, UART: sta jne. Puhdistivat paljon! Sitten aloin arvostaa muita arkkitehtuureja - koska ymmärsin itse asiassa erilaistumisen.

... mikään teollisuus ei tietenkään käytä sitä tuotteen kehittämiseen sen yksinkertaisuuden vuoksi ...

Mutta miksi? Toistaiseksi, ainakin opiskelijana, tein paljon asioita ilman sotkua arkkitehtuurin kanssa. Koodasin onnellisesti C: llä, käytin LCD-oheislaitteita, liitetty muihin IC: iin eri protokollilla (SPI, I2C jne.)

Miksi minun pitäisi huolehtia mikrokontrollerini arkkitehtuurista lukuun ottamatta reaaliaikaisten &-aikakriittisten sovellusten rajallisia kenttiä?

Joko huvin vuoksi tai siksi, että sinun on tehtävä projekti tällaisella arkkitehtuurilla, ilmeisesti.
Nykyään 8051 on korkeintaan harrastustaso.Toisaalta, jos aloitat työskentelemisen jonkin sellaisen modernin kanssa kuin ARM Cortex M4, sinun ei tarvitse oppia arkkitehtuuria.Ei aloittaa ainakin
@PlasmaHH Toivon, että minulla olisi tarpeeksi aikaa "pitää hauskaa" jokaisen yksittäisen elektroniikkaa koskevan aiheen kanssa, mutta se oli opiskeluvuosina :)
@GregoryKornblum joo, seurasin itse asiassa Quantum Leapsin oppaita M4: llä.Millaisissa sulautetuissa sovelluksissa voin olla mukana uC: n arkkitehtuurissa?Onko sinulla kokemuksia menneistä projekteistasi?
sinun on oltava tietoinen arkkitehtuurista, kun tarvitset suorituskykyä, mitä todennäköisesti ei tapahdu.Annan sinulle esimerkin, jos sinun on suoritettava laskutoimituksia jatkuvasti ja sinulla on rajoitettu aika, saatat joutua olemaan käyttämättä flashiin tallennettuja tietoja tai optimoimalla rekisterien käyttöä.Mutta se tapahtuu tänään vain hyvin rajoitetulle määrälle ammattilaisia.Se vie aikaa päästä sinne.Toistaiseksi en tekisi virhettä olettaen, että vain C: n kirjoittaminen riittää tulevina vuosina.
@GregoryKornblum kiitos mielipiteistäsi.joka vastaa kysymykseeni, voit kirjoittaa sen vastauksena.
Jätän sen niille, jotka saattavat tietää paremmin :)
8051: t eivät ole enää harrastajille, he käyttävät AVR: ää ja aseita.8051: n oletetaan olevan lisenssivapaa, helppo saada, tekee työn, käytetään usein hintaan, jos tarvitset enemmän bangia sirusi kiinteistölle ja halukas maksamaan rojalteja, niin muita (käsivarsi) on käytettävissä.Mutta tietokoneessa, jolla luet tätä, on todennäköisesti ainakin yksi 8051, ellei enemmän, ne on yleensä haudattu tavalla, jota edes piirilevyn suunnittelijat eivät välttämättä tiedä, onko kyseessä 8051, z80 tai muu, he vain saavat laiteohjelmistonmöykky laittaa salama osan viereen.
Niitä käytetään myös silloin, kun ihmiset vain tietävät arkkitehtuurin, mahdollisesti kuten paikan, jossa työskentelet nyt.Pitäisikö sinun oppia se vai joku?kyllä niin monta kuin sinulla on aikaa, msp430, arm cortex-m, avr, 8051 ja vanhat kuvat aloittelijoille.Tieto on voimaa (... hmmm ja tietämättömyys on autuutta).
On aina hyvä tietää, mitä konepellin alla on.Ainakin aavistustakaan mitä helvettiä siellä tapahtuu.
Koska silloin et tuhlaa resursseja, osaat saada asiat toimimaan nopeasti, jos tarvitset.
Koska mitä tapahtuu, kun haluat käyttää LCD-ohjainta, jolle joku ei ole vielä kirjoittanut kirjastoa?
Neljä vastused:
Marcus Müller
2017-02-09 18:18:06 UTC
view on stackexchange narkive permalink

Onko 8051 ja muut pienibittiset mikrokontrollerit edelleen käytössä?

Kyllä, melkein kaikkialla. Ne ovat pieniä ja helppoja, ympärillä on paljon ytimiä, jotka voit laittaa mukautettuun piin pienellä hinnalla tai ilman kustannuksia, on kypsiä kääntäjiä. Tämä kaikki tekee 8051: stä edelleen yhden suosituimmista ydinarkkitehtuurista piinvalmistajien keskuudessa. ARM-ytimiä voi olla saatavana useammissa eri tuotteissa, mutta taas kerran, kun puhut jonkun kanssa, joka rakentaa paljon laitteita erittäin tiukalla hinnoittelurajoituksella, on todennäköistä, että hän haluaa edullisemman / ilmaisemman 8051-ytimen, jos se saa työnsä . Vain vastustamaan @ Nitro2k01 -vaatimusta vain kapealla käytöstä: Mouserilla on varastossa lähes 800 mallia 8051 mikro-ohjainta ¹. Ja se, että nämä alkavat jopa Mouserista alle 40 kt: n hinnoilla, voi olla osoitus siitä, mihin niitä käytetään:

valtavirran, matalan suorituskyvyn ja volyymin MCU: t

näin:

... mikään teollisuus ei tietenkään käytä sitä tuotteen kehittämiseen sen yksinkertaisuuden vuoksi ...

on korkealaatuista täysin hölynpölyä. Varsinkin kun toimitat itse vastaesimerkin

50-luvun puolivälissä oleva pomoni sanoi, että hän käytti 8051 johdannaista, ja he tekivät työn.

Täsmälleen! Niitä käytetään kaikkialla, ne ovat hyvin todistettuja ja halpoja, ja ne ovat riittäviä ; älä koskaan aliarvioi sitä etua, että sinulla on ratkaisu yleiseen ongelmaan jonnekin laatikossa!

Tietysti on usein tapana, että tarvitset ratkaisun, sanokaamme kaksi tyypillistä autobussi, nopea liitäntä ADC: lle, luotettavia vahtikoira-ajastimia, kolme PWM-yksikköä ... ja sitten aloitat paloittelun yhdessä jotain, joka koostuu neljästä 8051- ja 8080-johdannaisesta .. uh. Se on huono tilanne, ja se voidaan todennäköisesti ratkaista paljon nopeammin ja luotettavammin käyttämällä yhtä monipuolisempaa, tehokkaampaa MCU: ta (esim. ARM). Mutta se, että "meillä on yrityksen tietämys siitä, miten jokin toimii vanhan tekniikan kanssa" vs. "olemme tulevaisuuden varma, koska meillä on kyky toimia nykyaikaisella laitteistolla" on klassinen sijoitusvakuusvaihto. Jos kohtaat yhden tällaisista projekteista, yritän puhua pomoille tässä yhteydessä. Helppoihin pieniin töihin, joo, 8051.

Pitäisikö minun vaivautua oppimaan MCU-arkkitehtuureista yleensä?

Kyllä! Luulen, että @jfkowes selittää sen hyvin. Mutta rehellisesti: tämä on vähän kuin kysymys "pitäisikö minun oppia polttomoottorin toiminta, jos haluan olla automekaanikko"; vastaus on "saatat elää hienosti, jos pystyt suorittamaan korjauskäsikirjat riittävän hyvin, mutta olet todennäköisesti paljon parempi teknikko (jätä yksin insinööri), jos ymmärrät laitteistosi.

Heti kun kohtaat ongelman, jota ei voida Google-selailla, sinä olisit melko kilpikonna selässäsi, ellet karkeasti ymmärtäisi prosessorisi toimintaa.

Pitäisikö minun vaivautua oppimaan 8051-arkkitehtuuri?

Luultavasti ei. Siinä mielessä, että kyllä, niin kauan kuin kustannukset eivät ole ensisijainen painopiste, voit todennäköisesti käyttää vain paljon voimakkaampia ja monipuolisempia MCU: ita, jotka perustuvat ARM-ytimiin tai muihin, nykyaikaisempiin arkkitehtuureihin.

Sitten taas, 8051-ydin on niin helppoa, että suosittelen todella ymmärtämään sen yksiköt ennen kuin yrität puuttua nykyaikaisempaan, monimutkaisempaan MCU-ytimeen. Se on hieno esimerkki.

Joten jos 8051 ei ole etsimäni ydin pienen volyymin sovelluksessa, mitä olen etsin?

Joten henkilökohtaisesti: valitse ARM Cortex-M0, -M3, -M4F; Näitä on runsaasti kaikenlaisissa edullisissa mikrokontrollereissa, jotka on helppo ohjelmoida (joo, kypsä GCC-tuki, CMSIS-standardi libit, paljon sulautettuja käyttöjärjestelmiä näissä käynnissä), ja niiden mukana toimitetaan tavallisesti virheenkorjausrajapinnat (mikä is on suuri plus). p>

ARM: t ovat ulkopuolelta yleensä suhteellisen helposti ymmärrettäviä, koska tavallisesti kartoitat jokaisen oheislaitteen muistitilaan, ja siinä kaikki. Sisäisesti heillä on vaihtelevaa hienostuneisuutta ja nopeuden / kestävyyden / koon optimointia, joten niitä ei ole täysin helppo ymmärtää yksityiskohtaisesti, mutta luulen, että se voi olla vähän kysyttävää, ellet ole suorittimen suunnittelussa.

If olet kiinnostunut prosessorisuunnittelusta, luulen (tämä on todella henkilökohtainen vakaumus, joka perustuu tutkimustoimintani havaintoihin ja "luvattuihin" teollisuuden investointeihin) havaitsemme tällä hetkellä uuden tärkeän ISA: n - RISC- V. Tätä arkkitehtuuria on useita toteutustapoja FPGA: lle tai piille, ja Nvidian kaltaiset ihmiset näyttävät myös pelaavan vaikka korvaavan suoratoistoprosessorinsa tällaisilla ytimillä.


¹: Todennäköisesti puuttuu yli puolet todellisista hiirellä olevista 8051-levyistä (koska hei, valitsin juuri kaikki MCU: t, joiden ydin nimi oli * 80 * 5 *). Mahdollisuudet ovat, että jos valitset satunnaisen 8-bittisen mikrokontrollerin, on todennäköistä, että sen ydin on ainakin osittain peräisin 8051. Tarkoitan vain, että katsot wikipedian "luetteloa [8051] johdannaistuottajista".
AVR on myös loistava oppimisarkkitehtuuri, jolla on erinomainen dokumentointi ja gcc-tuki.
@Chrylis vihaa olla eri mieltä, mutta en henkilökohtaisesti usko, että ATMega 8bitters ovat loistava arkkitehtuuri, enkä heidän dokumentointinsa tai GCC-tuki ole erinomainen verrattuna ARM cortex m0: een, jonka kanssa he kilpailevat.Mutta se on henkilökohtainen mielipide!
@MarcusMüller Joitakin kokemuksia Atmelista enkä koskaan käyttänyt niitä enää (harrastuksia lukuun ottamatta). Atmel riippui harrastajatoiminnasta tukeakseen yrityksiä, jotka olivat pienempiä kuin tietty "koko" - mikä olin aina pienempi kuin, koska qtys ei koskaan ylittänyt 6000: tavuosi.FAE: t olivat mukavia, mutta se ei auttanut Ranskaa (AT91), joten päästin heidät vain irti.Toisaalta mikrosiru on tukenut minua hulluihin tasoihin riippumatta projektista.Tukee heidän prof.työkalut "ikuisesti" ja jopa vanhoja pelimerkkejä valmistetaan edelleen.Atmel on nyt ostanut Microchip.Joten ehkä vaihdan jalkaan siellä ja katson uudelleen.
@jonk Uskon, että muutos on käynnissä;ARM yksinkertaisesti sai piituottajien välisen kilpailun keskittymään asioihin kuten hyvin, vaikka oheislaitteiden, arviointi- ja suunnittelualustojen sekä ohjelmistojen / RTOSien kautta, ja toivottavasti myös: Tämän kaiken tuki.Henkisesti ainoa "toimialue", jota PIC: t ja ATMegas edelleen "hallitsevat" ja jonka voisin ajatella, on 5 V IO.Mikä on hyvin harvoilla poikkeuksilla harrastajille tarkoitettu toimialue, ja ehkä hyvin yksinkertainen PLC.
@jonk, vaikka PIC: llä / mikrosirulla on hyvä maine palvelulla ja se voi selviytyä pelkästään siitä huolimatta, Atmel-salkun laajennus saattaa olla jumissa.Ja toiveeni seuraavalle vuosikymmenelle: Kuten olemme keskustelleet kommenteissa toiseen vastaukseen jonkin aikaa sitten, jos osoittautuu oikeaksi, että kiekkojen "kuljetuspalvelut" tulevat yhä edullisemmiksi ja erittäin kilpailukykyisinä 32 bittiä / valinnaisesti 64 bittiä / valinnaisestiRT takaa RISC-V: n kaltaiset arkkitehtuurit erikokoisina ja -nopeuksina (ytiminä toteutettuina nimellä BOOM, Rocket-chip tai PicoRV32), "helvetti, minulla on erityinen ongelma, saan erityisen MCU: n" ...
… Toivottavasti menestyy piin puolijohde, joka tarjoaa todella parhaat asiakasedut eikä vahvin toimittajan lukitus.
@MarcusMüller Voidaan toivoa.Jos asiat kääntyvät asiakastuen puoleen, Microchip yksinkertaisesti tappaa kaikki muut.Minulla oli ammattikäyttöön tarkoitettu 12-vuotias työkalu, jossa virtakytkimestä tuli "hilseilevä".Soitin kysyäkseni, voisivatko he antaa minulle kytkimen osanumeron, jotta voisin tilata yhden ja korjata yksikön.Sen sijaan he vaativat minulle korvaavan yksikön lähettämistä, lähettivät minulle sen ja laatikon palauttamaan vanhan yksikön, ja se saapui seuraavana aamuna!Ei maksua.Kysyin: "Tarvitsetko ostotodistuksen?"He sanoivat: "Ei. Palauta vain toinen yksikkö. Fyysinen hallussapito on kaikki mitä tarvitsemme."Koristeltu asia oli ikivanha.
@MarcusMüller He tarjoavat edelleen UUDET moduulit (podit) vanhoille ICE-järjestelmilleen!Cripes!He eivät tietenkään myy minulle pääyksikköä.Mutta he korvaavat sen ja silti myyvät minulle sovittimia.En saa sitä keneltäkään muulta.
@MarcusMüller Palaan MIPS R2000 -päiviin (1980-luvun puoliväli) ja Microchip PIC32 (m4k) on niin sanotusti vanhassa kujalla.Käytän tietysti ARM: ää.Mikään ei voita siellä olevia ilmaisia työkaluja, ja saatavuus on uskomatonta.(Minun on muuten etsittävä RISC-V: tä. Olen tietämätön siitä.) Sinun mielipiteesi mukautettujen osien valmistamisesta on paljon järkevää, kun työkalut tulevat saataville ja vähemmän aloittelijoiden käyttöön teknisesti haastavampia.muuten kustannukset laskevat.Käytän sitä (olen itse asiassa aiemmin, mutta erikoistuneille detektoridiodeille.)
jfowkes
2017-02-09 17:20:49 UTC
view on stackexchange narkive permalink

Tässä on yleensä joitain hyviä syitä oppia käyttämäsi mikro-ohjaimen arkkitehtuuri (tai ainakin tuntea siitä toimiva tieto).

Varoitus: työsi, yrityksen, sovelluksen, siihen liittyvän laitteiston jne. yhteydessä voi olla syitä, miksi sinun ei pitäisi oppia tiettyä arkkitehtuuria, jota käytät juuri nyt.

Dbugging

Kun korkean tason kirjastot toimivat, sinun ei ehkä tarvitse tuntea arkkitehtuuria. Kun ongelmat alkavat, mikrokontrollerin sisäosien tunteminen voi auttaa paljon erottamaan ja korjaamaan ongelmat nopeasti.

Code-tehokkuus ja yksinkertaisuus

Jos tunnet arkkitehtuurin, voit ehkä siirtää toiminnot ohjelmistoista laitteistoihin. Tämä voi vähentää ohjelmistokuormitusta ja poistaa virhelähteitä.

Cost Reduction

Arkkitehtuurin tuntemus voi vähentää ohjelma- ja datamuistin käyttöä ja prosessorin kuormitusta. Tämä voi tarkoittaa, että voit valita mikro-ohjaimen, jolla on vähemmän resursseja, mikä voi vähentää kustannuksia.

Hyödyllisyyden lisääminen

Vaikka et käyttäisikään tietoa tällä hetkellä, keskustelut kollegoiden / toimittajien / tukisuunnittelijoiden jne. kanssa voivat vaatia sitä. Esimerkiksi joku tuntemastasi voi auttaa jotakuta muuta ongelmassa. Päivän pelastaminen on jotain, mitä ihmiset muistavat.

Ktunnus on Power

Vaikka et tarvitsisikaan tietoja nykyisestä työstäsi, näet upealta näyttävän työpaikan ilmoituksen, jossa lukee "<microcontroller -perheen tuntemus>-arkkitehtuuria vaaditaan / suositellaan" , sinulla on paremmat mahdollisuudet mennä siihen.

Jälleen kerran en tiedä, luetko usein tämän lauseen työpaikkailmoituksessa - se on eräänlaista arkaluonteista tietoa, ja jokainen, joka on vähiten perehtynyt * mihin tahansa * CPU-arkkitehtuuriin, voi noutaa 8051: n ensimmäisessäkolme työpäivää, luulisin
Hyvä asia, olen muokannut sitä yleisemmäksi.
nitro2k01
2017-02-09 17:54:13 UTC
view on stackexchange narkive permalink

Ovatko 8051 ja muut pienibittiset mikro-ohjaimet edelleen käytössä?

Kyllä, vaikkakin enimmäkseen kapealle käyttötarkoitukselle. Niitä käytetään enimmäkseen yksinkertaisiin tehtäviin, sarjatuotantoon perustuviin, kustannuksiin perustuviin tuotteisiin tai silloin, kun vaaditaan todistettua kokemusta. Ne on usein lisensoitu ja integroitu yhden sirun ratkaisuun. Yksinkertaisesta arkkitehtuuristaan ​​johtuen ne on helppo integroida mukautettujen oheislaitteiden kanssa samalla sirulla. Toinen etu on, että ne voidaan tuottaa pienellä alueella vanhemmilla (ja halvemmilla) puolijohteiden valmistustekniikoilla.

Yksi tällainen esimerkki on älykorttien ohjaussiru, joissa käytetään usein 8051: tä tai vastaavaa ydintä salauksellisten laitteistolaajennusten kanssa. Löydät todennäköisesti 8-bittiset mikrokontrolleriytimet esimerkiksi älykkään sähköhammasharjan näytön ohjaimesta. Ajoneuvon ECU käyttää usein valvontakoirana 8-bittistä ja 32-bittistä mikrokontrolleria niiden suuremman luotettavuuden ja pienemmän monimutkaisuuden vuoksi.

Spitäisikö sinun oppia se?

Sen lisäksi, että saatat todella joutua tilanteeseen, jossa tarvitaan tietoa tietystä arkkitehtuurista, väitän, että se on hyödyllinen taito yleensä. Vaikka ohjelmoitkin C päivittäisessä työssäsi, on hyödyllistä ymmärtää, mitä tapahtuu "yhden tason alapuolella". Outojen virheiden tai suorituskykyongelmien vianmäärityksessä ongelman löytäminen voi olla paljon helpompaa, jos sinulla on yleinen käsitys taustalla olevasta laitteistosta. Voit myös analysoida helpommin C-kääntäjän kokoonpanokieltä. Yhden arkkitehtuurin oppiminen helpottaa myös erilaisten oppimista tulevaisuudessa. Nämä taidot voivat myös auttaa sinua kirjoittamaan parempaa koodia jopa nykyaikaisemmille suorittimen ytimille.

Olisin niin vähän eri mieltä "kapealla" -vaatimuksen kanssa;katso vastaukseni alla :) mutta silti, sinun on hyvä vastaus!
Stuart Wilson
2017-02-10 01:56:34 UTC
view on stackexchange narkive permalink

Voit oppia paljon digitaalisesta suunnittelusta oppimalla niitä. Digitaalinen elektroniikka rakennetaan kahdella tavalla. Ensinnäkin ovat logiikka, AND, OR, NOT -elementtien yhteenliittäminen, jotka toteuttavat loogisen lausekkeen. (Käytännössä käytetään tosiasiallisesti muita loogisia elementtejä, kuten NAND, mutta AND, OR ja NOT on helpompi ymmärtää.) Toiseksi ovat muisti elementit, joihin mahtuu yksi tai useampi bitti. Kun muistielementit otetaan käyttöön, laitteilla voi olla ns. tila . Erilaiset bittiyhdistelmät muistielementeissä vastaavat eri tiloja.

Harkitse automaattia, joka alkaa tilassa 0 ja siirtyy toiseen tilaan joka kerta, kun kolikko asetetaan. Tällöin kone voi seurata rahan kokonaismäärää, tietää, kun rahaa on asetettu tarpeeksi, ja tietää, kuinka paljon muutosta on palautettava.

Suunnitellaksesi koneen piirejä, aloita kaavio tiloista nuolilla, jotka osoittavat siirtymiä muihin tiloihin yhdessä niiden laukaisevien olosuhteiden kanssa. Jokaiselle nuolelle looginen lauseke tunnistaa ehdon. Sitten voidaan selvittää, mitä kaikki nämä lausekkeet ovat, ja toteuttaa ne loogisten elementtien avulla.

Myyntiautomaatille tämä ei ole kovin vaikeaa. Monimutkaisille ohjaimille se tulee paljon vaikeammaksi. Mikrokontrollerit ovat nopea ja helppo tapa tehdä sama asia. Tarkastellaan "muistia", joka (tavun tai sanan merkityksessä) on k bittiä ja siinä on n osoiteriviä, mikä johtaa 2 ^ n sijaintiin muistissa. Tämä muisti on ohjelmoitu mallilla, ja se on käytännössä vain luku -tilassa. Huomaa, että käyttämällä muistin osoitebittejä "tuloina" ja databittejä lähtöinä, muisti voidaan ohjelmoida toteuttamaan mikä tahansa looginen toiminto.

Lisäämällä rekisteri myös k bittiä leveä pitämään muistipaikan sisältö tuottaa tilakoneen.

Jos k bittiä on jaettu, esim. , opkoodi ja osoite. Opkoodibittijoukko ohjaa piirin muita osia (kuten myyntiautomaattituotteen jakamista) ja muut ovat n bitin levyisiä muistiosoitteita, joista jokaisesta k-bittisarjasta tulee mikro-ohje, jolla on haarautumiskyky.

Lisää tähän aritmeettinen logiikka, joitain muita rekistereitä (joissa yksi tai useampi näistä ottaa ohjaustulot siirtyäkseen vasemmalle ja oikealle) ja voit rakentaa CPU: n, jonka koneohjeet on toteutettu mikro-ohjeiden avulla.

1970- ja 1980-luvuilla tämän mallin avulla rakennettiin useita onnistuneita tietokoneita. Yhdellä heistä (Digital Equipment's VAX 11) oli konekäsky laskemaan kokonaislukupolynomi, joka on tarkoitettu osoitteen laskemiseen (ajatella taulukkoa). Kävi ilmi, että käsky voidaan toteuttaa nopeammin yksinkertaisemmilla ohjeilla.

Mikrokontrollerit voivat olla ja ovat yleensä vähemmän tehokkaita toteutuksia kuin perinteiset valtion koneet. Mutta niitä voidaan helposti muuttaa, paljon nopeammin suunnitella ja ne ovat erinomaisia ​​ohjainratkaisuja.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...