国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LEON3的SoC平臺(tái)構(gòu)建及UART全雙工通信驗(yàn)證

2014-06-09 12:33段大高王平麗
關(guān)鍵詞:全雙工波特率寄存器

段大高,王平麗

(北京工商大學(xué),計(jì)算機(jī)與信息工程學(xué)院,北京 100048)

基于LEON3的SoC平臺(tái)構(gòu)建及UART全雙工通信驗(yàn)證

段大高,王平麗

(北京工商大學(xué),計(jì)算機(jī)與信息工程學(xué)院,北京 100048)

LEON3是一個(gè)可配置、可移植、高性能和開源的軟核處理器,在工業(yè)領(lǐng)域和空間應(yīng)用中得到廣泛研究。論文基于LEON3軟核構(gòu)建了一種高性能、靈活的SoC硬件平臺(tái),并設(shè)計(jì)了UART全雙工通信功能。首先介紹了 LEON3開發(fā)環(huán)境硬件平臺(tái)的搭建,并通過(guò)tsim-leon3模擬器,驗(yàn)證了LEON3 SoC的基本功能;其次研究LEON3的UART通信功能,并在LEON3 SoC硬件平臺(tái)上進(jìn)行了UART全雙工通信實(shí)現(xiàn)。結(jié)果驗(yàn)證了基于LEON3的SoC平臺(tái)的可行性,并實(shí)現(xiàn)了SoC的UART全雙工通信功能,為SoC的開發(fā)提供一個(gè)良好的參考方案。

LEON3;UART;tsim-leon3;SoC

0 引言

隨著芯片設(shè)計(jì)技術(shù)的飛速發(fā)展,SoC已成為集成電路設(shè)計(jì)界的焦點(diǎn),SoC的性能要求越來(lái)越高,規(guī)模也越來(lái)越大。LEON系列微處理器是歐洲航天局(ESA)下屬研究機(jī)構(gòu) Gaisler Research公司所開發(fā)和維護(hù)的,LEON3處理器是基于SPARC V8架構(gòu)的32位精簡(jiǎn)指令集計(jì)算機(jī)微處理器,目的是擺脫對(duì)美國(guó)航空局的依賴,LEON3是一個(gè)可配置的、可移植的、高性能的、高可靠的軟核處理器[1]。它的源碼是可綜合的VHDL代碼,并且是開源的,任何人都可以在其網(wǎng)站上免費(fèi)下載其硬件代碼和各種開發(fā)軟件工具與文檔。由于LEON3具有良好的可移植性、可配置性和遵循GPL許可協(xié)議的開源性,這些特性保證系統(tǒng)SoC芯片的安全性,提供良好的性能和靈活的解決方案[2],也決定了在LEON3上進(jìn)行嵌入式操作系統(tǒng)移植的特殊性,所以很適合SoC平臺(tái)開發(fā)[3~5]。本文為基于LEON3的SoC平臺(tái)設(shè)計(jì)提供一個(gè)良好的參考方案。

1 基于LEON3的SoC平臺(tái)搭建

1.1 基于LEON3的SoC平臺(tái)系統(tǒng)框架的設(shè)計(jì)

LEON3系統(tǒng)是基于AMBA AHB和APB總線設(shè)計(jì)的[6],系統(tǒng)所有模塊都通過(guò)AMBA總線連接,LEON3處理器和其他高寬帶設(shè)備都連接在AMBA AHB總線上,如:AHB控制器、內(nèi)存控制器、JTAG接口、USB接口等,其他低速外設(shè)設(shè)備連接在 AMBA APB總線上,如:VGA、定時(shí)器、串口、I/O口等。系統(tǒng)框圖如圖1所示。

1.2 搭建LEON3研發(fā)環(huán)境

(1)軟件條件。在Win7系統(tǒng)上安裝虛擬機(jī)VMwareWorkstation 10.0,在虛擬機(jī)上安裝Linux系統(tǒng):Ubuntu10.10,在Linux環(huán)境下進(jìn)行硬件配置。安裝grmon-eval,用于下載bit文件,查看硬件地址信息等。

(2)硬件條件。本文使用開發(fā)板Xilinx公司的spartan3e xc3s1600e。它包含了豐富的,靈活的邏輯資源,包含一個(gè)xc3s1600e FPGA芯片,邏輯單元33192,IEEE 1149.1/ 1532 JTAG編程/調(diào)試端口等邏輯資源。

