80
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO RAČUNALNIŠTVO IN INFORMATIKO Iztok Blazinšek RAZVOJ PRIKLOPNE POSTAJE ZA PLAČILNE TERMINALE MARGENTO mPOS Diplomska naloga Maribor, september 2010

RAZVOJ PRIKLOPNE POSTAJE ZA PLA ČILNE TERMINALE MARGENTO mPOS fileuniverza v mariboru fakulteta za elektrotehniko ra ČunalniŠtvo in informatiko iztok blazinšek razvoj priklopne

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO RAČUNALNIŠTVO IN INFORMATIKO

Iztok Blazinšek

RAZVOJ PRIKLOPNE POSTAJE ZA PLAČILNE TERMINALE MARGENTO mPOS

Diplomska naloga

Maribor, september 2010

Diplomsko delo univerzitetnega študijskega programa

RAZVOJ PRIKLOPNE POSTAJE ZA PLAČILNE TERMINALE MARGENTO mPOS

Študent: Iztok Blazinšek

Študijski program:

Univerzitetni, Elektrotehnika

Smer: elektronika

Mentor(ica): red. prof. dr. Zdravko Kačič

Somentor(ica): dr. Amer Ul Haque Chowdhury

Maribor, September 2010

Zahvala

Zahvaljujem se mentorju prof. dr.

Zdravku Kačiču in somentorju dr.

Amorju Chowdhuryju, da sta me sprejela

pod svoje mentorstvo in me spretno

usmerjala pri nastajanju diplomskega

dela. Zahvala gre tudi sodelavcem na

Margentu za izkazano strokovno pomoč

in nasvete.

Za razumevanje in iskreno podporo

se zahvaljujem vsem najbližjim, ki so mi

v letih študija stali ob strani in me

moralno ter finančno podpirali.

Prav tako se zahvaljujem tudi vsem

ostalim, ki so kakorkoli pripomogli k

nastanku mojega diplomskega dela.

II

RAZVOJ PRIKLOPNE POSTAJE ZA PLAČNIŠKE TERMINALE MARGENTO mPOS

Klju čne besede: priklopna postaja, mPOS vmesnik, mPOS ethernet, povezava

plačniškega terminala do procesnega centra

UDK: 621.395.721.5:004.7(043.2)

Povzetek

Diplomsko delo opisuje zasnovo in realizacijo priklopne postaje za plačniške

terminale Margetno mPOS. Jedro priklopne postaje predstavlja mikrokrmilnik ARM

NXP LPC 2366.

Naloga priklopne postaje je napajanje terminala in s tem polnjenje baterije ter

zagotavljanje komunikacijske povezave med terminalom in procesnim centrom

preko interneta. Terminal se na priklopno postajno poveže preko serijske povezave

RS232, ko je terminal prisoten na priklopni postaji, v primeru pa, ko terminal ni

prisoten, se poveže preko brezžične povezave s pomočjo modula Zigbee.

Cilj diplomske naloge je zagotoviti robusten in zanesljiv sistem, ki bo skrbel za

hitro in nemoteno komunikacijo med plačilnim terminalom Margento mPOS ter

procesnim centrom.

III

DEVELOPMENT OF DOCKING STATION FOR MARGENTO mPOS TERMINALS

Key words: docking station, mPOS Ethernet, mPOS interface to Ethernet,

transferring data from payment terminals to processing centres

UDK: 621.395.721.5:004.7(043.2)

Abstract

This diploma work describes research, development and realization of docking

station for Margneto mPOS payment terminals. Docking station is responsible for

providing power to the terminal, for recharging batteries and to provide Ethernet link

to the Margento Procesing Centers.

Terminal connects to docking station by wired and wireless communication.

Wired communication is in use when terminal in present on the docking station. If

customer removes the terminal, communication is automatically switched to wireless

communication via Zigbee module.

The objective of this diploma work is development and realization of robust

and fast data transfer between the terminal and the Margento processing centers via

Ethernet.

V

Vsebina

1. UVOD 1

1.1 Opis problema ................................................................................................... 1

1.2 Zakaj izbrati ethernet povezavo?....................................................................... 1

1.3 Teoretična rešitev problema .............................................................................. 2

1.4 Struktura diplomskega dela ............................................................................... 3

2. ZASNOVA SISTEMA 5

2.1 Kratek opis celotne zasnove sistema.................................................................. 5

2.2 Zahteve za izdelavo priklopne postaje .............................................................. 6

2.3 Izbira komponent sistema.................................................................................. 7

2.3.1 Mikrokrmilnik NXP LPC 2366 .............................................................. 7

2.3.2 Modul Zigbee PRO...............................................................................11

3. RAZVOJNO OKOLJE 13

3.1 Keil uVision 3 IDE.......................................................................................... 13

3.2 TI Code Composer Studio............................................................................... 15

3.3 CodeGear Rad Studio - demo.......................................................................... 16

4. PROTOTIP SISTEMA 17

4.1 Opis prototipa sistema..................................................................................... 17

4.2 Implementacija testnega okolja ....................................................................... 18

4.3 Aplikacija za testiranje prototipnega sistema.................................................. 18

4.3.1 Kratek opis............................................................................................ 18

4.3.2 Delovanje .............................................................................................. 19

4.4 Rezultati testiranja testnega sistema................................................................ 21

5. IZVEDBA STROJENGA DELA SISTEMA 25

Vsebina VI

5.1 Opis strojnega dela sistema ............................................................................. 25

5.2 Razvoj tiskanega vezja .................................................................................... 25

5.2.1 Revizija A ............................................................................................. 27

5.2.2 Revizija B ............................................................................................. 28

5.2.3 Revizija C ............................................................................................. 29

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 31

6.1 Opis programskega dela sistema ..................................................................... 31

6.2 Protokol za prenos podatkov med plačilnim terminalom in priklopno postajo............................................................................................................ 32

6.2.1 Kompozicija paketov ............................................................................32

6.2.2 Zanesljivost protokola........................................................................... 37

6.2.3 Primer komunikacije med terminalom in priklopno postajo ................ 39

6.3 Programska rešitev na priklopni postaji ..........................................................40

6.3.1 Ogrodje sistema .................................................................................... 40

6.3.2 Implementacija ethernet vmesnika ....................................................... 41

6.3.3 Povezava z višjimi nivoji aplikacije ..................................................... 43

6.4 Programska rešitev na strani plačilnega terminala Margento mPOS.............. 43

6.4.1 Ogrodje sistema .................................................................................... 43

6.4.2 Implementacija povezave preko serijskih vmesnikov .......................... 44

6.4.3 Povezava z višjimi nivoji aplikacije ..................................................... 45

6.5 Implementacija modula Zigbee ....................................................................... 46

6.5.1 Komandni način delovanja ................................................................... 47

6.5.2 Podatkovni način delovanja .................................................................. 48

6.6 Rezultati testiranja sistema.............................................................................. 49

6.6.1 Stres test sistema................................................................................... 49

6.6.2 Test transakcij ....................................................................................... 52

7. PRIMERJAVA Z OSTALIMI SISTEMI 55

7.1 Microchip PIC 18FxxJ60 ................................................................................ 55

7.2 Microchip ENC modul .................................................................................... 55

7.3 Luminary Mico Stellaris.................................................................................. 56

8. PREDLOGI ZA NADALJNJE DELO 57

Vsebina VII

9. SKLEP 59

10. LITERATURA 61

11. PRILOGE 63

VII

UPORABLJENI SIMBOLI:

s - enota za merjenje časa (sekunda) Hz - enota za frekvenco, en Hz ustreza enemu dogodku na sekundo (hertz) b/s - hitrost prenosa podatkov (bits per second) baud/s - hitrost prenosa podatkov (bauds per second) MB/s - Hitrost prenosa (Mega Bits per second)

UPORABLJENE KRATICE:

IEEE inštitut inženirjev elektrotehnike in elektronike (Institute of Electrical and Electronics Enginners)

TCP oddajno sprejemi protokol (Transmission Control Protocol)

UDP datagram protokol (UserDatagram Protocol)

IP Internet protokol (Internet Protocol)

MAC nivo krmiljenja dostopa do medija (Media Acces Control)

I/O vhodno - izhodni pin (Input Output pin)

ADC analogno digitalni pretvornik (Analog to Digital Converter)

SPI serijsko preriferno vodilo (Serial Peripherial interface)

PHY fizični oddajnik/sprejemnik za ethernet module (Phisical layer transceiver)

PSP paralelni port (Parallel Slave Port) TQFP tanko kvadratno ohišje za integrirana vezja

(Thin Quad Flat Pack) ISO mednarodna organizacija za standardizacijo

(International Orgarnization for Standardization) OSI sedemnivojski referenčni model zgradbe internet protokola

(Open System Interconnection Basic Reference Model) USB univerzalno serijsko vodilo (Universal Serial Bus) A/D in D/A analogno/digitalni in digitalno/analogni LAN lokalno omrežje (Local Area Network) GND ničelni potencial (Ground)

Vsebina VIII

FLASH vrsta pomnilnika, ki ga lahko prepišemo z uporabo namenskih programov (Flash Memory)

RAM bralno – pisalni začasni pomnilnik (Random Access Memory) ROM bralni pomnilnik (Read-Only Memory) EEPROM električno zbrisljiv in programabilen bralni pomnilnik (Electrically

Erasable Programmable Read-Only Memory) UART univerzalni asinhroni sprejemnik/oddajnik (Universal

Asynchronous Receiver/Transmitter) Tx del UART-a, pošiljanje podatkov (Transmit) Rx del UART-a, prejemanje podatkov (Receive) CAN krmilnik CAN (Controller Area Network) SCI komunikacijski serijski vmesnik (Serial Communication Interface) LED svetleča dioda (Light-Emitting Diode) IDE integrirano razvojno okolje (Integrated Development Environment) RS232 serijski standard za povezovanje z drugimi napravami

(Recommended Standard 232) TTL logika tranzistor-tranzistor (Transistor-Transistor Logic) I2C vodilo za prenos podatkov preko dveh linij

(Inter- Integrated Circuit) I2S vodilo za prenos zvoka

(Integrated Interchip Sound) JTAG protokol za testiranje tiskanih vezij

(Joint Test Action Group) MII neodvisno medijsko vodilo

(Media Independent Interface) RMII reducirano neodvisno medijsko vodilo

(Reduced Media Independent Interface) MIIM vodilo za kontrolo modulov PHY

Media Independent Interface Managment PC osebni računalnik (Personal Computer) UTP kabel za povezavo mrežne opreme ISP ponudnik internetnih storitev

(Internet Service Provider) DOV prenos podatkov preko zvoka

(Data Over Voice)

1

1. UVOD

1.1 Opis problema

Danes je večina plačilnih terminalov zaradi varnostnih zahtev in sprotne

obdelave podatkov permanentno povezanih s procesnimi centri. V ta namen

potrebujejo zanesljivo komunikacijo in hiter dostop. To lahko dosežemo preko več

prenosnih medijev, od katerih pa je najbolj razširjen ethernet, saj omogoča velike

hitrosti ob nizkih stroških. To je še posebej dobrodošlo, saj je večina procesnih

centrov povezanih s svetom preko etherneta

Prav tako je potrebno za kontinuirano delovanje terminalov poskrbeti za

polnjenje baterije, na uporabniku prijazen, hiter in zanesljiv način.

1.2 Zakaj izbrati ethernet povezavo?

Ideja je uporabiti hiter, zanesljiv, dostopen in globalno razširjen prenosni

medij. Pomembni podatki pri izbiri so: hitrost, zanesljivost in varnost, poraba

mikrokrmilniških virov, kot sta procesorska moč in pomnilnik, poraba električne

