薛明策,劉素娟,林平分
(北京工業大學, 北京 100124)

薛明策,劉素娟,林平分
(北京工業大學, 北京 100124)
隨著信息化時代的到來,智能卡作為信息化技術標志之一,在金融等方面的應用逐漸普及。智能卡操作系統不同于傳統軟件,它工作在嵌入式環境,具有硬件資源有限、工作環境不穩定等特點,所以其設計方法與傳統方法有所不同。智能卡操作系統在投入使用之前,必須經過嚴格的測試,這是由嵌入式系統工作的特性決定的,因為當軟件工作后出現漏洞時很難進行彌補。本文通過對智能卡下載機制的研究,改進設計以提高智能卡操作系統的下載速度,進而提高測試效率和縮短發卡時間。
智能卡;COS;高速下載
智能卡(Smart Card)是封裝著集成電路的具備傳輸存儲以及數據處理能力的塑料卡片,因其良好的處理能力和較好的保密性能,成為IC卡發展的主要方向。COS(Chip Operation System)是伴隨著CPU卡的出現而產生的,并且根據CPU的差異而有所不同。COS是一種專用的系統,一般來講一個 COS 只能用于一種特定的智能卡[2-4]。目前COS有兩種存在方式:一種是把已經經過驗證的COS直接通過掩膜方式,在生產過程中固化到智能卡芯片的只讀存儲器(Read only memory, ROM)中;另一種是芯片生產結束后,通過ROM中的Bootloader程序將COS下載到智能卡中的非易失存儲器(Flash, EEPROM等)中[5]。相比于固化在ROM中COS不會被惡意修改的優勢,采用Bootloader下載的方式使COS具有更大的靈活性,更能讓COS適應瞬息萬變的市場,而不用被修改掩膜的長時間周期所拖累[ 5 -7]。因而,大部分研究者都是通過ROM中的Bootloader程序將COS下載到智能卡中的非易失存儲器中。
郭鴻志、李代平等在《智能卡芯片操作系統的研究與實現》一文中提出了EVDO 卡 COS 的開發[1],李春豐、馬海峰等在《RF_SIM卡的多應用COS研究與設計》中開發了SIM卡的COS[2],潘宇、鄧赟等研究了基于智能卡COS平臺的應用開發技術[3],胡云肖、楊波等提出了面向PBOC2.0的智能卡操作系統的設計[4],周成沖、林平分等研究了智能卡操作系統高速下載設計[5],孫建、林平分等研究了雙界面智能卡操作系統的設計與測試[6],楊柳、于忠臣等側重于智能卡COS測試方案的研究[7],嚴婷婷、張志鴻等研究了智能卡操作系統自動化測試方法[8]。上述研究者有的側重于智能卡COS開發的研究與實現[1-4],有的偏向于研究智能卡COS測試方案的研究與實現[6-8],但研究智能卡COS下載速度的卻很少。
本文主要研究智能卡COS下載速度的提高,以北京市嵌入式系統重點實驗室自主研發的非接觸式智能卡BES2416版本9和版本10為基礎。BES2416已經成功流片,芯片如圖1所示,此智能卡已經被北京握奇數據有限公司和深圳明華科技應用,實際應用表明,實驗室智能卡滿足客戶的需求和實際情況。智能卡COS下載速度的提高可以縮短開發周期和相應的測試周期。

圖1 非接觸式智能卡BES2416芯片
本文研究的智能卡COS的下載機制為非接觸式下載,與智能卡通信的讀卡器有北京市嵌入式系統重點實驗室自主研發和深圳明華科技公司的兩種類型,讀卡器和智能卡是通過射頻13.56 MHz非接觸式通信,其中非接觸式接口服從ISO14443協議,下面主要介紹COS的下載機制。
1.1 讀卡器和智能卡
智能卡COS的下載是讀卡器與智能卡通過非接觸式進行指令交互的形式來完成的,圖2所示為封裝好的智能卡和實驗室自主研發設計的讀卡器。

圖2 智能卡和讀卡器
當讀卡器和智能卡進行通信時,智能卡ROM中的Bootloader完成相應初始化,準備接收下載指令,讀卡器通過上位機程序連接智能卡,然后發送COS下載指令,智能卡接收到指令后解析指令,將編譯后的COS二進制文件下載到智能卡的eFlash中。
1.2 指令的發送
指令的發送是通過上位機軟件控制讀卡器發送相應的指令,上位機程序發送智能卡Bootloader里預存的指令,讀卡器通過發送連接指令、認證指令和下載COS指令等,將下載的COS拆分成各個數據包之后再進行APDU指令分裝,然后通過讀卡器將指令發送給智能卡。圖3所示為上位機操作界面,讀卡器發送指令通過相應的按鈕完成或直接通過SendAPDU發送指令。

