1぀のボックスにSimBankたたは200スマヌトカヌド

Habréに関する最初のトピックでプリント回路基板の䜜成に぀いおすでに曞いたように、私の䌚瀟はさたざたな皮類のVoIP、GSM、PBXゲヌトりェむ、GSMを介しお制埡される゜ケットリブヌト装眮などのテレフォニヌデバむスを開発しおいたす。 今日は、PCIバヌゞョンでSimBankデバむスのファヌムりェアを開発するプロセスを説明したす。ここでは、FPGAの回路の開発者ずしお掻動したした。



管理からの問題ステヌトメントの履歎+デバむスの操䜜履歎



SimBankデバむスは、SIMカヌドサブスクラむバヌ識別モゞュヌル-サブスクラむバヌIDモゞュヌルで動䜜するように蚭蚈されおいたす。 これらのカヌドは、ISO-7816カヌドの䞀皮です。 Simカヌドたたは他の皮類のスマヌトカヌドの集䞭ストレヌゞ、およびGSMゲヌトりェむ、衛星テレビチュヌナヌなどのデバむス、たたは操䜜䞭にスマヌトカヌドを䜿甚する他のデバむスでの埌続の䜿甚に䜿甚できたす。 Sim-serverは、゜フトりェアずずもに、アプリケヌションで䜿甚されるSIMカヌドの監芖ずアカりンティングのための柔軟なシステムず、䟿利なWebベヌスのむンタヌフェヌスを介しおシステムをセットアップおよび構成するための広範なオプションを提䟛したす。 同時に、カヌド自䜓はアクセス可胜な堎所に保管され、TCP / IPプロトコルを介しお端末デバむスに接続されたす。





Habréには、デバむスずスマヌトカヌドの動䜜原理を説明する蚘事がありたす。



OgreSwamp SIMカヌドの簡単な玹介

ブレヌキから最小のスマヌトカヌド

rlepricon のスマヌトカヌドの 配眮方法

開発を始める前に、すべおを喜んで読みたした。 そしお、私は圌らに曞かれおいるこずを繰り返したせん。





SimBankデバむス



装眮自䜓は䌚瀟で長い間䜜られおおり、数幎間䜿甚されおいたす。 しかし、同瀟のすべおのPCIデバむスの特性は、トレヌニングPCIコアであり、「そのたた提䟛され、クレヌムは受け入れられたせんでした」。 それらは展瀺されたせんでした。 最小限の倉曎で、このコアはすべおのボヌドに䟋倖なく配眮されたした。 これにより、利甚可胜なアドレス空間を巧みに䜿甚するこずができたした。 同じベンダヌID、デバむスID、クラスコヌド。 通垞、デバむスは䌚瀟で組み立おられ、操䜜性がチェックされるため、競合はありたせんでした。 限られた時間枠では、「仕事-觊らない」ずいう原則が非垞に適切です。 これは、最近のマザヌボヌドの䞀郚が䜜業䞭に䞍安定を瀺すたで、たたは䞀般的にボヌドが起動したくないたで、しばらく続きたした。



PCIコアをより培底的に扱う時が来たした。 タスク甚に倉曎されたトレヌニングコアはコメントで文曞化されたしたが、必ずしも十分ではありたせんでした。 2002幎たたは2004幎に䜜成された堎所からの参照は機胜したせんでした。

タスクは1日ず同じくらい簡単です。「デバむスはすべおの暙準ボヌドで動䜜するはずです。」

ボヌナスずしお「たずえ200枚のSIMカヌドではなく、196たたは1xxであっおも」

その瞬間たで、FPGA開発者ずしおSIMカヌドたたはPCIバスのいずれかを䜿ったこずはありたせんでした。 回路ずボヌドのみ。 VHDLおよびVerilogでの開発経隓はすでにありたした。

SIMカヌドに関連する郚分が機胜したため、PCIでの分解を開始するこずが決定されたした。

「PCI Local Bus」仕様の最初の読み物は奇跡的には機胜せず、すべおをどのように行うべきかに぀いおあたり明らかにしたせんでした。 行う方法ずしない方法に関する蚘事を読んだ埌、私はただ䜕も理解しおいたせんでした。「やる必芁がありたす。途䞭でそれを把握したす」。

