<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種使用USB對ADSP_TS101S進(jìn)行鏈路口加載的方案

一種使用USB對ADSP_TS101S進(jìn)行鏈路口加載的方案

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

ADSP_TS101S(以下簡(jiǎn)稱(chēng)TS101)是美國ADI公司推出的TigerSHARC系列數字信號處理器中一款高性能的靜態(tài)超標量處理器,它專(zhuān)為大規模信號處理任務(wù)和通信應用進(jìn)行了結構上的優(yōu)化,廣泛應用于雷達等高速實(shí)時(shí)信號處理系統。

將程序代碼加載到DSP內部程序空間時(shí),通常采用開(kāi)發(fā)器的JTAG接口將執行文件加載到DSP內存里進(jìn)行調試;在硬件仿真完成后,又通過(guò)JTAG接口將生成的ldr文件燒寫(xiě)到與TS101相連的FLASH里固化。然而在很多情況下,使用開(kāi)發(fā)器加載或固化程序很不方便,甚至無(wú)法實(shí)現,因此需要開(kāi)發(fā)一種脫離開(kāi)發(fā)器的TS101加載方式?;谶@種需求,設計實(shí)現了基于USB總線(xiàn)的TS101鏈路口加載,只需一根USB線(xiàn)纜,即可實(shí)現TS1 01的程序在線(xiàn)重加載和固化。

本文引用地址:http://dyxdggzs.com/article/201706/348274.htm

1 Link Port協(xié)議

鏈路口(Link Port)是TS101的一種高速互聯(lián)接口,它的通信是通過(guò)一個(gè)8位的數據總線(xiàn)和3個(gè)控制信號進(jìn)行的,有4組LINK管腳。其中LxC LKIN和LxCLOUT是時(shí)鐘/應答輸入和輸出管腳;LxDAT[7:0]-數據輸入輸出總線(xiàn);LxDIR是LINK的方向指示信號。Link Port的最簡(jiǎn)單的連接方式(如圖1所示)用了LxCLKIN,LxCLKOUT,和LxDAT。每個(gè)ADSP-TS101 DSP的LxCLKOUT與其它的LxCLKIN相連,兩片TigerSHARC101 DSP芯片之間用LxDAT數據總線(xiàn)相連。

Link Port的最小傳輸單位是8個(gè)時(shí)鐘周期,數據總量為4倍字長(cháng)(16字節,在時(shí)鐘的雙沿觸發(fā))。傳輸被發(fā)送端初始化,只有當接收端設置LxCLKOUT(對于發(fā)送端為L(cháng)xCLKIN)為高電平,發(fā)送才能被初始化為一次傳輸。LxCLKOUT為高電平意味著(zhù)接收端為接收模式并且接收緩沖器為空。

2 TS101的軟件設計流程及加載引導方式

TS101的軟件設計流程如圖2所示。其中,鏈接描述文件(.LDF)定義了整個(gè)系統的存儲器配置和程序中數據及代碼的具體存放位置。加載核文件(.DXE)是指加載引導核程序,其大小為32 bit,放在加載文件的起始部分,其功能是用來(lái)實(shí)現TS101的正確引導。ADI公司在其DSP集成開(kāi)發(fā)環(huán)境Visual DSP++安裝目錄的ldr子目錄下提供了標準加載核文件及相應的源程序(.ASM)和鏈接描述文件。一般可直接使用提供的標準加載核文件或對其相應的源程序進(jìn)行簡(jiǎn)單修改,重新編譯鏈接生成所需的加載核文件。加載文件是由引導加載器(elfloader)將可執行文件進(jìn)行一定的格式變化,并在起始位置附加上加載核文件生成的。

加載程序的外部設備可以直接向鏈路口緩沖寫(xiě)入數據,只要寫(xiě)入速率不超過(guò)DSP的主時(shí)鐘頻率即可。此處的外部設備采用計算機的USB總線(xiàn)。鑒于在數字電路系統設計中具有可靠性高、設計靈活、易于開(kāi)發(fā)等優(yōu)點(diǎn),本文采用進(jìn)行Link Port與USB的接口設計,使USB的輸出滿(mǎn)足Link Port的協(xié)議,以實(shí)現DSP的鏈路口加載。

3 USB總線(xiàn)及其與Link Port的接口

