基于DSP的CPLD軟件更新方案研究
在硬件設(shè)計(jì)的基礎(chǔ)上,為實(shí)現(xiàn)通過(guò)DSP的GPIO口模擬JTAG信號(hào)時(shí)序邏輯來(lái)對(duì)CPLD進(jìn)行軟件更新,需嚴(yán)格按照J(rèn)TAG標(biāo)準(zhǔn)中的端口信號(hào)時(shí)序要求。對(duì)于本文所用的CPLD器件,其JTAG端口信號(hào)時(shí)序關(guān)系如圖4所示。
由圖4可見,對(duì)于JTAG口時(shí)序邏輯需考慮如下3項(xiàng)內(nèi)容:
(1)JTAG接口要求一個(gè)最小時(shí)鐘周期TCKMIN。
(2)JTAG接口在TCK的上升沿采樣TMS和TDI信號(hào)。因此在TCK上升沿之前,TMS和TDI要具有最小分別為TMSS和TDIS的建立時(shí)間,同時(shí)在TCK下降沿之后要保持最小分別為TMSH和TDIH長(zhǎng)的時(shí)間。
(3)在TCK的下降沿,JTAT接口輸出新的TDO值,并保持至少TDOV長(zhǎng)的時(shí)間。
本文所用CPLD的JTAG端口時(shí)序參數(shù)要求如表1所示。
在本文設(shè)計(jì)的導(dǎo)航計(jì)算機(jī)系統(tǒng)中,DSP的工作主頻為200MHz,利用TI公司提供的庫(kù)函數(shù),由該DSP的GPIO口模擬的時(shí)鐘頻率最大不超過(guò)3MHz,可以滿足表中TCKMIN參數(shù)對(duì)應(yīng)的最大10MHz的要求。對(duì)于建立和保持時(shí)間等參數(shù)要求,可通過(guò)軟件延時(shí)或定時(shí)器實(shí)現(xiàn)。由于在本系統(tǒng)的應(yīng)用中,DSP在上電期間專注于CPLD的軟件更新,所以本文將采用軟件延時(shí)來(lái)實(shí)現(xiàn)這些參數(shù)要求,設(shè)計(jì)的JTAG口信號(hào)電平驅(qū)動(dòng)函數(shù)模塊代碼如下:
利用上述代碼,模擬實(shí)現(xiàn)的JTAG時(shí)鐘信號(hào)頻率為367.6kHz。
DSP在配置CPLD器件時(shí),不斷從存儲(chǔ)在SRAM里的XSVF文件中讀出指令和參數(shù),并根據(jù)不同的指令執(zhí)行對(duì)應(yīng)的操作。根據(jù)功能特點(diǎn),XSVF文件中的指令主要包括:狀態(tài)轉(zhuǎn)移、指令移入、數(shù)據(jù)移入或移出和空閑等待這4類指令。狀態(tài)轉(zhuǎn)移指令用于控制TAP狀態(tài)機(jī)進(jìn)入與下條XSVF指令操作對(duì)應(yīng)的狀態(tài)中,在XSVF文件中,圖2中的每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)字節(jié)的編碼;指令移入用于將TDI上的指令代碼移入對(duì)應(yīng)的指令寄存器;數(shù)據(jù)移入或移出指令可將TDI上的數(shù)據(jù)移入CPLD器件內(nèi)部邏輯中,同時(shí)可以捕獲從TDO上移出的數(shù)據(jù);空閑等待指令可提供移進(jìn)CPLD擦出指令或數(shù)據(jù)后等待內(nèi)部邏輯成功響應(yīng)需要的時(shí)間。
在上述設(shè)計(jì)的基礎(chǔ)上,設(shè)計(jì)通過(guò)串行方式的CPLD更新流程如圖5所示。
圖5中系統(tǒng)首先通過(guò)DSP的串行口接收CPLD的編程配置文件,接收完配置文件后,可在35s之內(nèi)完成CPLD的軟件更新。在實(shí)際應(yīng)用中,應(yīng)用本文的更新方案,可根據(jù)需要很快實(shí)現(xiàn)不同的系統(tǒng)配置方案,如可選擇INS和GPS組合。或與地磁組合等,無(wú)需重新更改硬件,便可配合多種傳感器,克服了通過(guò)常用PC機(jī)與下載線纜進(jìn)行軟件更新的弊端,避免了反復(fù)打開、組裝系統(tǒng)等一系列的繁瑣工作,提高了現(xiàn)場(chǎng)調(diào)試的效率,從而提高了導(dǎo)航計(jì)算機(jī)系統(tǒng)的適應(yīng)性。
4結(jié)語(yǔ)
通過(guò)硬件和軟件設(shè)計(jì),本文實(shí)現(xiàn)了基于DSP的CPLD器件軟件更新的串行方式。目前已在本課題組研制的基于DSP和CPLD的嵌入式導(dǎo)航計(jì)算機(jī)系統(tǒng)中進(jìn)行了成功應(yīng)用。該串行口更新方式相對(duì)常用的基于PC并口的編程方法,解決了并口轉(zhuǎn)JTAG口的下載線纜過(guò)長(zhǎng)而不能可靠對(duì)CPLD更新的問(wèn)題,同時(shí)可以實(shí)現(xiàn)CPLD器件在系統(tǒng)的遠(yuǎn)端更新,避免了繁瑣的現(xiàn)場(chǎng)拆除板卡進(jìn)行軟件更新和升級(jí)的弊端,提高了系統(tǒng)的可維護(hù)性。另外,通過(guò)外加網(wǎng)絡(luò)接口,應(yīng)用本文設(shè)計(jì)的軟件更新方案,還可實(shí)現(xiàn)CPLD器件的遠(yuǎn)程更新。本文的設(shè)計(jì)對(duì)于嵌入式導(dǎo)航計(jì)算機(jī)系統(tǒng)的更新和升級(jí)具有較好的適用性,提高了系統(tǒng)應(yīng)用的靈活性,可以應(yīng)用到具有不同配置的多種導(dǎo)航系統(tǒng)中,也可以在一種導(dǎo)航計(jì)算機(jī)系統(tǒng)中通過(guò)對(duì)CPLD的不同配置來(lái)適應(yīng)不同的傳感器和接口。
評(píng)論