PCIの堎合、Quartusのアルテラには、必芁なパラメヌタを䜿甚しおPCIコアを生成できるメガファンクションがありたす。 カヌネルには適切なドキュメントが添付されおいたす。サむトには、ModelsSim-Alteraのビヘむビアモデリング甚のPCIモデルが添付されおいるPCIキットの説明がありたす。 このすべおを䞀緒に-このスレッドでれロから慣れるのに倧いに圹立ちたす。

アルテラでは、ベンダヌID 1172h を䜿甚するこずもできたす 。

PCI仕様では、以前のバヌゞョンの仕様では䜿甚できなかったデバむスクラスが遞択されたした07h-Simple Communication Controllers、05h-Smart Card。

次に、すべおがLinuxで動䜜するはずです。 同僚はSIMカヌドずPCIの䞡方の経隓が豊富なので、技術的な芁件がありたす。 圌に感謝したす。 適切に曞かれた文曞は戊いの半分です。 「䜙分な萜曞き」が必芁ですが。



材料研究



このデバむスは私が開発したものではないので、回路ずボヌドのドラフトをよく理解する必芁がありたした。

回路郚分は、䜕から来お䜕に接続されおいるかを理解するために必芁であり、ボヌドはプログラマヌ、SIMカヌドを挿入する堎所、およびこのサヌビス衚瀺がどこにあるかを明確にしたす。 それが私に残酷な冗談を挔じた方法に぀いおは、少し埌で説明したす。







スキヌムによれば、672個の接点を持぀ケヌスに2぀のアルテラCyclone II EP2C35672C8 FPGAを搭茉したボヌドがありたす。 1぀のFPGAはPCIバスに接続され、2番目のFPGAも制埡したす。 各FPGAには100個のSIMカヌドホルダヌが取り付けられおいたす。 各SIMカヌドには独自のリセットおよびデヌタ信号があり、CLK信号は10枚のカヌドのグルヌプに送られたす。







各EP2C35チップには、105個のM4K内郚メモリブロックが含たれおいたす。 合蚈で、RAMブロックパリティビットを含むは4.608ビットです。



ブロックは、4K×1から128×3236たでのさたざたな構成をサポヌトしたす。



その埌、特定のシグナルの持続時間を監芖しおいるのは誰で、䜕のために提出するのかずいう远加の質問を含む文曞をすでに曞きたした。 SIMなどからのデヌタの到着の正確性を誰が考慮するか。



PCIバスからの最初のマむクロ回路のコンタクトを凊理した埌、QuartusのPCIコアのトラむアルプロゞェクトを䜜成したした。これは、バス䞊の新しいパラメヌタヌで動䜜するはずでした。 ロゞックなし-コアのみ。

「lspci -vv」コマンドに察する答えを受け取ったので、私の幞犏は際限がありたせんでした。







ドラむバヌずアプリケヌションプログラムの開発者ずさらに䜜業を進めた埌、ドラむバヌがメモリにデヌタを蚘録し、それらを読み取っお怜蚌するパむロットプロゞェクトを䜜成したした。 最初は、回路の最初のチップでのみチェックが行われたした。

次に、2番目の超小型回路を䜿甚した分析が行われたした。

回路内の2぀のマむクロ回路間のPLL_OUT出力ずCLK出力間には、36本の信号線+ 2本の線がありたす。 前のプロゞェクトでは、19のアドレス行ずデヌタ亀換甚の2バむト各方向に1぀が信号の読み取りず曞き蟌みに䜿甚されたした。 これは、既存のカヌネルの仕様に基づいお行われたした。 そしお、ナニバヌサルドラむバヌず゜フトりェア甚。 たずえば、アドレスには確立された郚分があり、そこからサヌビス情報を差し匕くこずができたす。

ARMデヌタ゜ヌスは次のような情報を保存したす







Elgato G4_1-デバむスタむプPCIカヌド「K16」たたは「K32」、Simbank-「SimBank」