采用實(shí)現基于USB總線(xiàn)的TS101的Link Port加載結構框圖如圖3所示。


3.1 Link Port發(fā)送模塊

ADI公司網(wǎng)站上有推薦的實(shí)現TS101的Link Port收發(fā)協(xié)議的VHDL代碼,但是比較復雜,鑒于本文只需要使用Link Port的發(fā)送功能,且無(wú)需緩沖,故根據圖1所示的最小Link Port配置編寫(xiě)代碼,實(shí)現Link Port發(fā)送功能?;贔PGA的TS101的Link Port發(fā)送模塊結構框圖如圖4所示。

圖4 中的負責對輸出數據進(jìn)行緩沖,當輸入數據的速率高于Link Port時(shí)鐘的頻率時(shí),Link Port的數據可以先存在數據中,當存入一定數量以后,再以L(fǎng)ink Port的時(shí)鐘把數據讀出。當輸入數據的速率低于Link Port的時(shí)鐘數率的時(shí)候,Link Port的數據同樣可以先存在中,當存入整數倍的4字數據量后,再以L(fǎng)ink Port的時(shí)鐘的數率發(fā)送出去。

圖4中的控制模塊是Link Port發(fā)送模塊的關(guān)鍵模塊,主要負責產(chǎn)生讀FIFO的讀使能信號和Link Port的發(fā)送時(shí)鐘根據Link Port發(fā)送的時(shí)序特點(diǎn),使用狀態(tài)機來(lái)實(shí)現數據流的控制。當Link Port沒(méi)有工作時(shí),保持等待狀態(tài)。需要傳輸數據時(shí),首先檢查L(cháng)xCLKIN是否為高電平,若是,則說(shuō)明接收端為接收模式并且接收緩沖器為空,可以初始化一次發(fā)送,否則要等待。開(kāi)始傳輸數據時(shí),數據首先被寫(xiě)入FIFO中,當判斷到FIFO的輸出信號EMPTY為高時(shí),將處于默認高電平的LxCLKOUT信號拉低,在經(jīng)過(guò)6個(gè)時(shí)鐘周期的低電平后(在此期間檢測LxCLKIN是否一直為高電平),LxCLKOUT拉高形成第一個(gè)LINK時(shí)鐘上升沿,這個(gè)時(shí)候應該在數據線(xiàn)上產(chǎn)生FIFO內的第一個(gè)輸出數據。LxCLKOUT下一周期拉低,第2個(gè)數據輸出,這樣經(jīng)過(guò)16個(gè)時(shí)鐘周期以后表示一次4字傳輸完畢。然后檢測FIFO中剩余的數據FIFO_RDATA_COUNT,若大于4則繼續上面的傳輸操作,否則,說(shuō)明FIFO中只剩最后一個(gè)4字,這次傳輸LxCLKOUT的最后一個(gè)時(shí)鐘上升沿產(chǎn)生以后,不再變低,一直保持高電平。然后,把本模塊中的所有臨時(shí)寄存器和FIFO復位。在產(chǎn)生完足夠長(cháng)度脈沖長(cháng)度的清零信號后狀態(tài)機重新進(jìn)入等待狀態(tài)。

3.2 USB接口模塊

USB接口模塊采用FPGA控制USB協(xié)議解析芯片來(lái)實(shí)現。其實(shí)現框圖如圖5所示。

本方案中,USB2.0協(xié)議解析芯片選用CYPRESS公司的CY7C68013A,它將一個(gè)USB外設所需的所有功能集成在一塊芯片上。芯片提供了3種傳輸數據的方式,文中選擇從FIFO(SlaveFIFO)模式。在SlaveFIFO模式下,8051微控制器不在數據的傳輸通路上,只負責設備的初始化和相應主機的控制傳輸請求,高速大批量的數據傳輸通過(guò)外部的主控者通過(guò)SlaveFIFO接口直接將數據填充到FX2LP的端點(diǎn)中(或者從里面讀出),然后由硬件控制將數據傳輸給主機。

Slave FIFO的讀寫(xiě)方式有兩種:同步讀寫(xiě)以IFCLK為時(shí)鐘,IFCLK可以外部輸入,也可以使用內部的30 MHz或者48 MHz時(shí)鐘;異步讀寫(xiě)時(shí)IFCLK信號無(wú)效,只需要提供讀寫(xiě)信號即可進(jìn)行數據讀寫(xiě)。本文選擇同步讀寫(xiě)。

