Author: Oriol Rius

PC/104 – la interficie misteriosa

Reading time: 2 – 2 minutes

Quan fa uns anys em vaig començar a posar amb el tema del embedded vaig començar a descobrir aquest interficie tan desconeguda quan vens del món del PC. De fet, l’ensurt només és al principi després descobreixes que només és un connector que ens permet tenir unes plaques d’extenció en espais molt reduits i de forma que la connexió sigui ben segura per entorns ostils. A nivell lògic és ben senzill, perquè les senyals que transporten no deixen de ser ISA o PCI. Segons algunes companyies el mercat d’aquesta interficie ha de creixer un 45% en els propers 4 anys.

L’estàndard en qüestió és de l’any 1991, i el va definir el PC/104 Consortium. Els estàndards definits per aquest consorci són PC/104, PC/104+, PC-104, EBX i EPIC. El PC/104 defineix un slot de 104-pin que equival internament a la lògica de funcionament ISA. El PC/104+ incorpora compatibilitat amb el PC/104 i afegeix compatibilitat lògica amb el bus PCI a través de 120 pins totals. El PC-104 només és compatible PCI i té 120 pins. Finalment tan el EBX com el EPIC, defineixen com connectar una placa SBC a un backplane o xassís.

pc104.gif

Les funcions de les targetes PC/104 són totes les que us pogueu imaginar i més. Des de les típiques que podem trobar en un PC: targeta de so, modem, targeta de xarxa, wifi, etc. Fins a d’altres targetes més pròpies del món industrial o de dispostius típicament enquestats. Per exemple, targetes GPIO, mini bateries, NVRAM, etc.

…i 1000!!!

Reading time: < 1 minute

Doncs després de més de 5 anys escribint al meu blog, ús informo que aquest és el post 1.000, per fi! hi ha molta gent que amb menys d’1 any de blog ja n’ha escrit més que jo de posts. Però bé suposo que el merit d’aquest blog no és el número d’articles sinó el temps que fa que els estic escribint 🙂

Aprofitant aquest motiu de celebració, també us informo que estreno verisó del blogcms, que no heu notat res, ja ho sé… hi hi hi! només he actualitzat el motor del sistema. A més també us informo que ara esta corrent amb un PHP 5.1.2 i no amb un PHP 4 com fins ara. Tinc intenció d’aprofundí molt més amb la programació orientada a objectes en PHP. Ja anireu tenint notícies del tema.

LIPS – Linux Phone Standard Forum

Reading time: 1 – 2 minutes

lips.gif

The mission

The Linux Phone Standards Forum (LiPS) will accelerate the adoption of Linux® in fixed, mobile and converged telephony devices by standardising Linux®-based services and APIs that directly influence the development, deployment and interoperability of applications and end user services.

What will LiPS do?

LiPS has been created to bring together key players in the industry to address these challenges. At a general level, the forum will work to foster dialogue and collaboration around Linux telephony for the benefit of all actors. However, the primary focus of LiPS will be to define standards for the aspects of Linux that directly enable the deployment, development and interoperability of applications and end user services.

I això d’on ve?

Doncs aquesta gent eren els nostre veins del davant, al 3GSM, fa dies que tenia la URL apuntada per donar-hi un cop d’ull aprofundir en el que fan i realment jo diria que els ‘copy/paste’, que us he posat de la seva web ho expliquen força bé. Realment una referència a no perdre de vista.

VIA Epia EN – nova generació de plaques base i processadors

Reading time: 2 – 2 minutes

A mitjans de Març VIA va anunciar la nova generació de plaques mini-ITX, si fins ara ja eren un producte amb unes prestacions impressionants i una mida encara més espectacular. No us perdeu el que prometen ser les noves característiques d’aquestes plaques base. Com sempre amb els seus processadors C7, però ara amb velocitats que arribaràn fins a 2GHz i només amb 20W de consum. A més el FSB de 800MHz. Com podeu veure no tenen res a envenjar a les plaques base de mida convencional, sinó mireu aquest petit resum de característiques:

  • ATX power
  • DDRII 400/533 memory socket
  • UDMA 66/100/133 connectors
  • SATA II, RAID 1 and 0
  • CN700 Northbridge
  • VT8237R+ Southbridge
  • PCI connector
  • LVDS/DVI modules available
  • 6-channel audio
  • Switchable (jumpers) S/PDIF / S-Video port
  • PS-2 connectors
  • USB 2.0
  • Gigabit Ethernet
