RS-232 (D-sub 9-pol)
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
RS-232 (D-sub 9-pol)
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.
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.
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
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
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.
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å.
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å.
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
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.
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.
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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).
[/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.
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
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.
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
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.
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
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?
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?
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.