• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      某信號處理模塊FT6678 DSP應(yīng)用程序加載方案設(shè)計(jì)

      2025-04-10 00:00:00袁斌斌徐海楊玻
      機(jī)電信息 2025年7期

      摘 要:為了解決FT6678 DSP應(yīng)用程序升級困難的問題,結(jié)合某信號處理模塊的硬件特征,提出了一種二級啟動(dòng)方案,并基于該流程設(shè)計(jì)了DSP應(yīng)用程序的兩種固化加載方式,即串口固化、網(wǎng)口固化。詳細(xì)闡述了兩種方式的設(shè)計(jì)方法,實(shí)現(xiàn)了DSP程序的快速燒寫及可靠固化。

      關(guān)鍵詞:二級啟動(dòng);串口固化;網(wǎng)口固化

      中圖分類號:TP311.1" " 文獻(xiàn)標(biāo)志碼:A" " 文章編號:1671-0797(2025)07-0032-03

      DOI:10.19514/j.cnki.cn32-1628/tm.2025.07.008

      0" " 引言

      隨著數(shù)字信號處理、嵌入式實(shí)時(shí)計(jì)算及并行運(yùn)算需求的不斷增多,多核DSP在移動(dòng)通信、圖像處理、雷達(dá)聲吶等多領(lǐng)域的應(yīng)用越來越廣泛[1]。FT6678作為一款高性能的國產(chǎn)化多核DSP處理器,憑借其強(qiáng)大的信號處理能力,在高性能信號處理市場占據(jù)了一席之地。隨著用戶需求的不斷提升,需要經(jīng)常對已經(jīng)投入使用的嵌入式設(shè)備程序進(jìn)行更新,以前使用的通過仿真器升級DSP程序的方法會給程序升級帶來極大的不便。本文以FT6678為核心處理器,結(jié)合所在的信號處理模塊特征,設(shè)計(jì)出一種DSP二級啟動(dòng)方案,并基于此流程提出了應(yīng)用程序的兩種固化加載方式——串口固化及網(wǎng)口固化。

      1" " DSP二級啟動(dòng)流程

      FT6678在上電復(fù)位后,首先運(yùn)行固化在片上ROM的自動(dòng)程序加載器(ROM Boot Loader,RBL),RBL獲取并依據(jù)硬件配置引腳BOOTMODE的狀態(tài),判斷設(shè)定的Boot模式進(jìn)入主機(jī)加載或存儲器加載模式[2],輔助EMIF、PCI Express、SPI、Serial RapidIO等接口進(jìn)行主機(jī)加載,或?qū)⒋a從外部存儲器讀到內(nèi)部L2 SRAM,完成代碼加載。

      加載完成后,目前通用的方法是運(yùn)行核0的代碼,執(zhí)行外設(shè)初始化,并發(fā)送IPC中斷給其余7個(gè)從核[3],從核接收到中斷后,跳入程序入口地址執(zhí)行程序。該方法原理簡單,可操作性強(qiáng),但存在一定缺陷:即當(dāng)核0程序加載固化失敗后,會導(dǎo)致無法借助串口/網(wǎng)口進(jìn)行再次升級,除非借助仿真器方可升級,給實(shí)際應(yīng)用造成了很大的困擾。

      針對此種缺陷,本文提出了一種二級啟動(dòng)方案:將原來在核0上的程序按功能拆解,一部分為Boot程序,專職完成應(yīng)用程序的加載及啟動(dòng);另一部分為應(yīng)用程序,著重完成后續(xù)的信號處理業(yè)務(wù)。Boot程序因其功能專一,變更較少,基本不用升級,設(shè)備出廠時(shí)僅需一次燒錄即可。即使后續(xù)更新Boot,也可用串口對其進(jìn)行更新,更新Boot時(shí)會有密碼保護(hù),防止因固化失敗導(dǎo)致的問題,提高了整個(gè)系統(tǒng)升級的可靠性。

      Boot啟動(dòng)完成后,讀取外部離散量,判斷是啟動(dòng)應(yīng)用模式還是固化模式:若為應(yīng)用啟動(dòng)模式,則直接跳轉(zhuǎn)至核0應(yīng)用啟動(dòng)地址,完成后續(xù)的從核加載等工作;若為固化模式,會進(jìn)一步判斷開關(guān)量,跳轉(zhuǎn)至對應(yīng)的串口/網(wǎng)口分支,實(shí)現(xiàn)應(yīng)用程序的固化操作。

      2" " 串口固化

      本信號處理模塊采用DSP+FPGA+CPU的處理架構(gòu)(CPU采用FT2000處理器,DSP采用FT6678處理器,F(xiàn)PGA采用Xilinx Virtex系列處理器),F(xiàn)PGA負(fù)責(zé)傳感器數(shù)據(jù)的接收與預(yù)處理,處理好的結(jié)果傳送到DSP參與算法運(yùn)算,DSP通過RapidIO網(wǎng)絡(luò)將最終結(jié)果發(fā)送至CPU。CPU作為主控設(shè)備,可以通過FC網(wǎng)絡(luò)接收顯示設(shè)備的控制消息,也會定期將最終結(jié)果上傳至顯控設(shè)備。系統(tǒng)結(jié)構(gòu)圖如圖1所示。為方便后續(xù)的調(diào)試與程序加載,信號處理模塊通過連接器引出兩路網(wǎng)口(CPU和DSP各一路)、兩路RS232串口(CPU和DSP各一路)。

      DSP芯片通過EMIF總線與Nor Flash芯片連接,在上電時(shí)通過EMIF自舉方式將代碼從Flash搬移至L2運(yùn)行[4]。通過串口將程序固化至Flash時(shí),需要通過串口調(diào)試線與PC相連,PC上存儲有上位機(jī)軟件(無須安裝),簡單地點(diǎn)開圖標(biāo)即可運(yùn)行。Boot程序上電運(yùn)行后,采集調(diào)試設(shè)備上的離散量開關(guān),若為串口加載模式,跳轉(zhuǎn)至對應(yīng)分支,在上位機(jī)軟件顯示交互界面。

      在“1.Enter App Mode(跳入應(yīng)用)” “2.Enter Setup Mode(進(jìn)入設(shè)置模式)” “3.Start Program Flash Online(開始程序固化)”中選擇3后,上位機(jī)自動(dòng)彈出加載窗口,加載文件中需要選擇加載的bin文件路徑,加載地址需要手動(dòng)輸入bin文件的燒寫地址。輸入完成后,點(diǎn)擊“確定”按鈕,上位機(jī)通過串口發(fā)送握手信號,如圖2所示。DSP Boot程序接收到串口數(shù)據(jù)后,判斷是否為約定的握手信號,如正確,通知上位機(jī)繼續(xù)發(fā)送固化地址;否則,循環(huán)讀取三次,均不為握手信號,通過上位機(jī)握手失敗,返回主交互界面。DSP Boot接收到地址數(shù)據(jù)后,判斷地址范圍,超出Flash地址邊界輸出地址錯(cuò)誤,退出固化流程;若地址為App燒寫地址,進(jìn)入應(yīng)用固化分支;地址為Boot燒寫地址,進(jìn)入Boot固化分支。兩者唯一的區(qū)別是Boot程序固化需要輸入密碼,保護(hù)Boot程序不被誤篡改。Boot程序的固化過程應(yīng)保證信號處理模塊不斷電,否則會導(dǎo)致Boot程序無法啟動(dòng),此時(shí)需拆開設(shè)備插上仿真器進(jìn)行升級,會給升級工作造成極大的不便。

      地址發(fā)送成功后,上位機(jī)軟件將文件拆包為4k大小發(fā)送,數(shù)據(jù)格式為Header+長度+內(nèi)容+校驗(yàn)碼。Boot接收到數(shù)據(jù)后,對數(shù)據(jù)內(nèi)容進(jìn)行CRC運(yùn)算,與最后的校驗(yàn)碼進(jìn)行對比,不一致會通知上位機(jī)重發(fā)。當(dāng)所有數(shù)據(jù)發(fā)送成功后,Boot會對收到的所有數(shù)據(jù)進(jìn)行一次總體校驗(yàn),校驗(yàn)成功后,開始調(diào)用固化程序?qū)⑽募浿罭or Flash中。

      固化程序根據(jù)接收到的目的Flash地址、數(shù)據(jù)長度,計(jì)算頭扇區(qū)扇區(qū)號和尾扇區(qū)扇區(qū)號。若數(shù)據(jù)大于一個(gè)扇區(qū)且頭尾在不同的扇區(qū):如果用戶數(shù)據(jù)頭部地址落在Flash扇區(qū)中部,讀回Flash頭扇區(qū)數(shù)據(jù),將待燒寫數(shù)據(jù)不滿一個(gè)扇區(qū)的部分(頭部數(shù)據(jù))與Flash中讀回?cái)?shù)據(jù)拼接在一起;如果用戶數(shù)據(jù)尾部地址落在Flash扇區(qū)中部,讀回Flash尾部扇區(qū)數(shù)據(jù),將待燒寫數(shù)據(jù)不滿一個(gè)扇區(qū)的部分(尾部數(shù)據(jù))與Flash中讀回?cái)?shù)據(jù)拼接在一起;在不考慮頭尾數(shù)據(jù)的情況下,將所有數(shù)據(jù)寫入Flash,接著判斷頭/尾數(shù)據(jù)是否在中部,在中部的情況下,分別將拼接的數(shù)據(jù)寫入頭/尾扇區(qū)。如數(shù)據(jù)小于一個(gè)扇區(qū),則將Flash中一個(gè)扇區(qū)內(nèi)的數(shù)據(jù)全部讀出,接著將用戶數(shù)據(jù)插入對應(yīng)的位置,擦除整個(gè)扇區(qū)后,將該組合數(shù)據(jù)全部寫至Flash。

      Flash的擦除方式有兩種:整片擦除和扇區(qū)擦除。整片擦除是將整芯片的所有數(shù)據(jù)進(jìn)行擦除;而扇區(qū)擦除只擦除所需的單個(gè)扇區(qū),扇區(qū)擦除機(jī)制使得指定的存儲扇區(qū)被擦除和重新編程而不影響其他數(shù)據(jù)。模塊中Flash還儲存有其他用戶數(shù)據(jù),因此選擇扇區(qū)擦除。Flash的擦除和編程都是通過發(fā)送指令序列進(jìn)行,控制命令可通過標(biāo)準(zhǔn)的操作及時(shí)序進(jìn)行命令輸入,F(xiàn)lash芯片響應(yīng)相應(yīng)的命令并執(zhí)行所要求的操作。一旦編程或擦除操作開始,DSP需要通過檢測DQ7或DQ6信號是否翻轉(zhuǎn),或者監(jiān)控輸出信號Ready/

      Busy#(RY/BY#)來判定操作是否完成。

      DSP Boot完成數(shù)據(jù)燒寫后,對Flash進(jìn)行讀校驗(yàn),校驗(yàn)通過則給上位機(jī)返回成功,上位機(jī)顯示固化完成;校驗(yàn)失敗則返回失敗,上位機(jī)顯示固化失敗。

      3" " 網(wǎng)口固化

      串口固化簡單易用,工作穩(wěn)定,在調(diào)試階段或小批量固化時(shí)非常實(shí)用,但隨著產(chǎn)品規(guī)模增加,加上串口傳輸速度和距離的限制,在外場升級時(shí)其存在一定的局限性。為解決該問題,設(shè)計(jì)出了網(wǎng)口固化方案,該方案升級速度快,可以實(shí)現(xiàn)文件的批量加載,更適用于外場升級。

      選擇網(wǎng)口升級時(shí),用戶需要將外部離散量開關(guān)撥至網(wǎng)口加載狀態(tài),DSP Boot程序采集到以后會跳入網(wǎng)口加載分支,完成DSP網(wǎng)口驅(qū)動(dòng)的初始化。此時(shí),PC機(jī)通過交換機(jī)與整套綜合信號處理機(jī)連接,各信號處理模塊根據(jù)其槽位號分配固定的IP地址,固化時(shí)PC機(jī)配置自身IP與其處于同一網(wǎng)段。上位機(jī)軟件加載時(shí),可以選擇多DSP加載,選擇導(dǎo)入配置所有信號處理模塊IP號的XML文件,該文件中包含模塊號與對應(yīng)的IP關(guān)系。導(dǎo)入完成后,界面會顯示模塊及IP地址,上位機(jī)繼續(xù)提示選擇固化文件存儲位置,文件存儲位置按照模塊編號固定排序,文件中包含固化的bin文件及其燒寫地址,點(diǎn)擊“確定”按鈕后,上位機(jī)會彈出模塊名稱供用戶選擇,用戶可以選擇全部模塊或部分模塊進(jìn)行燒寫。DSP Boot會將接收燒寫進(jìn)度返回給上位機(jī)軟件,燒寫成功且校驗(yàn)通過上位機(jī)會顯示固化完成,否則會顯示失敗原因,用戶可根據(jù)錯(cuò)誤提示進(jìn)一步定位固化故障。網(wǎng)口加載流程如圖3所示。

      網(wǎng)口固化的數(shù)據(jù)傳輸方式與串口固化類似,也是握手,發(fā)送地址、數(shù)據(jù)長度、校驗(yàn)位,接收完成后,DSP Boot程序根據(jù)接收到的數(shù)據(jù)調(diào)用Flash燒寫驅(qū)動(dòng)將數(shù)據(jù)固化至目標(biāo)地址。FT6678 DSP集成了千兆以太網(wǎng),相較于波特率115 200 B/s的串口而言,傳輸速度有了飛躍提升;另外,網(wǎng)絡(luò)加載可以多DSP并行燒寫,在外場升級中效率顯著提升。

      4" " 結(jié)束語

      本文針對DSP程序升級困難的痛點(diǎn),設(shè)計(jì)了兩種DSP程序固化方案,并對其軟件實(shí)現(xiàn)方式分別進(jìn)行了介紹。串口固化調(diào)試簡單,工作可靠,適用于調(diào)試及小規(guī)模固化場景;網(wǎng)口固化傳輸效率高,固化速度快,但DSP側(cè)網(wǎng)絡(luò)驅(qū)動(dòng)及上位機(jī)軟件開發(fā)較為復(fù)雜,適合于大規(guī)模軟件升級場景。上述兩種方案均可實(shí)現(xiàn)對DSP程序的穩(wěn)定加載,具有較強(qiáng)的實(shí)用性,對于后續(xù)的DSP固化升級具有一定的參考價(jià)值。

      [參考文獻(xiàn)]

      [1] 王華華,馬昶,亢成.一種基于多核DSP的Turbo譯碼實(shí)現(xiàn)方法[J].小型微型計(jì)算機(jī)系統(tǒng),2019,40(2):374-377.

      [2] 鄧豹.TMS320C6678多核DSP的加載配置和實(shí)現(xiàn)方法[J].航空計(jì)算技術(shù),2017,47(1):107-111.

      [3] 張樂年,關(guān)榆君.基于TMS320C6678的多核DSP加載模式研究[J].電子設(shè)計(jì)工程,2013,21(24):166-169.

      [4] 陳亮,高策,朱杰斌,等.基于EMIF接口的TMS320C6678多核程序自啟動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù),2016,45(4):55-59.

      收稿日期:2025-02-24

      作者簡介:袁斌斌(1989—),男,陜西咸陽人,碩士,工程師,研究方向:嵌入式軟件、RapidIO網(wǎng)絡(luò)通信等。

      鄂尔多斯市| 保靖县| 通山县| 九江县| 丘北县| 涞水县| 旌德县| 海城市| 丰宁| 通州市| 望江县| 沭阳县| 手游| 多伦县| 桃园县| 中山市| 永年县| 长治县| 准格尔旗| 麻江县| 南宁市| 保定市| 古田县| 含山县| 买车| 赤城县| 茶陵县| 定西市| 南澳县| 三河市| 新兴县| 墨玉县| 南通市| 陈巴尔虎旗| 类乌齐县| 陆川县| 肇庆市| 湘阴县| 玛多县| 闵行区| 固始县|