基于USB總線的ADSP-TS101S鏈路口加載
3.3 LINK口發送模塊與USB接口模塊之間的接口
USB接口除用于加載TS101外,還可用于TS101正常工作時與PC機的數據傳輸,故對于不同意義的下行信息,需要根據其功能做不同處理。
上位機向FX2LP發送數據時,是通過將需要發送的數據打包(每包的大小由固件程序決定),每隔固定一段時間向下發送一包實現的。在這里,每包數據包含512個字節,其中前8個字節用來當幀頭,后504個為需要下傳的數據??赏ㄟ^幀頭的不同來區分下行信息的不同意義。其具體含義如表1所示。本文引用地址:http://cqxgywz.com/article/202238.htm

FPGA輪詢每包數據的幀頭,如果是TS101與PC機交互數據,則送到雙口RAM中;如果是TS101加載數據,則送到LINK口發送模塊中;如果是/BMS拉高(低)指令,則通過相應的管腳拉高(低)/BMS;如果是復位TS101指令,則通知復位邏輯對TS101進行復位,同時復位數據緩沖FIF O。
在實現基于USB總線的TS101的LINK加載時,上位機將DSP加載文件(.ldr文件)打包后,通過USB線纜向FX2LP發送。.ldr文件的大小不一定為504字節的整倍數,因此最后一包數最后可能有很多0。必須把這些0去掉,否則可能在加載TS101時導致其死機。為解決該問題,在幀頭定義中,用幀頭2來區分是否為最后一包數,如果不是最后一包數,上位機打包時,幀頭2賦為01F8(即504),如果是最后一包數,則把將有效數據長度賦給幀頭2。FPGA不斷將TS101加載數據送到LINK口發送模塊中,當發現是最后一包數據時,讀取有效數據的長度,并啟動一個計數器,當計到該長度時,讓FIFO讀使能失效,則只有ldr文件的有效數據被加載到TS101中。
4 TS101程序在線重加載和固化的實現
首先通過上位機發送/BMS拉高指令,讓FPGA將TS101的/BMS管腳拉高,然后發送復位TS101指令,復位TS101和FIFO;之后,發送/BMS拉低指令,讓FPGA將TS101的/BMS管腳拉低,最后,將ldr文件打包為TS101加載數據包并向下發送。發送完畢后,TS101即可運行該程序。
若要實現TS101程序的固化,則可將要燒寫的程序生成為ASCII格式的ldr文件,轉化為.dat格式,通過include指令編譯到EPROM(FLASH)的燒寫程序中,生成為Link加載ldr文件,通過USB總線進行加載。燒寫完成后,可通過閃燈或通過USB總線上傳狀態信息來指示燒寫結果。
5 結束語
文中提出的基于USB的TS101鏈路口加載方法成功應用于某雷達信號處理平臺的程序加載,其功能驗證是通過使用本方法加載各種DSP應用程序并進行功能測試來完成的。使用該方案能穩定可靠的實現TS101程序的重加載,并且能對與之相連的FLASH芯片AT29LV040A進行成功燒寫。













評論