《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NIOSⅡ的聲納主機與顯控臺之間的RS232通信協議
基于NIOSⅡ的聲納主機與顯控臺之間的RS232通信協議
來源:微型機與應用2012年第4期
王 斌,許偉杰
(中國科學院聲學研究所(上海研究站),上海200032)
摘要: 以ALTERA公司開發的NIOSⅡ為處理器,利用系統硬IP核和自建的模塊構建一個片上系統。在此系統上通過編程實現顯示控制分機與主機的RS232通信。測試證明這種方法靈活,有很好的可擴展性。
Abstract:
Key words :

摘  要: 以ALTERA公司開發的NIOSⅡ為處理器,利用系統硬IP核和自建的模塊構建一個片上系統。在此系統上通過編程實現顯示控制分機與主機的RS232通信。測試證明這種方法靈活,有很好的可擴展性。
關鍵詞: 聲納設備FPGA;片上系統;RS232通信協議

    聲納設備一般由換能器(信號轉換、收發設備)、信號處理主機(DSP等)和顯示控制分機(簡稱顯控臺)三部分構成。顯控臺和主機之間的通信非常重要[1]。
    顯控臺和主機之間的通信距離較遠,對通信的可靠性和安全性要求高,但是對通信速度要求不高。所以通信方式可以選擇串口通信協議RS232[2]。
    顯控臺上諸多的旋鈕、開關以及指示燈、數碼管等設備需要豐富的外圍接口。這些接口之間具有復雜的邏輯關系。選用FPGA作為顯控臺主芯片可以滿足這些要求。以ALTERA公司的CycloneⅡ開發板為例,其主芯片EP2C8Q208C最多可提供182個用戶I/O口,可以滿足外圍接口要求[3]。在ALTERA公司提供的硬件開發環境Quartus和片上系統開發環境SoPC下,可以非常方便地進行控制模塊的開發。也可以構建NIOSⅡ處理器,以及配置NIOS系統自帶的硬核,如串口通信模塊UART、儲存模塊Serial Flash等[4]。
    本文利用FPGA芯片設計了一套顯示控制分機系統,并且以聲納訓練靶為應用背景編制了串口通信協議。
1 利用SoPC Builder構建顯控臺的片上系統
    SoPC Builder是ALTERA公司提供的片上系統(SoC)開發工具,它可以配合QuartusII完成FPGA芯片的CPU以及外圍設備的配置工作。
1.1 片上系統的構建
    在SoPC Builder的開發環境下,選擇ALTERA公司開發的32位RISC 處理器NIOSⅡ。標準型的處理器NIOSⅡ/s可以運行在100 MHz的系統時鐘下,運算速度超過50 DMIPS[2]。再構建配套的數據存儲器SDRAM、程序存儲器Serial Flash、系統地址管理器(System ID Peripheral)、編程調試接口(JTAG_UART)以及數碼管(SEG)、顯示和旋鈕(KNOB)、按鍵(KEYS)等PIO接口。
1.2 RS232 Serial Port的結構
    對UART的控制主要通過編程寄存器來實現[2]。根據UART的寄存器結構,在SoPC對應的軟件開發環境NIOSⅡIDE下建立C語言的結構體UART_ST,代碼如下:
/*--------------UART------------*/
typedef struct
{
    union{
        struct{
            volatile unsigned long int RECEIVE_DATA :8;
            volatile unsigned long int NC:24;
        }BITS;
        volatile unsigned long int WORD;
    }RXDATA;
    union{
        struct{
            volatile unsigned long int TRANSMIT_DATA:8;
            volatile unsigned long int NC:24;           
        }BITS;
        volatile unsigned long int WORD;
    }TXDATA;
    union{
        struct{
            volatile unsigned long int PE:1;
            …其他狀態寄存器
        } BITS;
        volatile unsigned long int WORD;
    }STATUS;
    union{
        struct{
            volatile unsigned long int IFE:1;
                 …其他控制寄存器
            }BITS;
            volatile unsigned long int WORD;
    }CONTROL;
    union{
        struct{
volatile unsigned long int BAUDRATE_DIVISOR:16;
volatile unsigned long int NC:16;           
        }BITS;
        volatile unsigned  int WORD;
    }DIVISOR;
}UART_ST;
 

 

2 顯控臺與主機之間的通信
    聲納設備有兩種工作狀態——設置和工作。在這兩種狀態下,顯控臺與主機的通信方式有三種,分別如圖1~3所示。


    在聲納設備工作之前,操作員在顯控臺要完成開機與參數設置等動作。此時,開關等外圍設備會觸發處理器的中斷處理程序,完成參數設置和顯示。這些參數不僅要在顯控臺顯示,還得通過UART發送到主機(DSP),作為主機信號處理運算的某些參數。因為是通過串口發送,所以這些數據要進行適當的分割與編碼,并加上地址信息等。
    在主機(DSP)接收到開始工作的指令后,主機會把處理過程中或者處理后的數據通過UART發送到顯控臺,方便操作員實時了解設備的工作狀態和工作結果。
