摘 要: 介紹了WSI公司的在系統(tǒng)可編程單片機外圍器件PSD8××F系列芯片的組成及其性能。描述了如何通過端口C實現(xiàn)JTAG接口的軟件、硬件配置以及利用WSI公司的FlashLink編程適配器和PSDsoft軟件進行在系統(tǒng)編程的相關問題。
關鍵詞: 在系統(tǒng)編程 JTAG接口 PSD8××F器件 FlashLink適配器 PSDsfot軟件
采用模塊化設計技術,由WSI公司研制的可編程微控制器系統(tǒng)外圍器件PSD系列芯片,將構成一個單片機應用系統(tǒng)所需的多個外圍功能塊,如EPROM、SRAM、I/O、PLD等,集成在單一硅片上,為簡化嵌入式應用系統(tǒng)的設計、縮短產(chǎn)品的開發(fā)周期、提高系統(tǒng)的可靠性、降低系統(tǒng)的成本、縮小產(chǎn)品尺寸提供了一條便利的捷徑。PSD系列器件的可編程特性及其潛在的優(yōu)點已逐步為廣大的產(chǎn)品設計和應用工程師所理解和掌握,并將其應用在各自的產(chǎn)品設計中,從PSD2××、PSD3××、PSD4××、PSD5××、PSD6××、PSD7××各系列產(chǎn)品中,用戶可根據(jù)實際電路工作的需要,選擇合適的PSD芯片來完成各自的功能。為進一步方便工程師的研發(fā)及產(chǎn)品的更新、升級,WSI最近又推出了新一代在系統(tǒng)可編程的微控制器外圍器件:PSD8××F系列芯片。該系列產(chǎn)品具有完整的在系統(tǒng)可編程特性,從而可使嵌入式系統(tǒng)的設計更加簡單、靈活。
PSD8××F除提供與各種微控制器直接連接的總線接口邏輯外,片內還集成了優(yōu)化的“宏單元”邏輯陣列塊,它包括輸入宏單元和輸出宏單元。這些宏單元,既可傳遞組合邏輯信號,又可在時鐘同步下寄存輸出,以完成一定的時序要求。其中,輸入宏單元可將來自引腳的輸入信號經(jīng)鎖存、寄存后或直接傳至內部PLD陣列的輸入總線,一個典型的應用就是分離地址/數(shù)據(jù)復用總線上的地址信息,或在兩個CPU通過共享存儲體傳遞數(shù)據(jù)時提供握手通信信號。而輸出宏單元既可作為一個內部節(jié)點,通過器件內部的反饋網(wǎng)絡將宏單元的輸出信號反饋至PLD的輸入總線,也可直接通過引腳輸出,一個典型的應用是可利用這些輸出宏單元構成一個定時器/計數(shù)器,或實現(xiàn)狀態(tài)機邏輯功能。以PSD813F1為例,單個芯片內集成有:
64字節(jié)的E2PROM(OTP)存儲器,由用戶存入特殊的文檔信息;
128K字節(jié)的Flash存儲器,分成8個大小相同的塊,每個塊均可被設定為程序空間或數(shù)據(jù)空間,以分別用來存放程序或數(shù)據(jù);
32K字節(jié)的E2PROM存儲器,分成4個大小相同的塊,每個塊均可被設定為程序空間或數(shù)據(jù)空間,以分別用來存放程序或數(shù)據(jù);
2K字節(jié)的SRAM存儲器,掉電時可自動切換到備用電源供電,以保持數(shù)據(jù);
24個輸入宏單元和16個輸出宏單元,可有效地實現(xiàn)多種邏輯功能,包括狀態(tài)機和地址譯碼器;
27個獨立可配置輸入/輸出引腳,可用作標準MCU I/O,PLD I/O,鎖存地址輸出及特殊功能I/O;
8個頁面寄存器,使微控制器的尋址空間擴展256倍;
內置的JTAG從屬串口,可在現(xiàn)場對空白器件進行在系統(tǒng)編程或對已編程器件進行重新編程;
10萬次的擦除/寫入,10年的數(shù)據(jù)保存期。
零功耗CMOS技術,可編程的電源管理單元,支持兩種獨立的低功耗工作方式,+5V時,待機狀態(tài)的電流典型值為10μA,且芯片可自動檢測微控制器活動的停止,并使PSD進入低功耗方式。
該系列芯片為真正的現(xiàn)場可編程器件,芯片的PSD配置、PLD陣列、E2PROM存儲器和Flash存儲器均能在系統(tǒng)中編程,通過WSI公司提供的PSDsoft軟件包,可生成各種編程器所需的目標文件,包括標準的BSDL和SVF文件格式。由WSI公司自身提供的編程器有三種。它們分別是:MagicProⅢ、PSDPro和FlashLink,其中FlashLink為低成本的編程適配器,其一端與PC機的并行打印口相連,另一端則是標準14引腳的JTAG帶狀連接器,可直接與目標系統(tǒng)板上的JTAG接口相連,通過JTAG信號線對PSD8××F器件進行在系統(tǒng)編程,從而省去專用的器件編程器。當電路設計中不使用JTAG信號對器件進行編程時,可使用另外兩種編程器完成對器件的編程任務。此時對應的引腳可用作其它目的。
由于PSD8××F片內集成有多個功能塊,受篇幅限制,本文只著重介紹與JTAG接口有關的內容。
1 JTAG技術規(guī)范
PSD8××F遵守IEEE1149.1 JTAG技術規(guī)范的基本要求,但不支持該技術規(guī)范內定義的邊界掃描功能,而支持JTAG接口的在系統(tǒng)配置(ISC)規(guī)范,并允許PSD8××F與其它工作于邊界掃描方式的器件一起存在于JTAG鏈中,此時,PSD8××F支持BYPASS命令。
IEEE JTAG-ISC規(guī)范仍在制訂中,盡管如此,許多應用系統(tǒng)均采用通用可接受數(shù)據(jù)文件格式來反映最近的ISP規(guī)范。同樣,在PSD編程環(huán)境,需要兩個文件來定義ISC功能,一個文件是邊界掃描定義語言(BSDL)文件,它用來定義被編程器件的引腳和內部寄存器(JTAG編程方式);另一個文件是串行矢量格式(SVF)文件,它用來定義所產(chǎn)生的動作。這兩個文件均可由PSDsoft軟件包產(chǎn)生(關于JTAG和文件格式的詳細信息,請參見德州儀器網(wǎng)址www.ti.com搜索JTAG和PRIMER)。
標準JTAG采用4個基本信號:TCK、TMS、TDI、TDO。其中,TCK為同步時鐘,TDI和TDO分別為串行數(shù)據(jù)輸入和串行數(shù)據(jù)輸出,TMS為JTAG方式選擇。WSI還提供增強的JTAG引腳信號,即在上述4個標準信號的基礎上,又附加兩個信號線:和。其中,代表正在進行的當前動作的瞬時狀態(tài),TERR指示對字節(jié)或扇區(qū)的編程/擦除是否超時。到目前為止,還沒有一個標準的JTAG引腳信號分配方案,由WSI公司定義的連接器引腳信號如圖1。這里,除上述已介紹的6個信號外,附加的信號有:提供低電平有效的使能輸入信號,以便使PSD8××F的JTAG功能在端口C引腳上有效;RST,復位目標系統(tǒng);,復位目標板上的JTAG;CNTL,由用戶定義的信號。
2 編程/擦除流程控制
有三種方法控制JTAG器件編程器和PSD器件之間的數(shù)據(jù)傳輸,其中option2和option3是WSI增強型ISP特性的選擇。
option1:無流程控制(使用標準的4個JTAG引腳)。通常不予推薦。它涉及并考慮每次編程或擦除動作的最差情況下的最大時間。
option2:軟件流程控制(使用標準的4個JTAG引腳)。用軟件方法掃描硬件信號TSTAT和TERR,使用串行方式傳輸信息,不必等待每次編程/擦除動作的最大時間,此方法較option1有較大改進。
option3:硬件流程控制(使用增強的6個JTAG引腳)。對于每次編程/擦除動作,器件編程器將直接輪詢TSTAT和信號,相對option2有可觀的改進。
3 JTAG信號引腳的使能控制
在PSD8××F器件內部,所有與JTAG接口有關的信號均可從PSD8××F的端口C引腳上輸出。由于端口C是一個多功能口,當JTAG編程完畢后,可將端口C用作其它目的。為了允許這種情況的出現(xiàn),在PSD8××F器件內部,提供了三個不同的條件來使能標準的JTAG信號。這三個條件在邏輯上組織成“或”的關系。即只要其中任何一個條件為真,均使能JTAG信號連至端口C,其邏輯表達式如下:
JTAG_ON = !Jtag_en + Jtag_FF + Jtag_PT
(1)Jtag_en由PSDsoft軟件包中→PSD configuration(或Device config)→JTAG configura-tion→JTAG Functions中的第一個選擇框Enable TMS/TCK/TDI/TDO on PC0/PC1/PC5/ PC6確定。允許時,Jtag_en=0,未選擇時,Jtag_en=1。當器件空白時,Jtag_en=0,即JTAG在端口C上被使能,以允許FlashLink對器件進行首次編程,一旦器件被編程且JTAG功能被禁止,則無法通過Flash Link對已編程器件中的內容進行第二次更新。在此情況下,只能通過WSI的專用編程器對其進行后續(xù)的擦除/編程操作。
(2)Jtag_FF為PSD器件內部的JTAG使能寄存器的位0,其地址為CSIOP+C4H,其配置如下:
JTAG使能寄存器(地址為CSIOP+C4H)
在該寄存器中,位1~7未用,應置為0,位0的定義如下:
JTAG_EN=1 JTAG端口被使能 即Jtag_FF = 1
JTAG_EN=0 JTAG端口被禁止 即Jtag_FF = 0
(3)Jtag_PT是在PSDabel內定義的JTAG使能乘積項,該乘積項由PSD器件內部的一個節(jié)點輸出,并由PSDabel提供一個保留名jtag sel。
4 專用JTAG引腳功能
將PSD8××F的端口C專用于JTAG功能的基本連接方法如圖2。
對于option1和option 2,可不連接TSTAT和,此時PSD8××F的PC3、PC4可用于其它功能。這里假定PC口被設定為CMOS輸出,若設置為開路輸出,應分別在每一個信號的引出端連接100kΩ的上拉電阻。為了減少與電纜有關的尖峰或振鈴造成的虛假TCK信號,推薦在TCK的輸入端使用斯密特觸發(fā)器進行緩沖。
專用于JTAG引腳功能對芯片的JTAG配置如下:
(1)在PSDabel中,書寫方程:jtag sel = 0,即無需任何乘積項。
(2)在PSD configuration中,選中Enable TMS/TCK/TDI/TDO on PC0/PC1/PC5/PC6以保證JTAG信號在端口C上始終有效。
5 復用JTAG引腳功能
僅當使用FlashLink編程器通過JTAG連線編程PSD8××F時,片內的JTAG信號才被連至端口C相應的引腳上,而當編程結束后可將端口C用于其它目的。這樣,可使同一端口用于多種目的。而IEEE1149.1規(guī)范并不支持JTAG引腳與其它功能多路復用,這是WSI的PSD8××F器件特有的功能。為保證該功能的正確實現(xiàn),可利用FlashLink編程適配器上提供的JEN信號,該信號為低電平有效,并將其作為PSD8××F內部PLD陣列的一個邏輯輸入,參與JTAG乘積項的控制,其基本連接方法如圖3(這里假設被連至PC7)。
對于option1和option 2,開路輸出及TCK斯密特觸發(fā)器的緩沖的說明與專用JTAG引腳部分的說明相同。特別需要注意的是,要確保在編程期間內,用戶電路組件上的專用I/O信號與JTAG信號不發(fā)生沖突。即在JTAG工作期間沒有用戶指定的邏輯電平驅動JTAG信號或沒有JTAG信號以有害的方式驅動用戶指定的邏輯,這里是在用戶I/O與PSD8××端口C之間插入雙向三態(tài)緩沖器,當JEN信號有效時,使緩沖器處于高阻態(tài),從而阻斷用戶I/O端口與PC口JTAG信號之間的聯(lián)系,用戶可根據(jù)實際電路工作的需要,選擇合適的三態(tài)緩沖器,以確保得到正確的邏輯狀態(tài)。
該方案對芯片的JTAG配置如下:
(1)在PSDabel中,書寫方式為
JEN pin 11 ;這里指定PC7用于JEN輸入,也可將JEN連至其它引腳
jtag sel =! JEN ??;僅當JEN信號有效時,才將芯片內部JTAG功能連至端口C相應引腳
(2)在PSD configuration中,禁止Enable TMS/TCK/TDI/TDO on PC0/PC1/PC5/PC6,以便于端口C在JTAG無效時可用于其它目的。
6 使用JTAG接口在線編程
WSI的PSDsoft軟件包支持在系統(tǒng)編程,只需將FlashLink編程適配器連接在PC機并口與用戶JTAG接口之間,即可進行實時在系統(tǒng)編程,其物理連接如圖4。
為了實現(xiàn)在系統(tǒng)編程,在啟動PSDsoft軟件后,選擇JTAG Programming進入JTAG chain setup對話窗,在此窗中可完成PSD8××F器件的在系統(tǒng)編程操作,其操作步驟如下:
(1)在chain Information框的File Name欄下,輸入目標文件名(其文件擴展名為.obj),也可用鼠標點擊按鈕框,以瀏覽并選取相關的文件,然后打開該文件。如選中JTAG_TEST.obj文件名,并打開。
(2)在chain Information框的Device Name欄下,選定器件型號,如PSD813F1。
(3)點擊Add按鈕,則該芯片的JTAG鏈路信息被加入,并在Operation欄下顯示ByPass,表示該鏈路目前正處于“旁路”狀態(tài)。
(4)將鼠標指向剛出現(xiàn)的行上,單擊鼠標右鍵以選擇屬性配置Properties,此時彈出JTAG chain setup Properties對話窗。
(5)點擊Set Pin/Flow Control,選擇編程/擦除的流程控制及端口A、B、C、D上電時的狀態(tài),一般可選option3或option2流程控制。對JTAG Attributes和user code欄可暫不設置,采用當前的內定值即可,并返回至鏈路設置對話窗。
(6)同步驟(4),右擊鼠標,此時選program,然后按Go按鈕,即可開始在線編程。
(7)點擊Create SVF按鈕,保存當前的配置信息至擴展名為.JCF的文件,以便下次調用時通過JTAG chain File顯示框下的File Name欄,將所配置的信息調入使用。
PSD8××F系列芯片為真正的在系統(tǒng)可編程單片機外圍芯片,包括MCU接口,flash存儲器和E2PROM存儲器,均可通過JTAG進行重新編程。另外,還可由MCU控制器來編程PSD8××F內的Flash和E2PROM存儲器,利用在一個塊內執(zhí)行程序,編程/擦除另一個塊的方法,也可完成對整個片內存儲器內容的更新。Flash存儲器的8個塊和E2PROM或第二flash存儲器(取決于所使用器件的型號)的4個塊均可分別被擦除和編程,從而為用戶的應用設計帶來了很大的靈活性。
參考文獻
1 WSI PSD8××F系列數(shù)據(jù)手冊. 武漢力源電子股份有限公司, 1999.2