ÿWPC§ bz  òœ) ¾]ª:0¶Ò˜0Y=ȶ ‘ˆF½ÄÜq5òœ) {Á~HHõtl§e¢˜ 'ŽÅYœøés¸Ä'ñ8ûö¨ ààs…ÚõÇ`ÍÿJxs_‘ “îï-§sèiqrq/9dò´YÒÐ()ß …>d€ÈÆ­r'˜ÓDž³&É5P#*”ÂK`|ãÂ9nì`˜h¿Ïÿ€QYó=J…« ÎiH†œ±Î¤ÏÎùî2ÕtM(\˜:äÎé”.+EôÒ{² :¾ðláò8‘ÁHÜÇ¥;.o@ŽQ‚TO=*’Z¥Ák!–DA­Åç b¶Ùu¤‡òÆ“ÅÌT_Rèrôƒìë­2h(Iâܲ¾=!…AÚÌÒP\*©ôg¥“¹œ¢µx4?°´ç&㕽ô ‚¸Ö7·Önœo êýn¹ úÈV) Ûä8Ïù–Eßù›„Ø'ë¶ÿ’Uñ߉•²×ÛzÕ‹Ôzú&êÐlìâDÔ?e?OóíÒ…ÙD¬Ž8ù,2QÌ u„SWd$’ñÅÀ°ËÜ–!x9lßìïF%t6Ž«F²4P£A"äNV•ªqéör§ŸÇ¾\lÜ-b¯ˆ³YÓÀ†l®’6õŒU.p %ž#†¤4* 0(>U2f˜<Ô6X9`+CourierXHP 4L (Postscript)aplw2nt.prshhhhhhhhðexîÿ¿ÌZ-€ådúÄî($¡¡0ä2¼Ap`Helvetica3| CÝ ƒ!ÝÝ  ÝÓ  ÓÔ€»ÂX»XXÔò òòòÔ‡»ˆ«»»»ÂXÔÔ‡„C„»»ˆ«ÔWireless€GPS„Com„Processor€Unit€Project€Reportóóó óÔ#†„Sá„„„CL#ÔÔ#†»ÂX»„„Sák#ÔÐ ° ÐÔ€»ˆ«»»»ÂXÔby€Jason€John€Schwarz€and€Philip€Louis€WeinsteinÐ ýM ÐÌÌÓ  Óò òI.à  àObjectiveÐ  k Ðó óÔ€XŽKX»»ˆ«ÔÌà  àThe€GPS„Com„Processor€unit,€referred€to€in€this€report€as€the€robot€positionÏlocator,€was€intended€to€allow€multiple€robots€to€function€together€by€reporting€theÏlocation€of€each€robot€to€a€central€controlling€station.€€This€was€the€first€stage€of€aÏproject€that€would€eventually€include€the€ability€for€the€central€robot€to€send€commandsÏback€to€the€remote€units.€€ÌÌà  àThe€robot€position€locator€was€able€to€receive€a€GPS€signal,€decode€that€signal,Ïextract€the€useful€information,€encode€that€information€into€a€compact€for€transmission,Ïand€the€send€it€to€a€base€station.€€The€base€station€was€simply€a€receiver€unit€thatÏread€the€incoming€signal€and€stored€the€data€in€a€database.€€The€database€was€thenÏavailable€for€use€in€making€decisions€about€where€the€robots€were€located,€and€whereÏthey€needed€to€move€to€next.Ìò òÌII.à  àCommunications€SubsystemÐ ã3 Ðó óÌà  àThe€communications€system€consisted€of€a€transmitter€module€and€a€receiverÏmodule.€€The€modules€were€a€pair€of€single€chip€solutions€from€Linx€Technologies.€ÏThe€modules€were€picked€specifically€for€their€small€size,€9.5mm€x€13mm€for€theÏtransmitter€and€14.5€mm€x€20.5€mm€for€the€receiver.€€These€tiny€transmitters€wereÌable€to€transmit€up€to€4800€baud€and€had€a€range€of€500€ft.€€This€including€theÏvariable€power€option,€which€allowed€us€to€control€the€range€of€the€transmitter€byÏvarying€the€voltage€from€2.7V€to€5.2V.€ÌÌà  àThe€communications€chips€allowed€a€variable€voltage,€which€determined€theÏeffective€range,€to€be€given€to€them.€€We€picked€a€voltage€of€5V€to€supply€the€chipsÏbecause€it€gave€the€effective€range€of€near€500€ft,€and€was€the€same€voltage€neededÏto€supply€the€processor€unit.€€This€allowed€a€single€power€system€to€feed€a€majority€ofÏthe€subsystems€on€the€board.€€ÌÌà  àThe€Linx€chips€also€allowed€for€a€variety€of€antennas.€€The€optimal€solution€wasÏto€eventually€obtain€a€dual€frequency€antenna€for€the€GPS€and€the€communicationsÏsystem.€€€This€could€be€achieved€by€using€a€pair€of€band„pass€filters€and€the€high€gainÏantenna€which€came€with€the€GPS€system.€€An€alternate€choice€was€to€use€a€whip€orÏtrace€antenna€for€the€transmitter.€€The€whip€antenna€has€superior€gain,€but€was€ratherÏtall€and€could€be€easily€snagged€on€objects.€€The€trace€antenna€was€much€lower€inÏgain,€but€was€designed€directly€on€the€circuit€board€with€the€communications€chip.€ÏThis€would€be€the€optimal€solution€in€close€proximity€applications.€€We€used€the€whipÏantenna€for€the€demonstration€system,€because€it€was€the€highest€gain€antenna€andÏwould€give€us€a€long€range€of€operation.Ð ¤-ô(, Ðà  àAnother€factor€that€made€the€Linx€modules€useful€was€the€variety€ofÏfrequencies.€€The€modules€are€available€in€315MHz,€418MHz,€and€433.92MhzÏversions.€€We€picked€the€315MHz€band€for€the€demonstration€version€of€this€project€toÏavoid€conflicting€with€other€projects€which€were€using€the€400MHz€frequency€bands.ÌÌà  àThe€final€design€consideration€of€the€communications€system€was€powerÏconsumption.€€The€chips€use€a€carrier„present/carrier„absent€transmission€system.€ÏThis€means€that€a€logical€high€value€is€sent€by€raising€the€carrier€high,€and€a€logicalÏlow€sent€by€leaving€the€carrier€frequency€off.€€This€required€the€design€of€a€specialÏcode€that€ensured€that€the€system€would€be€able€to€detect€a€signal,€and€that€noÏsymbol€with€a€value€of€all€zeros€was€ever€sent.€€To€do€this€we€encoded€the€neededÏcharacters€into€a€simple€set€of€symbols€(òòsee€Appendix€B)óó€which€we€could€easilyÐ ³  Ðdetect.€€We€used€a€single,€unique€pattern,€start€and€stop€bit€to€begin€and€terminate€theÏmessages,€so€that€the€processor€would€be€able€to€tell€a€message€apart€from€a€non„¼transmission,€which€would€appear€as€a€stream€of€continuous€zeros.Ì€ò òÐ W§  ÐIII.à  àGPS€SubsystemÐ @ Ðà  àó óÌà  àWe€were€advised€to€use€a€GPS€subsystem€by€uñCñBloxñCññCñ€ð%ð„bloxñCñ€Corporation€ofÐ b ÐSwitzerland.€€As€of€this€report€that€GPS€module€is€not€produced.€€We€decided€to€useÏanother€module€by€Mitac€to€replace€this€module€in€the€prototype.€€The€Mitac€module€isÏable€to€use€the€NMEA€code,€just€as€the€ð%ð„Blox€module€does,€but€requires€an€additionalÐ Í Ðinitialization€code€to€do€so.€€Ð ¶ ÐÌà  àThe€GPS€subsystem€was€left€in€a€stand„alone€state€during€this€project€becauseÏwe€expected€to€use€the€ð%ð„blox€module€in€the€final€product.€€We€connected€theÐ qÁ Ðsubsystem€through€its€serial€port€to€the€rest€of€the€project.€€Once€connected€andÐ Zª Ðrunning€the€GPS€subsystem€would€send€an€NMEA€style€GPS€location€message€outÏthe€serial€port.€€We€could€initialize€the€system€to€send€the€message€as€often€as€weÏwished.€€The€slowest€speed€available€was€1€message€per€second,€which€is€what€weÏchoose€for€this€project.€€This€would€cause€the€system€to€send€the€current€time,Ïlongitude,€latitude,€and€altitude€once€every€second€out€the€serial€port.€€ÌÌà  àThe€GPS€subsystem€also€sent€other€information€in€the€message.€€The€rest€ofÏthis€information€was€discarded,€because€it€was€not€domain€to€the€determination€of€theÏrobot€location.€€If€you€view€the€source€code€(òòsee€Appendix€C)óó€you€will€see€theÐ ‹$Û# Ðdecoding€of€the€GPS€message.€€€Once€the€message€was€decoded€the€longitude,Ïlatitude,€and€altitude€were€stored€and€transmitted€by€the€processor€subsystem.€€ÌÌà  àThe€GPS€subsystem€was€equipped€with€a€high€gain€antenna.€€This€antennaÏcould€have€been€shared€with€the€communications€subsystem€by€using€a€pair€of€band„¼ñCñ¼ñCñpass€filters€to€isolate€the€high„frequency€GPS€signals€from€the€lower€frequencyÏcommunications€signals.Ìò òÌÌÐ ¥-õ(- ÐIV.à  àProcessor€SubsystemÐ ° Ðó óà  àÌà  àWe€choose€a€Hitachi€SH1€processor€to€control€the€robot€position€locator.€€TheÏHitachi€processor€allows€for€a€single€chip€solution€which€contains€not€only€theÏprocessor,€but€4K€of€on„board€RAM€and€a€64K€on„board€ROM.€€This€keeps€the€partÏcount€to€a€minimum€and€conserves€on€power.€€All€of€the€internal€subsystems€of€theÏHitachi€are€low„power.€€ÌÌà  àThe€Hitachi€chip€was€programmed€using€a€Cygnus€C€compiler.€€The€compilerÏproduced€raw€code€which€was€uploaded€to€the€processor€using€the€Hint€software.€ÏHint€was€included€with€the€evaluation€board€of€the€processor.€€Using€Hint€and€theÏevaluation€board€we€were€able€to€test€designs€on€the€processor€without€having€theÏwrite€the€ROM€on€the€write„once€version€of€the€chip.€€This€allowed€us€to€keep€the€costÏof€reprogramming€to€a€minimum€during€the€development€stage.€€Once€we€wereÏsatisfied€that€the€code€worked€we€could€burn€a€copy€to€the€ROM€of€a€chip€and€have€aÏfully€functioning€processor€subsystem.ÌÌà  àThe€Hitachi€SH1€also€provided€us€with€a€plethora€of€communications€ports.€€TheÏprocessor€has€32€I/O€lines,€8€input€only€lines,€and€two€serial€communication€channelsÏbuilt€directly€on€the€chip.€€This€allowed€for€a€direct€serial€connection€of€the€GPSÏsubsystem€to€the€processor.€€This€also€allowed€one€of€the€I/O€lines€to€be€connected€toÏthe€transmitter€directly.€€After€all€connections€were€made€we€were€able€to€use€theÏsecondary€serial€port€for€a€debugging€interface.€€ÌÌà  àThe€debugging€interface€currently€outputs€a€text€version€of€what€is€beingÏtransmitted.€€The€basic€format€of€each€message€is€as€follows:Ì!A###B#####.###C#####.###D#####.###!ÌÌThe€exclamation€characters€indicate€a€stop€or€start€character.€€The€letters€eachÏindicate€to€the€receiver€which€part€of€the€message€is€being€received.€€The€letter€AÏindicates€that€the€information€following€is€the€unit€ID€number,€so€that€the€base€knowsÏwhich€robot€is€transmitting€the€information.€€The€letter€B€indicates€the€longitudeÏinformation€is€following.€€The€letter€C€indicates€the€latitude€information€is€following.€ÏThe€letter€D€indicates€that€the€altitude€information€is€following.€€ÌÌThe€simplicity€and€compact€nature€of€the€message€allows€for€a€code€which€needs€onlyÏnumber€characters,€a€minus€sign,€a€decimal€point,€four€alpha€characters,€and€theÏstop/start€character.€€This€allows€for€a€reduced€bit€code,€which€takes€less€time€toÏtransmit€and€receive.€€This€also€lowers€power€consumption€by€not€requiring€the€fullÏlength€of€the€ASCII€value€of€each€character€to€be€transmitted.€€ÌÌà  àThe€Hitachi€processor€currently€is€in€one€of€two€states.€€It€is€either€receivedÏGPS€information€or€transmitting€the€information.€€The€system€first€received€andÏdecodes€the€entire€GPS€message€in€NMEA€format.€€Once€the€system€has€completedÏdecoding€the€message,€the€system€switches€to€the€transmit€mode.€€In€transmit€modeÏthe€processor€constructs€the€message€shown€above,€and€transmits€the€entireÐ ¥-õ(- Ðmessage.€€à ` àOnce€the€message€has€been€transmitted€the€system€reverts€to€the€GPSÐ ° Ðinformation€reception€mode€and€awaits€another€message.€€This€allows€for€up€to€aÏmessage€per€second€to€be€transmitted.€€In€reality€only€one€message€every€10~20Ïseconds€needs€to€be€transmitted,€because€the€robots€would€not€likely€move€fastÏenough€to€require€their€position€to€be€given€each€second.Ìà  àò òÌV.à  àSubsystem€InterconnectionÐ & v Ðó óÌà  àAt€the€current€time€we€have€each€of€the€project€parts€on€a€stand„alone€board€toÏallow€for€easier€modifications€of€the€individual€subsystems.€€A€final€release€of€theÏproduct€would€replace€our€board„to„board€wiring€with€a€set€of€on„board€trace€wires.€ÏThe€three€chips€required€on€the€board€include€the€communications€transmission€chip,Ïthe€processor,€and€the€GPS€subsystem.€€ÌÌà  àDue€to€the€lack€of€availability€of€the€ð%ð„blox€chip€at€this€time,€we€were€unable€toÐ n¾  Ðdetermine€if€a€single€5V€power€source€could€supply€the€entire€project.€€This€powerÏsource€is€able€to€supply€the€processor€and€communications€system.€€ÌÌà  àThe€connection€between€the€GPS€system€and€the€processor€is€made€byÏconnecting€the€GPS€serial€out€to€the€serial€input€port€of€the€processor.€€Two€serialÏinput€ports€are€available.€€We€choose€to€use€the€primary€(port€0)€of€the€processor€inÏthis€application.€€This€allowed€the€use€of€the€secondary€(port€1)€for€the€output€ofÏdebugging€information€to€a€serial€terminal.€€The€GPS€should€use€a€ground€common€toÏthe€processor€and€the€communications€system€on€the€board.ÌÌà  àThe€connection€between€the€transmitter€and€the€processor€was€made€throughÏI/O€pin€B€on€the€processor€and€the€data€pin€on€the€transmitter€chip€(pin€2).€€On€theÏdemonstration€board,€which€contains€a€re„programmable€version€of€the€processorÏsubsystem,€I/O€pin€B€has€a€green€LED€connected€to€it.€€It€would€be€necessary€toÏdisconnect€this€LED€and€connect€the€positive€pin€of€the€output€to€the€data€in€pin€onÏthe€transmitter€chip.€€We€also€determined€that€the€processor€and€communicationsÏsystems€should€be€grounded€together€by€connecting€the€ground€pin€of€I/O€pin€B€to€theÏground€pins€of€the€transmitter€chip.€€All€of€the€ground€pins€of€the€transmitter€chipÏshould€be€connected€together.Ìò òÌVI.à  àFuture€additionsÐ ‹$Û# Ðó óà  àÌà  àThe€project€was€able€to€complete€its€objective€of€obtaining€a€position€andÏtransmitting€it€to€the€base€station€at€the€conclusion€of€our€design.€€Future€versionsÏshould€include€improvements€in€the€antenna€system€and€the€logic€behind€messageÏtransmission.ÌÌà  àAt€this€time€was€have€included€a€pair€of€antennas€on€the€board,€one€for€theÏGPS€and€one€for€the€transmitter€unit.€€In€the€future€it€would€be€useful€to€add€a€pair€ofÏband„pass€filters€to€allow€for€a€single€antenna€for€the€GPS€and€the€transmitter€unit.€€ItÏwould€also€be€necessary€to€allow€the€transmitter€unit€and€the€receiver€unit€toÐ ¥-õ(- Ðcooperatively€use€a€single€antenna€if€commands€were€to€be€sent€to€the€remote€robotsÏfrom€the€base€station.ÌÌà  àAnother€improvement€in€the€system€would€be€the€addition€of€a€basic€languageÏwhich€allowed€the€base€station€to€poll€each€remote€robot€for€its€location.€€This€sameÏlanguage€would€eventually€allow€for€control€of€the€remote€robots€to€be€establishedÏfrom€the€base€robot.€€Other€status€messages€could€also€eventually€be€added€to€allowÏthe€remote€robot€to€send€other€useful€data€back€to€the€base.ÌÌà  àImplementation€of€the€ð%ð„blox€chip,€once€it€is€in€production,€would€also€beÐ á 1  Ðnecessary€before€the€final€product€is€complete.€€ÌÌò òÌVII.à  àConclusionÐ …Õ  Ðó óÌà  àThe€version€of€this€product€presented€is€functionally€able€to€accomplish€its€taskÏof€locating,€and€transmitting€the€position€of€a€remote€robot€to€a€base€station.€€All€of€theÏfuture€additions€would€be€very€useful,€but€not€necessary,€in€a€final,€production€versionÏof€this€product.€ÌÌà  àInformation€on€contacting€the€various€parts€suppliers€to€obtain€additional€partsÏto€continue€to€improve€this€project€have€been€included€(òòsee€Appendix€A)óó€for€yourÐ Í Ðreference.ò òÐ ¶ ÐÐ  Ÿï ÐÓ  ÓAppendix€A:€SuppliersÌó óÓ  ÓÌSupplier:à ` àà ¸ àLinx€TechnologiesÐ ‚Ò ÐPart(s):à ` àà ¸ àTXM„315„LC€€„€315MHz€transmission€moduleÐ k» Ðà  àà ` àà ¸ àRXM„315„LC€€„€315MHz€receiver€moduleÌPhone€Number:à ¸ à541„471„6256Ð =  ÐFax€Number:à ¸ à541„471„6251Ð & v ÐWeb€address:à ¸ àhttp://www.linxtechnologies.comÐ  _ ÐAddress:à ` àà ¸ à575€S.E.€Ashley€PlaceÐ ø H Ðà  àà ` àà ¸ àGrants€Pass,€OR€97526ÌÌÌSupplier:à ` àà ¸ àInsight€ElectronicsÐ œì  ÐPart(s):à ` àà ¸ àHD6477034F20€„€Hitachi€SH1€processor€model€7034Ð …Õ  Ðà  àà ` àà ¸ àUS7032EVB1€„€Hitachi€SH1€processor€evaluation€boardÌà  àà ` àà ¸ àHS7030ESH01H€„€Hitachi€SH1€Socket€adapters€(for€ROM€burning)ÌPhone€Number:à ¸ à919„873„9922Ð @ ÐFax€Number:à ¸ à919„873„9050Ð )y ÐÌÌSupplier:à ` àà ¸ àð%ð„blox€AGÐ ä4 ÐPart(s):à ` àà ¸ àGPS„MS1€„€GPS€Receiver€MCMÐ Í Ðà  àà ` àà ¸ àGPS„E1€„Evaluation€kit€for€GPS„MS1ÌPhone€Number:à ¸ à+41€1€632€7642€(Marketing)Ð Ÿï Ðà  àà ` àà ¸ à+41€1€632€7535€(Technical)ÌFax€Number:à ¸ à+41€1€632€1210Ð qÁ ÐWeb€Address:à ¸ àhttp://www.u„blox.chÐ Zª Ðemail€Addrss:à ¸ àgps@u„blox.chÐ C“ ÐAddress:à ` àà ¸ àETZ/H97Ð ,| Ðà  àà ` àà ¸ àGloria€Strasse€35Ìà  àà ` àà ¸ àCH8092€ZurichÌà  àà ` àà ¸ àSwitzerlandÌÌÌSupplier:à ` àà ¸ àMiTAC€Inc.Ð ¢#ò" ÐPart(s):à ` àà ¸ àMGE„110€„€12€Channel€GPS€Receiver€Module€(SiRF€version)Ð ‹$Û# Ðà  àà ` àà ¸ àMGE„110N€„€12€Channel€GPS€Receiver€Module€(NMEA€version)Ìà  àà ` àà ¸ àMGE„110„E€„€MGE€110€Evaluation€KitÌà  àà ` àà ¸ àMGE„110N„E€„€MGE€110N€Evaluation€KitÌPhone€Number:à ¸ à510„656„5288Ð /(#' ÐFax€Number:à ¸ à510„656„2669Ð )h$( ÐeMail€address:à ¸ àGPS@mitacinds.comÐ *Q%) ÐWeb€Address:à ¸ àhttp://www.mitacinds.comÐ ê*:&* ÐAddress:à ` àà ¸ à42001€Christry€StreetÐ Ó+#'+ Ðà  àà ` àà ¸ àFremont,€CA€94538ò òÐ  ¼, (, ÐÓ  ÓAppendix€B:€Transmission€CodeÌÓ  Óó óÌòòCharacterà ` àà ¸ àà  àValue€(if€any)à  àà p àà È àBinary€CodeóóÐ ‚Ò Ð0à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110000Ð k» Ð1à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110001Ð T¤ Ð2à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110010Ð =  Ð3à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110011Ð & v Ð4à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110100Ð  _ Ð5à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110101Ð ø H Ð6à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110110Ð á 1  Ð7à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à110111Ð Ê   Ð8à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à111000Ð ³  Ð9à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à111001Ð œì  Єà  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à111010Ð …Õ  Ð.à  àà ` àà ¸ àà  àà h àà À àà  àà p àà È à111011Ð n¾  ÐAà  àà ` àà ¸ àà  àID€Codeà À àà  àà p àà È à111100Ð W§  ÐBà  àà ` àà ¸ àà  àLatitudeà À àà  àà p àà È à111101Ð @ ÐCà  àà ` àà ¸ àà  àLongitudeà À àà  àà p àà È à111110Ð )y ÐDà  àà ` àà ¸ àà  àAltitudeà À àà  àà p àà È à111111Ð b Ð!à  àà ` àà ¸ àà  àStart/Stop€bità  àà p àà È à010101Ð  ûK Ðò òÓ  ÓAppendix€C:€Processor€Source€Codeó óÐ ° ÐÓ  Ó//GPS€systemÌÌ#define€MON_PUTCHAR€€0Ì#define€MON_GETCHAR€€1Ì#define€MON_EXIT€€€€€2Ì#define€MON_INITSER€€3Ì#define€MON_PUTDEC€4Ì#define€MON_PUTSTR€5Ì#define€MON_PUTHEX€6ÌÌ#define€MON_PORTA€0€€€€€€€€€€€€/*€user€*/Ì#define€MON_PORTB€1€€€€€€€€€€€€/*€monitor€or€"host"€*/ÌÌ#define€PBIOR€(*(volatile€short€int€*)(0x5ffffc6))Ì#define€PBCR1€(*(volatile€short€int€*)(0x5ffffcc))Ì#define€PBCR2€(*(volatile€short€int€*)(0x5ffffce))Ì#define€PBDR€€(*(volatile€short€int€*)(0x5ffffc2))ÌÌCallCMON(fcn,€port,€str)Ì//Access€CMON€I/O€routinesÌ{Ì€€€€€€€€asm("trapa€#33");Ì}ÌÌdummy()Ì//Delay€for€sleep€loopÌ{Ì}ÌÌsleep(int€delay)Ì//Sleep€delayÌ{Ìà  àint€j;Ìà  àint€i;Ìà  àfor€(j=0;€j<1000;€j++)Ìà  àà ` àfor€(i=0;€i