新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FSL總線的UART外設IP核設計

基于FSL總線的UART外設IP核設計

作者:東北電力大學 王玉峰 聊城工業(yè)學校 胥保華 時間:2008-05-22 來源:《單片機與嵌入式系統(tǒng)應用》 收藏

  引 言

本文引用地址:http://m.butianyuan.cn/article/82925.htm

  在基于系統(tǒng)中,將用戶整合到基于的嵌入式軟核處理器系統(tǒng)中,通常有兩種方法:一種是將連接到總線;另一種是將用戶IP連接到專用的總線上。盡管總線都是MicroBlaze軟核與FPGA其他片上邏輯資源連接的主要途徑,但它們的分工足不同的。總線適用于將要求低速和低性能的設備連接到MicroBlaze系統(tǒng)中;而總線則適用于將對時間要求高的用戶自定義,整合到基于MicroBlaze的軟核系統(tǒng)中,以實現(xiàn)硬件加速。

  在Xilinx公司提供的IP核中,有基于OPB總線的外設IP核,但是沒有基于FSL總線的IP核,使得該外設在對時間要求高的系統(tǒng)中性能受到制約。在這種情況下,有必要設計基于FSL總線的外設,以使得UART能夠在高速系統(tǒng)中發(fā)揮最佳性能。

  Xilinx公司的MicroBlaze軟核是支持CoreConnect總線的標準外設集合。MicroBlaze處理器可以運行在150MHz時鐘下,提供125 DMIPS的性能,非常適合于設計針對網(wǎng)絡、電信、數(shù)據(jù)通信和消費市場的復雜嵌入式系統(tǒng)。

  1 MicroBlaze體系結(jié)構

  1.1 MicroBlaze內(nèi)核結(jié)構

  MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,與其他外設IP核一起,可以完成可編程系統(tǒng)芯片()的設計。MicroBlaze處理器采用RISC架構和哈佛結(jié)構的32位指令和數(shù)據(jù)總線,可以全速執(zhí)行存儲在片上存儲器和外部存儲器中的程序,并訪問其中的數(shù)據(jù)。內(nèi)核結(jié)構如圖1所示。

       

  1.2 MicroBlaze的總線接口

  MicroBlaze處理器軟核具有豐富的接口資源。最新版本的MicroBlaze軟核支持的總線接口有:

  ◆帶字節(jié)允許的OPB(On_chip Peripheral Bus,片上外設總線)V2.0接口;

  ◆高速的LMB(Local Memory Bus,本地存儲器總線)接口;

  ◆FSL主從設備接口;

  ◆XCL(Xilinx Cache Link,Xilinx緩存鏈路)接口;
 
  ◆MDM(Microprocessor Debug Module,微處理器調(diào)試模塊)連接的凋試接口。

  OPB是對IBM CoreConnect片上總線標準的部分實現(xiàn),適用于IP核作為外設連接到MicroBlaze系統(tǒng)中;LMB用于實現(xiàn)對片上的BlockRAM的高速訪問;FSL是MicroBlaze軟核特有的一個基于FIFO的單向鏈路,可以實現(xiàn)用戶自定義IP核與MicroBlaze內(nèi)部通用寄存器的直接相連;而XCL則是MicroBlaze軟核新增加的,用于實現(xiàn)對片外存儲器的高速訪問。MicroBlaze軟核還有專門的調(diào)試接口,通過參數(shù)設置,開發(fā)人員可以只使用特定應用所需要的處理器特性。

  2 基于FSL總線的UART IP核設計

  UART(Universal Asynchronous Receiver Transmit-ter,通用異步收發(fā)器)是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議,允許在串行鏈路上進行全雙工的通信。串行外設用到的RS232-C異步串行接口,一般采用專用的集成電路(即UART)實現(xiàn)。8250、8251、NS16450 等芯片都是常見的UART器件,這類芯片已經(jīng)相當復雜,有的含有許多輔助的模塊(如FIFO),有時并不需要使用完整的UART功能和這些輔助功能。如果設計上用到了FPGA器件,那么可以將所需要的UART功能集成到FPGA內(nèi)部。使用VHDL將UART的核心功能集成,從而使整個設計更加緊湊、穩(wěn)定且可靠。

  2.1 UART的典型應用

  UART主要由數(shù)據(jù)總線接口、控制邏輯、波特率發(fā)生器、發(fā)送部分和接收部分等組成。UART內(nèi)部所實現(xiàn)的功能包括微處理器接口、發(fā)送緩沖器、發(fā)送移位寄存器、幀產(chǎn)生、奇偶校驗、數(shù)據(jù)接收緩沖器、接收移位寄存器等。UART的典型應用如圖2所示。

        

  2.2 FSL總線接口

  FSL總線是一個基于FIFO的單向點對點通信總線,主要用于FPGA的兩個模塊間進行快速的通信。FSL接口的I/O信號如圖3所示。

       

  該接口的主要特點:

  ◆單向的點對點通信;

  ◆非共享的無仲裁通信機制;

  ◆支持控制位與數(shù)據(jù)分離的通信;

  ◆基于FIFO的通信模式;

  ◆可配置的數(shù)據(jù)寬度;

  ◆高速的通信性能(獨立運行達到600 MHz)。

  2.3 FSL總線UART硬件設計

  設計中的主要內(nèi)容是UART IP模塊和MicroBlaze之間的FSL總線接口,該接口提供了UART模塊與MicroBlaze之間通信的橋梁。Xilinx公司提供的IP核中包括基于OPB總線的UART模塊,但是沒有提供基于FSL總線的UART模塊。如果設計中需要在UART模塊和MicroBlaze之間進行高速交互,設計一個基于FSL總線的UART無疑是最佳的選擇。UART經(jīng)過FSL總線與MicroBlaze的連接如圖4所示。

       

  從圖4中可以看出:對于FSL1,MicroBlaze是主設備,UART模塊是從設備,MicroBlaze可以發(fā)送數(shù)據(jù)或者命令給UART模塊;而對FSL0來說,UART模塊是主設備,而MicroBlaze是從設備,UART模塊可以發(fā)送數(shù)據(jù)給MicroBlaze來處理。FSL0和FSL1構成了一個FSL總線對,使得MicroBlaze和UART模塊可以進行全雙工通信。其設計的頂層實現(xiàn)部分代碼如下:

        

  2.4 FSL總線UART驅(qū)動設計

  對用戶自己設計的IP核來說,如果要集成到系統(tǒng)中,就必須為該IP核開發(fā)相應的驅(qū)動程序。驅(qū)動程序提供一組操作自定義IP核的操作宏,通過這些操作宏,軟件程序開發(fā)者可以在高層對IP核進行操作。本設計中的驅(qū)動程序,提供了串口對字符或者字符串的發(fā)送和接收,用C語言來設計。部分驅(qū)動代碼如下:

        

  3 FSL總線UART外設IP核的驗證

  3.1 硬件平臺

  無論基于何種總線,用戶開發(fā)的IP核開發(fā)完畢之后,都要組建一個基本系統(tǒng)對IP核進行驗證。這個基本系統(tǒng)要包含必要的外設,重點對IP核的性能進行測試。如果在測試中發(fā)現(xiàn)錯誤,則需修改錯誤然后導入到系統(tǒng)中,再進行測試,直到滿足基本功能、達到設計預期目標為止。如圖5所示,本驗證平臺包括以下處理器和外設:MicroBlaze,數(shù)據(jù)指令BRAM,調(diào)試模塊,DCM模塊和用戶IP模塊。特別注意,增加了2條FSL總線組成一個FSL總線對,用于用戶IP與處理器進行通信。

        

  3.2 軟件開發(fā)

  在上述硬件平臺基礎上,開發(fā)一個基本的C程序,對FSL總線UART進行測試。代碼如下:

       

  打開串口調(diào)試工具,觀察到的結(jié)果如圖6所示。

       

  通過驗證,所設計的基于FSL總線的UART外設IP核達到預期目標,可以集成到SOPC系統(tǒng)中正常工作。

  結(jié) 語

  通過本文的設計,給廣大SOPC設計人員一個提示:設計基于FSL總線的外設IP核,并通過FSL總線集成到SOPC系統(tǒng)中,可以顯著提高系統(tǒng)性能,而且設計過程不是很復雜,比較容易實現(xiàn)。



評論


相關推薦

技術專區(qū)

關閉