openASC

Berätta om dina pågående projekt.
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

openASC

Inlägg av sm2wmv »

Bakgrund
----------
När man pysslar med amatörradio och speciellt i en rätt extremt stor skala, har massor med roterbara antenner, massvis med antennkombinationer, stackade antenner (flera ihopkopplade), lyssnarantenner osv, så blir det väldigt mycket lådor för att styra allting. Man har i normala fall en låda för varje rotor, en låda för antennerna på varje bandområde vilket resulterar i mycket lådor, mycket kablar och i normala fall en rejäl oreda. En annan sak är också att om man har flera operatörsplatser (t.ex. en klubbstation) är det ofta svårt att arrangera allt så att man kommer åt att rotera antennerna från alla platser utan det brukar resultera i att man får skrika åt polaren att rotera antennen till 310 grader t.ex.

openASC
----------
Ideen för detta fick för några år sedan men det är först nu som jag verkligen tagit tag i det och börjat utveckla det som jag kallar openASC. Open står för att det kommer bli open source, ASC står för Antenna Switch Controller. Iofs har den blivit så pass flexibel nu att det som från början bara skulle bli ett system att byta antenner har nu blivit betydligt mer omfattande så namnet kanske är lite missvisande. Jag kanske ska säga att det står för Antenna System Controller istället ;)

Boxen kommer ha stöd för 4st antenner per bandområde mellan 0-30 MHz. (160M, 80M, 40M, 30M, 20M, 17M, 15M, 12M, 10M). Det finns möjligheten att ha en undermeny på varje antenn, som kan vara t.ex. att byta riktning på fasade vertikaler, ändra kombination på stackade antenner (t.ex. sätta två antenner ur fas från varandra). Man kan även lägga in att vissa antenner går att rotera och i så fall kommer det visas bredvid antennen vilken riktning den står i. Vill man sedan rotera en antenn klickar man på knappen rotate. Vill man använda TX/RX mode vilket betyder att man sänder på en kombination av antenner och lyssnar på en annan kombination klickar man på TX/RX-knappen. Detta är framförallt användbart om du har någon från Europa som stör din frekvens medans du t.ex. har en mängd nordamerikaner som ropar på dig så kan du "störa ut" europeerna medans du bara lyssnar på nordamerikanerna.

Knappen RX ANT är om du vill använda en mottagarantenn när du lyssnar, t.ex. på de lägre frekvenserna har man ofta långa trådar utspända (beverage antenner) som man lyssnar på då de påverkas betydligt mindre av störningar, är riktningskänsliga och har ofta bra front to back ratio, dvs dämpning bakåt.

Vridpotten är en pulsgivare som man ska kunna använda till olika saker. T.ex. välja RX antenn, stega i menyn, byta riktning på sändarantennerna osv.

ON/OFF knappen har jag gjort så att den lyser när lådan är avstängd så man hittar av den lätt och sedan släcks den när man trycker igång lådan. Jag har gjort så att ON/OFF knappen styr ett relä som ger hela boxen spänning, när den fått spänning tar processorn över och håller boxen aktiverad. På så sätt när jag trycker på knappen för att stänga av den kan den skicka ut meddelanden till alla enheter att avaktivera de utgångarna som boxen slagit igång, spara ner inställning i EEPROM, slå av alla utgångar och sist "släppa" reläet.

Bild

Om man tittar på baksidan av boxen:
Bild
På bottenvåningen ser vi 2st DB15 där vi har 12st utgångar som klarar 2A styck, den ena är sink och den andra source. Tanken med dessa är att man kan koppla in sådana saker man behöver till t.ex. bandpassfilter och annat som man har i närheten av radion.

Sedan finns det ingång för ett PS/2 tangentbord, förslagsvis ett keypad som man kan ställa in att varje knapp ska utföra olika kommandon. Ni kan se lite mer om detta på bilden från konfigurationsprogrammet. Ingången ovanför EXT är bara utgång med I2C och lite andra I/O pinnar för möjligheten att koppla in mer saker i framtiden, kanske en till display t.ex? RCA-kontakterna är för nyckling av slutsteg där man kan välja att antingen nykla slutsteget med ett relä eller med en transistor, detta byts med en jumper på kortet. FOOTSW är ingång för en fotpedal som man använder om man inte kör med VOX (röstaktiverad sändning) och den återstående RCA-kontakten är en ingång från t.ex. "amp out" på radion, dvs radions utgång för att nyckla ett slutsteg. Detta är för att boxen ska kunna känna efter när radion sänder, dvs om man kör VOX.