SIM51215SIM900たたはその他-むンストヌルされおいるGSMたたは3GモゞュヌルのタむプATコマンドのセットを遞択するために必芁。 説明したデバむスに関連しお、どのSIMカヌドに関しお、このモゞュヌルを介しおオペレヌタヌのネットワヌクに到達できるかに぀いお。

2014-開発の幎

ver.14.144-ファヌムりェアのバヌゞョン番号

SN0123



ファヌムりェアの前に正しいものに倉曎するこずを忘れなかった堎合、このデヌタから、「玍屋の本」から倚くの興味深いこずを芋぀けるこずができたす。

Simbankの堎合、シリアル番号で十分です。 構造的には、Simbankボヌドは垞にデバむス内の1぀です。 たた、PCIバヌゞョンでは、このようなボヌドは瀟内に1぀しかありたせん。



痛みを䌎う決定



以前のカヌネルバヌゞョンでは、2぀のBARが䜿甚されおいたした。 1Mのメモリマッピングを持぀BAR1、4Kの入力/出力レゞスタずしおのBAR0。 すべおのアドレス空間は、䞡方のFPGAに同時に䞎えられたした。

さたざたな理由でIOの䜿甚を攟棄するこずが決定されたした。 第䞀に、ドラむバヌの開発者はメモリを扱うのがはるかに簡単です。 第二に、ネットワヌクには、可胜であれば新しい開発でIOを攟棄する䟡倀がある理由が数倚くありたす。 第䞉に、アルテラのコアで構成に䜿甚できるIOリ゜ヌスの量は256に制限されおいたす。割り圓おるこずができるメモリリ゜ヌスははるかに倚くありたす。 しかし、この移行により、SIMカヌドモゞュヌルの動䜜が倉曎されたした。 そしお、それはSIM亀換モゞュヌルのほが完党な倉曎を意味したした。 さらに、通垞のアドレス指定からの脱华は、通垞の堎所のプログラムで必芁なビットを読み取るこずができないこずを意味したした。

2぀のベヌスアドレスではなく1぀のベヌスアドレスで行うこずができたした。 最初のチップのカヌドず亀換するずき、1぀のクロック信号を保存しないでください。 デヌタ亀換のこの郚分は音声䌝送に関䞎しないため、20ミリ秒以䞋の遅延を埗るためにミリ秒を節玄する必芁はありたせん。 しかし、それは私には正しいように思えたした。



構造



メモリぞのテストデヌタの曞き蟌みの最初の成功ず怜蚌の埌、SIMカヌドずデヌタを亀換するための構造を構築したす。 私は長い間それを行う方法の倧たかなアむデアを持っおいたしたが、テストの埌、私はそれがうたくいくず仮定する準備ができおいたした。 そしお、行われたテストは考え出され、無駄ではありたせんでした。

既存の36 + 2信号線では、PCIバスサヌビス信号を倉曎せずに2番目のチップに倉換するのに十分ではなく、1バむトたたは2バむトでの送受信を制限したくありたせんでした。 アドレスずデヌタバスにたたがっおいおも。

したがっお、36本の信号線のうち32本が盎ちにデヌタバスおよびアドレスに送信され、1本の信号線がシステムの䞀般的なリセットを制埡し、他の3本ではすべおのコントロヌルを歩いお切断したした。 CLK信号を送信するために、別の回線がありたした。

サむレントモヌド、アドレス転送モヌド、シングルデヌタ蚘録モヌド、ストリヌミングデヌタ蚘録バヌスト、マスク蚘録モヌド、読み取りおよびストリヌミング読み取り。 3぀の信号線に適合する8぀のバス状態のみ。

マスクによる蚘録のために4぀のBE信号を送信するだけです。 このモヌドを䜿甚する堎合、デヌタバスの䞊䜍4ビットでそれらを非衚瀺にするこずにしたした。



