向樂樂,盧艷娥
(空軍工程大學 電 訊工程學院, 陜西 西 安710077)
通用異步接收/發(fā)送器(UART)是一種通用串行數(shù)據(jù)總線,用于異步通信,可以實現(xiàn)全雙工通信。UART IP核是用在外部設備和Atera FPGA芯片上的SOPC間進行串行通信的一種實現(xiàn)方式。它可以替代RS-232實現(xiàn)芯片與外設的輸入/輸出(I/O)操作[1]。
GPS RTK(Real Time Kinematic)可以即時提供厘米級的定位解。在進行動態(tài)定位時,基準站將精確已知的GPS坐標和觀測數(shù)據(jù)實時用微波鏈路傳給流動站,在流動站實時進行差分處理,得到基準站和流動站坐標差;坐標差加上基準站坐標得到流動站每個點坐標。基準站向終端用戶接收機提供的信息包括對GPS衛(wèi)星鐘、星歷數(shù)據(jù)、用戶測量偽距和載波相位等參數(shù)的修正[2-3]。
本文所用的信號處理板可以作為GPS RTK基站使用,可以與其他基站組網(wǎng)接收差分修正數(shù)據(jù)定位或者本身的高精度單點定位輸出定位結(jié)果和差分修正數(shù)據(jù)。作為基準站,不僅要實時輸出精確定位信息,而且需要與外界進行差分數(shù)據(jù)交換。由于同一時間需要大量持續(xù)差分數(shù)據(jù)的輸入與輸出和用戶控制指令的輸入,設計采用了3個串口。
信號處理板為FPGA+DSP結(jié)構(gòu),具有多路A/D、D/A轉(zhuǎn)換器件。中頻信號經(jīng)A/D采樣后進入FPGA完成去載波,PRN碼相關運算,IQ變換等操作后由DSP芯片進行定位解算。通過串口輸入的用戶控制指令任意選擇串口對GPS定位結(jié)果的輸出和GPS差分修正數(shù)據(jù)的輸入輸出。
圖1信號處理板框圖Fig.1Structure block diagram of signal processing board
FPGA芯片上配置了3個串口,分別為UART0、UART1、UART2,由SOPC Builder分配相對應的存儲映射空間和中斷請求。每個模塊均使用默認的基地址,并分別設定UART0、UART1、UART2的數(shù)據(jù)輸入中斷請求號為IRQ1,IRQ2,IRQ3。另外,DSP芯片可能在任意時刻通過3個串口發(fā)送不同數(shù)據(jù)。
如果DSP對每個串口發(fā)送數(shù)據(jù)時均向NIOS II CPU發(fā)出中斷申請,則需要3根PIO管腳,占用太多針腳資源。本實現(xiàn)方案通過增加個串口控制寄存器,僅占用1根PIO管腳。同時,對和DSP芯片進行交互控制的PIO信號分配中斷請求號為IRQ0。
每個UART口都有輸入、輸出兩塊RAM作為緩存,數(shù)據(jù)位寬為16bits。其中,串口輸入緩存命名為ReadFromMemInterface,串口輸出緩存命名為WriteToMemInterface(見圖2)。需要注意的是實際傳輸數(shù)據(jù)時,外部設備的串口參數(shù)的數(shù)據(jù)位長度設置為8 bits,因此需要在串口的軟件處理進行字與字節(jié)的轉(zhuǎn)換。
圖2 NIOS II CPU的地址映射Fig.2Memory map of NIOS II CPU
圖3是NIOS II CPU在Quatus中的連線示意圖,即位于中心的inst6模塊。該CPU主要管腳定義如表1所示。
圖3 NIOS II CPU的管腳連接示意圖Fig.3Pin conections of NIOS II CPU
表1 NIOS II CPU主要管腳定義Tab.1Definitions of NIOS II CPU’s primary pins
值得說明的是,ts_clk輸入時鐘20.46 MHz即為NIOS II CPU的時鐘頻率,串口波特率為115 200 bps,可由該時鐘分頻得到。DSP6713的EMIF為輸入輸出雙向32位[4-5],在本設計中串口部分僅使用低16位,使用三態(tài)門來控制數(shù)據(jù)流向。三態(tài)門輸入輸出的使能信號是dsp給出的ce空間使能信號ce_6713。
串口輸入數(shù)據(jù)先由NIOS II CPU寫入每個串口的輸入緩存,當滿足條件時由out_pio管腳向dsp發(fā)出中斷,用以告知其可以讀取相應串口的數(shù)據(jù)了,緩存的數(shù)據(jù)由dspread0傳遞至三態(tài)門tri_16,dsp讀取時三態(tài)門為dsp輸入方向,dsp的EMIF數(shù)據(jù)線evm_D隨即出現(xiàn)數(shù)據(jù),配合EMIF地址線evm_A即可完成串口輸入數(shù)據(jù)向dsp傳遞;當dsp有數(shù)據(jù)要經(jīng)串口輸出時,數(shù)據(jù)由dsp的EMIF數(shù)據(jù)線evm_D輸入,dsp通過in_pio向NIOS II CPU發(fā)出中斷信號,請求發(fā)送數(shù)據(jù)。詳細的發(fā)送接收流程見下文。
NIOS II CPU的控制代碼部分分為主函數(shù)和各種中斷響應函數(shù)。在主函數(shù)里完成寄存器初始化、各串口數(shù)據(jù)輸出的任務。串口的中斷響應函數(shù)則主要完成數(shù)據(jù)的輸入任務。
為了便于FPGA和DSP之間的控制信息交換,每個串口設有地址固定的長度各為32位(4字節(jié))的輸入和輸出兩個控制寄存器。通過對各標志位的讀寫操作即可實現(xiàn)系統(tǒng)對各串口的控制。串口的輸入控制寄存器定義見表2,輸出控制寄存器與之類似。
表2 UART輸入控制寄存器定義Tab.2 Definition of the UART input control register
由于用戶控制指令(包括信號處理板配置參數(shù)、輸出數(shù)據(jù)類型控制等)與差分修正數(shù)據(jù)的數(shù)據(jù)長度和數(shù)據(jù)持續(xù)性有很大區(qū)別,在常規(guī)數(shù)據(jù)傳輸方式之外對每個串口增設數(shù)據(jù)塊傳輸模式。數(shù)據(jù)塊傳輸模式可用于持續(xù)性大量數(shù)據(jù)的輸入,采用每個串口對兩塊RAM進行乒乓讀寫操作的來方案實現(xiàn)。是否采用數(shù)據(jù)塊傳輸模式由串口的控制寄存器中的第14位(P_flag)決定。對于非數(shù)據(jù)塊輸入模式中緩存大小需要根據(jù)常規(guī)數(shù)據(jù)最大長度來設定,過小會導致部分數(shù)據(jù)丟失。
當有數(shù)據(jù)需要輸出時,由DSP向NIOS II CPU的RAM寫入各UART輸出控制寄存器的設定值,并通過GPIO向其發(fā)出中斷信號??稍贜IOS II CPU的main函數(shù)中設置一個循環(huán)檢測是否有由DSP輸入的中斷信號,若有再檢測各UART的輸出控制寄存器。輸出流程圖如圖4所示。
圖4串口數(shù)據(jù)輸出流程Fig.4Process of data output
圖4中SET_EN用于設置個串口的輸入模式(是否乒乓輸入及乒乓輸入時緩存的大?。┖痛谑鼓艿炔僮?,輸入控制寄存器的默認值在系統(tǒng)初始化時由DSP寫入。
當數(shù)據(jù)輸入時,NIOS II CPU檢測到來自串口的中斷請求,進入對應的中斷響應程序。首先對數(shù)據(jù)傳輸模式進行判斷,P_flag默認值為0,表示非數(shù)據(jù)塊輸入模式。該模式下輸入的數(shù)據(jù)有特定的結(jié)尾標志符組合,一旦檢測到結(jié)束標志則發(fā)送已緩存的數(shù)據(jù)并完成狀態(tài)清零以便下次接收;P_flag為1則為連續(xù)數(shù)據(jù)塊輸入,當Half_RAM0或Half_RAM1其中一塊寫滿時即向DSP發(fā)出中斷信號,DSP即進入中斷服務程序讀取數(shù)據(jù)[6]。程序流程圖如圖5所示。
采用Altera FPGA芯片上的NIOS II CPU控制串口的優(yōu)點是充分使用硬件資源,可以減輕DSP芯片的計算量。測試表明,NIOS II CPU工作頻率為20.46 MHz,串口波特率設置為115 200,數(shù)據(jù)位為8 bit,各串口可以同時正常輸入輸出。多串口可以同時輸入輸出數(shù)據(jù),由指令可以靈活配置傳輸模式,以適應不同數(shù)據(jù)傳輸類型的需求。
圖5串口輸入(連續(xù)數(shù)據(jù)塊模式)Fig.5Process of data input(continuous data input mode)
本文解決了單串口傳輸不能滿足GPS高精度接收機對多種數(shù)據(jù)同時輸入輸出的要求,實現(xiàn)了GPS定位結(jié)果、RTK差分數(shù)據(jù)與外界的實時交換以及用戶控制命令的輸入。本方案的優(yōu)點是通過增加各串口的輸入/輸出控制寄存器,使DSP芯片可以僅以兩個GPIO資源實現(xiàn)原本需要3個串口輸入/輸出功能相對應的6個中斷操作;采用NIOS II CPU進行多串口控制可以減少硬件調(diào)試時間,節(jié)約FPGA片內(nèi)資源。不足之處是未實現(xiàn)串口波特率、數(shù)據(jù)位等實時配置。
[1]李蘭英.NIOS II嵌入式軟核SOPC設計原理與應用[M].北京:北京航空航天大學出版社,2006
[2]Kaplan E D.Hegarty C J.Understanding GPS Principles and Applications Second Edition[M].Boston:Artech House,2006.
[3]French G T.Understanding the GPS[M].GeoResearch Inc.1996.
[4]劉偉,魏芹芹.TMS320C672X系列DSP原理與應用[M].北京:北京航空航天大學出版社,2008.
[5]TexasInstrumentsIncorporated.TMS320C6713,TMS320C6713B floating-point digital signal processors[EB/OL].(2004-05)[2010-06-12].http://focus.ti.com.cn/cn/lit/ds/symlink/tms 320 c6713.pdf
[6]田耘,徐文波.無線通信FPGA設計[M].北京:電子工業(yè)出版社,2007.