<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è) > 嵌入式系統 > 設計應用 > 一種支持ISP的Flash在嵌入式設計中的應用

一種支持ISP的Flash在嵌入式設計中的應用

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

引言

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

在基于VxWorks的系統開(kāi)發(fā)過(guò)程中,板卡包BSP(Board Support Package)的開(kāi)發(fā)是非常重要而又閑難的一個(gè)環(huán)節。因為不能確定硬件系統是否正常丁作,而后續開(kāi)發(fā)都是以此為基礎。

在實(shí)際開(kāi)發(fā)中,為了提高開(kāi)發(fā)效率,大多是采用以一個(gè)與目標板硬件相似的BSP為模板,并在此基礎上修改移植。在這個(gè)過(guò)程中.除了CPU以外,另一個(gè)重要的器件就是裝有啟動(dòng)程序的器件。

2 系統介紹

采用高性能PowerPC系列器件PPC440EPx為核心的一款符合CPCI標準的單板計算機系統。

該系統集成了豐富的外設接口和調試接口,可用于設備控制、設備管理、通信設備中的通信控制、協(xié)議處理、路由處理和網(wǎng)關(guān)處理等。其主要是面向航空設備和軍用車(chē)載設備的。

在調試階段,系統的啟動(dòng)是通過(guò)執行Boot flash中存儲的bootrom映像文件完成的。Boot 器件采用ST公司的PSD835,通過(guò)EBC總線(xiàn)與PPC440EPx相連。EBC總線(xiàn)是PPC440EPx的并行總線(xiàn)。其可以與8位,16位或32位的外部設備通信,最多可6個(gè)不同時(shí)序要求的設備。其中,片選0分配給Boot 。上電時(shí),PowerPC會(huì )自動(dòng)訪(fǎng)問(wèn)BootFlash,進(jìn)行系統初始化。操作系統是VxWorks,其映像文件放在NAND Flash中。

3 軟件開(kāi)發(fā)流程

軟件系統的開(kāi)發(fā)流程是:首先bootrom映像文件,并將其燒寫(xiě)到Flash器件中(該器件稱(chēng)為Boot ROM)。上電后,bootrom程序進(jìn)行相應初始化后與Host主機通信,將操作系統映像文件下載到系統平臺的RAM中運行。如果程序不正確或需更新,則重新通過(guò)bootrom程序將新的映像文件下載到RAM中。

當所有程序都調試成功,整個(gè)系統作為產(chǎn)品發(fā)布。此時(shí),則需將操作系統和程序映像文件燒寫(xiě)到在大容量的flash器件中(如NAND Flash),系統自動(dòng)將從Flash中復制到RAM中執行。

4 bootrom方案的選擇

bootrom應是一個(gè)短小精悍的程序,可初始化系統工作和通信接口(通常是串行接口和以太網(wǎng)接口);系統作為產(chǎn)品發(fā)布無(wú)需bootrom程序;調試 bootrom時(shí),需頻繁地將修改后的映像文件燒寫(xiě)到Boot ROM中。實(shí)現該Boot ROM電路有多種方案,如表1所示.

方案1是傳統設計方案,成本低,可選擇的Flash器件多。但在調試bootrom時(shí),更新程序非常不方便。需要焊裝Flash器件,很容易導致器件和 PCB板的物理?yè)p壞,而且效率非常低;而方案2從邏輯電路上來(lái)看,與方案1是一樣的。但其由于其使用夾具,器件裝卸簡(jiǎn)單,程序更新比方案1方便。但夾具成本較高,可靠性差,并且一般夾具體積較大,這就增加了PCB的布局、布線(xiàn)難度。上述兩種方案,Flash的編程都需從PCB上取下,用編程器燒寫(xiě)。顯然,這樣的工作效率較低。方案3則采用功能的Flash器件來(lái)實(shí)現Boot ROM,這就使得程序更新變得非常方便,極大提高工作效率。因此,根據嵌入式開(kāi)發(fā)實(shí)際情況,為節約成本、提高工作效率,該系統設計選擇方案3??紤]到 bootrom映像文件一般較小,選用ST公司的512 KB的Flash器件PSD835。

5 PSD835在嵌入式系統中的應用

5.1 硬件電路設計

該系統使用PSD835的主Flash作為Boot ROM。同時(shí),還使用該器件的PLD資源實(shí)現一些控制和初始化配置功能。如圖1所示,PSD835的存儲器通過(guò)其CPU接口與PPC440EPx的外部總線(xiàn)接口(EBC)相連。

連接電路比較簡(jiǎn)單,只需將EBC的片選信號、讀信號、地址和數據信號分別與PSD835的對應引腳相連即可。其他引腳被該器件的PLD使用,主要完成串口工作模式、PPC440EPx啟動(dòng)方式、片選信號的設置,以及網(wǎng)絡(luò )控制信號的產(chǎn)生等功能。

