基于Linux的SoPC開發
SoPC(System on Programmable Chip)是一種特殊的嵌入式系統。首先,它是一種SoC系統,即由一個芯片完成系統的主要邏輯功能;其次,它是可編程的片上系統,即可配置、可裁減、可擴充、可升級,具有硬件系統的可編程性。采用SoPC的設計,具有很大的靈活性。
本文引用地址:http://www.j9360.com/article/150696.htm它可以根據需要定制各個硬件模塊,包括處理器、總線、存儲器和通信模塊等,這就使得在一個芯片上搭建一個按需定制的SoC系統成為可能。而Linux系統也因為其良好的可裁減、可配置的特點廣泛應用于各種嵌入式系統,Linux操作系統提供了許多系統級的應用,例如網絡協議的實現、進程調度、內存管理等,同時Linux是一個成熟的開源操作系統,有豐富的應用資源。利用這些資源和強大的系統功能,用戶可以基于嵌入式Linux快速地開發出面向復雜應用的嵌入式系統。因此,結合SoPC和Linux優勢,可以很好地滿足嵌入式系統根據需求量體裁衣,去除冗余。本文給出基于Linux的SoPC應用系統的開發方法及一個具體的嵌入式應用開發實例。
1 硬件開發環境
1.1 開發平臺
本文所采用的開發平臺是AVNET公司生產的VIRTEX-II PRO FF1152開發板,它使用XILINX公司的Virtex-II Pro FPGA芯片XC2VP50-6FF1152C,同時開發板還有2個8MB×32的SDRAM存儲器、2個RS232接口、一個以太網接口、1個LCD顯示屏、8個LED燈,同時支持SPI-4.2的高速16bit LVDS接口、iSFP GbE光纖接口、System ACE接口以及一個P160標準的擴展模塊[1]。
1.2 基于PowerPC的片上系統
XC2VP50-6FF1152C芯片內部含有兩個IBM PowerPC 405核。PowerPC405是32位的RISC處理器,它采用IP植入架構的形式整合到XILINX公司的Virtex-II Pro FPGA器件中。
PowerPC硬核具有許多優點適合軟件的開發設計[2]:具有三個定時器:即可編程的內部定時器、固定的內部定時器和看門狗定時器和靈活的存儲管理和用于加強計算功能的乘法累加指令。PowerPC的強大功能可以勝任許多復雜應用系統對處理能力和運算速度的需求。同時,利用雙核機制以及操作系統的進程調度可以大幅度地提高處理速度。
通過XILINX公司的EDK開發軟件,可以很方便地在Virtex-II Pro系列芯片上搭建自己需要的硬件系統。處理器方面可以選擇硬核IP:PPC405,或者軟核IP:Microblaze;總線有OPB和PLB兩種總線可供選擇;同時,還有豐富的外圍IP可以選擇;在通信方面,分別有支持高速和低速的通信模塊。支持高速的IP有:plb_etherne、opb_ethernet、opb_ethernetlite和plb_gemac等,支持低速的IP有:opb_iic、opb_spi、opb_uart16550和opb_uartlite等;在存儲控制器方面,可選擇的 IP有opb_sdram、opb_ddr、opb_emc、opb_sysace、plb_sdram、 plb_ddr和plb_emc等模塊;其他方面還有支持中斷、定時、GPIO、PCI等功能的IP模塊。豐富的IP模塊,加上可以利用IPIC(IP Interconnect)連接用戶定制的IP,因而用戶使用CPU時,不需要再另外使用一個SDRAM控制器芯片,或者另外使用一個以太網的控制芯片,極其方便。
可編程片上系統由處理器、總線互連和外圍設備等組成,典型的基于PowerPC的片上系統的架構如圖1所示。
1.3 CoreConnect的總線結構[3]
總線互連是片上系統的一項關鍵技術。本系統采用了CoreConnect的總線結構。該總線結構是IBM公司開發的一種片上通信的總線互連技術。它的應用使得系統核、外設核、處理器核的復用、連接變得更加容易。這里,系統核是針對PLB總線上的功能IP模塊的,而外設核是針對OPB總線上的功能模塊的。CoreConnect總線互連是由本地邏輯總線PLB(Peripheral Logic Bus)、片上外圍總線 OPB(On chip Peripheral Bus)、一個總線橋、兩個判決器,以及設備控制總線DCR(Device Control Register構成的,其結構如圖2所示。
評論