RS-232 (D-sub 9-pol)

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

RS-232 (D-sub 9-pol)

Inlägg av sebastiannielsen »

Jag har en hårdvara med följande utsignaler:

PRESENT , är ETTA(1) när data överförs och NOLLA(0) när data INTE överförs. (GRÖN kabel)

STROBE , är 25-50 % av bitlängden (BRUN kabel)

DATA , är datasignaler. (ORANGE kabel)

Hur gör jag nu för att koppla detta till en RS-232 kontakt (D-SUB 9-pol).

Och finns det nån möjlighet att få någon ström från RS232-porten (2,4 volt till 5,5 volt)

Har följande kontakt:

1: 2,4 till 5,5 V + (röd)
2: 2,4 till 5,5 V - (svart)
3: DATA (orange)
4: STROBE (brun)
5: PRESENT (grön)

Denna ska som sagt omvandlas till en RS-232-kontakt.

Och följande inställningar behöver jag hjälp med:

7 eller 8 bitar
stoppbit (en eller 2)
paritet (even , odd or none)
handshaking
baud rate.


Objektet som har den 5-poliga kontakten är en kortläsare.
Ska köra en helt mjukvarubaserad kortläsare.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Tyvärr är jag lite skeptisk till att du kan få det att fungera rakt av.

Det största problemet ligger i att en serieport på en pc förväntar sig att datat kommer i en viss takt (inställbart via "baurdaten"). Din kortläsare skickar förmodligen ut datat i den takt som användaren råkar dra kortet i och för varje bit som den läser av från kortet och lägger ut på datapinnen och skickar den även en puls på strobe-pinnen som i praktiken säger till den enhet som ska ta emot datat att "Läsa av datat nu!". Så kortläsarens sätt att skicka data är inte förenligt med det sätt som en serieport tar emot data på.

Vad gäller att strömförsörja kortläsaren från serieporten så finns det en möjlighet till det, men det är beroende på hur mycket ström kortläsaren drar. En serieport har inga officiella utgångar för matningsspänning, men man brukar kunna knycka lite ström från en av utsignalerna typ DTR (som på en vanlig pc antingen har +12 eller -12 volt). Så där behöver man förhindra att man får in pel polaritet i läsaren och samtidigt ta ner spänningen till +5 volt.

För att få det här att fungera på ett bra sätt skulle jag rekommendera att man sätter en mikrokontroller (PIC/AVR) mellan kortläsaren och pc'ns serieport och att man strömförsörjer både mikrokontrollern och kortläsaren via en avledning från tangentbordet eller musen på datorn.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Som kortläsare använder jag en MAGTEK art nr 21045002

Klicka på länken... För tekniska data om läsaren.
kortläsare

Det finns en tillhörande manual Här

det är "track 2" versionen jag har , som läser spår 2 av kortet

Det är den första versionen av kontakten jag har , den med 5 pinnar.

Och hur mycket kostar en mikrokontroller? Och hur mycket kostar en programmeringskabel/enhet

Jag skulle i så fall behöva en 38 bens. För att även koppla in 3 lysdioder och en 4*3 sats (7 kablar + 6 för dioderna).

Får då 9 pinnar över (kan behövas för programmering).