(3)tsim-leon3驗(yàn)證。TSIM是SPARC架構(gòu)處理器通用軟件仿真器[7],用于軟件仿真ERC32和LEON處理器。它作為軟件模擬的VHDL模型,調(diào)試過(guò)程中需要啟動(dòng)一些常見的選項(xiàng)進(jìn)行設(shè)置,如:-freq。使用tsim-leon3對(duì)Hello World程序進(jìn)行測(cè)試,進(jìn)而驗(yàn)證LEON3研發(fā)環(huán)境成功搭建,為下一步硬件平臺(tái)環(huán)境搭建建立基礎(chǔ)。

圖1 系統(tǒng)框圖Fig.1 System block diagram

1.3 基于LEON3的硬件平臺(tái)搭建

本文是使用Xilinx公司的spartan3e系列的xc3s1600e作為L(zhǎng)EON3處理器系統(tǒng)的載體,在配置好硬件平臺(tái)開發(fā)環(huán)境以后,接下來(lái)進(jìn)行硬件平臺(tái)的搭建,搭建流程如圖2所示。

圖2 硬件平臺(tái)搭建流程Fig.2 Procedure of designing hardware platform

由于前期階段已經(jīng)下載安裝了GRLIB IP庫(kù),即LEON3源代碼,在Linux環(huán)境下,找到目標(biāo)板的文件目錄,使用make xconfig命令對(duì)各個(gè)硬件模塊進(jìn)行配置,利用圖形配置界面配置各個(gè)模塊,配置信息將保存在config.vhd中。

使用make ise命令建立工程文件,使用 Xilinx ISE14.3編譯整個(gè)工程文件,生成 bit文件,最后將bit文件下載到FPGA開發(fā)板上。

打開grmon-eval,使用info sys命令[8],查看LEON3內(nèi)核硬件地址信息,可以看出內(nèi)核的處理器是Gaisler Research LEON3 SPARC V8 Processor,APB UART的基地址是0x80000100,從而可知LEON3硬件平臺(tái)搭建成功。

2 基于LEON3的UART全雙工通信驗(yàn)證

2.1 APB UART的結(jié)構(gòu)

APB UART主要包括接收模塊、發(fā)送模塊、波特率產(chǎn)生模塊和串口控制器等4個(gè)部分。APB UART為串行通信提供接口,該UART支持帶8個(gè)數(shù)據(jù)位,一個(gè)可選的奇偶校驗(yàn)位和1個(gè)停止位的數(shù)據(jù)幀。為產(chǎn)生波特率,每個(gè)UART具有一個(gè)可編程的12位時(shí)鐘分頻器。當(dāng)fifosize>1時(shí),兩個(gè)FIFO用于APB總線和UART之間的數(shù)據(jù)傳輸。當(dāng) fifosize=1時(shí),兩個(gè)保持寄存器用于APB總線和UART之間的數(shù)據(jù)傳輸。當(dāng)VHDL的參數(shù)聲明(flow)里設(shè)置流控制時(shí),通過(guò)RTSN/CTSN握手信號(hào)支持硬件流控制。當(dāng)VHDL參數(shù)聲明(parity)里設(shè)置奇偶校驗(yàn)位時(shí),支持奇偶校驗(yàn)。APB UART模塊的工作模式包括:發(fā)送模式、接收模式、波特率生成、回環(huán)模式、FIFO調(diào)試模式、中斷產(chǎn)生模式。通過(guò)選擇不同的工作模式,對(duì)寄存器選擇不同的操作和控制。

2.2 APB UART的幀格式和寄存器

UART無(wú)奇偶校驗(yàn)位的幀格式包括線路空閑狀態(tài)(idle,高電平)、起始位(start bit,低電平)、8位數(shù)據(jù)位(data bits)和停止位(stop bit)。

通過(guò)寄存器映射到 APB地址空間來(lái)控制 IP核。APB UART的相關(guān)寄存器的地址偏移量如表1所示。

(1)UART數(shù)據(jù)寄存器:數(shù)據(jù)寄存器有32位,只有低7位有效,在發(fā)送模式下,存儲(chǔ)的是要發(fā)送的數(shù)據(jù),在接收模式下,存儲(chǔ)的是接收到的數(shù)據(jù)。

表1 APBUART的寄存器Tab.1 APBUART registers

(2)UART狀態(tài)寄存器:狀態(tài)寄存器中的各位數(shù)據(jù)表明現(xiàn)在UART的狀態(tài),比較典型的位有:10:RF表示接受FIFO滿;9:TF表示發(fā)送FIFO滿;8:RH表示接收FIFO中至少有一半的數(shù)據(jù);7:TH表示發(fā)送FIFO中的數(shù)據(jù)少于一半;6:FE表示檢測(cè)到幀錯(cuò)誤;5:PE表示檢測(cè)到奇偶校驗(yàn)位錯(cuò)誤;4:OV表示由于溢出丟失了一個(gè)或多個(gè)數(shù)據(jù);2:TE表示發(fā)送FIFO空;1:TS表示數(shù)據(jù)移位寄存器為空;0:DR數(shù)據(jù)準(zhǔn)備,表示可以在FIFO中獲得新數(shù)據(jù)。