energije, začetna cena in cena uporabe.

Tabela 1.1 podaja podatke za trenutno uporabljene komunikacijske kanale pri

plačilnih terminalih Margento mPOS:

1. UVOD 2

Tabela 1.1: Primerjava različnih standardov za prenos podatkov

Karakteristike

Medij Hitrost Zanesljivost Varnost Poraba procesorja

/pomnilnika

Poraba energije

Začetna cena

Cena

uporabe

ethernet ++ ++ o - / - o + +

GSM

/

GPRS

o

++

+

+ / +

-

-

--

DOV -- o + -- / - + + +

Legenda: ++ zelo dobro, + dobro, o srednje, - slabo, -- zelo slabo

Iz tabele so razvidne prednosti in slabosti ethernet povezave. Prednosti so

hitrost, zanesljivost in cena. Slabost je v porabi virov mikrokrmilniškega sistema, ker

zahteva za procesiranje podatkov dokaj veliko RAM pomnilnika in procesorskega

časa. Pri povezavi na ethernet je potrebno pri pošiljanju občutljivih informacij

poskrbeti tudi za varnost, saj lahko v primeru, da je terminal povezan neposredno na

javno omrežje, vsak z malo znanja podatke prestreže in pregleda, kar lahko povzroči

zlorabo sistema. Zato je nujna uporaba ali zasebnih vodov za povezave terminalov do

procesnih centrov, ali pa uporaba sistema zaščitnega kodiranja podatkov. Najbolj

varna je uporaba obeh zaščitnih mer skupaj.

1.3 Teoretična rešitev problema

• Problem:

o pošiljanje podatkov do procesnih centrov s pomočjo etherneta,

o omogočanje polnjenja baterije, ko terminal ni v uporabi,

o omogočanje brezžičnega dostopa do etherneta s pomočjo brezžičnega modula,

o rešitev mora biti hitra in cenovno sprejemljiva.

• Rešitev:

Kreiranje priklopne postaje, ki omogoča terminalu polnjenje baterije

1. UVOD 3

ob neuporabi, ob uporabi pa povezavo z visoko zmogljivim omrežjem. Prav

tako moramo realizirati hiter in učinkovit protokol za prenos podatkov od

terminala do priklopne postaje, sicer uporabljana povezava postane ozko

grlo sistema. Zahtevani protokol mora v celoti podpirati:

o zanesljiv prenos podatkov,

o varen prenos podatkov,

o preklope med žično in brezžično komunikacijo, ne da bi to

vplivalo na uporabniško izkušnjo ali na potek transakcij v

ozadju.

V diplomski nalogi predlagana in obravnavana rešitev je hitra in cenovno

ugodna, saj lahko ob osnovnih zmožnostih, ki so zgoraj navedene z zahtevami,

ponuja še možnost nadgradnje sistema za bodočo uporabo.

1.4 Struktura diplomskega dela

Za lažje razumevanje celotnega sistema je diplomska naloga razdeljena na

enajst poglavij.

Prvo poglavje razkriva uvodne misli in razlog za izvedbo takšnega sistema.

V drugem poglavju je na kratko opisan celoten transakcijski sistem, zahteve

za izdelavo sistema ter kratka primerjava med sistemi, ki so bili na voljo.

Tretje poglavje je namenjeno pregledu uporabljenih razvojnih orodij.

Uporabljena so tri razvojna orodja: TI CodeComposer, Keil uVision, in CodeGear

RAD Delphi.

V četrtem poglavju je podrobneje predstavljen prototipni sistem, ki smo ga

prejeli od podjetja NXP. Predstavljeni so tudi testi izvedeni z njim.

Peto poglavje opisuje implementacijo strojnega dela sistema (tiskano vezje in

komponente). V tem poglavju so opisane tri glavne revizije tiskanega vezja

priklopne postaje, razlike med njimi, ter izboljšave.

Šesto poglavje je namenjeno programskemu delu rešitve. V njem je opisana

rešitev s strani priklopne postaje ter s strani plačilnega terminala.

Sedmo poglavje vsebuje kratko primerjavo s podobnimi sistemi in razloge,

zakaj ti niso bili izbrani.

1. UVOD 4

Osmo poglavje opisuje možnosti in ideje za nadaljnje delo. Sistem, razvit v

okviru diplomske naloge je odlična odskočna platforma za nadaljnje delo. Deveto

poglavje je namenjeno zaključnim mislim in sklepom diplomskega dela.

V desetem poglavju je našteta literatura, v zadnjem poglavju pa priloge k

diplomi, ki zaključijo celotno delo.

5

2. ZASNOVA SISTEMA

2.1 Kratek opis celotne zasnove sistema

Sistem je zasnovan z namenom prenosa podatkov od plačniškega terminala do

procesnih centrov. V tem krogu ima vsaka naprava – gradnik sistema - svojo nalogo:

Slika 2.1: Shema prenosa informacij od plačniškega terminala do procesnega centra

Glavni gradniki sistema so:

• plačniški terminal – ki lahko komunicira s podatkovno postajo na dva

načina:

o neposredno preko priključkov na hrbtni strani (Konfiguracija 1,)

o preko brezžične povezave s pomočjo modula Zigbee

(Konfiguracija 2)

• priklopna postaja – ta je povezava na napajanje prek 12 V zunanjega

vira, za komunikacijo z zunanjim svetom pa uporablja povezavo

ethernet (prek osemžilnega UTP kabla)

• mrežna oprema za povezavo na internet (to so lahko usmerniki,

stikala, modemi…). Ti so na shemi simbolizirani z usmernikom.

Mrežna oprema se nato preko ISP ponudnika poveže na internet.

• Margento procesni center – je sistem naprav, ki omogočajo prenos,

shrambo in obdelavo podatkov. Najpomembnejši deli so:

2. ZASNOVA SISTEMA 6

o mrežna oprema – ki skrbi za pravilno delovanje strežnikov in

hkrati onemogoča neželen dostop

o strežniki na katerih tečejo:

� različne komponente za kodiranje – dekodiranje

podatkov in obdelavo le teh

� podatkovna baza za shranjevanje podatkov

Procesni center mora omogočati dostop tudi zunanjim komponentam,

saj preko teh ponudniki storitev ponujajo svoje storitve.

• tuji ponudniki storitev – če želimo prodajati artikle določenega

ponudnika, moramo pridobiti podatke, kateri produkti so na voljo,

koliko jih lahko prodamo in kakšna je njihova cena. Za to poskrbi

ponudnik s povezavo do podatkovne baze na Margento procesnem

centru ali pa se procesni center poveže s ponudnikovo podatkovno

bazo, ki vsebuje potrebne podatke.

V diplomski nalogi je kot glavna komponenta obravnavana priklopna postaja.

2.2 Zahteve za izdelavo priklopne postaje

Na začetku vsakega projekta je potrebno najprej definirati zahteve, s pomočjo

katerih lahko nato izberemo komponente sistema. Za izvedbo priklopne postaje so

bile postavljene naslednje zahteve:

• vgrajeni modul za povezavo na ethernet s čim manj komponentami,

• dovolj hiter procesor za izvajanje operacij kot so:

o obdelovanje paketov preko etherneta,

o sočasno izmenjevanje podatkov s plačniškim terminalom Margento mPOS,

• dovolj velik FLASH in RAM pomnilnik,

• dovolj veliko število modulov UART (potrebujemo štiri module UART),

• vodilo SPI za priključitev zunanjega FLASH in EERPOM pomnilnika,

• zagonski nalagalnik (»Boot Loader«,) in z njim možnost oddaljene posodobitve programske opreme priklopne postaje,

• možnost pridobitve sestavnih delov od podjetja, ki že sedaj skrbi za nabavo ostalih delov,

2. ZASNOVA SISTEMA 7

• možnost nadgradnje sistema,

• če je na voljo oprema za razvoj (JTAG, vezje za programiranje, razvojno okolje in vsa potrebna programska oprema),

• nizka cena.

Vse te zahteve definirajo, kakšno bo delovanje in končno ceno sistema. Ko so

bile definirane vse zahteve, smo z delom lahko nadaljevali, in sicer z iskanjem

komponent za izvedbo sistema.

2.3 Izbira komponent sistema

Najpomembnejša izbira pri implementaciji sistema je mikrokrmilnik, ki

predstavlja jedro platforme in brezžični modul, ki skrbi, da se podatki, ob odsotnosti

plačniškega terminala s priklopne postaje prenesejo k le-tej s pomočjo brezžične

povezave. Izbrani mikrokrmilnik je LPC2366 podjetja NXP, za brezžično

komunikacijo pa skrbi modul Zigbee. Pozornost smo namenili tudi dobaviteljem,

uvoznikom in distributerjem opreme. Pomemben faktor je tudi dosegljivost orodij za

delo z mikrokrmilnikom ter programska oprema, ki sodi zraven.

2.3.1 Mikrokrmilnik NXP LPC 2366

Ob upoštevanju navedenih zahtev je bil izbran sistem, ki temelji na

mikrokrmilniku z arhitekturo ARM in sicer LPC 2366 [1]. Mikrokrmilnik ponuja

rešitev na vse navedene zahteve, podpira frekvenco ure do 72 MHz, ima 4 ločene

module UART, dovolj FLASH in RAM pomnilnika, vsebuje vodilo SPI ter ima na

voljo zagonski nalagalnik (»Boot Loader«), s pomočjo katerega je lahko posodobimo

programsko opremo priklopne postaje z oddaljene lokacije. Njegove glavne

značilnosti so:

• 32 bitna ARM7TDMI-S arhitektura,

• 72 MHz ura procesorja

• 256 kb FLASH programskega pomnilnika,

• 58 kb SRAM pomnilnika,

• vgrajeni Ethernet modul 10/100 MAC z

DMA vodilom, Slika 2.2.1: LPC23xx

• podpora USB 2.0,

2. ZASNOVA SISTEMA 8

• 70 GPIO vhodov - izhodov

• 10 bitni ADC,

• 10 bitni DAC,

• integriran RTC ,

• I2S, trije I2C in SPI/SSP vmesniki,

• vsaki periferni napravi lahko posebej določamo uro,

• vektorska prekinitvena tabela.

Že po osnovnih karakteristikah lahko vidimo, da gre za kvaliteten in hiter

mikrokrmilnik. Za priklopno postajo so posebej pomembni UART vmesniki in

ethernet modul.

Na končnem sistemu mikrokrmilnik deluje s hitrostjo 60 MHz, saj je to za

trenutne potrebe sistema čisto dovolj, frekvenca pa omogoča - s pravilno izbiro

deliteljev - tudi zelo natančno nastavitev frekvenc za periferne vmesnike.

2. ZASNOVA SISTEMA 9

Slika 2.2: Blok diagram LPC23xx

Mikrokrmilnik vsebuje vgrajen ethernet MAC modul, ki se s modulom PHY

poveže preko vodila RMII za prenos podatkov in vodila MIIM za konfiguriranje in

krmiljenje modula. Vodilo RMII ni idealno, ker ima za prenos podatkov od in do

mikrokrmilnika na voljo le po dve liniji za sprejem in pošiljanje podatkov, kar

pomeni da mora delovati pri dvakrat višjih frekvencah, kot če bi bilo uporabljeno

vodilo MII:

[ ](vodila RMII)

hitrost povezave Mb/s 100= = = 50 MHz

število podatkovnih linij 2f (2.1)

medtem ko je hitrost vodila pri uporabi MII vmesnika za polovico manjša:

2. ZASNOVA SISTEMA 10

[ ](vodila MII)

hitrost povezave Mb/s 100= = = 25 MHz

