摘要:在某虛擬仿真實(shí)驗(yàn)平臺(tái)系統(tǒng)中,需要收發(fā)批量GJB289A總線數(shù)據(jù),并且按不同算法對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。為此,設(shè)計(jì)了PCI總線智能 GJB289A仿真卡。采用FPGA實(shí)現(xiàn)GJB289A接口邏輯,設(shè)計(jì)了GJB289A總線模擬收發(fā)器,替換了國(guó)外芯片,降低了系統(tǒng)成本。采用DSP的 PCI接口在線加栽程序的方式,在線更新數(shù)據(jù)處理算法,并按照相應(yīng)算法對(duì)GJB289A總線數(shù)據(jù)進(jìn)行快速處理,提高了仿真系統(tǒng)的靈活性和實(shí)時(shí)性。目前,該仿真卡在虛擬仿真實(shí)驗(yàn)平臺(tái)系統(tǒng)中成功使用,工作穩(wěn)定。
關(guān)鍵詞:DSP;PCI;GJB289A;在線加載
虛擬仿真系統(tǒng)模擬GJB289A總線設(shè)備,需要收發(fā)大量的GJB289A總線數(shù)據(jù)。傳統(tǒng)的處理方式是通過(guò)GJB289A總線PCI通訊卡將接收到的數(shù)據(jù)傳輸?shù)缴衔粰C(jī),由上位機(jī)程序?qū)?shù)據(jù)進(jìn)行處理,然后上位機(jī)再將處理結(jié)果通過(guò)PCI卡傳輸?shù)紾JB289A總線上,這種方式影響虛擬仿真系統(tǒng)仿真效率,系統(tǒng)實(shí)時(shí)性不好。此外,傳統(tǒng)的GJB289A總線仿真卡處理器程序固定,不能滿足不同處理算法的需要。PCI總線智能GJB289A仿真卡實(shí)時(shí)處理GJB289A 總線數(shù)據(jù),無(wú)需將數(shù)據(jù)轉(zhuǎn)移到上位機(jī),提高數(shù)據(jù)處理速度,增強(qiáng)了系統(tǒng)實(shí)時(shí)性。用戶能夠根據(jù)需要,在線加載DSP程序,更新數(shù)據(jù)處理算法,以適應(yīng)不同處理算法的需要。增強(qiáng)了仿真卡的靈活性。
1 主要功能及指標(biāo)
PCI總線智能GJB289A仿真卡主要具備以下功能及指標(biāo):
CPU主頻:600 MHz,處理速度為9 600 MIPS;
緩存空間:SDRAM空間為16 MB;
PCI接口:總線寬度32 b、速率33 MHz;
GJB289A接口:雙冗余模擬收發(fā),具備RT/BC/MT,傳輸速率為1 Mb/s;
在線加載DSP程序。
2 硬件設(shè)計(jì)
由分析設(shè)計(jì)要求,在此提出基于TMS320DM642為核心的硬件結(jié)構(gòu)設(shè)計(jì):包括DSP及外圍電路設(shè)計(jì)、GJB289A接口邏輯設(shè)計(jì)、GJB289A總線模擬收發(fā)器設(shè)計(jì)。
2.1 DSP及外圍電路設(shè)計(jì)
TI公司的TMS320DM642是一款主頻為600 MHz,32位定點(diǎn)的高性能DSP,片內(nèi)集成PCI2.2協(xié)議模塊,支持主/從模式的DMA數(shù)據(jù)傳輸。相較于采用專用PCI接口芯片或者FPGA等方式實(shí)現(xiàn),開(kāi)發(fā)方式簡(jiǎn)單,成本低。
DM642通過(guò)EMIFA與SDRAM和FLASH芯片相連,其中2片64 Mb的SDRAM,作為仿真卡的數(shù)據(jù)緩存空間,F(xiàn)LASH作為程序空間。通過(guò)設(shè)置Boot模
式選擇程序從PCI接口還是EMIFA接口加載。當(dāng)從PCI接口加載時(shí),用戶可以動(dòng)態(tài)加載DSP程序,當(dāng)從EMIFA接口加載時(shí),用戶可以將固化好的程序?qū)懭隖LASH中,由Bootloader引導(dǎo)程序的自啟動(dòng)。
2.2 GJB289A接口設(shè)計(jì)
GJB289A-97總線是國(guó)內(nèi)在研究為人熟知的MILSTD-1553B總線的基礎(chǔ)上制定出來(lái)的國(guó)家軍用標(biāo)準(zhǔn),全稱“數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線”,由于其具有極高的可靠性,因而在航空、航天、軍事等領(lǐng)域的電子聯(lián)網(wǎng)系統(tǒng)中得到廣泛應(yīng)用。目前GJB289A協(xié)議模塊較多由國(guó)外的高級(jí) 1553B協(xié)議處理芯片BU61580實(shí)現(xiàn)。在此GJB289A接口協(xié)議模塊由FPGA邏輯實(shí)現(xiàn),代替原有的協(xié)議芯片,節(jié)約了系統(tǒng)成本,增加了設(shè)計(jì)的靈活性。
FPGA邏輯包括曼徹斯特編解碼單元、協(xié)議處理模塊、數(shù)據(jù)緩沖FIFO、寄存器控制等。邏輯框圖如圖1所示。發(fā)送數(shù)據(jù)時(shí)將已有的并行數(shù)據(jù)在系統(tǒng)的控制下,經(jīng)過(guò)并/串轉(zhuǎn)換,轉(zhuǎn)換為并行的曼徹斯特編碼,依次以符合1553B協(xié)議的消息的方式發(fā)出。在BC或者RT模式下接收數(shù)據(jù)時(shí),模擬收發(fā)器接收曼徹斯特Ⅱ編碼的串行數(shù)據(jù),通過(guò)曼徹斯特解碼器實(shí)現(xiàn)同步時(shí)鐘的提取,同步頭檢出,數(shù)據(jù)檢出,曼徹斯特Ⅱ碼錯(cuò)誤檢出,奇偶校驗(yàn),位/字計(jì)數(shù)以及數(shù)據(jù)的串/并轉(zhuǎn)換功能。
2.3 模擬收發(fā)器設(shè)計(jì)
模擬發(fā)送器是將FPGA輸出的TTL電平信號(hào)轉(zhuǎn)換為滿足協(xié)議要求電氣特性的信號(hào)傳輸?shù)诫娎|上,并提供一定的功率使發(fā)送信號(hào)順利被接受方正確接收。模擬接收器是將在總線電纜上雙極性電平的信號(hào)轉(zhuǎn)換為可以直接接入FPGA的TTL電平信號(hào),且信號(hào)的失真應(yīng)控制在一定的范圍之內(nèi)以使得通信過(guò)程正確。目前GJB289A總線模擬收發(fā)器較多由國(guó)外的HI-1573總線驅(qū)動(dòng)芯片實(shí)現(xiàn),在此設(shè)計(jì)了模擬收發(fā)器電路,可以代替1573芯片。模擬發(fā)送部分電路如圖2所示,由FPGA直接生成的TTL電平信號(hào)從電路的左端輸入,輸入的信號(hào)為單極性的曼徹斯特Ⅱ型編碼,信號(hào)差分輸出。圖中的兩個(gè)PNP型三極管工作在開(kāi)關(guān)狀態(tài),R1為基極偏置電阻,R2為集電極負(fù)載,二極管起保護(hù)作用。右端的隔離變壓器將信號(hào)放大輸入到總線電纜。總線驅(qū)動(dòng)器的接收部分電路如圖3所示,總線電纜上的信號(hào)從右端的隔離變壓器輸入,通過(guò)隔離變壓器電平轉(zhuǎn)換后到達(dá)高速比較器,信號(hào)高于門檻電壓時(shí)比較器輸出高電平;信號(hào)低于門檻電壓時(shí)比較器輸出低電平。最終變?yōu)閮陕稵TL電平的差分信號(hào)輸入FPGA中做進(jìn)一步處理。
TI公司TMS320C6000系列DSP程序主要的加載方式:一種是由EMIF接口引導(dǎo)程序加載,程序代碼、數(shù)據(jù)存放在外擴(kuò)的FLASH中,這種方式加載的DSP程序是固定的,不能支持在線更新;另一種是由PCI接口引導(dǎo),主機(jī)通過(guò)PCI接口可以訪問(wèn)DSP片內(nèi)片外存儲(chǔ)單元,將程序代碼寫入DSP片內(nèi) RAM區(qū),復(fù)位DSP時(shí),程序即開(kāi)始從地址O執(zhí)行。這種方式可以在線加載DSP程序,更新處理算法,滿足系統(tǒng)設(shè)計(jì)要求,所以本系統(tǒng)采用PCI接口加載方式。
3 DSP程序在線加載方法
用戶在主程序框架內(nèi)添加算法函數(shù),再通過(guò)上位機(jī)軟件,自動(dòng)調(diào)用TI公司C編譯器c16x.exe、匯編器asm6x.exe和連接器link6x.exe 殼程序,將C代碼編譯連接生成可執(zhí)行的out文件。主機(jī)PCI接口的加載方式,需要將可執(zhí)行的目標(biāo)代碼.out文件轉(zhuǎn)換為十六進(jìn)制.hex文件,再寫入到 DSP的內(nèi)部RAM空間。具體加載流程如圖4所示。
在調(diào)用16進(jìn)制轉(zhuǎn)換工具時(shí),需要指定調(diào)用16進(jìn)制轉(zhuǎn)換工具的命令行選項(xiàng)和文件名,為此創(chuàng)建一個(gè)批處理文件,內(nèi)容如下:
通過(guò)上述方法將out文件轉(zhuǎn)換成hex文件,上位機(jī)程序讀取hex文件內(nèi)容為文本形式的ASCII,每8個(gè)字符為一組存入數(shù)組中。TIC6000系列DSP的PCI加載引導(dǎo)操作順序:首先通過(guò)地址總線的A21、A22引腳配置選擇PCI Boot模式。上位機(jī)通過(guò)驅(qū)動(dòng)程序設(shè)置要訪問(wèn)的存儲(chǔ)器、I/O空間和DSPP寄存器。將存有hex內(nèi)容的數(shù)組寫入到DSP的內(nèi)部RAM區(qū)。然后向HDCR寄存器的DSPINT位寫1,DSP開(kāi)始從地址O開(kāi)始。如圖5所示。
下面為演示實(shí)例,運(yùn)行上位機(jī)軟件,調(diào)用驅(qū)動(dòng)程序函數(shù)庫(kù),對(duì)PCI仿真卡進(jìn)行初始化設(shè)置,初始化完成后將hex內(nèi)容寫入DSP存儲(chǔ)空間,加載前,DSP內(nèi)部RAM內(nèi)容,通過(guò)調(diào)用16進(jìn)制轉(zhuǎn)換工具,將DSP程序可執(zhí)行目標(biāo)文件out轉(zhuǎn)換為hex文件,其內(nèi)容為:
加載前后DSP內(nèi)部RAM內(nèi)容如圖6、圖7所示。
從實(shí)例可以看出,經(jīng)過(guò)上述加載方式,完成了DSP程序的在線加載,更新了DSP程序,滿足了不同數(shù)據(jù)處理算法的需要。
4 結(jié)語(yǔ)
介紹了一種基于DM642的PCI總線GJB289A智能仿真卡的設(shè)計(jì)方法,采用高速DSP DM642作為主控制器,實(shí)現(xiàn)了對(duì)GJB289A總線數(shù)據(jù)的快速處理;在FPGA中實(shí)現(xiàn)GIB289A總線協(xié)議,設(shè)計(jì)了模擬收發(fā)器電路,替換國(guó)外芯片,減少了對(duì)國(guó)外芯片的依賴性,并節(jié)約了成本。在軟件方面,采用PCI總線在線加載技術(shù),實(shí)時(shí)更新DSP數(shù)據(jù)處理算法,能夠適應(yīng)不同處理算法的需要。目前在虛擬仿真實(shí)驗(yàn)平臺(tái)系統(tǒng)的應(yīng)用,表明該仿真卡設(shè)計(jì)正確,工作穩(wěn)定可靠。