Xilinx FPGA的Fast Startup
系統(tǒng)分區(qū)
本文引用地址:http://m.butianyuan.cn/article/125814.htm對于這種情形,系統(tǒng)分區(qū)是顯而易見的。我們把我們ECU設(shè)計分成作為高優(yōu)先級分區(qū)的系統(tǒng)處理器部分和作為低優(yōu)先級分區(qū)的應(yīng)用處理部分。
這種設(shè)計與Virtex-6設(shè)計存在很多相似之處,但不同的是,我們用SPI取代BPI作為外置閃存的接口,因此必須用CAN控制器取代TFT控制器。上電后,系統(tǒng)控制器只有有限的時間引導(dǎo)并準(zhǔn)備好處理第一個通信數(shù)據(jù)。由于ECU使用CAN總線用于通信,這個引導(dǎo)時間一般限制為100毫秒。按照傳統(tǒng)配置方法,使用帶低成本配置接口(如SPI或Quad-SPI)的大型Spartan-6很難達到如此嚴(yán)格的時序要求。而使用速度更快、更加昂貴的配置接口在汽車領(lǐng)域中是無法接受的。
測量裝置
對于SP605汽車ECU演示來說,我們在實驗室中進行了測量,圖6給出了測量裝置。圖中左側(cè)是一個基于Spartan-3的X1500汽車平臺,它實現(xiàn)了針對CAN總線的網(wǎng)絡(luò)發(fā)包器,該發(fā)生器能夠收發(fā)CAN消息并使用硬件計時器測量CAN消息之間的時間。右側(cè)為目標(biāo)平臺,它沒有直接與CAN總線相連,而是使用來自額外的定制電路板的CAN收發(fā)器。除了提供一個CAN PHY之外,這個定制電路板還要控制目標(biāo)電路板的電源。
圖6 – 汽車ECU的測量裝置
測量配置時間的程序從網(wǎng)絡(luò)發(fā)包器處于空轉(zhuǎn)(空檔)狀態(tài)下開始,此時CAN PHY電路板上的CAN收發(fā)器也處于睡眠模式,SP605也與電源斷開。接著,網(wǎng)絡(luò)發(fā)包器啟動一個硬件計時器并發(fā)送一條CAN消息。識別CAN總線上的事件后,CAN PHY被喚醒并重新讓SP605接通電源。然后FPGA開始載入來自SPI閃存的初始比特流。
由于沒有接收器確認(rèn)由網(wǎng)絡(luò)發(fā)包器發(fā)送的消息,這條消息立刻重復(fù)發(fā)送,直至FPGA已經(jīng)完成其配置并用有效的波特率配置了CAN內(nèi)核。一旦Spartan-6設(shè)計的CAN內(nèi)核確認(rèn)了這條消息,網(wǎng)絡(luò)發(fā)包器的CAN內(nèi)核將觸發(fā)一個中斷,由這個中斷停止硬件計時器。該計時器現(xiàn)在保存著SP605設(shè)計的引導(dǎo)時間。測量結(jié)果包括SP605設(shè)計內(nèi)一個額外的硬件計時器,此結(jié)果表明,當(dāng)執(zhí)行該軟件來配置內(nèi)置BRAM內(nèi)存的CAN內(nèi)核時,軟件啟動時間可以忽略不計。
表3表示每個分區(qū)的FPGA資源消耗。百分比信息是用來表示使用的XC6S45LXT器件的有效資源的總數(shù)量。
表3 – Spartan-6設(shè)計中占用的FPGA資源
表4 – 測得的Spartan-6配置時間
評論