število podatkovnih linij 4f (2.2)

Zaradi višje hitrosti povezave moramo nameniti več pozornosti načrtovanju

tiskanega veza, saj lahko ob neupoštevanju določenih pravil pride do

desinhronizacije podatkovnih in vzorčnih ur vodila. Glavne značilnosti modula MAC

so:

• 10 in 100 Mb/s PHY integrirana vezja s standardi 10 Base-T, 100 Base

-TX, 100 Base – FX in 100 Base-T4,

• polna podpora standardu IEEE 802.3,

• polni in polovični prenos podatkov (»full in half duplex«),

• fleksibilno pošiljanje in sprejemanje paketov,

• podpora VLAN okvirjem,

• neodvisni pomnilnik za pošiljanje in sprejemanje podatkov,

• DMA prenos podatkov,

• filtriranje sprejetih podatkov,

• pošiljanje enemu, mnogim ali vsem uporabnikom (»unicast«,

»multicast« in »broadcast«),

• avtomatsko vstavljanje CRC podatkov za pošiljanje,

• podpora nestandardnim okvirjem,

• avtomatsko ponovno pošiljanje podatkov, če pride do napake,

• »zbudi se« s pomočjo ethernet modula( wake-upon LAN event).

Slika 2.3: Blok diagram modula ethernet

2. ZASNOVA SISTEMA 11

Zakaj smo za sistem izbrali tako močan mikrokrmilnik za izvajanje preprostih

operacij, kot je prenašanje podatkov iz enega vmesnika na drugega? Res je, da za

preklopno postajo ne potrebujemo toliko hitrosti, saj se prenašajo majhni paketi, pa

še to največkrat le do deset paketov. Razlog za našo izbiro je poznejša nadgradnja

sistema. Sistem naj bi v prihodnosti znal v realnem času modulirati in demodulirati

zvočne signale, za kar pa potrebujemo večjo procesorsko zmogljivost.

2.3.2 Modul Zigbee PRO

Za brezžično povezavo plačilnega terminala do priklopne postaje smo izbrali

modul Zigbee (Xbee) PRO [4]. Glavne značilnosti tega modula so:

• deluje na frekvenčnem področju 2.4 GHz,

• moč izhodnega signala je 60W (18 dBm),

• doseg do 1.6 km,

• integrirana čip antena,

• možnost zunanje antene,

• preprosta komunikacija preko AT komand,

• omogočen tudi nizko porabni način delovanja,

• odobren za delovanje v ZDA, Kanadi, Avstraliji in Evropi.

Slika 2.4: Modul Zigbee PRO

Zigbee komunicira z mikrokrmilnikom preko RS232 vodila pri TTL nivojih

napetosti (3.3 V).

2. ZASNOVA SISTEMA 12

Slika 2.5: Primer povezave modula Zigbee

Zigbee ima dva glavna načina delovanja:

• komandni način, kjer lahko modul preko AT komand konfiguriramo,

ga posodabljamo.

• podatkovni način, ki služi za prenašanje podatkov med moduli.

Modul Zigbee je podobno kot moduli WiFi sposoben prenašati podatke v

načinu uporabnik – uporabniku, uporabnik – več uporabnikom ali uporabnik –

vsem uporabnikom (»unicast, broadcast in multicast«) načinih. Ima pa več

prednosti:

• velik doseg (govorimo o zračni liniji),

• možnost prenašanja točka do točke (»point to point«), pomeni, da lahko

imamo več modulov Zigbee v vrsti, ti pa si nato sami med sabo

posredujejo podatke. Ni nujno, da je pošiljatelj v dosegu sprejemnika,

zagotoviti je treba le, da je vmes dovolj modulov, ki sestavljajo mrežo

od pošiljatelja do sprejemnika,

• majhna obremenitev procesorja, saj mora ta le poslati in sprejeti

podatke, ne da bi se ukvarjal z nižjimi nivoji,

• preko izhoda RSII se lahko zajema moč signala, ki ga modul Zigbee

podaja s pomočjo PWM modulacije. Za pravilno delovanje pa mora

imeti modul Zigbee nastavljene določene parametre.

13

3. RAZVOJNO OKOLJE

Delo na projektu je potekalo v treh fazah:

• načrt in dizajn aplikacije na priklopni postaji,

• načrt in dizajn aplikacije na plačilnem terminalu Margento mPOS,

• načrt in dizajn aplikacije za testiranje učinkovitosti sistema.

Za vsako fazo je bilo potrebno svoje razvojno okolje:

• Keil ARM uVision IDE [2] – za razvoj programske rešitve na priklopni

postaji,

• TI Code Composer Studio [3] – za razvoj programske rešitve na

terminalu,

• CodeGear Rad Studio 2010 [6] – za razvoj testnega programskega

okolja.

3.1 Keil uVision 3 IDE

ARM uVision 3 IDE [2] proizvajalca KEIL je programsko okolje namenjeno

razvoju aplikacij na mikrokrmilnikih z ARM-ovim jedrom. Priklopna postaja

uporablja LPC 2366 procesor, ki vsebuje jedro ARM7TDMI-S. Programsko okolje

kombinira projektno vodenje, programiranje, razhroščevanje (v kombinaciji z uLINK

razhroščevalnikom,) in simulacijsko ogrodje. Orodje omogoča hitro zasnovo, nadzor

in produkcijo programskih rešitev.

Odlična je tudi prenosljivost kode med različnimi mikrokrmilniki v družini. To

je pomembno, saj je testni sistem vseboval mikrokrmilnik LPC 2378, na tej platformi

razvito kodo pa lahko nato brez problema prenesemo na končno verzijo opremljeno z

mikrokrmilnikom LPC2366. Uporabnik mora na začetku projekta le izbrati

platformo, na kateri razvija programsko opremo, in če uporabljano opremo nato želi

prenesti na drugo platformo, katere mikrokrmilnik je iz iste družine, samo zamenja

mikrokrmilnik v nastavitvah projekta, za vse ostalo pa poskrbi razvojno okolje.

Edino opravilo, ki je potrebno preden je programska oprema prenesena in deluje na

novi platformi, je sprememba naslovov perifernih vmesnikov ter nastavitev vhodov

in izhodov na katere so ti povezani.

3. RAZVOJNO OKOLJE 14

Pomembna je tudi dostopnost okolja. Pri izvedbi naloge smo za testne namene

pridobili v uporabo brezplačno demo verzijo okolja IDE uVision3, ki povsem

zadostuje za začetne korake razvoja.

Slika 3.1: IDE uVision3

Slika 3.1: uLINK 2 razhroščevalnik

3. RAZVOJNO OKOLJE 15

3.2 TI Code Composer Studio

Code Composer Studio IDE [3] je namenjen razvoju programskih rešitev za

mikrokrmilnike in DSP-je podjetja Texas Instruments.

Code Composer Studio omogoča razvoj in razhroščevanje programske kode na

vgrajenih aplikacijah. V njem je vgrajen urejevalnik za kodo, podpora tako za Texas-

ove razhroščevalnike kot tudi za razhroščevalnike drugih podjetij (v primeru razvoja

priklopne postaje se je uporabljal razhroščevalnik Blackhawk USB2000).

Slika 3.2: Code Composer Studio IDE

Slika 3.3: Blackhawk USB2000 razhroščevalnik

3. RAZVOJNO OKOLJE 16

3.3 CodeGear Rad Studio - demo

CodeGear Rad studio [6] (sedaj od podjetja Embarcadero,) ponuja programsko

okolje za pisanje okenskih (»windows«) aplikacij v programskem jeziku Delphi, ki

ga je mogoče brezplačno testirati do 30 dni. V njem se nahajajo že vse standardne

knjižnice, ki so potrebne za osnovno delo za obdelavo datotek, periferije in

grafičnega vmesnika. Dodani sta še dve eksterni komponenti, za lažje delo s

serijskim vmesnikom in mrežno povezavo. Te komponente so:

• ComPort komponenta,

• OverByte ICS za delo z mrežno opremo.

Programsko orodje smo izbrali zaradi predhodnega poznavanja, saj smo z njim

že razvijali podobne aplikacije. Orodje smo uporabili za kreiranje stres testov

aplikacije, ki je testirala demo sistem in nato še končno platformo priklopne postaje.

17

4. PROTOTIP SISTEMA

4.1 Opis prototipa sistema

Po končni odločitvi glede platforme, na kateri bo temeljil razvoj priklopne

postaje, smo morali platformo pred nadaljnjim razvojem preizkusiti. V ta namen smo

od distributerja EVB pridobili vzorec razvojne plošče »ChameleonARM«

proizvajalca NXP [1].

Pri NXP-ju se je ideja za ta razvojni sistem porodila, ko je na trg prišla nova

družina 32-bitnih ARM 7 mikrokrmilnikov LPC23xx. Bistven sestavni del te družine

mikrokrmilnikov je vgrajeni ethernet modul.

Glavna komponenta prototipa je mikrokrmilnik LPC2378 z ARM7TDMI-S

jedrom. Mikrokrmilnik ima vgrajen ethernet MAC modul, ne pa tudi fizičnega za

neposredno povezavo na ethernet. To pomeni, da je potrebno dodati zunanji modul

PHY, ki se na mikrokrmilnik poveže preko RMII vodila za prenos podatkov in MIIM

vodila, za krmiljenje modula PHY. Ta nato omogoča neposredno povezavo na

ethernet priključek (vmes je le še transformator 1:1 in nekaj pasivnih komponent,)

preko RJ45 vtikača. Ploščica vsebuje tudi druge standardne vmesnike kot so UART,

SPI, I2C, I2S, in JTAG.

Slika 4.1: ChameleonARM testna ploščica

4. PROTOTIP SISTEMA 18

4.2 Implementacija testnega okolja

Po pregledu dokumentacije za testno ploščico smo lahko začeli z njo tudi

eksperimentirati. Najprej smo pripravili razvojno okolje IDE uVision3 in

razhroščevalnik uLINK2. Ko je bilo vse to urejeno, smo lahko začeli s prvim

testiranjem testne ploščice. NXP doda zraven testne platforme tudi nekaj demo

programov. Te smo preizkusili najprej. S tem je bil pridobljen tudi prvi vtis, kako

deluje razvojno okolje, JTAG in testna ploščica.

V priloženih demo programih je največ pozornosti vzbudila testna aplikacija

»EasyWEB«. Aplikacija ponuja izpis preproste spletne strani z mikrokrmilnikom. V

ta namen uporablja nizko potrošni TCP/IP sklad. Uporabnik mora samo pravilno

nastaviti podatke IP vmesnika in aplikacija že deluje. S tem testom smo ugotovili, da

je mikrokrmilnik sposoben hitro in učinkovito izmenjevati podatke preko ethernet

vmesnika.

Naslednji korak je bil stres test aplikacije. Želeli smo izvedeti več o obnašanju

mikrokrmilnika, pod določenimi pogoji delovanja. Zelo pomembno je kako hitro

lahko podatke sprejema in oddaja preko ethernet vmesnika, ter nato dobljene podatke

pošlje naprej prek vodila RS232 k drugi napravi. Za to napravo smo napisali

aplikacijo, ki je bila zadolžena za preverjanje hitrosti in učinkovitosti pošiljanja

podatkov preko serijske in ethernet povezave.

4.3 Aplikacija za testiranje prototipnega sistema

4.3.1 Kratek opis

Potreba po aplikaciji, ki testira sistem (uporabljena pa je bila tudi za testiranje

končnega sistema,) je bila velika, saj smo le tako mogli določiti meje zmogljivosti

mikrokrmilnika.

Aplikacija smo izdelali v IDE CodeGear 2010, s programskim jezikom Delphi.

