Kortbetalning på Edekvata-automat

 

Vår idé var att uppgradera läsk- och godisautomaterna i det lokala caféet Edekvata till att acceptera betalning med kort. Automaterna, som brukar kallas mojter, ska kunna kommunicera med en databas som håller reda på alla kundkonton och på alla transaktioner som utförs på automaterna. För att kunna genomföra detta behöver mojterna utrustas med en läsare för magnetkort, en styrenhet, en länk till databasen, en display samt lite kringelektronik.

Som styrenhet använder vi en Motorola 68HC11. Denna enchipsdator är tillräckligt snabb för ändamålet, har gott om ut/in-portar och kan sköta seriell kommunikation smidigt.

När ett magnetkort dras i kortläsaren sänds kortets lagrade information i en bitström till styrenheten. Överföringshastigheten är direkt beroende av hur fort kortet dras, varierar mellan ca 300 - 4500 bps. De flesta magnetkort följer en standard som heter ISO-7811. Enligt denna har alla kort ett 16-siffrigt unikt nummer. Detta använder vi i databasen för att hitta rätt konto och saldo. Vårt system accepterar alla kort som följer ISO-standarden, dock är vår databas hermetiskt avskiljd från kreditbolagens och bankernas databaser.

Länken till databasen sköts med egendefinierade datapaket som sänds med den välbeprövade RS-232-standarden. Denna standard använder logiknivåerna –10 och 10 volt istället för de vanligare 0 och 5 volt och är väldigt ofta använd i serieporten hos PC och arbetsstationer.

Ett vanligt köp går till enligt följande:

    1. HC11:n tar emot kortinformationen, omkodar och sänder en saldoförfrågan till databasen.
    2. Databasen söker upp rätt konto, om det finns, och returnerar saldo eller meddelar att kortet inte hör till något konto.
    3. HC11:n ser till att Saldo eller felmeddelande visas på automatens display.
    4. Om ingen vara väljs återställs automaten till viloläge ca 20 sekunder efter att kortet dragits.
    1. HC11:n kontrollerar att facket inte är tomt, är det tomt visas ett kort felmeddelande och en ny vara kan väljas, om varan finns sänds dess nummer till databasen.
    2. Databasen vet alla varors pris. Om saldot räcker subtraheras priset och nytt saldo sänds, annars sänds ett felmeddelande.
    3. Om köpet godkändes visar displayen nytt saldo och vald vara matas ut. Om köpet underkändes visas ett kort felmeddelande och en ny vara kan väljas.
    4. Displayen visar efter fullbordat köp det nya saldot i ca 5 sekunder. Sedan återställs automaten i viloläge.

Oavsett i vilket stadium ett köp är avbryts detta alltid och ett nytt påbörjas då ett kort dras i kortläsaren. Endast en vara kan köpas per kortdragning.

Utförligare dokumentation

Ytterligare information om kortbetalningssystemet, såsom den fullständiga rapporten inklusive källkoder och kretsschema, finns här.

  

Medlemmar i projektgrupp 1 under läsperiod 3 & 4 1999 är:

Martin Andersson,

e94man@efd.lth.se

Håkan Ardö,

e96har@efd.lth.se

Eskil Lundgren,

e96el@efd.lth.se

 

Senast uppdaterad: 990525