<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  機頂盒中智能卡通信的實(shí)現

                  文章出處:http://psychicreadingswithdeb.com 作者:張 萍&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年09月22日

                  [文章內容簡(jiǎn)介]:機頂盒中采用智能卡技術(shù)實(shí)現條件接收,主要介紹了機頂盒芯片Sti5516的智能卡接口和用于實(shí)現機頂盒與智能卡之間通信的TDA8004T芯片,介紹了T=0通訊協(xié)議,并給出了通訊的實(shí)現過(guò)程。

                      在利用數字機頂盒收看數字電視節目時(shí),為了滿(mǎn)足不同用戶(hù)的需要,保證每個(gè)用戶(hù)的利益,需要采用條件接收系統管理用戶(hù)的權限并確保用戶(hù)的正常收看。而在機頂盒中,通常使用智能卡技術(shù)實(shí)現條件接收。 

                    智能卡有自己的微處理器、存儲器和一個(gè)與機頂盒通信的接口。采用智能卡實(shí)現條件接收的優(yōu)勢在于:它具有高度的安全性和保密性,主要用于存儲用戶(hù)的私人密鑰、控制授權、保密算法等信息,可以保證整個(gè)數字電視系統的安全。 

                    本文主要討論智能卡與機頂盒之間的通信。機頂盒中的主芯片一般都提供與智能卡通信的接口,利用相應的硬件和通信協(xié)議,就可以實(shí)現它們之間的正常通信。在本文中,機頂盒芯片采用ST公司的Sti5516。由于Sti5516提供的智能卡接口需要外接一個(gè)接口芯片才能與智能卡通信,所以還采用了Philips公司的TDA8004T芯片。整個(gè)硬件框圖如圖1 所示。 

                  1 Sti5516的智能卡接口 

                    Sti5516支持智能卡接口——異步收發(fā)控制器(UART),用于實(shí)現Sti5516與二個(gè)智能卡控制器的通信。異步收發(fā)控制器支持全雙工異步通信,接收器與發(fā)送器使用相同的數據格式和波特率。數據的傳輸和接收可以是雙BUFFER,也可以是16位FIFO。通信過(guò)程中奇偶校驗位、數據位、停止位都是可編程的。同時(shí),在傳輸和接收中的錯誤覺(jué)察增強了數據傳輸的穩定性,UART與智能卡的握手協(xié)議確保了數據傳輸的安全性。Sti5516有一個(gè)智能卡時(shí)鐘產(chǎn)生器,提供給智能卡一個(gè)時(shí)鐘信號。智能卡使用這個(gè)時(shí)鐘驅動(dòng)智能卡與UART之間的通信。這個(gè)時(shí)鐘也用于智能卡CPU時(shí)鐘。智能卡接口操作要求卡的時(shí)鐘可以調整,這樣波特率可以改變,時(shí)鐘的調整可以根據ISO7816標準。Sti5516提供的智能卡接口支持T=0、T=1協(xié)議。 

                  2 TDA8004T介紹 

                    TDA8004T提供了一個(gè)低成本的異步智能卡接口,可用于電子付費、讀卡器、付費電視等。它可以取代智能卡與微控制器之間的一些外部元器件,提供微控制器與智能卡之間穩定、低噪音并符合ISO-7816 標準的通信接口[1]。其原理結構圖如圖2所示。 

                  3 通信協(xié)議 

                    在Sti5516與智能卡的通信過(guò)程中,本文采用了T=0協(xié)議。 

                    T=0協(xié)議是異步半雙工字節傳輸協(xié)議[2],即協(xié)議所處理的最小單位是單個(gè)字節。通信命令總是由接口設備啟動(dòng),以命令報頭通知卡做什么,并且允許在卡發(fā)出的過(guò)程字節的控制下傳輸數據字節。命令報頭由連續的5個(gè)字節組成,這5個(gè)字節指定為CLA、INS、P1、P2、P3。其中CLA為指令類(lèi)別,INS為指令類(lèi)別中的指令代碼,P1、P2為一個(gè)完成指令代碼的參考符號(例如地址),P3由一個(gè)可變長(cháng)度的條件體組成。條件體包括命令數據域長(cháng)度字節Lc、命令數據域和響應返回的最大長(cháng)度字節Le。根據不同的命令,條件體的組成也不相同。 

                    這樣,在一個(gè)5字節命令報頭傳輸后,接口設備等待一個(gè)或者兩個(gè)過(guò)程字節。過(guò)程字節的值將指明接口設備請求的動(dòng)作。如果過(guò)程字節的值與INS字節相同,表示接口設備向卡發(fā)送或者從卡接收所有數據;如果與INS字節的補碼相同,表示接口設備向卡發(fā)送或者從卡接收下一個(gè)字節;如果為0x60,表示延長(cháng)等待時(shí)間;如果為0x61,表示接口設備等待第二個(gè)過(guò)程字節,并根據第二個(gè)過(guò)程字節發(fā)送命令取回數據;如果為0x6c,表示接口設備等待第二個(gè)過(guò)程字節,并根據第二個(gè)過(guò)程字節重發(fā)上一條命令。如果過(guò)程字節是0x90、0x00,表示通信成功完成[2~3]。 

                  4 通信的實(shí)現 

                    在實(shí)際通信過(guò)程中,本文將工作頻率定為3.57MHz,保證數據傳輸的波特率為9600bps。數據格式采用帶奇偶校驗的8個(gè)數據位和2個(gè)停止位,如圖3所示。 

                    在機頂盒與智能卡發(fā)送數據和接收數據的過(guò)程中,使用了Sti5516智能卡接口UART的驅動(dòng)。因此在進(jìn)行通信之前首先要對UART初始化。初始化之后,進(jìn)行卡的復位應答,如果應答正確才能與卡通信。 

                    根據T=0協(xié)議的定義,機頂盒與智能卡通信的流程圖如圖4所示。

                  5 調試經(jīng)驗 

                    (1) 在寫(xiě)智能卡接口UART的驅動(dòng)時(shí),必須按照T=0協(xié)議標準配置工作頻率、數據傳輸波特率和數據格式; 

                    (2) 在確??ǖ膹臀粦鹫_后,才能進(jìn)行卡與機頂盒的通信; 

                    (3) 命令報頭的傳送一般是有一定的先后順序的,在測試過(guò)程中,需要按照順序發(fā)送命令報頭,才能正常接收數據; 

                  圖4 

                    (4) 判斷過(guò)程字節和條件體形式時(shí),一定要按圖4所描述的,考慮仔細、全面,以免通信錯誤。 

                    由于目前大多數智能卡支持T=0協(xié)議,所以本文主要介紹了基于T=0協(xié)議的機頂盒與智能卡之間的通信。在此基礎上,以后可以實(shí)現基于T=1協(xié)議的通信,以便支持更多的智能卡。  

                  本文關(guān)鍵詞:機頂盒,智能卡,T=0協(xié)議
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>