(3)UART控制寄存器:UART控制寄存器是一組可以對(duì)UART進(jìn)行操作控制的寄存器,使其工作在不同的工作模式下,其中比較典型的位如下:7:LB置位時(shí),UART工作在回環(huán)模式;6:FL置位時(shí),用CTS/RTS使能流控制;5:PE置位時(shí),奇偶校驗(yàn)使能;4:PS選擇奇偶校驗(yàn)的種類,1是奇校驗(yàn),0是偶校驗(yàn);3:TI置位時(shí),當(dāng)發(fā)送一個(gè)數(shù)據(jù)幀時(shí)產(chǎn)生一個(gè)中斷;2:RI置位時(shí),當(dāng)接收掃一個(gè)數(shù)據(jù)幀時(shí)產(chǎn)生一個(gè)中斷;1:TE使能發(fā)送數(shù)據(jù);0:RE使能接收數(shù)據(jù)。

(4)UART計(jì)數(shù)寄存器:根據(jù)UART計(jì)數(shù)寄存器的值可以計(jì)算UART的波特率。

2.3 UART全雙工通信程序

(1)UART的寄存器硬件地址映射。

#define UART_BASE 0x80000100

#defineUART_RX_FIFO *(volatileunsignedint*)(UART_BASE)

#define UART_TX_FIFO*(volatile unsigned int*)(UART_BASE)

#defineUART_STATE*(volatileunsignedint*)(UART_BASE+0x04)

#define UART_CON*(volatile unsigned int*)(UART_BASE+0x08)

#defineUART_SCALE*(volatileunsignedint*)(UART_BASE+0x0c)

以上代碼是對(duì)UART的相關(guān)寄存器進(jìn)行物理映射,UART的基地址是0x80000100,這是APB總線的地址段,以這個(gè)地址段開頭向后偏移相應(yīng)的偏移地址得到相應(yīng)寄存器的地址。這和寄存器中相應(yīng)的地址是對(duì)應(yīng)的,所以對(duì)相對(duì)應(yīng)的物理地址進(jìn)行讀寫操作,可以對(duì)應(yīng)的對(duì)寄存器進(jìn)行讀寫操作。

(2)程序流程圖。UART接收過(guò)程中,task_buf記錄有效數(shù)據(jù)量,由于FIFO深度為8字節(jié),故接收的有效數(shù)據(jù)量不應(yīng)大于8字節(jié),接收程序流程如圖3所示。

發(fā)送過(guò)程分三種情況:當(dāng)發(fā)送FIFO為空時(shí),最多發(fā)送8個(gè)字節(jié)數(shù)據(jù);當(dāng)發(fā)送FIFO少于一半時(shí),最多發(fā)送4個(gè)字節(jié)數(shù)據(jù);當(dāng)發(fā)送FIFO滿時(shí),不發(fā)送數(shù)據(jù)。發(fā)送過(guò)程流程圖如圖4所示。

(3)測(cè)試結(jié)果。UART全雙工通信功能驗(yàn)證:在Windows平臺(tái)下編寫串口通信程序,測(cè)試程序編寫完成,使用sparc-elf-gcc編譯器編譯C程序生成可執(zhí)行文件。再使用grmon-eval下載到目標(biāo)板上,使用 run命令,運(yùn)行程序,使用串口調(diào)試助手進(jìn)行觀測(cè),本測(cè)試中選擇的是無(wú)奇偶校驗(yàn)位的數(shù)據(jù)幀格式,通信雙方采用相同的波特率9600bps,上位機(jī)打開一個(gè)串口調(diào)試助手,通過(guò)USB轉(zhuǎn)的串口6與串口調(diào)試助手相連接,準(zhǔn)備一系列字節(jié)用于發(fā)送數(shù)據(jù),下位機(jī)運(yùn)行時(shí),可以通過(guò)連接串口6的調(diào)試助手看到不斷的收到所發(fā)數(shù)據(jù),測(cè)試結(jié)果如圖5所示。對(duì)比發(fā)送和接收的數(shù)據(jù),發(fā)現(xiàn)二者是一致的,也無(wú)錯(cuò)誤發(fā)生,測(cè)試結(jié)果可以看出,該測(cè)試程序完成了UART全雙工的通信,從而也可以驗(yàn)證UART的接收功能和發(fā)送功能。

圖3 接收程序流程圖Fig.3 The receiving program flow diagram