Razvojno okolje je primerno za hiter razvoj okenskih (»windows«) aplikacij, hkrati

pa so bili na voljo nekateri že ustvarjeni deli programske opreme, ki so poenostavili

razvoj aplikacije.

4. PROTOTIP SISTEMA 19

Slika 4.2: Aplikacija za stres test sistema

4.3.2 Delovanje

Za pravilno delovanje aplikacije morajo , biti izpolnjeni naslednji pogoji:

• pravilno konfigurirana serijska povezava RS232,

• pravilno vmesna IP naslov in vrata,

• pravilno nastavljeni parametri testa:

o zakasnitev povezave (»Connection delay«) – čas, ki pove

aplikaciji kako dolgo naj čaka po prejemu zadnjih podatkov

pred začetkom novega testa. Pozorni moramo biti na minimalni

čas:

t min zakasnitev povezave = t min odpiranja IP povezave + t min zapiranja IP povezave + t

čas potovanja paketa

o zakasnitev pošiljanja (»Transmit delay«) – čas, ki določa kako

hitro si sledijo paketi eden za drugim.

o zakasnitev odgovora (»Delay response«) – čas, ki določa kako

dolgo PC zakasni odgovor, ko prejme paket preko IP-ja

4. PROTOTIP SISTEMA 20

Ti parametri so kritični, saj se moramo zavedati, kaj lahko

pričakujemo od sistema. Tako recimo zakasnitev pošiljanja ne sme

biti manjša kot je čas celotnega potovanja paketa (»Round trip«).

t potovanja paketa = 2 * tprenos preko RS232) + 2 * tprenos preko etherneta + tzakasnitev

na strežniku

Aplikacija deluje na način prenašanja podatkov do in iz priklopne postaje

preko ethernet vmesnika in serijske povezave RS232. Deluje na naslednji način:

• preko povezave RS232 podamo ukaz za odpiranje IP povezave,

• takoj, ko se povezava vzpostavi, se pošlje preko strežnika prvi paket

mikrokrmilniku,

• nato se izmenja 12 (ali več) paketov različne velikosti (od 100 b do 1.4

kb), ti paketi potujejo preko vmesnika UART na mikrokrmilnik, ki jih

prenese na ethernet povezavo, preko katere nato potujejo nazaj na

računalnik kjer jih sprejme strežnik TCP, ta pa nato podatke spet pošlje

nazaj proti mikrokrmilniku (preko etherneta), ki jih sprejme in jih preko

vmesnika UART vrne nazaj na računalnik,

• ko so bili vsi paketi poslani, pošljemo ukaz za zapiranje IP povezave

Slika 4.3: Pregled prenosa podatkov med testnim programom in priklopno postajo

Pri vsakem sprejemu na PC-ju se tudi preveri pravilnost prejetih podatkov. Če

so bili vsi podatki pravilno sprejeti in poslani v vsaki točki, je test uspešen.

4. PROTOTIP SISTEMA 21

4.4 Rezultati testiranja testnega sistema

Opravili smo testiranja pri več različnih velikostih paketov in različnih

konfiguracijah testnega okolja. Uporabili smo sledeče konfiguracije:

• konfiguracija 1:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 1 s

o zakasnitev pošiljanja: 1 s

o zakasnitev odgovora: 2 ms

o baud: 19200

• konfiguracija 2:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 1 s

o zakasnitev pošiljanja: 1 s

o zakasnitev odgovora: 2 ms

o baud: 115200

• konfiguracija 3:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 0,5 s

o zakasnitev pošiljanja: 0,3 s

o zakasnitev odgovora: 0 s

o baud: 115200

• konfiguracija 4:

o zunanji IP 213.xxx.xxx.xxx

o zakasnitev povezave: 2 s

o zakasnitev pošiljanja: 0,4 s

o zakasnitev odgovora: 0 s

o baud: 115200

4. PROTOTIP SISTEMA 22

Rezultati:

Tabela 4.1: Rezultati pri prenosu paketov velikosti 100 b

Parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 60~70 110 46 171 187 234

2 60~70 94 0 93 109 109

3 60~70 94 0 93 93 93

4 140~160 188 0 125 125 188

Slika 4.4: Rezultati pri prenosu paketov velikosti 100 b

Tabela 4.2: Rezultati pri prenosu paketov velikosti do 400 b

Parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 v 110 187 328 344 531

2 60~70 94 31 125 141 172

3 60~70 94 31 125 125 165

4 140~160 188 31 156 156 234

4. PROTOTIP SISTEMA 23

Slika 4.5: Rezultati pri prenosu paketov velikosti do 400 b

Tabela 4.3: Rezultati pri prenosu paketov velikosti 1 kb

parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 60~70 110 531 666 672 1188

2 60~70 94 78 187 203 297

3 60~70 94 78 187 187 281

4 140~160 188 78 235 235 375

4. PROTOTIP SISTEMA 24

Slika 4.6: Rezultati pri prenosu paketov velikosti 1 kb

Iz rezultatov lahko razberemo, da je čas prenosa odvisen predvsem od velikosti

paketa in hitrosti prenosa paketa po serijski povezavi. Test je tudi pokazal

pomembnost odpiralnih in zapiralnih časov IP povezave, saj se takrat na IP povezavi

porabi največ časa, ko pa je IP povezava vzpostavljena, se podatki zelo hitro

prenesejo. Potreben čas za odpiranje IP povezave je odvisen tudi od lokacije

strežnika, na katerega se sistem povezuje; če je strežnik lokalen, se povezava

vzpostavi zelo hitro, v nasprotnem primeru pa postopek traja dlje. Prav tako je

razvidna razlika, če se na nek strežnik povezujemo prvič, saj se mora takrat izvesti

ARP protokol (»Address Resolution Protocol«) – protokol, ki na osnovi podanega IP

naslova pridobi MAC naslov strežnika), ki pridobi MAC naslov prejemnika, v

nasprotnem primeru pa ima ta naslov shranjen v tabelah že uporabljenih MAC

naslovov.

Rezultati dajejo jasno sliko, da je IP povezava stabilna in dovolj hitra za sistem

priklopne postaje, hkrati pa lahko iz testov razberemo, da ko se bo začela načrtovati

priklopna postaja, bo potrebno nekaterim stvarem nameniti več pozornosti.

25

5. IZVEDBA STROJENGA DELA SISTEMA

5.1 Opis strojnega dela sistema

Strojni del priklopne postaje je preprost; vse, kar mora zagotavljati je

zanesljiva povezava do strežnikov, in s tem do procesnih centrov, preko etherneta.

Prvi korak je implementacija povezave terminala in priklopne postaje preko

serijskega vmesnika RS232 z uporabo učinkovitega protokola. Glavna komponenta

sistema je mikrokrmilnik LPC2366, ki je izvedenka v testnem sistemu uporabljenega

mikrokrmilnika LPC2378.

Na tiskanini priklopne postaje je prišlo tudi do nekaterih sprememb;

najpomembnejša je, da smo zaradi veliko manjše cene zamenjali modul PHY na

plošči, in sicer DP83848, z ADM7001. Mikrokrmilnik podpira štiri vmesnike UART,

preko katerih priklopna postaja komunicira s terminalom, zunanjimi napravami in

modulom Zigbee:

� UART 0 je namenjen neposrednemu programiranju priklopne postaje,

in tudi povezavi eksternih naprav na priklopno postajo,

� UART 1 je namenjen neposredni povezavi terminala z priklopno

postajo, ko je terminal prisoten,

� UART 2 trenutno ni uporabljan,

� UART 3 je namenjen povezavi z modulom Zigbee

Priklopna postaja vsebuje tudi različne spominske module, kot sta EEPROM in

FLASH pomnilnik, ki komunicirata z mikrokrmilnikom preko SPI vodila.

5.2 Razvoj tiskanega vezja

Tiskano vezje smo razvili s pomočjo programa Altium Designer. Poleg zgoraj

opisanega mikrokrmilnika in modula Zigbee vsebuje tiskano vezje za pravilno

delovanje še:

5. IZVEDBA STROJENGA DELA SISTEMA 26

• Napetostni regulator, ki zagotavlja pravilne nivoje napetosti za

mikrokrmilnik in periferijo,

• modul PHY za povezavo mikrokrmilnika na ethernet,

• modul MAX 232; ta skrbi za pretvorbo TTL signalov v RS232 nivoje,

• vse potrebne korektorje za različne povezave,

• LED diode, ki služijo za lepšo uporabniško izkušnjo.

Za razvoj vezja so bile potrebne tri revizije, od katerih vsaka odpravlja težave

od prejšnje in s tem izboljšuje delovanje priklopne postaje.

Slika 5.1: Blok diagram priklopne postaje

5. IZVEDBA STROJENGA DELA SISTEMA 27

Slika 5.2: Priklopna postaja revizija C

5.2.1 Revizija A

Revizija A je bila prva izvedba tiskanega vezja priklopne postaje. Na tiskanino

smo prenesli aplikacijo, ki je prej tekla na testnem sistemu. Preneseno aplikacijo smo

morali nato najprej prilagoditi za nov sistem. Prilagoditev smo izvedli z izbiro

novega procesorja, ter modifikacijo zagonskih (inicializacijskih) rutin v programski

kodi. Po dolgotrajnih testiranjih smo ugotovili, da na linijah od mikrokrmilnika in

PHY modula manjkajo tako imenovani potegni-navzgor in potegni navzdol (»Pull-

Up« in »Pull-Down«) upori. Posledica je bila da je pri inicializaciji ethernet modula

MAC koda prišla do določene vrstice, potem pa je odpovedal razhroščevalni

protokol, in s tem povzročil ponovni zagon mikrokrmilnika.

Po dolgotrajnem testiranju in merjenju linij, ki tečejo med mikrokrmilnikom in

PHY modulom ter poglobljenem preučevanju dodatne dokumentacije, smo našli

rešitev. Dodali smo potrebne dodatne upore, ki so stabilizirali sistem. S tem smo

lahko nadaljevali z naslednjim korakom razvoja.

Ena od najdenih napak na reviziji tiskanine A so bile po pomoti zamenjani

povezavi za serijski vmesnik 1 in 2.

5. IZVEDBA STROJENGA DELA SISTEMA 28

Slika 5.3: Priklopna postaja revizija A

5.2.2 Revizija B

V reviziji B smo odpravili vse slabosti in napake tiskanine v reviziji A. To je

občutno pripomoglo k stabilnosti sistema, s tem pa smo dosegli tudi želeno izhodišče

za prva testiranja. Na testiranjih smo ugotovili, da se včasih pojavlja nestabilnost

modula PHY; ta je lahko namreč le pošiljal podatke, ne pa tudi sprejemal. Velik

problem je predstavljalo tudi dejstvo, da napaka ni ponovljiva, temveč se dogaja

naključno. Po nadaljnjih testih in raziskavah smo opazili, da se modul PHY ob

določenih začetnih pogojih ne zažene in nastavi pravilno.

Napaka je bila odpravljena z naslednjimi modifikacijami programske opreme:

• dodali smo daljši čas pred začetkom inicializacije modula PHY,

• modificirali smo zagonske (inicializacijske) rutine, vstavili nekaj kratkih

prekinitev med ključnimi koraki, ki so stabilizirali začetni sistem,

• na višjem nivoju smo realizirali sistem, ki lahko v določenih primerih zazna

neodzivnost sistema, in temu primerno ukrepa,

• konfiguracija IP vmesnika pa je bila spremenjena; pri vključeni avtomatski

pridobitvi mrežnih nastavitev (»Auto-Negotiation«) je vsiljena nižja hitrost