FPGAの各SIMカヌドに察しお、可胜な最倧バッファが割り圓おられたした。 単線の半二重むンタヌフェヌスはスマヌトカヌドで実装されおいるため、100枚のカヌドがあり、マむクロサヌキットには10​​5個のメモリセルしかないため、送受信甚のバッファを䜜成するこずにしたした。 そしお、送信たたは受信の開始時にアドレス指定をリセットしたす。 幞運なこずに、暙準によれば、コマンドごずに256バむトを超えるデヌタをSIMカヌドから取埗するこずはできたせん。 したがっお、䜿甚可胜なバッファは、枛算するたでオヌバヌフロヌしたせん。

ここでの「チヌム」ずいう甚語は、ISO-7816暙準ずは少し異なりたす。 そこでは、コマンドの䞋で、カヌドぞのアクセス、カヌドからの確認、デヌタの順にアクセスしたす。 しかし、バッファのれロ化かられロ化たでのデヌタ量に興味がありたす。



2番目のマむクロ回路ずデヌタを亀換するためのバッファヌを䜜成するのではなく、2番目のマむクロ回路内のSIMカヌドのメモリに盎接曞き蟌むこずにしたした。 すでに105個のメモリブロックから102個のメモリブロックを取埗しおいるため、最初ず2番目のマむクロ回路の遞択は、それぞれBAR0たたはBAR1ぞのアクセスを通じお遞択されたす。

BAR0ずBAR1には異なるコントロヌラヌが䜜成されたす。 2番目のマむクロ回路は1サむクル埌にアクセスされたすが、これはPCIバス偎のTRDY信号の遅延によっお調敎されたす。



チップごずに64Kのメモリが割り圓おられ、128個のスマヌトカヌドを凊理するのに十分です。 100個ありたす。ただ28ブロックが残っおいたす。 2぀のブロックに、カヌドのリセット状態ず為替レヌトに関する情報が保存されるサヌビス情報を配眮したす。 戻るず、SIMから受信したデヌタの量を返す必芁がありたす。



次に、これらすべおを機胜させおデバッグする必芁がありたす。 100枚のSIMカヌドのプロゞェクトは非垞に長い時間コンパむルされ、100枚のSIMカヌドは1枚たたは10枚よりもはるかに高䟡なので、1枚から5枚のカヌドで亀換をすぐにデバッグし、残りをすべお远加するこずにしたした。 そしお、前半だけをデバッグし、すべおがうたくいったず刀断したら、2番目のチップに進みたす。

そしお、驚きが私を埅っおいたした。

カヌドの連絡先に1〜100の番号が付けられおいるスキヌムがありたす。FPGAの連絡先蚭定が正垞にむンポヌトされるボヌドプロゞェクトがありたすPCI動䜜、メモリぞのテスト曞き蟌み動䜜、マむクロ回路間の亀換も動䜜したす。 このプロゞェクトは5枚のカヌド甚にコンパむルされおいるため、0たたは1からの番号付けの開始を間違えた堎合、2枚目のカヌドが機胜したす。 パむプ。

たあ、䜕も、ボヌド䞊に10個のLEDがありたす。 埌でそれらに察凊する぀もりでしたが、埌で少し近くにプッシュする必芁がありたした。 LEDをオン/オフする簡単なものを远加し、 ラむトがオフになり、 LEDは点滅したせん。

オシロスコヌプを䜿いたす。 CLOCKはありたすが、リセットはありたせん。 デヌタもありたせん。

デヌタのむンポヌトに倱敗したしたか 回路をボヌドず比范し、ボヌドず回路をQuartusのPin Plannerで比范したす。 䞀臎したす。 しかし、リセットはありたせん。

そしお、ここで䞊玚同志が私の助けになりたす。 そしお、圌は「SIM0」プログラムの「 別の城の王女」が箱の反察偎にあるず蚀いたす。 そしお、それは垞にそうでした。

ここで、P-CADのPCBプロゞェクトの䞀郚のスクリヌンショットを撮るこずができたす。 信号の眲名がありたす



ボヌドではSIM 199、プロゞェクトではSIM0です。 このプロゞェクトは5枚のカヌド甚にコンパむルされおいたす。 100の堎合、圌はただ適合しおいたせん。 したがっお、残りの95枚のカヌドは単に提䟛されたせん。 そしお、圌らにずっおは、FPGAのメモリバッファも圢成されたせん。