FPGA采用Xilinx公司的XC3S1000。FPGA在其內部建立2個(gè)雙口RAM,來(lái)緩存收發(fā)數據;并與協(xié)議解析芯片的各控制信號相連,實(shí)現對其的讀寫(xiě)控制。文中僅使用這個(gè)芯片的接收邏輯實(shí)現加載文件的USB總線(xiàn)傳輸,發(fā)送邏輯只用來(lái)做輔助調試和狀態(tài)監測。

3.3 LINK口發(fā)送模塊與USB接口模塊之間的接口

USB接口除用于加載TS101外,還可用于TS101正常工作時(shí)與PC機的數據傳輸,故對于不同意義的下行信息,需要根據其功能做不同處理。

上位機向FX2LP發(fā)送數據時(shí),是通過(guò)將需要發(fā)送的數據打包(每包的大小由固件程序決定),每隔固定一段時(shí)間向下發(fā)送一包實(shí)現的。在這里,每包數據包含512個(gè)字節,其中前8個(gè)字節用來(lái)當幀頭,后504個(gè)為需要下傳的數據??赏ㄟ^(guò)幀頭的不同來(lái)區分下行信息的不同意義。其具體含義如表1所示。

FPGA輪詢(xún)每包數據的幀頭,如果是TS101與PC機交互數據,則送到雙口RAM中;如果是TS101加載數據,則送到LINK口發(fā)送模塊中;如果是/BMS拉高(低)指令,則通過(guò)相應的管腳拉高(低)/BMS;如果是復位TS101指令,則通知復位邏輯對TS101進(jìn)行復位,同時(shí)復位數據緩沖FIF O。
在實(shí)現基于USB總線(xiàn)的TS101的LINK加載時(shí),上位機將DSP加載文件(.ldr文件)打包后,通過(guò)USB線(xiàn)纜向FX2LP發(fā)送。.ldr文件的大小不一定為504字節的整倍數,因此最后一包數最后可能有很多0。必須把這些0去掉,否則可能在加載TS101時(shí)導致其死機。為解決該問(wèn)題,在幀頭定義中,用幀頭2來(lái)區分是否為最后一包數,如果不是最后一包數,上位機打包時(shí),幀頭2賦為01F8(即504),如果是最后一包數,則把將有效數據長(cháng)度賦給幀頭2。FPGA不斷將TS101加載數據送到LINK口發(fā)送模塊中,當發(fā)現是最后一包數據時(shí),讀取有效數據的長(cháng)度,并啟動(dòng)一個(gè)計數器,當計到該長(cháng)度時(shí),讓FIFO讀使能失效,則只有ldr文件的有效數據被加載到TS101中。

4 TS101程序在線(xiàn)重加載和固化的實(shí)現

首先通過(guò)上位機發(fā)送/BMS拉高指令,讓FPGA將TS101的/BMS管腳拉高,然后發(fā)送復位TS101指令,復位TS101和FIFO;之后,發(fā)送/BMS拉低指令,讓FPGA將TS101的/BMS管腳拉低,最后,將ldr文件打包為T(mén)S101加載數據包并向下發(fā)送。發(fā)送完畢后,TS101即可運行該程序。
若要實(shí)現TS101程序的固化,則可將要燒寫(xiě)的程序生成為ASCII格式的ldr文件,轉化為.dat格式,通過(guò)include指令編譯到EPROM(FLASH)的燒寫(xiě)程序中,生成為L(cháng)ink加載ldr文件,通過(guò)USB總線(xiàn)進(jìn)行加載。燒寫(xiě)完成后,可通過(guò)閃燈或通過(guò)USB總線(xiàn)上傳狀態(tài)信息來(lái)指示燒寫(xiě)結果。

5 結束語(yǔ)

文中提出的基于USB的TS101鏈路口加載方法成功應用于某雷達信號處理平臺的程序加載,其功能驗證是通過(guò)使用本方法加載各種DSP應用程序并進(jìn)行功能測試來(lái)完成的。使用該方案能穩定可靠的實(shí)現TS101程序的重加載,并且能對與之相連的FLASH芯片AT29LV040A進(jìn)行成功燒寫(xiě)。



關(guān)鍵詞: FIFO 程序固化 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>