Bredvid detta är det en ingång för 12V+ och även USB (FT2232 som ger en COM-port för varje processor).

På övervåningen ser vi en DB25 som är interfacet mot radion. Man kan bygga olika kablar beroende på vilken radio man använder eftersom de ofta har olika signalnivåer på kommunikationen, vissa använder RS232, vissa kör TTL UART, andra kör en inverterad TTL och vissa (ICOM) använder CI-V som är ett entrådsprotokoll. Jag har även gjort det galvaniskt avskiljt genom att använda isolatorkretsar från Texas och konverterdelen drivs av spänning från radion. Här finns även optokopplad utgång för att aktivera sändningen på radion osv.

TX LED är en lampa som indikerar när det är trafik på bussen. Själva kommunikationsbussen är rätt lik gamla KOAX-ethernet där jag har en RG58 som är terminerad på varje ände med 50 ohm och med hjälp av en strömspegel sänder jag ut 130mA på bussen vilket ger en peakspänning av runt 3V. Jag har en komparator på ingången som tar emot vad som sänds på bussen. Anledningen att jag valde att göra det så här var främst för att det finns ton med RG-58 på en amatörradiostation, det blir störtåligt, enkelt att lägga till fler enheter och jag klarar mig med en vanlig UART på alla enheter kopplade till bussen.

AUX-kontakten är bara lite olika in/utgångar och även två reläutgångar som kan jumpras att antingen dra till jord eller +12V.

Processorerna jag använt mig av är en ATMEGA2560 för frontpanelen och en MEGA128 på själva dotterkortet.

Drivarmodul
-------------
Jag har gjort två varianter av drivarmoduler till bygget. Den ena har 20st utgångar för sink och den andra 20st utgångar med source. Varje utgång klarar 2A. Man kan sätta adressen på modulen genom att switcha om DIL-switchen på kortet. Varje utgång är skyddad med MOV (Metal Oxide Varistor) + flybackdiod + kondensator. Det sitter även polyswitches till varje drivkrets som bryts vid > 3A.

Bild

Bild

Bild

USB-dongel
-------------
Jag har även gjort en USB-dongel som kan användas för att kommunicera direkt ut på bussen. Detta använder jag mest för debugging just nu men man kan ju även i framtiden skriva ett program som "simulerar" en openASC-box så att man kan sitta hemma i lägenheten och använda stationen ute i obygden med datorn.

Bild

Konfigurationsprogrammet
------------------------------
Jag har valt att skriva detta i JAVA och det är till en rätt stor del klart men jag har mycket kvar när det gäller att skriva klart överföringen av inställningarna från programmet till openASC-boxen. Jag kommer spara datat i EEPROM:et och göra en karta över var datat ligger då allt behöver vara dynamiskt för att spara plats. Så den första delen av EEPROM:et blir en beskrivning av vart allt ligger, t.ex. submenyer för olika antenner osv. Så när jag sedan väljer ett bandområde kommer datat hämtas ut EEPROM:et och sedan skrivas ut på skärmen.

Här är lite screenshots...
Bild
Konfiguration av radio-interfacet. Boxen kan avkoda radion antingen genom att lyssna på kommunikationen mellan datorn och radion, fråga radion men vissa radior har BCD-utgång med information om vilket band de är på. På så sätt kan den automatiskt välja rätt filter, visa vilka antenner som finns tillgängliga osv.

Bild
Inställning av vilka antenner som finns, vilka undermenyer som finns. Det ni ser som 1,2,3@5 t.ex. betyder att utgång 1,2,3 på adress 5 (kort med address 5) ska aktiveras. Band outputs är vilka utgångar som ska aktiveras när det bandområdet väljs.

Bild
Konfigurationen av lyssnarantenner.

Bild
Konfiguration av SEQUENCERN. Detta är tiderna som boxen väntar vid olika situationer. Om du t.ex. trycker in fotpedalen kan man ställa in hur lång tid den ska vänta att nyckla slutsteget, radion osv. Detta är för att alla reläer ska hinna slå om osv. innan effekt läggs ut.

Bild
Konfiguration av vad de olika knapparna på tangentbordet ska göra. Genom att klicka på en knapp kan man få välja vad som ska ske när man trycker på keypaden kopplad till PS/2 ingången på openASC-boxen.

Bild
Konfigurationen av undermenyer. K9AY t.ex. är en sorts lyssnarantenn som man kan välja riktningar på. Så undermenyn för den lyssnarantennen blir alltså valet av 4st riktningar.

