الفرق بين "أمر الإرسال المباشر" (ACR122U) و"PC_to_RDR_Escape" (ACR1251U)

StackOverflow https://stackoverflow.com//questions/25084197

سؤال

مع ACR122U أعلم أنه يمكنك إرسال رسائل مباشرة إلى وحدة تحكم NFC (PN532) باستخدام أمر الإرسال المباشر: 0xff 0x00 0x00 0x00....

عندما قرأت دليل ACR1251U يقول: يتم تنفيذ أوامر التحكم في الأجهزة الطرفية للقارئ باستخدام الملف PC_to_RDR_Escape.

ماذا يعني هذا بالضبط؟هل هذا يعني أنه من غير الممكن إرسال رسائل مباشرة إلى وحدة تحكم NFC؟إذا كان ذلك ممكنًا، أين يمكنك العثور على وحدة تحكم NFC التي تستخدمها؟

أي معلومات هو موضع ترحيب!

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

"أمر الإرسال المباشر" هو تنسيق APDU الذي يسمح لك بإرسال أوامر أصلية إلى وحدة التحكم PN532 NFC المدمجة في جهاز القارئ ACR122U.لذلك يحدد هذا بشكل أساسي التغليف الذي يناسب الأوامر الأصلية في البروتوكول المستند إلى APDU الذي تتحدث إليه مع القارئ عبر الكمبيوتر الشخصي/SC (& CCID):

 0xFF 0x00 0x00 0x00 <Lc> <DATA>

أين <DATA> هو في الواقع أمر لـ PN532.

PC_to_RDR_Escape هي رسالة CCID (فئة الجهاز/البروتوكول الذي يتم التحدث به عبر USB) التي يتم استدعاؤها بواسطة مكدس PC/SC عند إرسال أمر هروب.على سبيل المثال، إذا كنت تستخدم Java SmartcardIO API Card.transmitControlCommand() الطريقة، سوف يقوم مكدس PC/SC بإرسال ملف PC_to_RDR_Escape رسالة عبر USB.يجيب القارئ على هذه الرسالة بـ أ RDR_to_PC_Escape إجابة.

وبالمثل إذا كنت تستخدم الطريقة CardChannel.transmit() الطريقة، يؤدي هذا إلى قيام مكدس PS/SC بإصدار واحد (أو أكثر؟) PC_to_RDR_XfrBlock الرسائل عبر USB.

كما اكتشفت في هذه الإجابة, ، يبدو كما لو كنت ستستخدم تنسيق APDU الخاص بـ "أمر الإرسال المباشر" لكلا طريقتي تبادل الأوامر.

يبدو أن ما إذا كنت بحاجة إلى استخدام أمر الهروب أو أمر الإرسال يعتمد على إصدار البرنامج الثابت للقارئ.على سبيل المثال، بالنسبة لإصدارات البرامج الثابتة 101 و102 (و103؟) ستحتاج عادةً إلى أمر الإرسال فقط، ولكن يبدو أن إصدارات الجيل التالي (2xx) تفضل/تتطلب (إذا لم تحاكي ATR) أسلوب أمر الهروب .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top