3 在NIOSⅡIDE上實現串口通信協議
    NIOSⅡIDE是ALTERA公司開發套件中用來進行嵌入式開發的平臺。所有軟件開發任務都可以在NIOSⅡIDE下完成,包括編輯、編譯和調試程序。它支持C/C++語言編程,可以根據SoPC建立的SoC,生成相應makefile,在編譯時,又可以根據makefile生成系統頭文件system.h,從而把軟硬件隔離開來[5]。
3.1 串口通信協議
    在NIOSⅡIDE下用C語言開發通信協議較為方便。由于RS232每幀數據有效數據位為8 bit,所以將unsigned char 作為協議中的基本數據類型。在庫文件中,這種數據類型被定義為alt_u8。指令的前4位為0,后4位為指令內容。數據前4位為數據的地址信息,后4位為數據內容。
    顯控臺與主機所有通信數據和指令分為三種:(1)顯控臺處理器發送到主機(DSP)的指令,取值范圍為0x00~0x0f。典型的如0x00為開始工作指令,0x0f為停止工作指令,0x01~0x07為通信檢查指令。(2)顯控臺處理器發送到主機(DSP)的數據,取值范圍為0x1x~0xfx。典型的如0x9x和0xax,分別為多普勒頻移的低4位數據和高4位數據。(3)主機(DSP)發送到顯控臺處理器的數據,取值范圍為0x0x~0xfx。典型的如0x5x噪聲級別。
3.2 程序設計
    根據以上分析,以聲納訓練靶為例,設計C語言程序。框圖如圖4所示。

    NIOSⅡ嵌入式編程可以直接調用ALTERA的庫函數進行操作。例如對PIO的操作函數:IOWR_ALTERA_AVALON_PIO_DATA(BASE,DATA)(寫IO函數),IOWR_
ALTERA_AVALON_PIO_DATA(BASE,DATA)(讀IO函數)。也可以構建硬件寄存器的結構,例如UART_ST這樣的結構,通過對結構實例化的操作,同樣可以方便地編程。本設計中結合了這兩種編程的優勢,對于結構復雜,操作要求簡單的硬件,采用庫函數的操作方法,如Flash;對結構較為簡單、操作較為細化的硬件,采用寄存器結構化的操作方法,如UART。
    本文利用FPGA芯片構建了聲納設備的顯示控制分機。基于ALTERA公司的 NIOSⅡ嵌入式處理器,建立了片上系統,實現了顯示控制分機和主機(DSP)之間的RS232通信協議。在以EP2C8Q208C為主芯片的FPGA開發板上,實現了硬件系統的構建和軟件編程以及下載。此顯示控制分機應用在一體化聲靶中,工作穩定可靠。由于片上系統構建的靈活性,所以這種顯示控制方案在聲納設備中具有很好的可擴展性,便于維護和升級。
參考文獻
[1] 蔣均齊.魚雷聲靶技術研究[D].長沙:國防科技大學,2006:8-9.
[2] 李金力,劉文怡,彭旭峰.基于FPGA的RS232異步串行口IP核設計[J].電子設計工程,2009,17(8):31-35.
[3] Altera Corporation.Cyclone II Device Handbook[S].2007(1):12-34.
[4] 張新喜,許軍,楊雨迎,等.基于SoPC技術的戰車綜合顯控終端設計[J].火力與指揮控制,2008,33(增刊):109-112.
[5] 洪勝峰.基于嵌入式技術的軍用車輛車載顯控終端的研制[D].青島:中國海洋大學,2007:25-26.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: www.国产成人| 亚州三级久久电影| 色之综合天天综合色天天棕色| 国产青青在线视频| 两个人的视频www免费| 最新jizz欧美| 亚洲精品亚洲人成在线观看 | 两个人看的视频www在线高清| 好男人社区www在线观看高清| 久久国产成人精品国产成人亚洲| 欧美日韩午夜视频| 免费A级毛片无码久久版| 色婷婷综合激情| 国产日韩av免费无码一区二区| 99久久亚洲综合精品成人网| 性放荡日记高h| 久久久亚洲欧洲日产国码农村| 欧美jizz8性欧美| 亚洲电影唐人社一区二区| 精品国产福利在线观看一区| 国产你懂的在线| 日本黄网站动漫视频免费| 国产香蕉一区二区精品视频| www在线观看免费视频| 放荡的欲乱合集| 久久精品国产2020观看福利 | 又粗又紧又湿又爽的视频| 香蕉伊思人在线精品| 国产精品一区二区久久不卡| 97色偷偷色噜噜狠狠爱网站97| 嫩b人妻精品一区二区三区| 中文无码一区二区不卡αv| 日韩午夜在线观看| 亚洲中文字幕伊人久久无码| 欧美精品亚洲精品日韩专区va| 免费v片在线观看| 精品无码一区二区三区水蜜桃| 国产人妖在线播放| 国产精品网址在线观看你懂的| 国产精品无码免费视频二三区| 99re热这里只有精品视频|