基于PCI 總線的DSP 系統(tǒng)應(yīng)用程序的更新
0 引言
在DSP嵌入式業(yè)務(wù)系統(tǒng)設(shè)備中,一般采用片外FLASH自舉方式來實(shí)現(xiàn)DSP端應(yīng)用程序的加載和啟動(dòng)。當(dāng)DSP業(yè)務(wù)系統(tǒng)需要更新應(yīng)用程序時(shí),則可通過仿真器連接JTAG 口來控制DSP,完成DSP 外圍FLASH 的應(yīng)用程序更新。然而,對于成型、交貨的設(shè)備產(chǎn)品,DSP業(yè)務(wù)系統(tǒng)板上一般不會(huì)留有JTAG口,或在機(jī)箱中很難插拔仿真器;另一方面,對已交貨產(chǎn)品經(jīng)常插拔仿真器,會(huì)對硬件設(shè)備有所損傷,使設(shè)備硬件處于非控狀態(tài)。
如果系統(tǒng)設(shè)計(jì)使用了PCI作為系統(tǒng)通信總線,則可以通過PCI來完成DSP 業(yè)務(wù)系統(tǒng)應(yīng)用程序的更新和加載。本設(shè)計(jì)以TI公司TMS320C6416T(簡稱C6416)芯片為例,來說明通過PCI總線來更新DSP系統(tǒng)應(yīng)用程序的過程;同時(shí)本文也設(shè)計(jì)了一種C6416的上電啟動(dòng)方式。
1 C6416 的PCI 特性
1.1 C6416 PCI傳輸機(jī)理
C6416 片內(nèi)集成了PCI 的控制器,通過PCI 接口C6416可以完成同PCI總線上其他設(shè)備的數(shù)據(jù)交換。圖1描述了C6416的結(jié)構(gòu)框圖。PCI接口通過EDMA 控制寄存器可以訪問C6416的片內(nèi)存儲(chǔ)器/Cache,或者通過EMIF接口訪問片外存儲(chǔ)器。
從圖1可看出,PCI和EMIF接口都是通過EDMA傳輸控制器來與L2存儲(chǔ)器/Cache聯(lián)系的。EDMA 傳輸控制寄存器主要用來控制L2存儲(chǔ)器和設(shè)備外圍間的數(shù)據(jù)通信,包括傳輸請求隊(duì)列、地址產(chǎn)生器等;而通道控制器是用戶可編程部分,用戶可以設(shè)置相應(yīng)的寄存器,方便的設(shè)置數(shù)據(jù)傳輸方式(一維、二維)、事件觸發(fā)選擇、傳輸通道選擇等。
所有的EDMA傳輸請求可以由L2控制器、HPI/PCI和EDMA 通道三種渠道發(fā)出。一個(gè)傳輸請求一旦遞交,將通過鏈接通道移送到傳輸交叉開關(guān)(TC),在這里它將進(jìn)行優(yōu)先級(jí)設(shè)置與處理。請求鏈為請求提供了一個(gè)內(nèi)在的優(yōu)先機(jī)制。假定一個(gè)請求在同一周期中只遞交一次請求,那么靠近TC的首先到達(dá),最遠(yuǎn)的最后到達(dá)。
但進(jìn)入TC的請求,則會(huì)進(jìn)入傳輸請求隊(duì)列,按照隊(duì)列優(yōu)先級(jí)進(jìn)行相應(yīng)處理,如圖2所示。
HPI/PCI自動(dòng)產(chǎn)生傳輸請求來響應(yīng)主機(jī)。這些請求具有Q2優(yōu)先級(jí)且對用戶是不可見的。HPI/PCI遞交請求來進(jìn)行固定模式的單一單元讀、寫和短數(shù)據(jù)猝發(fā)遞增傳輸操作。
1.2 C6416 PCI操作原理C6416的PCI操作可以設(shè)置為:
主模式寫:DSP主設(shè)備通過PCI接口寫數(shù)據(jù)到外部PCI從設(shè)備。
主模式讀:DSP 主設(shè)備通過PCI接口從外部PCI從設(shè)備讀數(shù)據(jù)。
從模式寫:外部PCI主設(shè)備通過PCI接口寫數(shù)據(jù)到DSP從設(shè)備。
從模式讀:外部PCI主設(shè)備通過PCI接口從DSP從設(shè)備讀數(shù)據(jù)。
1.2.1 C6416 PCI寄存器
PCI接口有以下3種寄存器:PCI配置寄存器,PCI I/O 寄存器和映射在DSP 存儲(chǔ)空間的PCI 控制狀態(tài)寄存器。前兩類寄存器只能被外部主機(jī)訪問,DSP從機(jī)是不能訪問的;而最后一類寄存器,DSP從機(jī)是可以訪問的,并利用其來完成PCI通信的控制和操作。
PCI配置寄存器包含標(biāo)準(zhǔn)的PCI配置信息,包括設(shè)備標(biāo)識(shí),供應(yīng)商標(biāo)識(shí),版本等信息,其可以在上電復(fù)位時(shí)自動(dòng)訪問E2PROM 進(jìn)行加載或上電復(fù)位時(shí)可以通過默認(rèn)值初始化。
PCI I/O寄存器可以被主機(jī)用來對從機(jī)進(jìn)行操作和狀態(tài)監(jiān)控。主機(jī)通過base2 存儲(chǔ)空間來訪問該類寄存器。該空間大小為16 B,有三個(gè)寄存器:主機(jī)狀態(tài)寄存器(HSR),主機(jī)-DSP控制寄存器(HDSR)和DSP頁寄存器(DSPP)。
1.2.2 C6416 PCI存儲(chǔ)器映射
PCI端口通過3種基址寄存器可以完全訪問DSP的存儲(chǔ)器映射。
Base0:4 MB 的可預(yù)存取空間,通過設(shè)置DSP 頁寄存器映射來對應(yīng)所有DSP存儲(chǔ)空間,如圖3所示。可以理解為,一個(gè)4 MB大小的存儲(chǔ)窗口,來遍歷整個(gè)DSP的存儲(chǔ)映射區(qū),而DSP 頁寄存器的值則決定了這個(gè)4 MB存儲(chǔ)窗的起始地址。如圖4所示。
評(píng)論