(7 (knappsatsen) + 6 (dioderna) + 5 (kortläsaren) + 2 (power) + 9 (COM-port) = 29
(38-29) = 9
Senast redigerad av sebastiannielsen 11 september 2004, 14:12:03, redigerad totalt 1 gång.
Användarvisningsbild
zeus
Inlägg: 7058
Blev medlem: 17 juni 2003, 22:13:44
Ort: Sthlm.

Inlägg av zeus »

Jag annvänder en som man kopplar in på tangentbords sladden, alltså imellan tangetbordet och datorn.

När man drar kortet är signalerna som ett tangentbord och man kan skriva texten i alla fält man kan skriva med ett vanligt tangetbord.

Vet att de inte var så dyra, kanske ett bra allternativ. Kan även ta ett kort på fredag eller så.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Det jag menar med helt mjukvarubaserad är att datan ska bara ta emot rådata från kortläsaren och ev. knappsats, jämföra med databasen , tända lysdioder för KOD BEHÖVS och DÖRR ÖPPEN , DÖRR LARMAD , och skicka reläutgångar.

Till skillnad från ett "vanligt" passersystem , som har kortdatabasen på ett externt kretskort och har en massa 19'' moduler och sån skit.

Det är ju mycket smidigare att lagra allt på datan istället?

Och skriva egen programvara som samarbetar med CGI så man kan ha en öppningsknapp i admin-panelen på hemsidan. Görcoolt när nån ringer å vill komma in hemma här i sverige , så typ om jag e bortrest , så bara jag loggar in med mitt användarnamn och lösenord som administrator , å klickar på öppningsknappen , så skickas en öppningssignal via internet till den server som sköter korten.
Sci
Inlägg: 145
Blev medlem: 7 juli 2003, 11:03:29
Ort: Mölndal

Inlägg av Sci »

sebastiannielsen skrev:(7 (knappsatsen) + 6 (dioderna) + 5 (kortläsaren) + 2 (power) + 9 (COM-port) = 29
Normalt behöver du bara två pinnar för att kommunicera med datorn via RS-232. (RX oxh TX).

Erik
Michel
Inlägg: 436
Blev medlem: 3 februari 2004, 18:08:04
Ort: Stockholm

Inlägg av Michel »

Fel!
3 st - RxD, TxD och GND.

...om man nu inte bara ska kommunicera i en riktning. Då behövs bara två.

8)
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Som du skrev (EDIT: och sedan tog bort?) så skulle man eventuellt kunna ligga och läsa av signalerna i en mjuvaruloop på PC'n. Det kan kanske fungera, nackdelen med det är att det kommer in uppåt 10000 bitar per sekund vilket gör att om datorn blir upptagen med nåt annat i 0.0001 sekund (= 0.1 mS) så kommer den att tappa bort en bit under inläsningen, vilket förmodligen kommer att resultera i att användaren måste dra kortet en gång till.

Gör du programmet och kör på en dator med DOS så är det inga problem alls. Men ska du köra windows och samtidigt ha ha datorn inkopplad på ett nätverk så tror jag bestämt att det kommer att fungera dåligt nästan hela tiden.

Nedan följer ett utdrag från manualen.


SINGLE - BIT INPUT PROGRAMMING
This method of interface does not require any external
chip to implement serial data communication between
the Card Reader and an MPU. This function is done
through a software program that allows the MPU to
transmit and receive data. This process requires some
very time-critical programming. A disadvantage of this
approach is that, while the processor is receiving data
serially, it must totally dedicate itself to the task.
Accurate timing can only be maintained if the program
remains in a tight wait loop without being diverted to
other functions. When programming the MPU, the timing
loops required for receiving data cannot exceed the time
period of the incoming data bits. Table 1 shows the data
rates at card speed of 50 inches per second (ips).

Kod: Markera allt

                     TK1       TK2    TK3
Bit Rate (bits/sec.) 10,500  3,750  10,500
[/i]

En mikrokontroller som ska göra det du sa (3 st lysdioder, 3x4 knappsats, läsa av kortläsaren och skicka ut till datorn) behöver 3 pinnar för lysdioderna, 7 för knappsatsen, 3 för kortläsaren, 2 (eller 1) för PC'n, 2 för matningsspänning och 2 för kristallen (kan evantuellt hoppas över beroende på modell) = 19 pinnar.

Men det går att minska om man vill. Kortläsarens utgångar kan kopplas på 3 av dom pinnarna som knappssatsen använder som ingångar. (Man använder ju man trycker ju inte på knapparna samtidigt som man drar ett kort). De tre lysdioderna kan kopplas på dom pinnarna som är utgångar till knappsatsen och sedan bara ha en pinne för att 'koppla in' lysdioderna. Kör man sedan med en uC som har intern justerbar klockgenerering och bara använder TX (PC'n kan alltså inte skicka något till uC'n, det behövs ju ändå inte) så är man nere i 11 pinnar totalt.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Anledningen till att jag tog bort det är för att jag kom på att pinnarna från kortläsaren är "höga eller låga" , inte slutningar... Därför var inte lösningen bra. Men om det finns något sätt att skicka in det i datorn och använda händelsestyrd mjukvaruloop (Som triggas av PRESENT-signalen) , så skulle det gå bra.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Att dom är höga eller låga är aldeles utmärkt. Det är så ingågarna på en dator fungerar.... :-)
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Tack så mycket Matseng!!!! DET FUNKAR!!!!!! Ja koppla in 2 stycken 1,5 volt batterier till + och - , och kopplade in de 3 signalerna till datan , och se , dioderna i programmet blinkar medans jag drar ett kort. JIPPI!
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

underligt.... Jag får olika 1:or och 0:or när jag drar samma kort flera gånger...
Användarvisningsbild
zeus
Inlägg: 7058
Blev medlem: 17 juni 2003, 22:13:44
Ort: Sthlm.

Inlägg av zeus »

Kan det vara så att du drar oliak fort och den inte hinner med att läsa? Eller att den läser pulsvis och då bara tar med en del av informationen på kortet.

Kan du ställa in läshastigheten?
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Finns det nån förprogrammerad mikroprocessor , som tar ström från RTS , omvandlar till 3 volt , och skickar ut det på 2 pinnar , SAMT dekoderar data, strobe och card present , till RS-232 data , och skickar ut det på 2 pinnar. (RxD och GND)


en 8 pins , typ detta:

1: RTS
2: RxD
3: GND
4: Power 3 V out +
5: Power 3 V out -
6: DATA
7: STROBE
8: PRESENT


Eller nått.

Och vilket företag kan man beställa den av , och vad kostar den?
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Den enklaste och billigaste är nog att köpa en kortläsare med inbyggd dekoder som har en rs232-utgång som skickar färdigdekodat data i ascii. Särskilt om du bara ska ha en av dom.

Tror nog att det finns en handfull personer på forumet som skulle kunna skriva koden till en uC åt dig om dom fick tillgång till kortläsaren. Men jag misstänker att dom flesta skulle vilja ha betalt för det oxo. Det rör sig nog om 10-30 timmars jobb beroende på erfarenhet och hur pass komplett man vill att slutresultatet ska vara.
Skriv svar