圖3 上位機操作界面
1.3 指令的解析
智能卡接收到讀卡器發送的指令后,對每條指令進行解析,根據不同的結果做出相應的處理,當收到下載COS的指令時對其指令進行解析,取出數據,并將數據寫到相應存儲器的對應區域中,完成之后回復相應的指令,下載COS的操作完成。
1.4 執行COS程序
完成COS的下載之后,智能卡重新上電時,Bootloader判斷是否已經下載COS的標志位,如果已經下載完則直接執行COS程序。下面的程序是智能卡里Bootloader代碼下載和執行COS的指令。
if(FLAGCHECK == 1){
switch(receive_byte()){
case 0x20: freq_change(); break;
case 0x66: auth_process(); break;
case 0x84: gen_rand_num(); break;
default: send_byte(0x5B); break;
}
}
else{
switch(receive_byte()){
case 0x04: jump_to_cos(); break;
case 0x06: WrFlsh_128bytesdata(); break;
case 0x24: read_sfr(); break;
case 0x28: EflashChipErase(); break;
default: send_byte(0x5A); break;
}
}
提高COS下載速度,首先要研究影響讀卡器下載COS到智能卡里的下載速度的因素有哪些。本文主要研究兩點:數據傳輸速度和COS寫入eFlash的速度。
2.1 數據傳輸速度的分析
讀卡器產生耦合到智能卡的RF電磁場,用以傳送能量和雙向通信,智能卡獲得能量后將其轉換成直流電壓。RF場的載波頻率為13.56 MHz,磁場強度在1.5~7.5 A/m,在此范圍內智能卡能不間斷地工作,所以在指定的工作空間內,讀卡器產生的磁場強度至少為1.5 A/m,且不超過7.5 A/m。ISO14443協議規定兩種接口信號:Type A和Type B。本文中支持A類協議,數據傳輸率為13.56 M/128=106 kb/s,一位數據所占的時間周期為9.4 μs,調制方式為ASK100%調幅制。讀卡器和智能卡之間的非接觸式接口遵從ISO14443協議,影響數據傳送的因素主要有兩個,即讀卡器提供的時鐘信號CLK,以及讀卡器與智能卡通過天線耦合的場強大小。
本研究中讀卡器是實驗室自主研發設計的,首先可以按要求調整CLK信號線上的頻率,所以將讀卡器所提供的CLK信號線上的頻率提高到市場上已有讀卡器可提供頻率的2倍,進而將數據傳輸的速度提高到原來的8倍,這是提高下載速度的重要方法。其次是讀卡器和智能卡的天線耦合設計,讀卡器模塊的外圍天線匹配電路的設計如圖4所示。

圖4 外圍天線匹配電路
外圍天線電路匹配電阻的最終定值為R4=2 kΩ,R5=2.7 kΩ,R6=2.7 kΩ;電容值的大小設定為C6=150 pF,C7=270 pF,C8=150 pF。實際測量顯示,讀卡器可以提供給智能卡的磁場強度大小為5.5~6 A/m。在協議規定的范圍內,磁場強度較強,大于一般讀卡器提供的磁場強度,讀卡器和智能卡的通信速度提高,下載速度提高1~2倍,這是提高下載速度的另一個措施。
2.2 數據寫入eFlash的速度
智能卡的COS最終下載到卡中eFlash相應的區域,即寫入eFlash中。eFlash的工作原理決定了它的工作方式,如果要對其中的區域進行寫操作,需要先做擦除處理,擦除使它所有的數據位都變成1,之后再進行寫操作,寫操作其實就是將某些位編程為0,已經變為0的數據位無法再寫成1,除非重新擦除。eFlash的擦除又分為兩種方式:片擦除和頁擦除。片擦除指的是將整個eFlash全部擦除一遍,頁擦除指的是eFlash將擦除某些指定的頁。eFlash的頁的單位都不是1個Byte,這就要求我們把需要修改的內容暫存在一個buffer里,修改之后再對原始頁進行擦除,最后把暫存的內容寫回到原始頁,如圖5所示。

