基于FPGA的多通道SSI通信控制器設(shè)計(jì)
摘 要: 采用VHDL硬件描述語(yǔ)言,以Xilinx公司的FPGA為設(shè)計(jì)平臺(tái),設(shè)計(jì)實(shí)現(xiàn)了以開源軟核MC8051為核心的控制單元,控制4路SSI協(xié)議模塊的SoPC架構(gòu)的通信控制器,并對(duì)通信控制器進(jìn)行了功能仿真與驗(yàn)證。該控制器可靈活進(jìn)行IP核模塊擴(kuò)展,并可作為外圍處理機(jī)與TI公司TMS320C6000系列DSP進(jìn)行互連通信,將慢速串行通信任務(wù)進(jìn)行分離,從而減輕DSP的負(fù)擔(dān),提高系統(tǒng)的整體性能。
關(guān)鍵詞: 同步串行接口;FPGA;MC8051;IP核;DSP
在嵌入式系統(tǒng)應(yīng)用領(lǐng)域中,需要完成的任務(wù)越來(lái)越復(fù)雜,應(yīng)用環(huán)境也越來(lái)越惡劣,要求嵌入式計(jì)算機(jī)在體積不斷減小的情況下,具有更強(qiáng)的處理功能和較低的功耗。本文采用FPGA[1]設(shè)計(jì)技術(shù),利用VHDL硬件描述語(yǔ)言[2],將4個(gè)同步串行接口協(xié)議SSI IP核[3]模塊組成一個(gè)功能可擴(kuò)展的SoPC架構(gòu)的從通信控制器,從而使主從控制器協(xié)同工作,保證了整個(gè)嵌入式系統(tǒng)在通信速度達(dá)到技術(shù)要求的前提下,能更有效地降低系統(tǒng)功耗與體積。
1 SoPC設(shè)計(jì)方法
可編程片上系統(tǒng)SoPC(System on Programmable Chip)(或稱基于大規(guī)模FPGA的單片系統(tǒng))是一種靈活、高效的SoC解決方案,將處理器、存儲(chǔ)器、I/O口等系統(tǒng)需要的功能模塊集成到一個(gè)PLD器件上,構(gòu)成了一個(gè)可編程片上系統(tǒng),具有靈活的設(shè)計(jì)方式(可裁減、可擴(kuò)充、可升級(jí)),并具備軟硬件在系統(tǒng)可編程功能。
圖1為典型的基于IP核庫(kù)的SoPC設(shè)計(jì)流程,主要是利用軟硬件協(xié)同方法完成整個(gè)系統(tǒng)設(shè)計(jì)。
2 通信控制器架構(gòu)模塊組成
本文采用了一種全新的SoPC體系結(jié)構(gòu),整個(gè)嵌入式系統(tǒng)主要由主控制器和FPGA(從控制器)兩大功能單元組成,其結(jié)構(gòu)如圖2所示。主控制器選用TI公司的TMS320C6713 DSP,虛框內(nèi)的電路單元?jiǎng)t為所設(shè)計(jì)的多通道同步通信控制器(也即從控制器)。通過(guò)TMS320C6713處理器芯片自帶的EMIF模塊與基于FPGA實(shí)現(xiàn)的多通道同步通信控制器進(jìn)行數(shù)據(jù)交換。基于FPGA實(shí)現(xiàn)的從處理器內(nèi)部選用MC8051 IP軟核來(lái)控制和管理4路SSI協(xié)議通信控制器,TMS320C6713與MC8051之間通過(guò)雙端口RAM共享數(shù)據(jù)和交換信息,整個(gè)系統(tǒng)采用中斷控制方式,實(shí)現(xiàn)主/從控制器協(xié)同處理任務(wù)。
由圖2可知,該SoPC架構(gòu)控制器內(nèi)部可劃分為4大模塊:從處理器MC8051 IP核、4路SSI協(xié)議通信控制器、雙端口RAM和中斷邏輯單元。下面分別對(duì)4個(gè)主要組成模塊進(jìn)行介紹。
2.1 從處理器
為了提高同步通信控制器的自主性與靈活性,在FPGA內(nèi)部嵌入一個(gè)微控制器80C51 IP核作為同步通信控制器的核心控制單元。MC8051 IP軟核的特點(diǎn)主要有:指令集與工業(yè)標(biāo)準(zhǔn)的8051控制器兼容;新的體系結(jié)構(gòu)使單片機(jī)處理速度提高了10倍;無(wú)多路復(fù)用I/O端口,實(shí)行輸入和輸出接口完全隔離;256 B的內(nèi)部RAM;最高可達(dá)64 KB的內(nèi)部ROM和最高可達(dá)64 KB的外部RAM;容易調(diào)整或改變VHDL源代碼實(shí)現(xiàn)相關(guān)的核擴(kuò)展功能;可通過(guò)VHDL常量進(jìn)行參數(shù)化設(shè)置。
圖3是MC8051 IP核的內(nèi)部功能結(jié)構(gòu)圖。從圖中可以看到,該IP核包括的子模塊有:算術(shù)邏輯單元MC8051_ALU、串行接口單元MC8051_SIU、定時(shí)器/計(jì)數(shù)器單元MC8051_TMRCTR、核心控制單元MC8051_CONTROL、內(nèi)部數(shù)據(jù)存儲(chǔ)單元MC8051_RAM、內(nèi)部程序存儲(chǔ)單元MC8051_ROM和外部數(shù)據(jù)存儲(chǔ)單元MC8051_RAMX。其中,N表示MC8051_SIU和MC8051_TMRCTR兩個(gè)單元根據(jù)實(shí)際需要可靈活制定的個(gè)數(shù),其范圍值為1~256,可在VHDL代碼中改變參數(shù)C_IMPL_N_TMR的值進(jìn)行設(shè)置。