via.jpg

Si encara us preocupa el rendiment després de tot això, a linuxdevices hi ha un article, que fa una comparativa entre aquestes noves plaques i els pentium M. Realment podem veure que cada dia és una alternativa més interessant a tenir en compte a l’hora d’enquestar equips en sistemes petits.

Resumint…

Reading time: < 1 minute

currante.jpeg

Alguna idea de com acabar amb això???? buf! a veure com baixo el ritme 😕

AoE – ATA over Ethernet

Reading time: 2 – 2 minutes

Més d’una vegada ho havia sentit. Però mai m’havia plantejat perquè carai podia servir això. De fet, el tema és ben senzill SAN. O sigui, que podem agafar el nostre ordinador sense disc dur (diskless) i botar-lo a través de PXE, però encomptes de montar-nos un RAMDISK per treballar amb el sistema, el que podem fer és usar un disc dur connectat al nostre sistema a través de la xarxa.

Així doncs, no tenim problemes d’espai, ni de treballar amb memòria volàtil. Com a molt els podem tenir de velocitat, per tal d’evitar això és una bona idea usar força caché de disc a la RAM del sistema. De fet, tot consultant el tema als forums de gentoo he vist que molta gents fins hi tot tira les X’s amb gestors de finestres sense problemes, tot i que quan parlem de GNOMEs i KDEs la cosa es complica una mica.

Malgrat pugui semblar un invent d’anar per casa, al mercat podem trobar diversos productes que implementen aquest estàndard. De fet, fins hi tot Intel té processadors i plaques base especialment dissenyades per treballar amb aquest protocol.

Quan parlem de AoE molta gent tendeix a confondre Ethernet amb TCP/IP. Ja sabreu una cosa no té res que veure amb l’altre. Amb això vull matitzar que el AoE va directament sobre la capa 2 i que no és un protocol enrutable. Amb això aconsegueix aprofitar al màxim l’amplada de banda del cable Ethernet i a més podem switchejar la senyal. Per si necessiteu un equivalent del AoE però que funcioni sobre IP i que per tant sigui enrutable, penseu amb el iCSI.

aoe-iscsi-comparison.gif

hw per montar un firewall, router, ap, etc.

Reading time: 2 – 3 minutes

Gràcies al meu nou proveedor de hardware enquestat, mds 2000, m’he posat al dia del catàleg de productes d’AAEON una marca de material embedded molt interessant. El millor del tema és saber que pots comprar-ho a Barcelona mateix i a preu de PVD (Preu de venta distribuidor).

Doncs bé concretament hi ha un model que m’ha agradat molt per montar firewalls en linux (ve amb el Montavista Linux de serie) a casa dels clients, a més gràcies als dos slots mini-PCI tipus III que porta la placa puc posar-hi una o dues targetes wifi. Però el que potser m’ha agrada més són els 6 ports ethernet de que disposa el SBC.

Amb una RAM de 32 o 64Mb segons el model, un processador RISC d’Intel (XScale IXP420/422/425) amb 266 o 533MHz i amb 16Mb de flash. Per si tot això us sembla poc encara n’hi ha més 2 ports serie, 2 ports USB (1 USB 2.0 i 1 USB 1.1) i com no quatre sortides DIO, per controlar altres perifèrics amb protocols I2C, SPI o SMBus.

gene-1425.jpg

