<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 智能卡COS芯片層模塊設計與測試方案研究

智能卡COS芯片層模塊設計與測試方案研究

作者: 時(shí)間:2009-07-13 來(lái)源:網(wǎng)絡(luò ) 收藏
(2)硬件。上電后首先要進(jìn)行初始化,其主要設置以下幾個(gè)方面:初始工作時(shí)的頻率,以及使用外頻還是內頻;串口初始工作的速率(一般為“l(fā)l”的波特率)-芯片串口的工作模式(包括T=0還是T=1協(xié)議,正向傳輸還是反向傳輸,奇校驗還是偶校驗等);存儲器的初始映射方式。
芯片(以下以51系列芯片為例)一般包含幾十到幾百KB的FLASH,以1個(gè)頁(yè)面為單位進(jìn)行擦除,根據FLASH編程寫(xiě)的特點(diǎn),也就是1能寫(xiě)成0,而0不能寫(xiě)成1,故在設計編程寫(xiě)函數時(shí)為了保證寫(xiě)數據的正確性,特采取如下的方式實(shí)現此功能:
第一步:取出要寫(xiě)入地址的數據(為A),與要寫(xiě)入的數據(為B)進(jìn)行與操作(結果為C);
第二步:在要寫(xiě)入數據的地址寫(xiě)入數據(B);
第三步:取出寫(xiě)人數據后的地址的數據與數據C進(jìn)行比較。
對于51系列智能卡芯片,由于標準的8051對程序存儲器最大值支持64 KB,所以芯片采用BANK的編址方式。這時(shí)往往需要一個(gè)映射函數來(lái)實(shí)現不同BANK的跳轉。如果一款智能卡芯片的程序存儲器采用128 KB的FLASH用來(lái)存放和用戶(hù)數據。128 KB的FLASH均分4個(gè)32 KB的BANK,在這4個(gè)區域里,Commom區是3個(gè)Bnak的公共區域,即Commom區和每個(gè)32 KB的BANK都可以組成64 KB的連續空間。3個(gè)Bnak之間不能直接互相訪(fǎng)問(wèn),而必須調用Commom區里的程序才能實(shí)現相互的訪(fǎng)問(wèn)。所以在創(chuàng )建工程時(shí)要把經(jīng)常使用的程序和常數,如中斷入口函數、Bank Switch跳轉表等都放到Commom區里,這樣才能實(shí)現各個(gè)區域的相互訪(fǎng)問(wèn)。
(3)異常保護。IS07816―3規定2個(gè)連續字符上升沿之間的延遲至少是12 ETU,且2個(gè)連續字符上升沿之間的延遲應不超過(guò)9 600 ETU。所以在設計時(shí)要加入發(fā)送“60”來(lái)實(shí)現正常的通信。
發(fā)送“60”采用芯片定時(shí)器中斷的方式,設置定時(shí)器的工作模式,使用時(shí)鐘和的初始值。定時(shí)器的中斷服務(wù)程序的實(shí)現流程:關(guān)閉發(fā)送“60”定時(shí)器;發(fā)送“60”;打開(kāi)發(fā)送“60”定時(shí)器。
操作系統的異常處理,此函數為COS進(jìn)行異常狀態(tài)時(shí)調用的函數。進(jìn)入異常狀態(tài)時(shí),要關(guān)閉發(fā)送“60”的定時(shí)器,然后進(jìn)入死循環(huán)狀態(tài)。

本文引用地址:http://dyxdggzs.com/article/195815.htm

3 芯片測試方案設計
以下提出一種針對芯片模塊函數的測試方案。即嵌入式Testing COS。
(1)Testing COS測試平臺組成。T-COS平臺由MAIN.C文件、API.C文件、常量配置、A51文件以及芯片庫、LIB文件組成。其中,針對不同的芯片,main.c,api.C是相同的,而常量配置文件和芯片庫文件則不同,在使用時(shí)需要更改或更換。
另外,MAIN.C文件中的CommandInterpreter()命令解釋器函數是對發(fā)送命令的識別解釋(在此函數中,為所有需要測試的函數定義了指令嗎)。被測函數的函數體在A(yíng)PI.C文件中。芯片庫在A(yíng)PI.C文件中被具體調用。
此Testing COS可直接寫(xiě)入智能卡中,設計思路是:采用直接APDU指令調用的形式,直接調用硬件模塊函數,如擦一頁(yè)函數。執行完指令,函數返回一個(gè)狀態(tài)字。
主程序是一個(gè)死循環(huán),如下:


命令解釋器函數支持多個(gè)函數,為用戶(hù)對硬件的直接操作提供接口,可以通過(guò)發(fā)送APDU指令實(shí)現對芯片的多種操作。


例如:APDU:80 00 10 00 00表示擦除地址0x1000所在頁(yè)面。
APDU:80 0C 10 00 10表示從地址Oxl000開(kāi)始讀取長(cháng)度為Oxl0的數據。
(2)Tesling COS測試平臺的使用。T―COS測試 平臺測試流程,如圖2所示:

(3)Testing COS測試平臺局限性分析。T―COS平臺使用方便簡(jiǎn)潔,易于觀(guān)察執行結果,但是其不能觀(guān)察過(guò)程。因此,在返回結果與預期結果不一致,或者出現錯誤的情況下,無(wú)法判斷產(chǎn)生錯誤的原因。在這種情況下,需要借助仿真器,跟蹤執行過(guò)程,最終找出產(chǎn)生問(wèn)題的原因。

4 結 語(yǔ)
智能卡操作系統根本的部分就在于芯片底層各個(gè)模塊的穩固性。芯片層開(kāi)發(fā)是電信、稅控等產(chǎn)品開(kāi)發(fā)的重要組成部分之一,也是最基礎的部分。為了保證電信、稅控產(chǎn)品可以在不同芯片之間的平穩移植,需要對芯片層的開(kāi)發(fā)提出一定的要求和標準,這樣可以保證上層開(kāi)發(fā)的一致性。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: COS 智能卡 芯片 模塊設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>