hi...
i'm a little late, i hope not too late
only started with CCID, but I think I can put you in the right direction. So, I have managed to read data from the smart card using Omnikey 3x21 reader(+otg cable). Communication is based on APDU commands, posting them here can not help you since every card is different. first, you need to send to reader power_on command or PC_to_RDR_IccPowerOn(search google) like this
62 00000000 00 00 00 0000
msg type(62 power on, 61 power off, 6f read data....)
next is msg length(LSB)
next slot number
next command number(increment for each command....)
next power.....
try this and you will get ATR(hex string explaining your card...protocol, type....), the bold part
response:
80180000000000000000
3BBF11A28131F2354550B3000000000000000000000000
now, every command and response has special parts, defined in protocol(length, checksum...), to long to elaborate here....
next command, I guess will be 6F - reading data, can be obtained using Wireshark or a similar app.
since you have ACR3901U-S1, I have to admit that I'm stuck there, although they published their protocol. they use T=1, and there is a special way(don't know what) of "packing" APDU in command for T=1. If someone can help us both, now is the time.