povezave (namesto 100 Mb/s sedaj sistem vsili 10 Mb/s).

5. IZVEDBA STROJENGA DELA SISTEMA 29

Vsak od teh korakov je pomenil korak naprej k večji stabilnosti sistema.

Čeprav še vedno ni bilo doseženih 100 % povezljivosti, je bila dosežena uspešnost

več kot 99 %. Ko se modul poveže, bo deloval brez težav, dokler ne pride do izklopa

in ponovnega vklopa naprave.

5.2.3 Revizija C

Pri reviziji B smo opazili pregrevanje modula PHY. Možen razlog je bil, da se

izhodni transformator napaja preko internega regulatorja modula PHY, ki deluje na

2,5 V. V reviziji C smo z namenom zmanjšati pregrevanje modula PHY

eksperimentirali z višjim napajanjem transformatorja. Pri raziskavah podobnih

sistemov je bilo opaženo, da nekateri moduli priključijo napajanje omenjenega

transformatorja namesto preko internih 2,5 V neposredno na glavno napajanje, ki je

3,3 V. Odločili smo se, da tudi mi poskusimo to modifikacijo.

Za ta korak ni bila potrebna izdelava novega tiskanega vezja, ročno sta bila

dodana dva kondenzatorja, ter povezava na novo napajanje z napetostjo 3,3 V.

Izkazalo se je, da rešitev pripomore k stabilizaciji sistema. S tem smo odpravili

skoraj vse težave z začetnim povezovanjem modula v omrežje.

Slika 5.4: Revizija C tiskanine priklopne postaje

5. IZVEDBA STROJENGA DELA SISTEMA 30

Ker rešitve za stabilizacijo modula ethernet nismo našli v programskem delu,

je bil naslednji korak ponovni pregled tiskanega vezja. Najbolj očitni vzrok bi lahko

bila zamenjava modula PHY saj ta ni bil enak kot modul uporabljan na testnem

sistemu. Zato smo sprejeli odločitev, da vzamemo en sistem priklopne postaje, z nje

odstranimo modul PHY, namesto njega pa povežemo mikroprocesor na omrežje

ethernet preko modula PHY s testnega sistema. To smo dosegli tako, da smo

mikroprocesor povezali neposredno na modul PHY testnega sistema z uporabo

testnih žic (Slika 5.5).

Slika 5.5: Povezava mikrokrmilnika z našega sistema na modul PHY testnega sistem

Po testiranju smo prišli do zaključka, da sistem z modulom PHY deluje bolje,

čeprav je mikroprocesor povezan preko zelo dolgih linij, ki so neprimerne za

delovanje pri uporabljani frekvenci. Sistem je bil zmožen delovati na višji hitrosti

povezave (100 Mb/s, polni dupleks).

Čeprav smo pregledali vse možne vzroke za občasno nedelovanje modula PHY

v sistemu priklopne postaje, za probleme s povezavo ne moremo kriviti izključno

modul PHY, saj je programska oprema prirejena za delovanje modula v testnem

sistemu. S tem v mislih bomo še naprej raziskovali možne programske rešitve

problema. Sam problem nestabilnosti je minimalen, saj je možnost da se pojavi

majhna in še to samo ob zagonu. Če je sistem nato vseskozi priključen, bo deloval

brez vsakega problema. Napaka je bila testirana več kot štiri mesece, a se kljub

ekstremnim pogojem testa ni ponovila več kot enkrat.

31

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA

6.1 Opis programskega dela sistema

Programska rešitev je razdeljena na dva dela, saj je delo potekalo na dveh

platformah:

• programska izvedba na priklopni postaji (ARM procesor), izvedena v

programskem okolju Keil uVision 3,

• programska izvedba na plačniškem terminalu Margento mPOS (TI DSP

procesor TMS320Fxxxx) izvedena v programskem okolju TI

CodeComposer Studio 3.3.

V tem delu diplome bo opisana realizacija programskega dela na obeh

sistemih. Najpomembnejši deli realizacije delovanja sistema so:

• skupno na platformi priklopne postaje in plačniškega terminala

o protokol za nemoten in zanesljiv ter hiter prenos podatkov med

sistemoma,

o celotna implementacija modula Zigbee,

o implementacija nižje nivojskih algoritmov RS232 za nemoteno

in pravilno sprejemanje ter oddajanje podatkov preko serijskega

vmesnika,

o avtomatski preklop med žično in brezžično povezavo.

• na platformi priklopne postaje

o realizacija ogrodja sistema,

o implementacija povezave z ethernetom.

• na platformi plačniškega terminala

o zagotoviti nemoteno povezavo z aplikacijskimi nivoji,

o omogočiti izbiro komunikacijskega kanala brez zamenjave

programa procesorja,

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 32

o vse nastavitve za priklopno postajo in plačniški terminal morajo

biti na voljo za prikaz in spremembo uporabniku preko

grafičnega vmesnika.

6.2 Protokol za prenos podatkov med plačilnim terminalom in priklopno postajo

Med plačniškim terminalom in priklopno postajo je implementiran tako

imenovan protokol UTPRO, ki komunicira po načinu nadrejeni – podrejeni

(»Master-Slave«). Nadrejeni predstavlja plačniški terminal, podrejeni pa priklopna

postaja. Protokol je bil izbran na osnovi prejšnje uporabe in zanesljivosti.

Komunikacija poteka tako, da nadrejeni vsake toliko časa vpraša podrejenega,

kakšno je njegovo stanje, podrejeni pa nato nadrejenemu odgovori, kaj trenutno dela.

Če je podrejeni v pripravljenosti na sprejem ukazov, potem lahko nadrejeni le-te

začne pošiljati.

Protokol UTPRO temelji na paketnem prenosu podatkov; to pomeni, da

obsežnejše informacije razdeli na manjše dele, in jih v paketnem načinu pošlje do

prejemnika. Protokol za boljšo preglednost prenosa podatkov pretvori vse binarne

podatke v znakovni niz. Slaba stran znakovnega pošiljanja podatkov je velik balast,

saj vsak za vsakih osem bitov podatkov (en znak,) pošljemo preko protokola šestnajst

bitov (dva znaka).

Slika 6.1: Povezava plačilnega terminala do procesnega centra

6.2.1 Kompozicija paketov

V osnovi se paketi delijo na dva dela; pakete, ki jih pošilja nadrejena naprava,

in pakete, ki jih pošilja podrejena naprava.

Slika 6.1: Primer paketa nadrejene naprave s tremi parametri

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 33

Slika 6.2: Primer paketa nadrejene naprave brez parametrov

Slika 6.3: Primer odgovora podrejene naprave na zahtevo nadrejene

Tabela 6.1: Opis podatkovnih polj v paketih

ZNAK OPIS

TX ASCII znak 0x02 določa začetek paketa,

LEN določa dolžino paketa

SES menjajoča se enka in nula skrbi za zanesljivost pošiljanja

podatkov

COM ukaz

RES rezultat operacije :

• 0 – operacija uspešna

• ostale številke – številka napake

STAT trenutno stanje podrejene naprave

PART1 prvi parameter

PART2 drugi parameter

PART3 tretji parameter,

[ | ] znak za konec podatkovnega polja

CRC CRC polje skrbi za pravilnost prispelih, oddanih podatkov

(Cyclic Redundancy Check)

ETX ASCII znak 0x03 – za identifikacijo konca paketa

Nadrejena naprava nato podrejeni pošilja ukaze, ki jih nato podrejena naprava

izpolnjuje. Ti ukazi so:

• RESET paket

o NADREJENA NAPRAVA: pošlje zahtevo za ponovni zagon

priklopne postaje

o PODREJENA NAPRAVA: odgovori s statusom uspeha prejema

signala in izvede ukaz

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 34

• STATUS paket

o NADREJENA NAPRAVA: zahteva trenutni status priklopne

postaje

o PODREJENA NAPRAVA: odgovori z statusom uspeha

prejema signala in trenutnim statusom. Ti statusi so lahko:

� čakam na konfiguracijo,

� se konfiguriram,

� izvajam DHCP operacije - čakam na dinamično

dodelitev IP konfiguracije podatkov,

� konfiguriran in pripravljen na IP operacije,

� odpiram IP povezavo,

� prejeti podatki preko etherneta,

� zapiram IP povezavo,

� prišlo je do napake, ponovno pošlji zadnji paket.

• IP – START

o NADREJENA NAPRAVA: pošlje podatke o nastavitvi IP

vmesnika. Ti podatki so sestavljeni iz:

Tabela 6.2: Opis podatkov IP vmesnika

podatek velikost

[zlogi]

opis

MAC 12 MAC

IP 8 IP

GW 8 PREHOD

Mask 8 MASKA OMREŽJA

PDNS 8 PRIMARNI DNS

SDNS 8 SEKUNDARNI DNS

o PODREJENA NAPRAVA: če je ukaz uspešno sprejet, se

podatki o povezavi zapišejo v delovni ram, hkrati pa se poda

spodnjim nivojem aplikacije ukaz za začetek IP operacij. Če je

omogočena dinamična pridobitev mrežnih podatkov se požene

DHCP klient.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 35

• IP – POŠLJI KONFIGURACIJO paket

o NADREJENA NAPRAVA: pošlje zahtevo po trenutnih IP

nastavitvah

o PODREJENA NAPRAVA: če je ukaz uspešno sprejet, suženj

odgovori z zahtevanimi podatki, ki vsebujejo trenutno

konfiguracijo IP vmesnika

• IP – ODPRI POVEZAVO paket

o NADREJENA NAPRAVA: pošlje zahtevo po odprtju IP

povezave; zahteva vsebuje tudi IP naslov ter vrata strežnika, na

katerem teče procesni center

o PODREJENA NAPRAVA: če je ukaz sprejet, se poda nižjim

nivojem zahteva po povezavi, gospodarju pa se javi status

čakanja na povezavo

• IP – ZAPRI POVEZAVO paket

o NADREJENA NAPRAVA: pošlje zahtevo po zaprtju IP

povezave

o PODREJENA NAPRAVA: če je ukaz sprejet, se poda nižjim

nivojem zahteva po zaprtju povezave; spodnji nivo potem

najprej pogleda, če povezava sploh obstaja; v primeru da še

čakamo na odgovor vzpostavitve povezave, se IP povezava

lokalno zapre in izbriše, v nasprotnem primeru, ko je povezava

vzpostavljena, pa se začne FIN procedura za zapiranje IP

povezave.

• IP – POŠLJI PAKET paket

o NADREJENA NAPRAVA: pošlje zahtevo po predaji paketa na

IP povezavo (vključno s podatki, ki so kriptirani.)

o PODREJENA NAPRAVA: če je ukaz uspešno sprejet, in je IP

povezava na voljo, se paket prenese v ethernet pomnilnik in

pošlje naprej proti PHY modulu; hkrati pa odgovori gospodarju

z rezultatom operacije.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 36

• IP – PREDAJ PAKET paket

o NADREJENA NAPRAVA: iz stanja podrejene naprave je

razbral da ima ta na voljo enega ali več podatkov iz IP

povezave. S tem ukazom od njega zahteva predajo podatkov.

o PODREJENA NAPRAVA: ob uspešno prejeti zahtevi se

nadrejeni napravi preda podatke, in javi trenutni status.

• IP – PONOVNO POŠLJI ZADNJI PAKET paket

o NADREJENA NAPRAVA: ugotovi, da je pri sprejemu prišlo

do napake (neprimerna dolžina, potekel časovnik za

sprejemanje, padel CRC…) in zahteva ponovno pošiljanje istih

informacij

o PODREJENA NAPRAVA: v primeru te zahteve podrejena