圖5 eFlash頁擦除操作
本文針對具體研究情況,首先,對COS進行下載操作時無需保留智能卡eFlash中原始信息,故可以將里面的內容全部擦除,之后再把COS全部按字節寫進去,因為整個eFlash已經被完整擦除,所以COS下載時不會出現需要修改某個地方的操作,只需要按順序將COS寫到某塊區域中,從而節約一定的時間。其次,更改智能卡下載過程中的寫eFlash的方式,以前的方式為直接調用寫eFlash的驅動,現在改為直接配置相應的特殊功能寄存器進行寫操作,以減少程序調用的開銷和程序執行的時間。可通過減少數據寫入eFlash的時間來提高COS的下載速度。
讀卡器和智能卡之間的通信是按照ISO14443協議標準制訂的,通過RF無線非接觸式通信。為了進一步了解Pause期間時鐘和解調數據波形的具體變化,又做了進一步的細化測試,讀卡器和智能卡的天線、解調數據和時鐘的波形測試結果略——編者注。
本研究實際測試結果表明,讀卡器和智能卡之間正常通信時,讀卡器上位機程序界面選擇非接觸式模式,再點擊Request按鈕發送相應的請求指令,此時讀卡器和智能卡已經為之后的通信做好了準備,之后讀卡器就可以發送對應的指令與智能卡進行通信。智能卡接收指令之后做出相應的操作,智能卡操作系統下載相應的指令,當讀卡器發送下載指令時,對應的COS被下載到智能卡中。實際測試結果是大小為28 KB的智能卡COS下載時間為19.175 9 s。測試結果如圖6所示。

圖6 COS下載時間
通過研究,COS的下載速度得到了明顯提高,由以前的平均60 s的下載時間降低到現在的平均19 s,工作效率自然得到了提升。本文研究的數據傳輸速度和COS寫入eFlash的速度提高對智能卡前期開發人員和測試人員有很大的幫助,對智能卡封裝之后的COS下載和測試人員的工作效率也有明顯的幫助。
本文通過對智能卡下載機制的研究,進行改進設計提高智能卡COS的下載速度,以此來提高開發、測試效率和縮短發卡時間。測試結果表明,此種研究方法有助于提高智能卡COS的下載速度。

[1] 郭鴻志,李代平,尹偉.智能卡芯片操作系統的研究與實現[J].計算機工程與設計,2010,31(19):4186-4189.
[2] 李春豐,李代平,馬海峰,等.RF_SIM卡的多應用COS研究與設計[J].計算機工程與應用,2011,47(2):57-59.
[3] 潘宇,鄧赟,許克智,等.基于智能卡COS平臺的應用開發技術[J].通信技術,2013,46(3):104-106.
[4] 胡云肖,楊波,孫濤,等.面向PBOC2.0的智能卡操作系統的設計[J].山東科學,2012,25(5):73-77.
[5] 周成沖,林平分.智能卡操作系統高速下載設計[J].科技信息,2013,28(5):105-106.
[6] 孫建,林平分.雙界面智能卡操作系統的設計與測試[J].信息與電腦,2011,27(1):27-27.
[7] 楊柳,于忠臣.智能卡COS測試方案的研究[J].信息與電腦,2011,99(12):99-100.
[8] 嚴婷婷,張志鴻.智能卡操作系統自動化測試方法的研究與實現[J].計算機應用與軟件,2013,30(5):87-90.
薛明策(碩士),主要研究方向為嵌入式系統軟件設計;劉素娟(副教授),主要研究方向為集成電路設計;林平分(教授),主要研究方向為ASIC芯片開發和嵌入式系統設計。

Xue Mingce,Liu Sujuan,Lin Pingfen
(Beijing University of Technology,Beijing 100124,China)
With the coming of information era,smart card as a sign of information technology is gradually popular in the financial aspects of the application.The operating system of smart card is different from traditional software,it works under the embedded environment,which has the characteristics of limited hardware resources and unstable working environment,so the design is different from the traditional method.Before practical application,smart card operating system must go through rigorous testing.because the software is difficult to compensate once occurs vulnerabilities.In this paper, based on the research of the smart card download mechanism,through refining the design of smart card operating system increases the download speed,and then improves testing efficiency and shorten the time of issuing.
smart card;COS;high-speed download
車載智能電子標識的研發與示范應用。編號:Z141100006014032。
TP311.1
A
?士然
2014-09-28)