基于FSL總線(xiàn)的UART外設IP核設計
引 言
本文引用地址:http://dyxdggzs.com/article/82925.htm在基于MicroBlaze的SOPC系統中,將用戶(hù)IP核整合到基于MicroBlaze的嵌入式軟核處理器系統中,通常有兩種方法:一種是將IP核連接到OPB總線(xiàn);另一種是將用戶(hù)IP連接到MicroBlaze專(zhuān)用的FSL總線(xiàn)上。盡管OPB和FSL總線(xiàn)都是MicroBlaze軟核與FPGA其他片上邏輯資源連接的主要途徑,但它們的分工足不同的。OPB總線(xiàn)適用于將要求低速和低性能的設備連接到MicroBlaze系統中;而FSL總線(xiàn)則適用于將對時(shí)間要求高的用戶(hù)自定義IP核,整合到基于MicroBlaze的軟核系統中,以實(shí)現硬件加速。
在Xilinx公司提供的IP核中,有基于OPB總線(xiàn)的UART外設IP核,但是沒(méi)有基于FSL總線(xiàn)的IP核,使得該UART外設在對時(shí)間要求高的系統中性能受到制約。在這種情況下,有必要設計基于FSL總線(xiàn)的UART外設,以使得UART能夠在高速系統中發(fā)揮最佳性能。
Xilinx公司的MicroBlaze軟核是支持CoreConnect總線(xiàn)的標準外設集合。MicroBlaze處理器可以運行在150MHz時(shí)鐘下,提供125 DMIPS的性能,非常適合于設計針對網(wǎng)絡(luò )、電信、數據通信和消費市場(chǎng)的復雜嵌入式系統。
1 MicroBlaze體系結構
1.1 MicroBlaze內核結構
MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,與其他外設IP核一起,可以完成可編程系統芯片(SOPC)的設計。MicroBlaze處理器采用RISC架構和哈佛結構的32位指令和數據總線(xiàn),可以全速執行存儲在片上存儲器和外部存儲器中的程序,并訪(fǎng)問(wèn)其中的數據。內核結構如圖1所示。
1.2 MicroBlaze的總線(xiàn)接口
MicroBlaze處理器軟核具有豐富的接口資源。最新版本的MicroBlaze軟核支持的總線(xiàn)接口有:
◆帶字節允許的OPB(On_chip Peripheral Bus,片上外設總線(xiàn))V2.0接口;
◆高速的LMB(Local Memory Bus,本地存儲器總線(xiàn))接口;
◆FSL主從設備接口;
◆XCL(Xilinx Cache Link,Xilinx緩存鏈路)接口;
◆MDM(Microprocessor Debug Module,微處理器調試模塊)連接的凋試接口。
OPB是對IBM CoreConnect片上總線(xiàn)標準的部分實(shí)現,適用于IP核作為外設連接到MicroBlaze系統中;LMB用于實(shí)現對片上的BlockRAM的高速訪(fǎng)問(wèn);FSL是MicroBlaze軟核特有的一個(gè)基于FIFO的單向鏈路,可以實(shí)現用戶(hù)自定義IP核與MicroBlaze內部通用寄存器的直接相連;而XCL則是MicroBlaze軟核新增加的,用于實(shí)現對片外存儲器的高速訪(fǎng)問(wèn)。MicroBlaze軟核還有專(zhuān)門(mén)的調試接口,通過(guò)參數設置,開(kāi)發(fā)人員可以只使用特定應用所需要的處理器特性。
2 基于FSL總線(xiàn)的UART IP核設計
UART(Universal Asynchronous Receiver Transmit-ter,通用異步收發(fā)器)是廣泛使用的串行數據傳輸協(xié)議,允許在串行鏈路上進(jìn)行全雙工的通信。串行外設用到的RS232-C異步串行接口,一般采用專(zhuān)用的集成電路(即UART)實(shí)現。8250、8251、NS16450 等芯片都是常見(jiàn)的UART器件,這類(lèi)芯片已經(jīng)相當復雜,有的含有許多輔助的模塊(如FIFO),有時(shí)并不需要使用完整的UART功能和這些輔助功能。如果設計上用到了FPGA器件,那么可以將所需要的UART功能集成到FPGA內部。使用VHDL將UART的核心功能集成,從而使整個(gè)設計更加緊湊、穩定且可靠。
2.1 UART的典型應用
UART主要由數據總線(xiàn)接口、控制邏輯、波特率發(fā)生器、發(fā)送部分和接收部分等組成。UART內部所實(shí)現的功能包括微處理器接口、發(fā)送緩沖器、發(fā)送移位寄存器、幀產(chǎn)生、奇偶校驗、數據接收緩沖器、接收移位寄存器等。UART的典型應用如圖2所示。
2.2 FSL總線(xiàn)接口
FSL總線(xiàn)是一個(gè)基于FIFO的單向點(diǎn)對點(diǎn)通信總線(xiàn),主要用于FPGA的兩個(gè)模塊間進(jìn)行快速的通信。FSL接口的I/O信號如圖3所示。
該接口的主要特點(diǎn):
◆單向的點(diǎn)對點(diǎn)通信;
◆非共享的無(wú)仲裁通信機制;
◆支持控制位與數據分離的通信;
◆基于FIFO的通信模式;
◆可配置的數據寬度;
◆高速的通信性能(獨立運行達到600 MHz)。
2.3 FSL總線(xiàn)UART硬件設計
設計中的主要內容是UART IP模塊和MicroBlaze之間的FSL總線(xiàn)接口,該接口提供了UART模塊與MicroBlaze之間通信的橋梁。Xilinx公司提供的IP核中包括基于OPB總線(xiàn)的UART模塊,但是沒(méi)有提供基于FSL總線(xiàn)的UART模塊。如果設計中需要在UART模塊和MicroBlaze之間進(jìn)行高速交互,設計一個(gè)基于FSL總線(xiàn)的UART無(wú)疑是最佳的選擇。UART經(jīng)過(guò)FSL總線(xiàn)與MicroBlaze的連接如圖4所示。
從圖4中可以看出:對于FSL1,MicroBlaze是主設備,UART模塊是從設備,MicroBlaze可以發(fā)送數據或者命令給UART模塊;而對FSL0來(lái)說(shuō),UART模塊是主設備,而MicroBlaze是從設備,UART模塊可以發(fā)送數據給MicroBlaze來(lái)處理。FSL0和FSL1構成了一個(gè)FSL總線(xiàn)對,使得MicroBlaze和UART模塊可以進(jìn)行全雙工通信。其設計的頂層實(shí)現部分代碼如下:
2.4 FSL總線(xiàn)UART驅動(dòng)設計
對用戶(hù)自己設計的IP核來(lái)說(shuō),如果要集成到SOPC系統中,就必須為該IP核開(kāi)發(fā)相應的驅動(dòng)程序。驅動(dòng)程序提供一組操作自定義IP核的操作宏,通過(guò)這些操作宏,軟件程序開(kāi)發(fā)者可以在高層對IP核進(jìn)行操作。本設計中的驅動(dòng)程序,提供了串口對字符或者字符串的發(fā)送和接收,用C語(yǔ)言來(lái)設計。部分驅動(dòng)代碼如下:
3 FSL總線(xiàn)UART外設IP核的驗證
3.1 硬件平臺
無(wú)論基于何種總線(xiàn),用戶(hù)開(kāi)發(fā)的IP核開(kāi)發(fā)完畢之后,都要組建一個(gè)基本系統對IP核進(jìn)行驗證。這個(gè)基本系統要包含必要的外設,重點(diǎn)對IP核的性能進(jìn)行測試。如果在測試中發(fā)現錯誤,則需修改錯誤然后導入到系統中,再進(jìn)行測試,直到滿(mǎn)足基本功能、達到設計預期目標為止。如圖5所示,本驗證平臺包括以下處理器和外設:MicroBlaze,數據指令BRAM,調試模塊,DCM模塊和用戶(hù)IP模塊。特別注意,增加了2條FSL總線(xiàn)組成一個(gè)FSL總線(xiàn)對,用于用戶(hù)IP與處理器進(jìn)行通信。
3.2 軟件開(kāi)發(fā)
在上述硬件平臺基礎上,開(kāi)發(fā)一個(gè)基本的C程序,對FSL總線(xiàn)UART進(jìn)行測試。代碼如下:
打開(kāi)串口調試工具,觀(guān)察到的結果如圖6所示。
通過(guò)驗證,所設計的基于FSL總線(xiàn)的UART外設IP核達到預期目標,可以集成到SOPC系統中正常工作。
結 語(yǔ)
通過(guò)本文的設計,給廣大SOPC設計人員一個(gè)提示:設計基于FSL總線(xiàn)的外設IP核,并通過(guò)FSL總線(xiàn)集成到SOPC系統中,可以顯著(zhù)提高系統性能,而且設計過(guò)程不是很復雜,比較容易實(shí)現。
評論