圖4 發(fā)送過(guò)程流程圖Fig.4 The transmitting program flow diagram

3 總結(jié)

本文利用LEON3軟核處理器的可配置、可綜合、 可移植等性質(zhì), 構(gòu)建了一基于LEON3的 SoC硬件平臺(tái),并且通過(guò)UART全雙工通信,驗(yàn)證了平臺(tái)的搭建成功,同時(shí)驗(yàn)證了基于LEON3軟核的UART全雙工通信的可行性,為以后LEON3 SoC的開發(fā)提供一個(gè)良好的參考方案。

圖5 測(cè)試結(jié)果Fig.5 Test results

[1]Gaisler A.LEON/GRLIB Configuration and Development Guide[Z]. Aeroflex Gaisler,2012.

[2]李林,張曉林,楊希.基于 LEON開源軟核的 SoC平臺(tái)構(gòu)建與測(cè)試[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007,1.

[3]Zhonghua Z,Wuchen W,Ming H,et al.A SoPC design based on LEON3 SoC platform[A].Microelectronics&Electronics,2009.PrimeAsia 2009. AsiaPacificConferenceonPostgraduateResearchinIEEE[C].2009.

[4]Pei L,Jian Z.A high reliable SOC on-board computer based on LEON3[A].Computer Science and Automation Engineering(CSAE), 2012 IEEE International Conference on.IEEE[C].2012.

[5]Mu?oz A,Ostua E,Bellido M J,et al.Building a SoC for industrial applications based on LEON microprocessor and a GNU/Linux distribution[A].Industrial Electronics,2008.ISIE 2008.IEEE International Symposium on.IEEE[C].2008.

[6]Gaisler A.GRLIB IP Core User's Manual,Version 1.2.2 B4123[Z]. Aeroflex Gaisler:January 2013.

[7]Gaisler A.TSIM2 Simulator User's Manual Version2.0.23[Z].Aeroflex Gaisler AB:October 2012.

[8]Gaisler A.GRMON User's Manual Version 1.1.56[Z].Aeroflex Gaisler AB:December 2012.

SoC Platform and UART Full-duplex Communication Verification Based on LEON3

DUAN Da-Gao,WANG Ping-Li
(College of Computer and Information Engineering,Beijing Technology and Business University,Beijing 100048,China)

LEON3 is a configurable,portable,high-performance and open source soft-core processor,which has been widely used in the field of industrial and space applications.In this paper,we built a high-performance,flexible SoC hardware platform based on LEON3 softcore,and designed?the function of UART full-duplex communication.Firstly,the build of the hardware platform of LEON3 development environment is introduced,and the basic function of LEON3 SoC is verified through tsim-leon3 simulator.Secondly,the communication of SoC UART is proposed and the UART full-duplex function is implemented on LEON3 SoC hardware platform.The experimental results show that the high-performance LEON3 SoC platform is achieved.A good reference solution for the development of SoC is provided.

LEON3;UART;tsim-leon3;SoC

TP39

:Adoi:10.3969/j.issn.1002-6673.2014.03.045

1002-6673(2014)03-115-03

2014-03-12

段大高 (1976-),男,博士,副教授。主要研究方向:多媒體信息處理、現(xiàn)代網(wǎng)絡(luò)通信、嵌入式系統(tǒng)、智能數(shù)據(jù)分析等;王平麗 (1988-),女,碩士研究生。主要研究方向:嵌入式系統(tǒng)開發(fā)、多媒體信息處理等。

猜你喜歡
全雙工波特率寄存器
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
RLS算法在同時(shí)同頻全雙工系統(tǒng)中的自干擾抑制性能分析
分簇結(jié)構(gòu)向量寄存器分配策略研究*
基于GRT平臺(tái)的全雙工WiFi設(shè)計(jì)與實(shí)現(xiàn)
同頻同時(shí)全雙工數(shù)字自干擾抵消算法
5G全雙工技術(shù)淺析
C*Core芯片SCI串口波特率容限優(yōu)化
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
UART波特率發(fā)生電路設(shè)計(jì)
临湘市| 托克逊县| 邛崃市| 庄浪县| 资阳市| 林州市| 饶阳县| 平乐县| 磐石市| 安义县| 吉木萨尔县| 白河县| 左云县| 大连市| 林甸县| 龙山县| 三原县| 时尚| 道孚县| 淅川县| 尉氏县| 东山县| 土默特左旗| 泊头市| 富源县| 保靖县| 广饶县| 鸡东县| 凯里市| 化德县| 彝良县| 双辽市| 彩票| 祁门县| 石棉县| 藁城市| 含山县| 上林县| 曲水县| 靖西县| 沂南县|