2013-08-28 37 views
1

我有一個sim連接到我的微控制器。 rst,I/o和clck引腳接線正確。我的主板上有一個硬件UART,但由於它是全雙工而不是一半,所以我將RX/TX連接在一起。我怎麼沒有收到來自SIM卡(ISO-7816)的迴應?

到目前爲止,我根據ISO-7816切換RST,並且我的UART緩衝區填滿了SIM卡響應的ATR。一旦我收到了ATR,我將UART更改爲TX模式併發送一個PPS。發送後,我將UART更改回僅RX模式。它遵循ISO-7816中規定的正確格式,但我沒有收到SIM卡的確認字節。確認應該是我發送的設置的重複。

+0

卡片是否發回任何東西?放置一個存儲範圍並找出。 –

+0

用示波器看着它,卡片在ATR之後沒有發送任何東西。 – user791953

回答

0

儘管我不是協議專家,但我認爲最可能的原因是,您發送PPS太早 - 「發送之後」在現代微控制器上可能太早了。 ISO 7816-3規定,保衛時間照常使用,等待時間爲9600年。 太早發送PPS意味着該卡尚未收聽,這完全解釋了完全沒有收到任何答覆。錯誤的格式會導致一個錯誤塊,這也應該在範圍中可見,這支持了我的假設。

0

我想你的問題和我在GSM調制解調器上的問題是一樣的。 發送一個命令,你會從設備得到一個確認,然後發送下一個命令,獲取ack等,等等。設備不久或晚些時候會掛起。

關鍵是對確認的解釋。 您可能認爲確認意味着該命令被接受並執行。然而 - 至少在我所知道的所有GSM調制解調器中 - 這意味着沒有更多,但命令被接受和解釋 - 但沒有執行。在耗費時間的命令的情況下,您在前一個命令執行過程中發送下一個命令。你這樣做是因爲你可能認爲承認意味着命令已經完成 - 但事實並非如此。 設備可能會緩存累積命令,也可能不緩存累積命令,但設備不久或稍後會耗盡資源並掛起。

我沒有使用設備的經驗,但現象似乎是相同的。

相關問題