Piirien väliset ohjaus- ja tiedonsiirtoväylät H. Honkanen Laitteiden sisäiseen tietoliikenteeseen on kehitetty omat dataväylänsä. Näistä tärkeimmät: 1 wire [ käyttää mm. Dallas, Maxim. ] I²C [ Trademark of Philips, yleisesti käytössä, mm Cypress PSoC ] 3 wire [ käyttää mm. Nordic semiconductor, Dallas, Maxim ] SPI [ Trademark of Motorola, yleisesti käytössä, mm Atmel, Dallas,Maxim ] Microwire [ Trademark of National semiconductor ] 1- wire 1-wire väylä sisältää nimensä mukaisesti vain yhden johtimen maantason lisäksi. 1-wire väylässä kaikilla komponenteilla on oma yksilöllinen 48 bittinen laiteosoitteensa. 1-wire väylän kautta voidaan jopa syöttää käyttöjännite hyvin pienikulutuksisiin laitteisiin Kuva: 1-wire väylän esittely ( Maxim )
Eri tilat erotetaan toisistaan pulssinpituuden perusteella Taulukko: Pulssipituudet 1-wire väylässä ( Dallas ) Kuva: Tila aikakaaviona
I 2 C VÄYLÄ, 2 Wire IIC väylässä on vain yksi kellolinja ja yksi kaksisuuntainen datalinja IIC väylässä ei tarvita erillistä kovokoodausta osoitteille, vaan dataliikenteen ensimmäisessä tavussa annetaan valitun piirin osoite I 2 C väylä tarvitsee vain kaksi linjaa: Kellolinja ( SCL, Serial Clock ), joka on yksisuuntainen ja kellopulssi tulee prosessorilta. Kellotaajuus 100 khz [ std ] tai 400 khz [ High speed ] Data ( SDA, Serial Data ), joka on kaksisuuntainen, sarjamuotoinen dataväylä GND, signaalimaa, joka on sama, kuin käyttöjännitemaa I 2 C väylässä piirityypillä on oma 7 bittinen laiteosoitteensa. Joissakin piireissä voidaan osoitteen loppuosa koodata kovolla. Tämä mahdollistaa useampien samantyyppisten piirien käytön samassa laitteessa. Ensimmäisen tavun seitsemän ensimmäistä bittiä määräävät laiteosoitteen ( piirin ) ja viimeinen kahdeksas bitti sen, onko kyseessä kirjoitus- vai lukutapahtuma I 2 C väylässä masterlaite ( prosessori ) määrää kaikki tapahtumat. Sieltä tulee kellosignaali ja masterlaite kutsuu orjapiirejään ( slave ) ohjelmansa mukaisesti. Orjapiiri ei pysty kutsumaan masterpiiriä IIC-väylän kautta, vaan tällaisen tarpeen tullessa on käytettävä normaaleja keskeytysrutiineja. I 2 C väylää käytetään yleisesti analogipiirien ohjausväylänä ( ADC, DAC, Juovaoskillattorit, näyttö, näppäimistö, yms ). Myös pieniä muistipiirejä voidaan liittää I 2 C väylään. ( Usein NV-RAM, EEPROM )
Tiedonsiirto I 2 C väylässä: 1. Tiedonsiirto IIC väylässä alkaa aina master-piirin generoimalla START pulssilla Start pulssissa datalinja ajetaan 1 tilasta 0 tilaan kellopulssin ollessa 1 tilassa. Datalinjan tila ei muutu kellopulssin 1 -tilassa muutoin, kuin START ja STOP pulssien aikana. 2. Ensimmäisessä tavussa masterpiiri generoi laiteosoitteen ja ilmaisee, onko kyseessä luku- vai kirjoitustapahtuma. Tavussa on seitsenbittinen laiteosoite ( = piiriosoite ) ja yksi R / W bitti (luku/kirjoitusbitti ). 3. Laiteosoitteensa tunnistanut orjapiiri kuittaa tavun vastaanotetuksi. Dataväylä on kaksisuuntainen, joten lähettävänä piirinä voi toimia myös orjapiiri 4. Nyt lähetetään varsinainen datatieto Tieto lähetetään tavuttain ( 8-bittiä kerrallaan ), jonka jälkeen vastaanottava piiri kuittaa aina tavun vastaanotetuksi. 5. Lähetys päättyy aina master-piirin generoimaan STOP pulssiin. STOP pulssissa datalinja ajetaan 0 tilasta 1 tilaan kellopulssin ollessa 1 tilassa Kuvassa esimerkki masterpiirin generoimasta tavusta. - Koska liikenne alkaa aina START käskyllä, on tämä ensimmäinen tavu ja sisältää piiriosoitteen ja R/W bitin. - STOP käsky tulee vasta tiedonsiirron päätyttyä, eikä näinollen koskaan käytännössä seuraa heti ensimmäistä tavua. Kellopulssi, SCL, tulee AINA masterpiiriltä.
Laiteosoitteet: Laite- eli tässä tapauksessa piiriosoitteet määräytyvät piirin tyypin mukaan. IIC- väylään kytkettäville orjapiireille on annettu oma seitsenbittinen laiteosoitteensa. Osa osoitebiteistä VOI OLLA koodattavia. - Koodausmenetelmänä käytetään yleensä ns. langoitettua logiikkaa, eli jokaista koodattavaa bittiä kohden on yksi piirinnasta, joka kytketään joko 0 - tai 1 tilaan, tämä tila on sitten kyseisen osoitebitin aktiivitila. Luku / Kirjoitus: Ensimmäisen tavun viimeinen bitti on R / W bitti 0 = KIRJOITUS ( Write ) 1 = LUKU ( Read ) Esimerkki dataliikenteestä: TDA8444 Octuple DAC with IIC-bus ( Philips ): Laiteosoite : 0100XXX Tässä piirityypissä on ( seitsemästä osoitebitistä ) kolme koodattavia osoitebittejä. Kiinteä osoiteosa: 0100 -> Koodataan esimerkkitapauksessamme laiteosoitteeksi : 0100 001
Esimerkki: Ohjataan koodaamamme TDA8444 DAC:n muunninta DAC3 ( 011 ). Ohjataan muuntimen bittikombinaatioksi 101100 ( 6 bittinen DAC ) Linkki: IIC allukointitaulukko: http://www.semiconductors.philips.com/acrobat/various/ic12_97_i2c_allocation.pdf Linkkejä: Muistipiirit
Esimerkki IIC väyläisetä EEPROM:sta ( Fairchild ) FM24C08 / FM24C09 3 wire 3 wire väylässä on yksi kaksisuuntainen dataväylä, sekä kellolinja 3 - wire väylässä piirin valinta tulee toteuttaa normaalilla osoitekoodauksella, CS:n aktivoinnilla Kellotaajuus: 500 khz 5 MHz Piirivalinta, CS, on 1 aktiivinen Linjat: o Data in/out o Clock o Chip select Ohjauskäskyt ( Luku/kirjoitus, yms.. ) annetaan ensimmäisessä tavussa, rakenne ei standardisoitu
SPI, Serial Peripheral Interface SPI väylässä on erilliset luku- ja kirjoitusväylät, sekä kellolinja SPI väylässä piirin valinta tulee toteuttaa normaalilla osoitekoodauksella, CS:n aktivoinnilla Linjat: o MOSI [ Master Out, Slave In ] o MISO [ Master In, Slave Out ] o SCL [ Serial Clock ] o CS [ Chip Select ] Ohjauskäskyt ( Luku/kirjoitus, yms.. ) annetaan ensimmäisessä tavussa, rakenne ei standardisoitu, esimerkiksi : Kirjoitustapahtuma: Lukutapahtuma:
SPI väyläisten piirien piiritunnus[ interface ] on 95 Kellotaajuutta ei standardoitu, käytössä jopa 100 MHz CS on nolla aktiivinen Kellopulssin polariteetti ei standardoitu: Esimerkki SPI väyläisestä muistipiiristä ( ST-microelectronics ):
Microwire Microwire väylässä on erilliset luku- ja kirjoitusväylät, sekä kellolinja Microwire väylässä piirin valinta tulee toteuttaa normaalilla osoitekoodauksella, CS:n aktivoinnilla Linjat: o Data in o Data out o Clock o Chip Select Microwire väylässä väylätunnus [ interface ] on 93 CS on 1 aktiivinen Toimintatila ( Luku/Kirjoitus/etc ) määritellään heti start bitin jälkeen 2:lla OPCODE bitillä. Esimerkki Microwire -liikenteestä
Esimerkki Microwave väyläisestä EEPROM:sta: ( Fairchild ) FM93C66 Connection diagrams Pin names Huom!!, koska I2C, SPI ja Microwire ovat rekisteröityjä tavaramerkkejä: Useat piirivalmistajat käyttävät 2 wire nimitystä väylästään, vaikka se toimiikin I²C väylän protokollan mukaisesti Vastaavasti 3 wire ja 4 wire nimityksiä käytetään SPI ja Microwire -protokollan mukaisissa väylissä