在設計實(shí)際硬件電路時(shí),應注意以下幾點(diǎn):

  (1)因為最終產(chǎn)品要通過(guò)NAND Flash啟動(dòng),因此片選0可通過(guò)撥碼開(kāi)關(guān)或CPLD分別在PSD835和NAND flash的片選信號之間切換。PPC440EPx有8個(gè)bootstrap選項(設置CPU的時(shí)鐘、啟動(dòng)、寄存器的初始值等),可以使用CPLD進(jìn)行改變;

  (2)PPC440EPx的EBC總線(xiàn)無(wú)復用地址和數據信號。因此,數據總線(xiàn)與F端口相連。低16位的地址總線(xiàn)與PSD835的ADIO15~AD100相連,高位地址與A端口相連;

  (3)PPC440EPx的EBC的數據總線(xiàn)的最高位是Data0,地址總線(xiàn)的最高位是Addr2。連接時(shí),注意不要將順序接反;

  (4)為了提高編程速度,添加了2個(gè)JTAG信號:teRR和TSTAT。

5.2 PSD835的功能和編程設計

PSD835的Flash編程和PLD邏輯功能的實(shí)現,需要使用FlashLINK下載線(xiàn)(硬件)和PSDsoft EXPRESS(軟件)。FlashLINK其實(shí)就是一個(gè)JTAG和并口的轉換器;PSDsoftEXPRESS是PSD系列器件的設計軟件。利用該工具軟件定義器件的引腳功能、映射存儲器、配置PLD等。所有的定義和配置與程序固件一起生成obj文件。該文件通過(guò)FlashLINK下載到PSD器件中。另外,利用該工具軟件還可以完成擦除、校驗、上載、空白檢查等功能。而整個(gè)設計過(guò)程也非常簡(jiǎn)單,只需根據其設計流程簡(jiǎn)單點(diǎn)擊鼠標即可完成PSD設計。圖2 為PSD設計流程。

根據該系統設計簡(jiǎn)單描述如下:首先建立一個(gè)丁程文件。然后根據實(shí)際電路在下拉框中選擇廠(chǎng)家和CPU型號,以及將用到的控制信號,再選擇使用的PSD器件型號和封裝。最后定義CPU和PSD連接的方式(即8位或16位總線(xiàn)模式,復用或非復用總線(xiàn)等等)。

該系統使用AMCC公司的PPC440EPx型CPU,下拉框中無(wú)該選項。這時(shí)可選擇other,控制信號根據EBC總線(xiàn)的定義選擇RD和WR。PSD與CPU數據總線(xiàn)為8位,地址和數據無(wú)復用,未使用ALE信號。

在設計階段所做的設置較多,首先,定義電路中所使用的引腳。定義其名字、引腳是CPLD的輸入還是輸出,或是CPU的I/O;同時(shí)還要配置該引腳是組合邏輯還是時(shí)序邏輯;定義頁(yè)寄存器的使用。系統中EBC的地址信號線(xiàn)足夠多,因此將頁(yè)寄存器作為PLD的輸入信號;定義PSD器件內部存儲器、寄存器的地址映射以及片選信號的邏輯表達式。因為本系統使用512 KB的主Flash存放啟動(dòng)代碼,因此,其地址空間被定義在0xFFF80000~0xFFFFFFFF(BSP中定義)。實(shí)際電路設計時(shí),為了簡(jiǎn)化設計,只使用20根地址信號線(xiàn)。因此,將主Flash地址定義在0x80000~0xFFFFF。則片選fs0在0x80000~0x8FFFF,則片選 fs1在0x90000~0x9FFFF。以此類(lèi)推片選fs2~fs7的地址空間。其他的存儲空間可分配在0x00000~0x7FFFF。片選信號的邏輯表達式為將EBC總線(xiàn)片選0取反;定義輸出信號以及內部節點(diǎn)信號的邏輯。這實(shí)際上就是完成CPLD功能的設計。

附加定義中可設置安全位、用戶(hù)代碼、設置頁(yè)保護。如果設置安全位,所有編程工具將不能訪(fǎng)問(wèn)PSD的內容。用戶(hù)代碼用于版本管理。對于具有保護功能的頁(yè), CPU就只能對其進(jìn)行讀操作(通過(guò)JTAG口或編程器改變其內容)。適配是檢查器件是否能滿(mǎn)足上述的各種配置,同時(shí)產(chǎn)生相應的報告文件。啟動(dòng)代碼 bootrom.hex文件和上述的各種配置融合為一個(gè).obj文件。設計中需要注意:bootrom映像文件不能太大(不能超過(guò)512 KB);主Flash的8個(gè)頁(yè)都要指向同一個(gè)映像文件;映像文件的名字bootrom.hex最好改為不是以hex為后綴(如改為bootrom.a(chǎn)),否則會(huì )出錯。將生成的.obj文件燒寫(xiě)到器件內部。正確完成上述流程就可調試程序。

6 結論

從PSD835的數據手冊可知,該器件主要是應用于16位的單片機系統。該系統設計根據嵌入式系統中 BSP開(kāi)發(fā)以及PSD835器件的特點(diǎn),將該器件靈活運用于基于32位RISC器件PPC440EPx的嵌入式系統中,降低BSP的開(kāi)發(fā)難度,提高工作效率。以此為基礎實(shí)現的CPCI單板計算機已成功應用于某航載數據采集分析記錄儀。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: 設計 應用 嵌入式 Flash ISP 支持

評論


相關(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>