Här sker det mesta av utvecklingsarbetet, på mitt kontor här på universitet :)
Bild

Här är en bild på protokollet som använder time slots. Varje modul får börja sin sändning i sitt eget time slot men kan sända över flera slots.
Bild

Oj, blev rätt långt detta och mycket bilder. Jag har enormt mycket kvar att göra på projektet, framförallt när det gäller kodning. Det har blivit några små moddar på hårdvaran men inte något rejält än så länge tack och lov.

Hoppas ni finner detta intressant även fast användningsområdet är relativt begränsat.
Senast redigerad av sm2wmv 18 maj 2008, 14:48:53, redigerad totalt 1 gång.
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Här är för övrigt en film på när jag gjorde ett litet program som bara testade lite funktioner på frontpanelen.

http://butthead.campus.luth.se/~micke/o ... V00263.MPG
Användarvisningsbild
JockeE
Inlägg: 330
Blev medlem: 4 augusti 2004, 08:46:50

Inlägg av JockeE »

Mycket bra projektbeskrivning av ett mycket välgjort projekt! Både hårdvara och mjukvara verkar vara i toppklass :tumupp:

Vad är det för antennswitchar som styrs, vanliga koaxrelän?

Hur styrs antennrotorn? Används drivmodulernas på-/av-funktion på något klurigt sätt eller har du en speciell modul för det? Får operatören någon återkoppling på faktisk antennriktning?
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

JockeE: Det är en massa olika antennswitchar som styrs. I vanliga fall på kortvågen brukar jag antingen köra med ryska vakuumreläer eller vanliga 16A reläer.

Bild

Bild

Det där är en switch för att styra en 3-stack på 20M där jag använder ryska reläer. Jag försöker att göra allt som ska sitta utomhus med vakuumreläer för att slippa problem med fukt.

Bild
En box som kan koppla 6st antenner till 2 st radior. Den har rätt hög isolation mellan portarna, runt 65dB på 28 MHz och > 100dB på 1.8 MHz.

Bild

Bild
En stackbox för att kunna dela effekt mellan upp till 3st antenner.

Så det är lite olika boxar som man kan styra, givetvis även kommerciella.

Alla dessa kort är beställda från PCBcart.

När du frågar om roteringen av antenner så är det kortet inte gjort än men jag har tänkt ut hur jag ska göra. Jag kommer att göra ett generellt kort som har några relä-utgångar, analogingångar, logikingångar och även några FETar för drivning. Då kommer man kunna koppla in reläerna parallellt med knapparna, analog in från indikatorn osv. Alternativt att man bygger en egen box för att styra rotorerna, vilket som så kommer man kunna använda ungefär samma hårdvara. Man bör dock ha fysiska brytare för ändstopp så man inte roterar av kablar osv om man råkar koda fel alternativt om något hänger sig.
Senast redigerad av sm2wmv 10 maj 2008, 18:11:26, redigerad totalt 1 gång.
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Bild
Här är ett exempel på hur det kommer kunna se ut när man har valt ett visst band, i det här fallet 10M och man har en stor station. Det är dock en annan display som jag lekte lite med innan jag fick hårdvaran.
Användarvisningsbild
Greve Hamilton
EF Sponsor
Inlägg: 544
Blev medlem: 4 september 2004, 15:03:35
Ort: GBG

Inlägg av Greve Hamilton »

Jag har alldeles för begränsade kunskaper inom radio för att förstå allt i detalj, men projektet verkar vara väldigt omfattande.

Hur som helst ser det väldigt proffsigt ut!

Jag antar att det är Luleå tekniska universitet du jobbar på?
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Jo, precis. Jag jobbar som forskningsingenjör där.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Inlägg av blueint »

Box-till-Box kommunikationen är en 130 mA strömslinga..?
Eller något RS-485 liknande?
Hastighet?, Multidrop?
Hur ser schemat ut för inkoppling på detta nät?

Bygget verkar genomtänkt.
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Det är som sagt en strömspegel som trycker ut 120mA i bussen, den fungerar precis som gamla coax-ethernet förutom att den standarden hade lite lägre nivå.

Här är ett schema, och det var visst 120mA jag kör ut och inte 130mA.
Bild

Protokollet fungerar så att jag har en master som skickar ut en SYNC med jämna mellanrum. Alla enheter på bussen är passiva till de får sin första SYNC, då resettas alla räknare och alla enheter ligger hyffsat i synk. Om de inte får en synkpuls på en viss tid lägger de sig passivt och väntar igen. I meddelandet mastern skickar ut med synkpulsen finns det även ett fält som anger hur många enheter som finns på bussen, på så sätt vet alla enheter hur långt de måste vänta innan det är deras tur att börja sända. Så skickar mastern ut ett synk-kommando med 8 kommer det finnas 8 time slots varav enhetens address säger vilken slot de är tillåtna att börja deras sändning i.