naprava pogleda, kateri paket je bil poslan zadnji, in če je ta še

na voljo, ga ponovno pošlje k nadrejeni napravi

• SHRANI ZIGBEE KONFIGURACIJO paket

o NADREJENA NAPRAVA: podobno kot se pošlje konfiguracija

za pravilno delovanje IP vmesnika, se pošlje tudi konfiguracija

za pravilno delovanje brezžične povezave modula Zigbee.

o PODREJENA NAPRAVA: če so podatki pravilno sprejeti

poskusi z njimi konfigurirati modul Zigbee. Nadrejeni napravi

se pošlje rezultat uspešnosti sprejemanja podatkov.

• PODAJ KONFIGURACIJO ZIGBEE MODULA paket

o NADREJENA NAPRAVA zahteva konfiguracijske parametre

modula Zigbee

o PODREJENA NAPRAVA če je ukaz veljaven, podrejena

naprava najprej prebere trenutno konfiguracijo modula Zigbee,

nato pa iz nje tvori Zigbee konfiguracijski paket in ga pošlje

proti nadrejeni napravi. V tem času so vsi drugi paketi od

nadrejene naprave zavrnjeni, komunikacija preko modula

Zigbee pa je za čas branja parametrov onemogočena.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 37

6.2.2 Zanesljivost protokola

Bistvena pri izmenjavi podatkov med plačniškim terminalom in priklopno

postajo je zanesljivost pošiljanja podatkov. To smo dosegli z implementacijo

naslednjih varnostnih ukrepov:

• znakovno pošiljanje podatkov je veliko lažje za pregled (čeprav ni

učinkovito), hkrati pa lahko uporabimo posebne znake za začetek, konec in

razdeljevanje paketa.

• CRC (»Cyclic Redundancy Check«) je oblika preverjanja pravilnosti

prejemanja podatkov. Deluje na sledeči način:

Ko pošiljatelj sestavi paket, se čez podatkovno polje izračuna preko

posebnega algoritma varnostno polje (CRC), dolgo 16 bitov, ki se nato

doda na konec poslanega paketa. Ko sprejemnik sprejme podatke, uporabi

isti algoritem, in če je rezultat algoritma isti kot varnostno polje v poslanih

podatkih, lahko sklepa, da so prejeti podatki pravilni.

• pregled seje (»Session Check«). V tem delu paketa se pošiljata menjajoči se

števili, to je ena in nič. Sprejemnik ob vsakem uspešnem sprejemu to

številko zamenja pri pošiljanju naslednjega paketa. Tako lahko sprejemnik,

ki sprejemanju naslednjega paketa ve, ali je to v resnici drug paket ali pa je

ponovno poslan isti paket. V primeru istega paketa se podatki zavržejo,

oddajniku pa se pošlje zahteva po novem paketu.

• Pri nadrejeni napravi je implementiran časovnik, ki določa maksimalno

zakasnitev odgovora. V primeru da tega odgovora ni, se ponovno pošlje isti

paket, oziroma se zahteva status podrejene naprave. Če tudi v treh poskusih

ni odgovora, in je komunikacija do sedaj potekala preko žične povezave, se

domneva, da je terminal odstranjen iz priklopne postaje. Povezava pa se

avtomatsko preklopi na brezžično. Spet se pošlje isti paket in čaka na

odgovor.

Vsi ti varnostni ukrepi zagotavljajo zanesljiv pretok podatkov od ene naprave

do druge. Vsa podatkovna polja, ki vsebujejo podatke o transakcijah so še dodatno

kriptirana na kripto nivoju aplikacije v plačniškem terminalu.

Protokol ima več pomanjkljivosti, od katerih najbolj izstopajo:

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 38

• velik balast pri prenosu podatkov - za vsak znak se mora poslati dva

znaka, to pomeni porabe več resursov na obeh platformah (RAM in moč

procesorja),

• nima možnosti prenosa več paketov naenkrat - s tem se drastično

zmanjša učinkovitost prenosa podatkov, saj se ne izkoristi polni dupleks

tako serijske kot ethernet povezave,

• okrnjena učinkovitost prenosa podatkov - zgornja omejitev tako

preprečuje visoko učinkovit prenos podatkov po metodi drsečega okna,

tako preko IP povezave kot preko serijske povezave, to pomeni ponovno

drastično zmanjšanje učinkovitosti,

• kontrolni podatki poslani zadnji - CRC je zadnji podatek v paketu –

najbolj pomembni (kontrolni) podatki bi morali biti poslani najprej, in

šele nato bi bili poslani manj pomembni podatki.

Zakaj je bil torej izbran ta protokol kljub tako izrazitim pomanjkljivostim? Pri

razvoju novih naprav je zelo pomemben t.i. čas do trga (»Time To Market«), ki

predstavlja čas od začetka razvoja naprave, do časa, ko naprava pride na trg. Ker

vsaka novost - v tem primeru razvoj novega protokola - terja čas za razvoj in nato

testiranje, smo v našem primeru izbrali že obstoječi protokol, ki sicer ni idealen za

obstoječe razmere, je pa že preizkušen in zanesljivo deluje v drugih aplikacijah.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 39

6.2.3 Primer komunikacije med terminalom in priklopno postajo

Slika 6.4: Primer poteka komunikacije med plačilnim terminalom, priklopno postajo

in Margento procesnim centrom

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 40

6.3 Programska rešitev na priklopni postaji

6.3.1 Ogrodje sistema

Ogrodje sistema predstavlja preprost operacijski sistem. V okviru

operacijskega sistema se izvajajo različna opravila:

• zagonske (inicializacijske) rutine – skrbijo za predpripravo aplikacije,

ter pravilen zagon sistema

• prekinitvene rutine – skrbijo za obravnavanje prekinitvenih zahtev; te

lahko pridejo z več naslovov:

o ethernet,

o AD pretvornik,

o katerikoli od štirih vmesnikov UART.

• ethernet operacije – tukaj je glaven del procesiranje sprejetih in

oddajnih paketov preko TCP/IP sklada

• Zigbee operacije – poskrbijo, da poteka vse kar je povezano z

brezžičnim prenosom paketov vedno v pripravljenosti

• serijske operacije – skrbijo za prenos podatkov preko RS232

vmesnikov

• transportne aplikacije (protokol UTPRO) – poskrbi za pravilno

izvajanja protokola za prenos podatkov med terminalom in priklopno

postajo

• aplikacijski nivo (logika za procesiranje in izmenjavo podatkov) -

najvišji obstoječi nivo, ki povezuje vse nižje ležeče nivoje ter skrbi za

pravilno izvajanje vseh opravil pod sabo

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 41

Slika 6.5: Shema programske opreme priklopne postaje

6.3.2 Implementacija ethernet vmesnika

Najpomembnejši del sistema je modul ethernet, ki komunicira z omrežjem

preko standarda IEEE 802.3. Ta je že vgrajen (z izjemo modula PHY) v

mikroprocesor. Mikroprocesor se poveže na modul PHY z vodilom RMII za prenos

podatkov in vodilom MIIM, za konfiguriranje in kontrolo modula PHY. Modul

potrebuje za delovanje TCP/IP sklad. Ta del programske opreme skrbi za pravilno

sestavljanje in razstavljanje paketov in pravilno delovanje v primeru napak

pošiljanja. Ker je to zelo kompleksen kos programske opreme, smo se odločili, da se

le-ta najde že narejen, in se samo prenese na priklopne postaje sistem.

V ta namen je smo poiskali najprimernejši TCP/IP sklad. Dobra poskusna

verzija, ki so nam jo priporočili tudi distributerji in programski inženirji s podjetja

NXP, in je že prirejena za družino LPC23xx mikrokrmilnikov je bila najdena pri

Interniche Technologies. To smo nato morali prilagoditi za potrebe priklopnega

sistema, kar ni bil problem, ker je na voljo zadostna količina dovolj dobre

dokumentacije za dobro razumevanje.

Malo več dela je bilo s prilagoditvijo novega modula PHY. Čeprav je videti, da

imata s starim modulom iste programske registre, to ni povsem res. Zato smo morali

nastaviti tip povezave, ki povezuje mikrokrmilnik povezan z eksternim modulom

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 42

PHY. Podatkovna povezava med mikrokrmilnikom in modulom PHY poteka preko

RMII vodila. Zagotoviti smo morali, da program preverja pravilno identifikacijsko

kodo modul ob zagonu, saj s tem preveri, če je povezan na pravilni modul PHY.

Pozornost smo namenili tudi povezavi modula PHY na fizično omrežje; modul PHY

v ta namen potrebuje nastavitve povezave kot so hitrost in tip medija ter dupleks. Te

nastavitve se lahko realizirajo na dva načina. Lahko vnesemo statične nastavitve, in

PHY se bo povezal z nastavitvami, ki jih ima podane, lahko pa omogočimo modul za

avtomatsko pogajanje povezave (»Auto-Negotiation«). V slednjem primeru moramo

modulu PHY podati t.i. oglaševane podatke. Ti podatki povedo, kakšno povezavo bi

radi vzpostavili, npr.: 100 Mb/s, polni dupleks. Modul se nato preko linije sam

dogovori z eksterno napravo za uporabo priporočene povezave. V primeru sistema

priklopne postaje je zaradi omejitev sistema uporabljena 10 Mb/s polni dupleks

povezava. S tem je omogočena povezava modula PHY na ethernet, kar je prvi korak

k prenašanju podatkov preko ethernet vmesnika.

Naslednji korak je priprava (inicializacija) modula MAC v mikrokrmilniku.

Ethernet modul je že pripravljen na komunikacijo preko RMII vodila, pravilno pa

moramo prilagoditi še hitrost delovanja in dupleks glede na tisto, ki smo jo

vzpostavili z modulom PHY. MAC modul potrebuje za pravilno delovanje tudi MAC

naslov. Uporabnik mora poskrbeti, da je ta naslov unikaten na omrežju, ker če imata

dva modula enak naslov (modula sta lahko računalnik, telefon, vsaka naprava, ki je

povezana na IP omrežje,) bo prišlo do težav s povezavo. Pravilen postopek je zakup

določenega števila naslovov MAC pri organizaciji IEEE, ali uporaba naslova stare

mrežne opreme, ki je nerabljena in je v naši fizični lasti. Za priklopno postajo je bil

uporabljen star MAC naslov nerabljene mrežne opreme.

Sledijo višje nivojske nastavitve kot so IP naslov, maska omrežja, prehod in

naslova primarnega ter sekundarnega DNS strežnika. Te nastavitve pridobi modul

preko protokola od plačniškega terminala. Če so nastavitve statične, jih modul samo

zapiše v pomnilnik in uporabi, v nasprotnem primeru pa se požene DHCP klient, ki

te nastavitve poskuša dinamično pridobiti od omrežne opreme (usmernika –

»Router«). Tu so nastale težave, ker je na začetku vse lepo delovalo, a smo zaradi

preteklih izkušenj s to opremo kupili najnovejši usmernik. Ugotovili smo, da čeprav

modul dela brez napake v kombinaciji z starejšimi usmerniki, z novimi ne deluje. Po

dolgem razhroščevanju s pomočjo WireShark programskega vmesnika (vmesnik

spremlja in preučuje promet na lokalnem omrežju,) smo odkrili, da usmerjevalnik

sploh ne odgovarja na začetni paket. Po primerjavi več različnih paketov smo

ugotovili, da TCP/IP sklad doda v paket pod opcije posebej še en zlog podatkov. To

je pomenilo poglobljen pregled delovanja samega TCP/IP vmesnika. Kmalu smo

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 43

odkrili, kje se ta zlog vstavi. Ta del programske opreme je bil nato odstranjen. S tem