Al tractar-se d’un dispositiu embedded les seves mides són minúscules 156mm x 101.6mm i s’alimenta amb corrent continua amb un voltatge que pot anar dels 9 als 24v. O sigui, que tenim on triar. Ara només cal trobar-li una caixa que li vagi com un gua. Amb els ~275$ de cost, més els aproximadament ~10$ de la caixa i uns altres ~15$ de la font d’alimentació podem tenir un firewall, router o el que volguem per un preu molt raonable.

Si voleu aprofundir més sobre el producte:

I2C – Inter Integrated Circuit bus

Reading time: 3 – 5 minutes

Tornant al tema dels busos que poden treballar sobre GPIO aquí teniu un altre bus molt i molt usat en aquest tipus de ports.

Definició

El I2C (“eye-squared-see”) el va inventar Philips cap als anys 80 amb la finalitat de connectar diferents IC (circutis integrats) amb les seves CPUs dintre d’una TV. Bàsicament és un bus pensat per curtes distàncies i poc ampla de banda.

A més I2C és capaç de detectar col·lisions, sincronitzar el rellotge i negociar el master en sistemes on n’hi pugui haver més d’un. El rellotge sempre el genera el master, però els slaves poden mantenir el rellotge parat per generar un estat d’espera.
Sovint el master en un bus I2C és el microcontrolador.

El número màxim de dispositius que es pot connectar en un bus I2C és calcula a partir de la màxima capacitància de la linia (uns 400pF), i el límit d’adreces és de 16k; normalment cada dipositiu té una capacitància d’uns 10pF. Així doncs diposem de 127 adreces disponibles. En principi les adreces de cada IC és assignable pel dissenyador del sistema.

Com funciona

Només es necessiten dos cables per treballar amb I2C, dos cables actius i el terra. Els cables actius són el SDA (Serial Data Line) i el SCL (Serial Clock Line). O sigui, el primer per dades i el segon pel rellotge.

i2c.gif

Només amb aquests dos cables actius en tenim prou per establir comunicacions full-duplex. L’interficie sovint funciona a velocitats baixes, de 100KHz a 400KHz. En un bus I2C, cada IC connectat al bus té una adreça única. Cada dispositiu pot treballar com a receptor i/o transmisor depenent de la seva funcionalitat.

Sobre el tema de l’amplada de banda, escencialment hi ha tres modes de funcionament un estàndard de fins a 100kbps i un de ràpid de fins a 400kpbs. El darrer mode és el High-Speed que pot arribar fins a 3.4Mbps.

Usos

Un dispositiu molt comú que sovint s’usa a través d’un bus I2C són les EEPROMs, també n’hi ha d’altres com els sensors, i els rellotges de temps real. A vegades també s’usen busos I2C només com a línia de senyalització per altres línies de dades, per exemple, en aplicacions multimèdia, on sovint s’usen sintonitzadors RF, codificadors i/o decodificadors de video, processadors d’audio. De fet, el mercat és ple de centenars d’IC que usen el bus I2C com a protocol de comunicacions en els seus busos.

Exemples d’us

Maxim té dintre del seu repositori d’articles tècnics un munt de referències a aplicacions sobre aquest protocol. He trobat molt interessant concretament una aplicació que ens permet controlar una pantalla LCD amb interficie HD44780 (local). Al document s’explica com serialitzar els 11 pins que necessita aquest dispositu per treballar només amb els 2 cables que té el bus I2C.

Un altre ús, jo diria que més que útil, és el que ens permet connectar el bus I2C al port paral·lel del PC. De fet, el circuit que ens ho permet fer és força simple si en voleu més informació: I2C interfacing via PC parallel port.

Fonts

SPI – Serial Peripheral Interface

Reading time: 3 – 4 minutes

Quan parlava de GPIO vaig parlar d’aquest protocol capaç de corre sobre ports d’aquest tipus. Doncs bé aquí en teniu una petita definició del que fa i com funciona aquest protocol.Un lloc on podem trobar sovint busos SPI són PDAs i en telèfons mòbils.

Definició

El bus SPI és del tipus serie i sincron, usa 4 cables i s’usa en molts microprocessadors de periferics. Els ports amb suport SPI suporten un ample de banda mitja/baix (1 megabaud) entre les seves CPUs i els altres dispositius que hi poden haver connectats al bus.

