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