se je DHCP protokol uspešno izvedel tudi na najnovejšem usmerjevalniku. Tako

smo uspešno zaključili tudi zadnji korak v inicializaciji IP vmesnika.

Za uporabno vmesnika moramo nato samo klicati funkcije za odpiranje in

zapiranje IP povezave, sestavljanje in pošiljanje paketov, ter spremljati status IP

povezave, ki nam pove, kakšno je stanje trenutne IP seje. To izvrši preko »kliči

nazaj« (»Call Back«) funkcije.

6.3.3 Povezava z višjimi nivoji aplikacije

Spodnji nivoji aplikacije, kot so ethernet modul, modul Zigbee in moduli

UART se morajo za pravilno delovanje, povezati do višjih nivojev. To smo storili na

sledeči način: ko modul ni v uporabi gre v t.i. spanje (»Sleep Mode«), ko pa je

potreben, ga zbudi ali aplikacija ali pa prekinitev, ki se je zgodila na njegovem

perifernem vmesniku. S tem je zagotovljena maksimalna učinkovitost porabe

procesorja, saj ta dela le to kar je potrebno, in ne izvaja opravil, ki so nepotrebna.

Hkrati pa to pripomore tudi k manjši porabi energije

6.4 Programska rešitev na strani plačilnega terminala Margento mPOS

6.4.1 Ogrodje sistema

Tudi v tem primeru ogrodje za delovanje sistema zagotavlja operacijski sistem,

le da je ta v primerjavi z operacijskim sistemom na priklopni postaji bolj

kompleksen. Glavne operacije ki jih izvaja ter vplivajo na prenos podatkov preko

priklopne postaje so:

• inicializacije serijskih povezav,

• inicializacija modula Zigbee,

• nižje nivojske kretnice za krmiljenje podatkov,

• operacije protokola UTPRO,

• integriranje v višje nivoje.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 44

Slika 6.6: Osnovna shema programske opreme plačilnega terminala

6.4.2 Implementacija povezave preko serijskih vmesnikov

Za povezavo do priklopne postaje je uporabljen en serijski vmesnik. Zaradi

potrebe po velikem številu serijskih povezav, je le-ta razdeljen s pomočjo

multipleksnega modula kar pomeni, da je lahko na en serijski vmesnik priključeno

več naprav, deluje pa lahko samo ena na enkrat. Pojavi se kup novih težav, saj niso

vse naprave povezane po načinu nadrejena – podrejena naprava, torej lahko

komunicirajo s plačilnim terminalom po želji. Tukaj lahko pride do napak, ker če je

serijski vmesnik dodeljen drugi napravi, zgrešimo podatke, ki nam jih je želela

poslati prva naprava. Še večji problem je, ker sta preko multiplekserja povezana tako

serijski vmesnik, ki je povezan neposredno do priklopne postaje, kot tudi modul

Zigbee, preko katerega se komunicira, če je terminal odsoten.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 45

Zigbee

INTERNE

NAPRAVE

SERIJSKI

VMSENIK 1

SERIJSKI MUX

Eksterni serijski

priklop

GPRS

Slika 6.7: Povezava serijskega vmesnika

Programer je zato dolžan zagotoviti natančno proceduro uporabe in dostopa

naprav do serijskega vmesnika. Vedno moramo vedeti, kdaj se lahko vmesnik

priklopi na drugo periferno napravo, saj ni nujno, da je vmesnik prost, čeprav nič ne

pošiljamo ali sprejemamo. Lahko se zgodi, da je višje nivojska aplikacija poslala

neko zahtevo in čaka na odgovor, ki pa ga ne bo prejela, če med tem druga aplikacija

prestavi povezavo serijskega vmesnika, ker je smatrala, de le-ta ni zaseden.

Ker pa sta oba, tako Zigbee kot eksterni serijski vmesnik, preko katerega se

izmenjujejo podatki z priklopno postajo, na istem serijskem vmesniku, to olajša

implementacijo sistema za pošiljanje podatkov do priklopne postaje.

6.4.3 Povezava z višjimi nivoji aplikacije

Pomembno je, da določimo dve kretnici; naloga prve je, da določi način

prenosa podatkov - ali se bodo prenašali preko priklopne postaje ali preko modula

GPRS, druga pa mora v primeru, da je izbrana priklopna postaja, preklapljati med

povezavo, ko je terminal prisoten, pa priklopni postaji in brezžično povezavo ko je

terminal odsoten s priklopne postaje.

Prva kretnica je implementirana že z izbiro aplikacije, saj ne dovolimo sočasne

uporabe ethernet in GPRS modula.

Druga kretnica pa deluje na sledeči način:

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 46

• najprej se pogleda če aplikacija podpira modul Zigbee; če podpore ni,

potem je kretnica zaklenjena v načinu prenosa preko kontaktov na

spodnji strani terminala.

• v primeru, da je modul Zigbee prisoten, aplikacija komunicira preko

žičnega omrežja. Če pride do padca paketov, ali neodzivnosti

priklopne postaje, aplikacija smatra, da je bil terminal odstranjen, in

poskusi vzpostaviti povezavo preko brezžičnega modula Zigbee. Če je

bila komunikacija uspešno vzpostavljena, aplikacija komunicira preko

modula Zigbee tako dolgo, dokler ne dobi od priklopne postaje

podatka, da je terminal spet prisoten; v tem primeru priključi nazaj na

žično povezavo. Žična povezava je primarna predvsem zaradi hitrosti,

saj je tudi do petkrat hitrejša od brezžične.

Če sta ti dve kretnici pravilno nastavljeni, višji nivoji aplikacije ne opazijo, da

se podatki izmenjujejo preko drugega izvora/ponora. Poskrbeti moramo le, da

podatki dajejo in vzamejo iz pravilnih podatkovnih polj.

6.5 Implementacija modula Zigbee

Obema rešitvama je skupna implementacija modula Zigbee. Zigbee je preprost

modul za pošiljanje podatkov preko brezžične povezave, ker če je pravilno

konfiguriran, moramo samo poslati podatke preko serijskega vodila do modula

Zigbee, za ostalo pa poskrbi Zigbee sam.

Za pravilno delovanje modula Zigbee se ob vsaki ponovni vključitvi naprave

preberejo vsi parametri, in preverijo, če so pravilni. To storimo tudi z namenom, da

ima v te nastavitve vpogled uporabnik preko plačilnega terminala.

Modul Zigbee podpira glavna dva načina delovanja: podatkovnega, preko

katerega se prenašajo podatki in komandnega, preko katerega s pomočjo AT ukazov

konfiguriramo modul.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 47

Slika 6.8: Različna stanja operacij modula Zigbee

6.5.1 Komandni način delovanja

Vanj se modul Zigbee preklopi, ko pošljemo preko serijskega vmesnika tri

pluse (+++), in v njem ostane dokler mu ne poteče časovnik ali pa ga uporabnik ne

prekliče. Ko modulu Zigbee pošljemo ukaz za preklop v komandni način delovanja

moramo počakati na odziv, ki nam pove, da je Zigbee uspešno stopil v komandni

način delovanja. Kot je razvidno iz slike 6.8 se lahko zahteva vstop v komandno

stanje le s stanja prostega teka. Zigbee se ne bo preklopil v komandni način, če v

času zahteve sprejema podatke. Za pravilno delovanje modula Zigbee je potreba

osnovna konfiguracija. Poleg osnovne konfiguracije je omogočeno tudi branje ostalih

pomembnih parametrov kot so serijska številka, verzija programske in strojne

opreme… .

Tabela 6.2: Parametri Zigbee modula

PARAMETER Velikost [besedah]

Možnost spreminjanja

Možnost branja

Kanal 1 DA DA ID 1 DA DA Izvorni naslov 1 DA DA MAC način 1 DA DA MOČ delovanja 1 DA DA Omogoči kodiranje 1 DA DA Omogoči spanje 1 DA DA Kripto ključ n DA NE Verzija programske opreme

1 NE DA

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 48

Verzija strojne opreme 1 NE DA PO izhod kot PWM 1 DA DA Omogoči PO izhod 1 DA DA Hitrost povezave (baud) 1 DA DA Časovnik za komandni način

1 DA DA

Naslov naslovnika zgodnji del

2 DA DA

Naslov naslovnika - spodnji del

2 DA DA

Serijska številka - zgornji del

2 NE DA

Serijska številka - spodnji del

2 NE DA

Nujna je nastavitev hitrosti povezave (baud), naslov sprejemnika, in MAC

način delovanja. Nastavitve se pošiljajo, ali berejo z modula s pomočjo AT ukazov:

• branje: pošlje se samo ukaz; npr.: »AT CH« za kanal in počakamo na

odgovor

• pisanje: pošlje se ukaz in vrednost nastavitve; npr.: »AT CH 16« in

počakamo da nam Zigbee potrdi ukaz z odgovorom »OK«.

Konfiguracija je veljavna takoj, ko jo pošljemo k modulu, ni pa še zapisana v

trajni pomnilnik modula Zigbee. To se stori z ukazom »AT RW«. Po uspešni

izvršitvi tega ukaza bo modul obdržal nastavitve, tudi če se vmes izključili priklopno

postajo ali plačilni terminal. Na koncu branja konfiguracije se lahko Zigbee s

pomočjo ukaza »AT CN« vrne v podatkovni način.

6.5.2 Podatkovni način delovanja

Je privzeti način delovanja. Vse kar modul Zigbee prejme preko serijskega

vodila (razen znakov +++), pošlje naprej preko brezžične povezave. Zgodi se lahko,

da bo drugi modul Zigbee, ki je bil neuspešno preklopljen v komandni način, preko

povezave pošiljal AT ukaze. To napako je treba zaznati in filtrirati.

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 49

6.6 Rezultati testiranja sistema

6.6.1 Stres test sistema

Stres test sistema je izveden enako kot prej stres test testnega sistema (poglavje

4.3.2). Testne konfiguracije:

• konfiguracija 1:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 5 s

o zakasnitev pošiljanja: 1 s

o zakasnitev odgovora: 250 ms

o baud: 115200

• konfiguracija 2:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 2 s

o zakasnitev pošiljanja: 0,5 s

o zakasnitev odgovora: 10 ms

o baud: 115200

• konfiguracija 3:

o lokalni IP 127.0.0.1

o zakasnitev povezave: 0,7 s

o zakasnitev pošiljanja: 0,5 s

o zakasnitev odgovora: 0 s

o baud: 115200

Tabela 6.3: Rezultati pri prenosu paketov velikosti 60 b

Parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 60~70 400 0 50 313 350

2 60~70 400 0 50 156 170

3 60~70 400 0 47 62 94

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 50

Slika 6.9: Rezultati pri prenosu paketov velikosti 60 b

Tabela 6.4: Rezultati pri prenosu paketov velikosti do 400 b

parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 60~70 400 31 80 328 406

2 60~70 400 31 94 110 172

3 60~70 400 31 94 109 156

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 51

Slika 6.10: Rezultati pri prenosu paketov velikosti do 400 b

Tabela 6.5: Rezultati pri prenosu paketov velikosti od 1100 b do 1460 b

Parametri testiranja

Konfi-

guracija

Odpiranje

IP

povezave

[ms]

Zapiranje

IP

povezave

[ms]

UART čas

pošiljanja

podatkov

[ms]

TCP čas

sprejema

podatkov

[ms]

TCP

čas

oddaje

[ms]

Celoten čas

potovanja

podatkov

[ms]

1 60~70 400 80 141 390 700

2 60~70 400 78 172 203 297

3 60~70 400 78 172 188 313

Slika 6.11: Rezultati pri prenosu paketov velikosti od 1100 b do 1460 b

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 52