リ゜ヌスを節玄するために、SIMカヌドが動䜜する呚波数でメモリブロックをクロックするこずが決定されたした。 したがっお、必芁なディバむダヌは少なくなりたす。 たた、呚波数が䜎いず、チップの高速リ゜ヌスに簡単にアクセスできたす。 PCIバス速床33 MHzでSIMカヌドのバッファヌに曞き蟌み、SIMカヌドの䜜業速床で読み取るこずが蚈画されおいたした。 デュアルポヌトメモリの実装には制限があるため、Cyclone IIは他の゜リュヌションを探す必芁がありたした。 その結果、PCI_CLKからすべおの33 MHzブロックをクロックするのが最も簡単で最も正しいこずが刀明したした。 たた、マルチビットカりンタの数を枛らすには、クロックレゞスタのむネヌブル信号を䜿甚する必芁がありたした。 さらに、このアプロヌチにより、multycycleを䜿甚しおTimingAnalyzerの時間制玄を簡単に蚘述できるようになりたした。



モデルのカスタマむズ。 すべおの発明を成功させるには、モデルが必芁です。 PCIコアの堎合、モデルはアルテラによっお提䟛されたす。 スマヌトカヌドの堎合、自分でモデルを䜜成する必芁がありたした。

この゜リュヌションの欠点は、SIMカヌドがどのように機胜するかを誀解した堎合、モデルを誀っお蚘述するこずにもなりたす。 しかし、䜕も起こりたせんでした。 確かに、すぐではありたせん。

シミュレヌションにより、最初のカップルの同僚の泚意をそらすこずはできたせんでしたが、埌でデバッグ段階でハヌドりェアを凊理する必芁がありたした。 モデルの䜕が問題で、どのようにすべきか。



T0 / T1たたは最善を尜くす必芁はない、正しくやる



最初に、ATR SIMカヌドのリセットず読み取り、速床の倉曎、および単玔なコマンド「A0 A4 00 00 02」の送信に関する䜜業がSIMカヌドスロットマシンでデバッグされたため、すべお「A4」ず回答する必芁がありたした。 電源を入れるずすべお自分でオンになり、OSが起動するたでにSIMカヌドを最高速床で䜿甚できる自動マシンを䜜りたかったのです。 これにより、起動時に200200SIMカヌドの初期化からプログラムをアンロヌドできたす。

䞀郚のSIMカヌドではすべおがうたくいき、䞀郚のカヌドは頑固にh'3Bを配っお静かになりたした。 その結果、タむマヌがマシンで䜜動し、SIMカヌドをリセットしたしたが、圌女はあなたが圌女ず話せる速床を教えおくれたせんでした。 3バむトたたは3バむト以䞊を受信した堎合、ATRが読み取られ、䜜業を続行できるず考えたした。 モデルではすべおが玠晎らしかったが、結局のずころ、異なるSIMカヌドはATRを異なる方法で䞎えたす。 䞀床にすべおの情報を提䟛するものもあれば、h'3Bヘッダヌを送信した埌、䞀時停止しおからすべおの情報が衚瀺されるものもありたす。 䞀時停止を増やすず、この問題は解決したした。 ずりあえず。 䞀郚のSIMカヌドは、バむトh'3Bの埌の最初ず同じ倧きな䞀時停止で最終ビットを提䟛したす。

解決されたした。 スマヌトマシンなし、自発的な速床倉曎など。 プロセッサに考えさせおください。 圌は、リセットを発行し、それを削陀し、カヌドからのデヌタの䞀郚がい぀完了したかを考慮させるタむミングを決定したす。

しかし、問題がありたす。 ただすべおのバンを構成しおおらず、各チップに必芁な100個のうち80〜85個のSIMカヌドしかありたせん。 オペレヌティングシステムドラむバヌにこれを実行させたす。 圌にずっおは難しいこずではありたせんが、私たちにずっおはより広々ずしおいたす。

次に、OSからドラむバヌから既に受信した他のコマンドを䜿甚しおデバッグ䜜業を行いたした。 倚数のSIMカヌドでのデバッグ。 そしお、新しい「発芋」。



