• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NiosⅡ的UART設計與實現(xiàn)

      2012-03-17 07:21:18王一平王代強
      電子設計工程 2012年17期
      關鍵詞:波特率寄存器電平

      王一平 , 王代強 ,2

      (1.貴州大學 貴州 貴陽 550025;2.貴州大學 人民武裝學院,貴州 貴陽 550025)

      SOPC技術自2000年提出以來,以其靈活性、可裁剪和擴展、系統(tǒng)可編程等優(yōu)點被廣泛應用于通信、軍事等嵌入式領域。SOPC技術以NiosⅡ處理器為核心采用軟硬件協(xié)同設計方案以及IP核復用等技術使得它在可靠性、體積、功耗、設計周期等方面實現(xiàn)了最優(yōu)化,是未來的SOC和嵌入式發(fā)展的方向。

      傳統(tǒng)的UART專用芯片引腳多、內部還有許多其他的功能模塊、占用面積大使得電路設計復雜,PCB面積增加。相對于集成度越來越高的SOC系統(tǒng)來說越來越不符合要求。而基于SOPC技術的UART設計可以合理應用在含有FPGA器件的系統(tǒng)中,將UART集成其中起到節(jié)約PCB面積的作用[1]。

      文中設計了一種基于NiosⅡ的UART,并在EP2C8Q208C芯片上通過串口調試工具加以驗證。

      1 UART原理及協(xié)議介紹

      串行異步接口即通用的異步收發(fā)器(UART,Universal Asynchronous Receiver Transmitter)成本低、傳輸線少、可靠性高因而應用廣泛于。根據(jù)通信接口的傳輸速率、電氣特性、連接特性等的不同, 有 RS-232、RS-423、RS-499、RS-485等不同的通信協(xié)議。其中RS-232是目前廣泛采用的一個標準,常用于短距離、低速、低成本的通信[1-2]。

      RS-232的基本通信只需要兩條信號線(RXD、TXD)就可以完成數(shù)據(jù)的相互通信,接受和發(fā)生采用全雙工形式,RXD是接受輸入端,TXD是發(fā)送輸入端。其基本的通信協(xié)議十分簡單:以低電平為起始位,高電平為停止位,中間可傳輸5~8比特數(shù)據(jù)和1比特奇偶校驗位,奇偶校驗位的有無和數(shù)據(jù)比特的長度由通信雙方約定,一幀數(shù)據(jù)傳輸完畢后可以繼續(xù)傳輸下一幀數(shù)據(jù),也可以繼續(xù)保持為高電平,兩幀之間保持高電平,持續(xù)時間可以任意長。圖1為UART的數(shù)據(jù)幀的格式。

      圖1 UART的數(shù)據(jù)幀格式Fig.1 UART data frame form

      2 SOPC中硬件構造實現(xiàn)

      1)系統(tǒng)的整體硬件結構

      SOPC系統(tǒng)一般Nios軟核cpu、存儲器、I/O等構成。用戶的根據(jù)需求選擇Nios軟核、存儲器、IP核或自定義IP核,分配好內存地址和中斷優(yōu)先級別,就構成了所需要的系統(tǒng)。Nios軟核與UART核、其他IP核、SDRAM等通過Avalon總線僑聯(lián)并與外設相連[3]。

      NiosⅡ提供3種供用戶選擇的軟核,在本文設計中我們選擇NiosⅡ/e(經(jīng)濟型)軟核,并調用系統(tǒng)自帶的UART核(RS232)、epcs、sdram等構成系統(tǒng),并設置好中斷級別和內存地址,就生成了SOPC系統(tǒng)[4]。由于用到了SDRAM需要調用控制外部的sdram器件,由FPGA引入時鐘信號后需要加上一個鎖相環(huán)(PLL)模塊倍頻生成Nios系統(tǒng)和sdram的控制信號,并設置兩個控制信號間的相位差。整體系統(tǒng)的電路原理圖如圖2所示。

      圖2 SOPC系統(tǒng)的組件Fig.2 SOPC system’smodule

      2)UART 核的設置

      作為整個系統(tǒng)的核心的UART核,是一款quartus軟件自帶的IP核。它內部是包括波特率除數(shù)寄存器、接收寄存器、發(fā)送寄存器、移位寄存器等。它提供目標系統(tǒng)與開發(fā)系統(tǒng)的連接。從功能設計上看:它與Nios軟核通過avalonz總線結構連接,并提供外部的電平轉換模塊的接口。

      UART核中初始的波特率設置為115200,Baud rate can be changed by software選項設置成允許軟件設置波特率;檢驗方式、數(shù)據(jù)位、停止位等設置為none、8和1。

      3)電平轉換電路模塊

      本文中采用的RS-232標準規(guī)定邏輯1的電平為-15~-3 V,邏輯0的電平為+3~+15 V。COMS電路的電平范圍一般是從0 V到電源電壓,F(xiàn)PGA的I/O輸入輸出電壓通常為0~3.3 V,為了保證 FPGA設計的 UART接口與 RS-232電平保持一致,必須加電平轉換芯片,進行UART的TTL/COMS電平與RS-232電平的轉換[5]。本設計采用MAX232電平轉換芯片,支持兩個串口的電平轉換。

      3 軟件設計分析

      1)UART核的寄存器結構及C語言描述

      根據(jù)表1中UART核的寄存器結構[6-7],筆者在 sopc.h文件中定義一個UART_ST的結構體。它包含在硬件中用到的接收數(shù)據(jù)位、發(fā)送數(shù)據(jù)位、狀態(tài)、控制及除數(shù)五個共用體。其中的每個共用體根據(jù)偏移量決定順序,并包括一個結構體和用于整體清零WORD的變量。在sopc.h中還用宏定義聲明了UART的基地址。然后需要編寫一個uart.h文件用于以結構體形式聲明UART核工作所用到的receive_flag、receive_count、*init等Nios開發(fā)包自帶的需要用到的UART函數(shù)。編寫sopc.h及uart.h文件是為了在后面編寫UART核的驅動時候方便調用。

      表1 UART核寄存器映射Tab.1 UART nuclear register map

      2)UART核的驅動描述

      在編寫成功前面 sopc.h及 uart.h文件后, 需要根據(jù)UART的工作原理編寫RS232工作的驅動文件uart.c。

      在uart.c文件中我們要聲明定義以下函數(shù):

      ①intuart_send_byte(unsigned char data)用于發(fā)送一個字節(jié)

      ②void uart_send_string (unsigned int len, unsigned char*str)發(fā)送字符串數(shù)據(jù)

      ③intset_baudrate(unsigned intbaudrate)軟件設置波特率

      ④void uart_ISR(void)聲明 uart所用到的中斷

      ⑤int uart_init(void)初始化 uart等等。

      版面關系僅列舉uart_send_byte函數(shù)的代碼:

      4 系統(tǒng)的實現(xiàn)驗證

      整個系統(tǒng)的軟件硬件部分都編輯完成后首先通過quartus和Nios IDE軟件編譯并將硬件仿真無錯誤后下載到目標芯片EP2C8Q208C中通過串口調試工具實現(xiàn)PC機和UART的通信。

      圖3 串口的調試Fig.3 Serial port debugging

      5 結束語

      基于NiosⅡ設計的UART在以FPGA為核心控制芯片的嵌入式系統(tǒng)中有著一定的優(yōu)勢,可以節(jié)約PCB面積并且具有成本低、易于升級等優(yōu)點。該系統(tǒng)實現(xiàn)了基本的UART功能,并且后續(xù)的可以通過添加FIFO模塊提升傳輸容量等。

      [1]Ahera Corporation.NiosⅡ proce,~sor reference handbook[S].[S.1.]Ahera Corporation,2003.

      [2]任愛鋒,初秀琴.基于FPGA的嵌入式系統(tǒng)設計[M].西安:西安電子科技大學出版社,2004.

      [3]Ahera Corporation.Quartus 11 version 6.0 handbook[S].[S.1.]Ahera Corporation,2006.

      [4]鄭啞民,董曉舟.可編程邏輯器件開發(fā)軟件Quartus II[M].北京:國防工業(yè)出版社,2006.

      [5]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天出版社,2003.

      [6]王建校,危建國.SOPC設計基礎與實踐[M].西安:西安電子科技大學出版社,2006.

      [7]張志剛.FPGA與SOPC設計教程——DE2實踐[M].西安:西安電子科技大學出版社,2007.

      猜你喜歡
      波特率寄存器電平
      CAN 總線波特率自適應程序設計
      智能制造(2020年5期)2020-07-03 06:24:00
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      基于FPGA的異步串行通信波特率容錯設計
      電子測試(2018年7期)2018-05-16 06:27:18
      分簇結構向量寄存器分配策略研究*
      NPC五電平Z源逆變器的設計研究
      基于三電平光伏并網(wǎng)逆變器控制系統(tǒng)的研究與實踐
      基于NPC三電平變換器的STATCOM研究
      電測與儀表(2015年2期)2015-04-09 11:28:58
      一種多電平逆變器及其并網(wǎng)策略
      電測與儀表(2014年7期)2014-04-04 12:09:32
      C*Core芯片SCI串口波特率容限優(yōu)化
      高速數(shù)模轉換器AD9779/AD9788的應用
      从江县| 科技| 县级市| 武定县| 张家港市| 合阳县| 阜城县| 无锡市| 新安县| 禹州市| 慈利县| 阳西县| 年辖:市辖区| 洪江市| 烟台市| 东乡县| 瑞金市| 霍邱县| 青浦区| 台东县| 南昌市| 垦利县| 阜宁县| 广州市| 石嘴山市| 巴青县| 开封县| 土默特右旗| 嘉善县| 临城县| 蓬溪县| 马鞍山市| 根河市| 那坡县| 无锡市| 东安县| 重庆市| 石棉县| 多伦县| 武城县| 汉寿县|