張 劍,張金旻
(電子科技大學 微電子與固體電子學院,四川 成都 610054)
反熔絲具有非易失性、抗輻射性、高可靠性、高保密性[1]等優點,在射頻識別、密鑰存儲芯片、衛星以及航空航天等領域獲得廣泛應用。
目前,與反熔絲相關的技術主要掌握在西方發達國家手中,我國相對來說處于落后地位。反熔絲器件主要依賴于進口,編程測試也需要購買國外大公司昂貴的設備。因此,必須走自主創新的道路,研制出具有自主知識產權的反熔絲器件,開發出相應的編程設備,逐步縮短差距。針對國內設計的某反熔絲器件,本文提出了一種以微處理器STM32F103ZET6為核心的反熔絲器件編程器,具有以下幾個特點:通過RS232串口與計算機通信,利用友好的圖形用戶界面提供自動化、高效編程方式;提供JTAG程序下載調試接口,具有良好的兼容性,通過升級軟件可對多種反熔絲器件編程;反熔絲器件編程電路產生可調編程電壓,為反熔絲器件提供最佳編程電壓環境。
該編程器系統總體結構如圖1所示,整個系統分為計算機和編程器兩個部分。在對反熔絲器件編程進行的過程中,計算機產生編程控制指令控制編程器對反熔絲器件進行編程。待編程數據存儲在Hex文件中,在上位機軟件中通過加載Hex文件即可自動高效地將編程數據燒錄到反熔絲器件中。讀校驗指令用于校驗反熔絲器件中已燒錄的數據是否與Hex文件中的數據一致。此外,編程器還將編程狀態以及編程結果反饋回計算機,并在計算機上顯示出來,實時監控編程過程,一旦出現故障,可及時進行故障排除。
圖1 系統總體結構圖Fig.1 Structure diagram of the system
該編程器系統硬件結構如圖2所示,其系統硬件結構可以分成兩個部分,一部分是通信電路模塊,另一部分是反熔絲器件編程電路模塊。在通信電路模塊中,JTAG程序下載調試電路用于給微處理器下載升級軟件以及對程序進行在線調試,RS232串口通信電路用于接收上位機指令,反饋下位機工作狀態。反熔絲器件編程電路模塊主要包括D/A轉換電路、信號放大電路、輸出緩沖電路和電流檢測電路,為反熔絲器件編程提供編程電壓,檢測編程電流。
圖2 系統硬件結構圖Fig.2 Structure diagram of the hardware system
微處理器使用ARM Cortex-M3內核的STM32F103 ZET6,采用Thumb-2指令集獲得更高的指令效率和更強的性能,先進的中斷處理功能使得處理器對中斷事件的響應更迅速,在內核水平上支持節能模式適合低功耗應用要求[2]。
JTAG用于給微處理器下載程序和實現編程器軟件的升級,同時還可以直接更改程序再運行仿真實現在線調試,實時跟蹤程序,找出程序中的BUG,大大縮短軟件開發時間,提高設計效率[3]。
近距離通信時,通過三根線(TXD、RXD、GND)就可以實現計算機與編程器的全雙工異步串口通信。在TXD和RXD上:邏輯“1”為-3 V 至-15 V,邏輯“0”為+3 V 至+15 V[4]。 由于本系統為+3.3 V系統,編程器是TTL或CMOS邏輯電平,因此采用電平轉換芯片SP3222EEA,該芯片能實現TTL或CMOS邏輯電平與RS-232電平之間的轉換。如圖4所示為RS232串口通信電路圖。
圖3 RS232串口通信電路Fig.3 RS-232 serial communication circuit
反熔絲是一種可編程單元,未編程時,反熔絲相當于一個電容,呈高阻抗狀態,高壓編程后,反熔絲被擊穿,呈低阻抗狀態[5],通過這種物理狀態上的差異達到穩定存儲二進制數值的目的。反熔絲器件編程電路模塊產生反熔絲器件編程高壓、檢測編程電流,具體由四個部分組成:數模(D/A)轉換電路、信號放大電路、輸出緩沖電路、電流檢測電路。
數模轉換器能將二進制數值轉換為直流電壓,該電壓信號經放大后為反熔絲器件提供編程電壓。在測試階段可不斷改變編程環境調整編程電壓,找到最佳編程電壓,獲得最佳編程效果。數模轉換器采用美國ADI公司生產的一款高速電流型輸出TxDAC系列14位數模轉換器AD9754。AD9754具有125MSPS轉換速率,帶一個片內1.2 V參考電壓VREFIO,數字端口兼容CMOS電平。如圖5所示為模數轉換電路圖。
圖4 數模轉換電路Fig.4 Digital to analog conversion circuit
數模轉換電路產生的信號源較微弱,不足以直接向反熔絲器件提供編程電壓,需要對初始模擬信號進行放大。AD9754輸出差分信號,且輸出阻抗大于100 kΩ,所以采用經典的三運放構成的儀用放大電路[6]。運放選用TI公司的高速電流反饋型放大器THS3001,該放大器具有420 MHz帶寬,6 500 V/μs,適用于高速DAC緩沖。如圖6所示為信號放大電路圖。
反熔絲單元未被編程前,等效于電容,阻抗非常大。采用TI公司的高電壓、大電流驅動大負載的運算放大器OPA544構成電壓跟隨電路作為輸出緩沖,用于阻抗匹配,同時為反熔絲單元擊穿提供編程電流。
編程電壓Vpp經過一個10Ω的電阻與器件編程電壓輸入端口串聯,電阻兩端的電壓差經過INA271放大輸出,通過計算獲得流過電阻上的電流值即編程電流值。編程電流的大小可作為判定編程是否成功的一個依據。反熔絲單元被編程時,正常情況下有4 mA左右的編程電流。INA271是一款由德州儀器(TI)推出的一款電壓輸出、電流檢測監控器,輸出電壓為輸入端口IN-、IN+電壓之差的20倍。
圖5 信號放大電路Fig.5 Signal amplification circuit
圖6 電流檢測電路Fig.6 Current detecting circuit
編程數據采用Hex文件格式,計算機通過加載Hex文件將編程數據自動發送給編程器,編程器根據接收到的數據對反熔絲器件編程,實現反熔絲器件的自動高效編程。程序流程圖如圖9所示。編程器每次只接收一行Hex文件數據,只有當該行數據全部編程結束才向上位機發送空閑指令,通知上位機發送下一行數據,直到整個Hex文件的數據都燒錄到反熔絲器件中。程序中加入硬件判錯機制,如果對某一單元編程不成功,那么再進行額外兩次編程,三次編程均失敗則判定出現了異常,強行跳轉,并提示用戶檢查相關故障。
通過制定測試方案,對國內某反熔絲PROM器件進行了編程測試,驗證其基本功能,達到了設計預期指標。以下是對國內某反熔絲PROM器件的測試:1)編程前讀測試:編程前,對器件進行讀校驗,讀出數據全為“0”,確保該器件未被編程。2)編程測試:對器件所有反熔絲存儲單元寫“1”操作,判定編程器可以對所有反熔絲單元編程。如圖8所示為對地址單元1000~107F寫“1”后讀出數據。3)間隔編程測試:對器件間隔編程,驗證編程器不會將相鄰地址單元誤編程。如圖8所示為對地址單元1080~10FF間隔編程后讀出的結果。
圖7 程序流程圖Fig.7 Program flow char
該反熔絲器件編程器,以高性能、低成本的ARM Cortex-M3內核微處理器STM32F103ZET6為核心,外加一些外圍電路,產生地址、數據和控制信號,實現反熔絲器件的編程。通過友好的圖形用戶界面,該編程器提供自動化、高效的編程方式。對國內某反熔絲PROM器件進行了編程測試,實際編程實驗表明,該編程器可實現對反熔絲器件的高效編程。
圖8 地址單元1000~10FF編程后讀出數據Fig.8 Data of address 1000~10FF after programming
[1]王剛,李平,李威,等.反熔絲的研究與應用[J].材料導報,2011,25(11):30-33.WANG Gang,LI Ping,LI Wei,et al.Research and application of antifuse[J].Meteruaks Revuew,2011,25(11):30-33.
[2]Joseph.Yiu.ARM Cortex-M3權威指南 [M].宋巖譯.北京:北京航空航天大學出版社,2009.
[3]殷偉鳳.基于JTAG的ARM嵌入式系統調試技術實現及應用[J].浙江萬里學院學報,2009,22(2):17-21.YIN Wei-feng.Design of ARM Debugging Interface Based on JTAG[J].Journal of Zhejiang Wanli University,2009,22(2):17-21.
[4]潘方.RS232串口通信在PC機與單片機通信中的應用[J].現代電子技術,2012,35(13):69-71.PAN Fang.Application of RS232 serial port in communication between PCand MCU[J].Modern Electronics Technique,2012,35(13):69-71.
[5]孫承松,張麗娟,李新.ONO反熔絲的研究[J].沈陽工業大學學報,2006,28(5):546-548.SUN Cheng-song,ZHANG Li-juan,LI Xin.Study on ONO anti-fuse[J].Journal of Shenyang University of Technology,2006,28(5):546-548.
[6]華成英,童詩白.模擬電子技術基礎[M].4版.北京:高等教育出版社,2006.