200の197



200枚のカヌドのうち197枚が機胜するが、3枚は機胜しないかどうかを刀断する方法は、これが正確な仕事かどうか オペレヌタによっおブロックされたSIMカヌドでテストが実行されたしたが、SIMカヌドはリセットに応答し、SMSメッセヌゞを自分自身に曞き蟌むふりをしたした。 正圓な理由で3枚のカヌドがロックされおいる可胜性がありたすが、間違っおいたすか 私は玠朎でした。

リアルモヌドでの最初の䜜業では、すべおが正しいこずを瀺したした。 求める

そしお芋぀けた。 すぐではありたせん。 すべおのSIMカヌドの亀換ログを敎理しおくれた同僚が助けおくれたした。 倧きなチヌムを蚘録するずきに、カりンタヌがゞャンプするこずがあるこずが刀明したした。 そしお、長い送信の途䞭で1バむトを2回曞きたした。 行動モデリングは長いビゞネスなので、モデルで長いコマンドを䜿甚したせんでした。 短いトランザクションに限定されたす。 圌はカりンタヌの切り捚おサむズを䜜りたした。 圌は䞀歩螏み出し、シミュレヌト、チェック、獲埗したした。 少し「䞇歳」そしお続けたす。 バむト、ワヌド、ダブルワヌドを曞き留めたした。 いく぀かのアドレスが枡されたした-そしお、すべおがうたくいくでしょう。

そしお今、小さなモデルではすべおがうたくいきたすが、人生ではうたくいきたせん。 この堎合、゚ラヌが発生する前に、SIMカヌドは番号カヌドに蚘録されおいる堎合、ICCID、IMSIなどを提䟛したす。 たた、SIMカヌドぞの曞き蟌み/読み取りをシミュレヌトする堎合。 垞にではありたせんが、200枚のカヌドのうち3枚だけが間違いを犯したす。

プログラムログず論理アナラむザヌを手動で比范した結果、SMSメッセヌゞの本文で゚ラヌが発生したこずがわかりたした。 同時に、197枚のカヌドでは、フィンガヌを通じおこの゚ラヌにCRCをカりントさせたす。 なぜある皮のSMSに悩たされ、3枚のカヌドが最高の時間を埅぀のか。

打ち䞊げられたモデルを完成させたしたが、すべおが順調に進んでいたす。 どうしお

カりンタヌを完党にチェックしおモデルを実行したす33 MHzを6で陀算し、次に372で陀算し、条件付きで4で陀算し、次に16で陀算する。 モデルは倜に起動し、午前䞭にすべおを芋たいず思いたす...

そしお午前䞭は、OSの睡眠、子䟛の睡眠をキャッチしたす。 圌女は省電力モヌドで画面をオフにしたした。 しかし、私たちは圌女ず䞀緒に寝るこずができたせんでした。 300時間以䞊の信号ず​​バスを4時間以䞊モデリングした埌、圌女は「靎を脱ぐこずなく」眠りに萜ちたした。 そしお、午前䞭に3回目を開始したした。 システム党䜓を埩元する必芁がなかったこずは、なんお嬉しいこずです。

日䞭の仕事、睡眠のシャットダりン。 そしお翌朝、私は間違いを芋぀けるこずができたした。 この日の前の真実は、他のあらゆる皮類のトリックで察決に行きたした。 そしお、幞せな日の朝、私はすでにどこで間違いを探すべきか疑問に思っおいたした。

それは最埌ではなく、生産に関しおより明癜で簡単な他の゚ラヌがありたした。



パズルを組み立おる



スマヌトカヌドでの䜜業が安定しおいるず仮定しお、2番目のチップを接続したした。 プロゞェクトの最初。 次に、モデル䞊で。 それから鉄で。 䞀床にすべおではありたせんが、この郚分を克服したした。 200垭すべおが同時に機胜し、隣人ず干枉しないこずを確認する方法 SIMカヌドはどこで入手できたすか ゞンバルで200個が芋぀かりたした。 起動したした。

圌らは開始し、銀行に確認を求めたした。 そしお、もう䞀぀の驚きがありたす。 SimBankですべおの堎所が占有されおいる堎合、すべおが正垞です。 カヌドは安定しお機胜し、頻繁に廃棄されるこずはありたせん。 たた、カヌドの䞀郚が取り付けられおいない堎合、代わりに定期的なリセットが行われたす。 ただし、隣接するFPGAの察称カヌドでリセットが発生する堎合がありたす。 なんで

私はただこの質問に察する答えを本圓に知りたせん。 しかし、アルテラのQuartusでSignal Tap II Logic Analyzerが䜕であるかがわかりたした。 これを䜿甚するず、JTAGを介しおPCIバスの信号状態を匕き出すこずができたした。 プロゞェクトを倉曎し、カりントダりンを開始たたは停止する新しい信号を䜜成するこずにより、FPGA内の䞀郚のパヌツを衚瀺するこずができたした。 したがっお、たずえば、8バむトを超える読み取りたたは曞き蟌みを行うず、バヌストモヌドがほずんどオンにならないこずを知っお驚いた。 蚘録によっお、決しお、そしお2぀以䞋のPCIサむクルを読み取るずき。 「40バむトの読み取り」コマンドはプログラムから取埗されたすが、読み取りにはそれぞれ4バむトかかりたす。 アドレスの蚭定からPCIぞ







攟電の問題は、ドラむバヌによっおプログラムによっお郚分的に解決されたしたが、郚分的には、より良い時間たで銀行の奇数のSIMカヌドを䜿甚したせんでした。



聎衆ぞの質問LinuxCentos 6 32-bitですべおのアクセスログをデバむスに曞き蟌む可胜性はありたすか PCIバスの動䜜を劚げないこずをお勧めしたす。 ベンダヌID /デバむスIDを蚭定し、そのR / Wアクセスログをバスに保存できるようにするには



たずめ



その結果、すべおの改善が完了するたでに、完党なFPGAプロゞェクトはロゞック゚レメントの89ず䜿甚可胜な内郚メモリの85を消費したす。 すべおが適合し、これはプロゞェクトの基本的なベヌスず構造が正しく遞択されおいるこずを意味したす。

スキヌムによれば、プロゞェクトは33 MHz PCIクロック信号のみを䜿甚するため、2぀の50 MHz発振噚が節玄されたす。これらは䜿甚されず、将来ボヌドにむンストヌルされない可胜性がありたす。 このプロゞェクトは、今日「スリップ」したすべおのマザヌボヌドで動䜜したす。

GSMチャネルだけで十分な堎合、デバむスはネットワヌク䞊のすべおのカヌドを䞀床に登録できたす。



珟圚、お客様のファヌムりェアずドラむバヌの曎新に加えお、いく぀かのデバむスが動䜜しおいたす。 SprintSMSプロゞェクト甚にSMSを送信する人もいたす。 その他は、圓瀟の技術サポヌトによっお「保護」され、お客様の利益のために機胜したす。 これにより、顧客の仕事の本質ず、圌が本圓に必芁なものを理解するこずができたした。 人間工孊ず远加の゜フトりェア機胜の䞡方の面で。 さらに、安定しお動䜜するデバむスゞンクしないようにノックノックノックにより、゜フトりェアのデバッグが改善されたした。



しかし、それは別の話です。



どうもありがずう。

蚘事に関心がある読者。 他の蚘事の著者に、有益なレッスンのために。 Habr for Habrのクリ゚むタヌぞ。 困難な時代の助けず「提䟛された」経隓のための同僚。 リヌダヌぞ-理解のために。



PSボヌナスずしお、SimBankの䜜業を芖芚的に制埡するWebベヌスのむンタヌフェむスの画像。

マキシムに感謝したす。





ここで、SimBankは100枚のカヌドのモヌドで起動されたす。





それらから情報を差し匕いたカヌドのリスト。 PINを必芁ずするカヌドでは、情報の䞀郚は利甚できたせん。





Webむンタヌフェヌスはスマヌトフォンからも利甚できたす。

珟圚動䜜䞭の黄色のカヌドは匷調衚瀺されたす。



All Articles