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
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.
11. PRILOGE 65
Priloga 3: Življenjepis avtorja:
Osebni podatki:
Priimek / Ime
Naslov
Telefonska številka
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
/
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