Dear all,
The Feitian R-301 and especially the R-310 are recent ccid readers,
which can connect up to 600.000 bps.
Let's take the example of the Feitian R310:
=> libccid log:
ccid_usb.c:954:get_data_rates() declared: 10752 bps
..
ifdhandler.c:1883:find_baud_rate() Card baud rate: 125000
ifdhandler.c:1892:find_baud_rate() Reader can do: 10752
ifdhandler.c:826:IFDHSetProtocolParameters() Reader does not support
125000 bauds
towitoko/atr.c:329:ATR_GetDefaultProtocol() default protocol: T=1
=> The problem stems from .parse, which returns:
***
bVoltageSupport: 0x07
5.0V
3.0V
1.8V
dwProtocols: 0x0000 0x0003
T=0
T=1
dwDefaultClock: 4.000 MHz
dwMaximumClock: 8.000 MHz
bNumClockSupported: 0 (will use whatever is returned)
Support 4000 kHz
dwDataRate: 10752 bps
dwMaxDataRate: 600000 bps
bNumDataRatesSupported: 0 (will use whatever is returned)
Support 10752 bps
dwMaxIFSD: 248
dwSynchProtocols: 0x00000000
dwMechanical: 0x00000000
No special characteristics
***
The R-310 reader does not seem to advertise all possible speeds. Maybe
there is a way to retrieve all speeds, maybe not.
Why not try to establish a communication with the card at the speed of
125000 or other common speeds? I feel that the current algorithm tries
the minimum speed dwDataRate (10752 bp) when it should try also a speed
compatible with the card (125000) and less than dwMaxDataRate (600000
bps).
This would allow several readers to discuss at high speeds, like it is
done under Windows (which is sometimes 10 times faster than GNU/Linux
when reading smartcards).
Or Would there be other methods to detect speeds?
All comments are welcome. Maybe this was discussed previously, in which
case please point out to me the discussion.
Kind regards,
--
Jean-Michel Pouré - Gooze - http://www.gooze.eu
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle