新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Android的機頂盒CAS系統的開發

        基于Android的機頂盒CAS系統的開發

        作者: 時間:2012-08-21 來源:網絡 收藏

        2.3 智能卡任務模塊
        智能卡的通信標準有T0和T1兩種,T0按字節傳送,T1按塊傳送,而在設計過程中通常支持兩種協議。一般采用I2C總線通信,而智能卡內部一般沒有上拉電阻,所以在電路設計過程中,SCL和SDA的引腳處必須加上拉電阻,否則無法正常通信。根據通信協議,如果要對智能卡數據讀寫操作,首先要發送5字節的命令字,這5字節命令字依次為CLA、INS、P1、P2、P3,其中CLA為指令類型,INS為命令符,P1、P2為操作文件位置,P3為后續字符數。智能卡接收到命令符就可以根據命令種類對其后續數據進行操作,同時智能卡就可以發出兩個字節W1、W2的應答符。如果成功,W1、W2分別為0x90、0x00;如果不成功則會返回相應的代碼,以便給者提供調試。因為智能卡內部十分復雜,篇幅有限,所以想深入了解原理的話可以參考智能卡標準,這里僅介紹操作智能卡過程的設計。

        本文引用地址:http://www.104case.com/article/154097.htm

        f.JPG


        如圖6所示,在智能卡任務模塊中,在啟動之初,未進入文件之前,就要對智能卡進行初始化,分配內存池,強制為智能卡復位,從而選擇通信類型(T0或T1),全部完成之后就可以進入文件。通過_CARD_TASK()為智能卡建立線程,在其線程內部使用_CARD _ReceiveMessage()接收來自EMM或者ECM的命令字。如果合法,通過_CARD_SendMessage()可以把應答字給其兩個模塊,同時通知其他兩個模塊發送操作數,若是EMM則到此結束,若為ECM則智能卡會把解密的CW通過CAS_CARD_SendMessage()發送給
        2.4 其他細節設計
        CAS系統除了最重要的解擾以外,還有其他重要的附屬功能,如郵件、在線付費、在線充值、節目點播、區域限制、用戶管理。這些信息都存儲在EMM表中,所以EMM和ECM表的解析也是一個十分重要的步驟,只有正確地提取出 EMM中的CA信息,才能順利地進行下一步的操作。根據MPEG-2標準和PSI/SI協議,以及智能卡廠商的提供功能表,就能設計出EMM和ECM的解析函數。
        表1列出了一個通用CA的描述符。

        g.JPG


        由于每個智能卡廠商的填充數據不一樣,所以必須根據廠商的定義再去提取數據、處理數據。由于筆者參與設計的是某公司提供的智能卡,所以數據的格式也都以它為標準。最終設計包括12個源文件、5個頭文件。

        3 CAS子系統的移植
        CAS終端子系統起初沒計由于涉及到與底層交互,采用的是C語言。如果想要使上層的JAVA環境調用其API,就要遵循JNI規范添加新的頭文件,使其應用層能夠方便地調用。同時Google在設計Androld之初就提供了NDK套件,有著獨有的交叉編譯器,使得原有的許多C語言編寫的驅動、應用程序可十分方便地移植到系統中。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿尔山市| 班玛县| 两当县| 漠河县| 敖汉旗| 本溪| 枝江市| 万宁市| 喀什市| 沁源县| 庆云县| 阿拉尔市| 英吉沙县| 临城县| 时尚| 武山县| 随州市| 武城县| 土默特右旗| 织金县| 团风县| 平潭县| 黄大仙区| 鹤峰县| 彰武县| 富顺县| 奈曼旗| 宜章县| 泾源县| 北票市| 秭归县| 元阳县| 镇宁| 奉贤区| 夏津县| 浠水县| 沅陵县| 钟祥市| 芦山县| 南雄市| 濮阳县|