I normala fall brukar man väl göra så att paketen ryms i ett time slot men eftersom jag inte vill ha så stora delayer om man har hyffsat många enheter på bussen så valde jag att göra på det här sättet istället. Jag har fått protokollet att fungera hyffsat men tänker implementera lite med funktioner i det. Jag håller på att lägga in att vissa meddelanden är högt prioriterade så att om en openASC-box skickar ut ett meddelande att slå igång vissa reläer med en flagga som säger att det är högt prioriterat så kommer ingen annan enhet att skicka data innan drivmodulen skickat tillbaka en ack. På så sätt får jag så snabb responstid som möjligt på de viktiga funktionerna.

Sedan för inkoppling på bussen så kör man bara en T-kontakt och 50 ohm terminering i varje ände av bussen.
Användarvisningsbild
Illuwatar
Inlägg: 2256
Blev medlem: 10 november 2003, 14:44:27
Skype: illuwatar70
Ort: Haninge
Kontakt:

Inlägg av Illuwatar »

Mycket snyggt och bra dokumenterat. Det hela ser mycket seriöst ut. Blir detta en kommersiell produkt?
peter555
Inlägg: 6047
Blev medlem: 12 februari 2006, 10:02:22

Inlägg av peter555 »

Kul projekt, alltid intressant när det kommer upp radiorelaterade prylar.
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Illuwatar: Vi får se, jag har lite små funderingar att sälja hårdvaran och sedan låta mjukvaran vara open source, på så sätt kan man få fler inblandade i projektet och arbetsbelastningen blir mindre. Men vi får se hur stort intresset är, möjligen skulle man kunna sälja det som kit, bara ta och förbereda korten genom att löda det svåra som FT2232, processorerna osv. Just nu känns det dock rätt avlägset då det kommer dröja ett tag innan jag har testat allt och implementerat tillräckligt med funktionalitet för att släppa det.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Inlägg av blueint »

Har du över/under-spänningsskyddat businterfacet?

Med master, måste man välja vilken enhet som skall vara sådan.. = Mer komplicerad konfiguration.

Antar att du kollat Chalmers/ETA projekt med antennstyrning över flera hundra meter (?) sladd med CAN-bus och någon MCU.

Hur gör du för att löda komponenterna?, fixar du BGA?
Användarvisningsbild
sm2wmv
Inlägg: 2282
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Inlägg av sm2wmv »

Nope, inte direkt, jag funderar dock att lägga en MOV iaf för att skydda mot eventuella transienter men förhoppningsvis blir det inte allt för mycket strul då jag har bussen terminerad. Möjligen sätter jag in en zener också sedan. Jag ska försöka se sedan hur den beter sig.

Som det är nu behöver jag välja en master. Jag funderar dock på att försöka hitta på något sätt att detta sköts automatiskt sedan men det får bli sedan.

Jag har inte sett det där ETA men kollade upp det nu. Jag fick förslag om att köra CAN-bus och så här i efterhand kanske det vore klokast. Det här är dock betydligt mer skoj att fixa något "eget".

Jag löder komponenterna i en reflow-ugn. Vi har även en pick & placer men den har tyvärr inte några matningar men duger till att placera ut svåra komponenter iaf. Problemet nu är väl att det kommer så mycket blyfritt att det börjar bli lite krångligare att löda dem. Pick & Placern är främst för att placera ut chip som ska bondas. Vi provade nyligen att löda några blyfria komponenter (BGA) men det gick väl inte så där superbra, möjligen skulle man behöva prova med lite bättre fluss.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Inlägg av blueint »

Du kan låta enheterna slumpa ett tal. Den med lägst nummer blir master..
Om dom får samma mot förmodan så gör man om proceduren för dom enheter som fick samma.

ETA/CAN-bus:
http://www.elektronikforumet.com/forum/ ... p?p=273928
CAN-busen har lite högre nodkostnad än t.ex. Open-collector. Men det är oftast en avvägningsfråga.

Diskussion om transmission för multidrop nät:
http://elektronikforumet.com/forum/view ... hp?t=25210

Kom fram till att en SCSI lösning med endast en tåt över cat.5 kabel verkar vara det mest "smarta".
Skriv svar