Iz rezultatov lahko razberemo, da je večina časa porabljena za prenos podatkov

do in s priklopne postaje preko serijskega vmesnika. Sam prenos preko etherneta

zavzame minimalen čas, pod pogojem, da ni prišlo do enega ali več trkov na

omrežju.

Če rezultate primerjamo z rezultati testnega sistema, je najbolj izrazita

sprememba čas zapiranja povezave. Vzrok za to je protokol med priklopno postajo in

testnim programom. Testiranja testnega sistema so pokazala, da ni toliko kritičen čas

prenosa podatkov, kot čas odpiranja in predvsem zapiranja povezave.

Ker gre pri tem sistemu za veliko bolj zapleteno aplikacijo so rezultati

zadovoljivi. Kljub temu pa bi se jih z poglobljenim pregledom aplikacije, predvsem

na strani protokola za prenos podatkov, dalo še izboljšati

6.6.2 Test transakcij

Naslednji korak testiranja je bil test transakcij. Pri tem testu gre za testiranje,

koliko transakcij in s kakšnim koeficientom uspešnosti uspe narediti sistem v

določenem časovnem obdobju. Testni scenarij je bil naslednji: plačilni terminal

neprestano dela transakcijo za transakcijo z razmikom med transakcijama po 2

sekundi. Preizkušena je bila povezava terminala in priklopne postaje preko žične in

brezžične povezave.

Rezultati:

Tabela 6.6 - rezultati testa transakcij

Komunikaci-

jski kanal:

Število

transakcij:

Časovno obdobje:

Povprečen čas transakcije

Število padlih

transakcij

Padle

transakcije [%]

Uspešnost

[%]

žični 9300

5000

16 ur

/

4,1 s

/

81

1

0,87 %

0,02 %

99,13 %

99,98 %

brezžični 1500

15000

2 uri

16 ur

4,8 s

3.84 s

1

4

0,06 %

0.02 %

99.94 %

99,98 %

Iz rezultatov se vidi, da je pri prvem testu padlo skoraj 1 % od vseh transakcij.

Ugotovili smo, da je za napake odgovorna nastavitev hitrosti serijske povezave na

6. IZVEDBA PROGRAMSKEGA DELA SISTEMA 53

priklopni povezavi. Z nastavitvijo novih količnikov in množiteljev se rezultat precej

izboljša.

Razviden je tudi večji uspeh transakcij, narejenih preko brezžične povezave.

Razlog za to bi lahko bila boljša povezava, ker če je plačilni terminal povezan na

priklopno postajo preko priključkov na hrbtni strani, postane problem stik pri tako

visokih frekvencah. Pri brezžičnem prenosu pa morata tako terminal kot priklopna

povezava dostopati le do modula Zigbee, ki je zanesljivo pritrjen na tiskano vezje.

55

7. PRIMERJAVA Z OSTALIMI SISTEMI

7.1 Microchip PIC 18FxxJ60

Serija mikrokrmilnikov od proizvajalca Microchip PIC 18FxxJ60 ponuja

vgrajen modul za povezavo na ethernet. Prednost tega mikrokrmilnika je, da ima

poleg vgrajenega MAC modula integriran modul PHY. To pomeni, da potrebujemo

za povezavo na ethernet minimalno število pasivnih zunanjih komponent, poleg tega

pa ne potrebujemo visokofrekvenčnih linij, ki tečejo med mikrokrmilnikom in

zunanjim modulom PHY. Vgrajeni ethernet modul je kompatibilen z 10 Base-T

standardom.

Modul nismo izbrali zaradi prenizke hitrosti in

majhnega RAM pomnilnika, saj bi že samo pomnilnik,

ki ga po potrebujemo za sprejemanje in oddajanje

podatkov preko protokola UTPRO zavzel ves

pomnilnik na modulu.

Slika 7.1 - PIC18F97J60

7.2 Microchip ENC modul

Microchipov modul ENC predstavlja zunanji vmesnik za povezavo

mikrokrmilnikov z ethernetom. Nanj lahko povežemo

katerikoli mikrokrmilnik, ki ima na voljo vmesnik SPI.

V samem modulu je implementiran MAC in PHY.

Modul zagotavlja povezavo z ethernetom po standardu

10 Base-T.

Ta sistem ni bil izbran, ker je vodilo SPI na

mikrokrmilniku že zasedeno.

Slika 7.2 - Microchip ENC28J60

7. PRIMERJAVA Z OSTALIMI SISTEMI 56

7.3 Luminary Mico Stellaris

Tudi podjetje Luminary Micro (sedaj v lasti Texas Instruments,) ponuja rešitve

z vgrajenim ethernetom. Serije LM3S6xxx, LM3S8xxx in LM3S9xxx vsebujejo

visoko kvalitetno in učinkovito 32 bitno Cortex M3 jedro.

Enako kot Microchipov mikrokrmilnik PIC že vsebuje

integriran modul PHY. Kompatibilen je z 10 in 100 Base-

T/TX in FX standardom.

Sistem ni bil izbran zaradi premalo serijskih

vmesnikov; ima namreč le tri. Slika 7.3 - Luminary

Micro LM3S6952

57

8. PREDLOGI ZA NADALJNJE DELO

Razvit sistem predstavlja osnovno platformo priklopne naprave za plačilne

terminale Margento mPOS. Predlagamo še naslednje nadgradnje:

• implementacija prenosa podatkov od procesnega centra do priklopne

postaje preko etherneta in od priklopne postaje do plačniškega

terminala po načinu drsečega okna in s tem omogočanje več paketnega

prenosa,

• menjava protokola za prenos podatkov iz znakovnega v binarnega,

• implementacija WiFi in Bluetooth povezave terminala in priklopne

povezave - s tem omogočimo povezavo terminala ali direktno na

brezžično omrežje, ali pa povezavo priklopne postaje na brezžično

omrežje,

• implementacija klasičnega modema – v začetnem načrtu je bila tudi

implementacija klasične modem povezave priklopne postaje do internet

omrežja in z tem do procesnega centra,

• implementacija avtomatskega oddaljenega posodabljanja programske

opreme - mikrokrmilnik podpira samodejno zamenjavo programske

opreme, v ta namen je na tiskanem vezju tudi večji FLASH pomnilnik.

V prihodnje se lahko implementira avtomatska oddaljena posodobitev

programske opreme na mikrokrmilniku in modulu Zigbee.

59

9. SKLEP

Namen diplomske naloge je razvoj in realizacija priklopne postaje, katere

naloga je napajanje plačniškega terminala Margento mPOS in omogočanje

posredovanja prejetih informacij naprej preko etherneta do procesnih centrov. V ta

namen je bil izbran srednje hiter mikrokrmilniški sistem z vgrajenim modulom

ethernet. Največji izziv je bila implementacija etherneta in razvoj zanesljivega

protokola za prenos podatkov od terminala do priklopne postaje. Vse je še toliko

težje, ker je plačilni terminal drastično omejen z resursi.

Po testiranju sistema so rezultati zadovoljivi, saj se je sistem izkazal odlično.

Testi so pokazali tako odličen odziv in zanesljiv prenos podatkov, kot odlično

delovanje v primeru, ko se na liniji ali v sistemu pojavijo napake.

Priklopna postaja predstavlja odlično odskočno desko za nadaljnji razvoj, saj

omogoča implementiranje in priklop več eksterni naprav preko serijskega vmesnika.

To je še posebej koristno, ker lahko sedaj eksterne protokole, ki bi prej morali biti

implementirani na terminalu, pa zaradi pomanjkanja resursov niso mogli biti,

razvijemo na priklopni postaji, ta pa nato podatke preko že implementiranega

UTPRO protokola posreduje terminalu z minimalno dodatno uporabo resursov s

strani plačilnega terminala.

Priklopna postaja predstavlja univerzalno platformo, katera svojo nalogo

opravlja odlično, hkrati pa je pripravljena na nadaljnji razvoj, saj je ostalo na voljo

več kot polovica RAM in FLASH pomnilnika.

61

10. LITERATURA

[1] http://ics.nxp.com/

[2] www.keil.com/

[3] www.ti.com/

[4] www.digi.com

[5] www.infineon.convergy.de

[6] www.codegear.com/

[7] I. Blazinšek, Z. Mezgec, A. Chowdhury "Vgrajeni Ethernet s PIC

mikrokrmilnikom", Zbornik sedemnajste mednarodne Elektrotehniške in

računalniške konference ERK 2008, IEEE Region 8, Slovenska sekcija IEEE,

p. 31-34, 2008

[8] I. Blazinšek, Z. Kačič, A. Chowdhury "Vgrajeni ethernet vmesnik s PIC

mikokrmilnikom", Diplomska naloga visokošolskega [strokovnega] študijskega

programa, 2008

[9] B. Sebasu, I. Blazinšek, D. Fric, A. Zelenik, A. Chowdhury "Razvoj terminala

za plačevanje z brezkontaktnimi karticami in mobilnim telefonom – Terminal

TaPOS", Zbornik Osemnajste mednarodne elektrotehniške in računalniške

konference ERK 2009, IEEE Region 8, Slovenska sekcija IEEE, p. 50-53, 2009

[10] F. Horvat, Z. Mezgec, A. Chowdhury, R. Svečko "Univerzalni vmesnik

plačilnih sistemov", Zbornik šestnajste mednarodne Elektrotehniške in

računalniške konference ERK 2007, IEEE Region 8, Slovenska sekcija IEEE,

p. 226-229, 2007.

63

11. PRILOGE

Priloga 1: Izjava o istovetnosti diplomskega dela

11. PRILOGE 64

11. PRILOGE 65

Priloga 3: Življenjepis avtorja:

Osebni podatki:

Priimek / Ime

Naslov

Telefonska številka

E-mail

Državljanstvo

Datum rojstva

Delovne Izkušnje

Obdobje

Naziv in naslov delodajalca

Vrsta dejavnosti

Obdobje

Naziv in naslov delodajalca

Vrsta dejavnosti

Izobraževanje in Usposabljanje

Obdobje

Naziv in status ustanove, ki je podelila

diplomo, spričevalo ali certifikat

Stopnja izobrazbe po nacionalni

klasifikacijski lestvici

Obdobje

Naziv in status ustanove, ki je podelila

Blazinšek Iztok

Trnovlje pri Socki 1/c

/

[email protected]

Slovensko

19.02.1984

15.7.1999 ~

/

Elektronika, razvoj in implementacija novih rešitev

01.04.2010 ~

Margento R&D, Gosposvetska cesta 84, 2000

Maribor

Razvoj in implementacija plačilnih sistemov

2008 ~ 2010

Fakulteta za elektrotehniko, računalništvo in

informatiko, Smetanova ulica 17, 2000 Maribor

VII. stopnja

2003 ~ 2008

Fakulteta za elektrotehniko, računalništvo in

11. PRILOGE 66

diplomo, spričevalo ali certifikat

Stopnja izobrazbe po nacionalni

klasifikacijski lestvici

Obdobje

Naziv in status ustanove, ki je podelila

diplomo, spričevalo ali certifikat

Stopnja izobrazbe po nacionalni

klasifikacijski lestvici

Obdobje

Naziv in status ustanove, ki je podelila

diplomo, spričevalo ali certifikat

Stopnja izobrazbe po nacionalni

klasifikacijski lestvici

informatiko, Smetanova ulica 17, 2000 Maribor

VI/II. stopnja

1999 ~ 2003

Šolski Center Celje

Pot na Lavo 22, 3000 Celje

V. stopnja

1990 ~ 1998

Osnovna šola Vojnik

Prušnikova 14, 3212 Vojnik

II. stopnja