Com funciona

El bus SPI és relativament simple d’implementar per dispositius externs de poca velocitat i no ens calen gaire cables per establir la comunicació. L’interface d’aquest bus la va definir Motorola a l’estàndard de microcontroladors MC68HCxx. Usa un rellotge per marcar el sincronisme de la línia de dades tan d’entrada com de sortida del microcontrolador i la informació es mou en blocs de 8 bits.

El bus SPI usa una inteficie master/slave, com és normal en comunicacions serie síncrones és el master el que marca el rellotge. Un fet interessant en aquest tipus de busos és que podem rebre i enviar informació dels dispositius de forma simultanea, per tant es tracta d’un protocol full-duplex.

Una mica més endintre

Les senyals que usa el bus són:

  • SLCK serial clock, sempre controlada pel master
  • MISO master-in slave-out data
  • MOSI master-out slave-in data
spi.gif

En una aplicació normal haurem de connectar la soritda de SCLK del microcontrolador a la entrada SLCK del convertidor. La MISO al pin DOUT del convertidor, la MOSI al pin DIN. Cada IC (circuit integrat) del bus SPI té una senyal CS (chip-select), cal activar la senyal per tal d’habilitar el dispositiu en el bus. Per tal de fer això podem usar qualsevol de les línies de sortida estàndard del microcontrolador. Cal però que pensem que si tenim n ICs connectats al bus, caldràn n senyals per activar els ICs. A més si compartime la senyal de rellotge i les línies de dades haurem d’habilitar la senyal de CS corresponent en cada cas.

Valoració

Com podeu veure el disseny del bus i el prtocol d’ús són molt senzills. Tan que si fem servir massa dispositius connectats a la mateixa línia de dades la cosa es fa una mica pesada de tractar. Malgrat això per moltíssimes aplicacions és una bona idea usar-lo.

Exemple d’ús

La gent de maxim tenen un document tècnic (local) molt bo on en poques ralles ens explique com comunicar un termometre digital, concretament el DS1620, només amb 3 cables a través d’un bus SPI. L’esquema del sistema és força senzill i us dona una idea de la simplicitat que suposa connectar aquest sensor de temperatura al bus SPI.

Fonts

GPIO – General Porpuse Input/Output

Reading time: 2 – 2 minutes

Aquest acrònim s’acostuma a usar en dispostius incrustats, els dispositius GPIO ens facilitat ports d’entrada i sortida (I/O) que es poden configurar indiferenment com a ports d’entrada o de sortida. Sobre aquests ports podem fer correr protocols de BUS, com per exemple I²C, SPI and SMBus. Sovint el fet d’usar xips GPIO és una solució més econòmica que l’ús de micro-controladors.

Com que aquesta explicació queda molt generècia, el millor és parlar d’un exemple ben senzill de perquè serveix un GPIO en un dispositu embedded. El Linksys WRT54G per exemple, té un GPIO que no usa tots els seus PINs. Per tant, és un dispositiu que tots tenim a l’abast i amb el que a través d’un linux podem començar a jugar amb el GPIO. A comesfa.org hi ha un artícle titulat: Connexió d’un relé a un Linksys WRT54G on s’usa aquest GPIO del que us parlava per connectar-hi un relé a través del qual podem encendre i apagar dispositus.

gpio.jpg

Un petit trick que sovint podem fer amb els pins del GPIO és connectar-hi directament un LED, sovint si configurem el pin com a sortida i connectem l’altre pota del LED la posem a massa n’hi ha prou per fer encendre i apagar el LED quan volguem. De totes formes si no voleu sucarrimar el LED, us recomano mirar amb el tester quina tensió dona el pin en estat activat, ja que mai se sap què hi pot haver. Si mireu l’article anterior que us he dit de comesfa, veureu un tros de codi en C que mostra fins a quin punt serà de senzill controlar que el LED s’ensengui o s’apagui.

Scroll to Top