日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于SOPC技術的便攜式定位系統(tǒng)設計

隨著GPS(Global Positioning System)全球定位系統(tǒng)的不斷改進,應用領域正在不斷地開拓,目前已遍及國民經濟各種部門,并開始逐步深入人們的日常生活。當前基于GPS定位產品體積一般較大,且處理核心大多采用單片機,單板機等,產品開發(fā)周期長,開發(fā)成本高,產品升級不方便,生命周期短。

超大規(guī)模集成電路技術的發(fā)展,尤其是PLD和FPGA技術的發(fā)展,使得在一塊可編程芯片上實現整個的嵌入式系統(tǒng)成為可能。SOPC(System on a programmable chip)技術將CPU,存儲器,I/O接口等系統(tǒng)設計所必須的模塊集成在一片FPGA上,具有設計靈活,可裁減、可擴充、可升級、軟硬件在系統(tǒng)可編程的功能[1]。
本文設計了一種基于SOPC技術的便攜式定位系統(tǒng),并針對GPS在城市高樓和地下停車場等地方容易出現定位盲區(qū)的問題,提出采用GPS/數字指南針組合定位的解決方案。本文首先介紹了系統(tǒng)組成和硬件實現,再對軟件開發(fā)作了詳細分析,并給出了源程序,最后對試驗樣機進行了試驗,驗證了系統(tǒng)的可行性。

1 系統(tǒng)基本結構

基于NIOSⅡ的便攜式組合定位系統(tǒng)由兩部分組成:接收終端和監(jiān)控中心。接收終端接收GPS/數字指南針組合定位信號,并通過GPRS模塊發(fā)往監(jiān)控中心,監(jiān)控中心將接收到的組合定位信號進行數據融合,采用基于模糊模式識別技術的地圖匹配法,借助GIS電子地圖庫中的高精度道路信息作為分類模板來進行模式識別,根據識別結果來提高GPS接收數據的定位精度,實現數據與電子地圖的實時匹配,實時地顯示接收終端佩戴者所在的位置,授權用戶也可以通過Internet隨時隨地查看終端佩戴者的位置。一旦發(fā)生緊急情況,終端佩帶者可以觸發(fā)終端上的報警按鈕,由監(jiān)控中心實時進行相應處理。

2 接收終端硬件設計

系統(tǒng)接收終端硬件由一塊FPGA芯片和GPS模塊,GPRS模塊,數字指南針模塊,報警模塊等組成,在FPGA芯片中主要實現NIOSⅡ軟核處理器,片上存儲器和數字接口電路的功能。
NIOSⅡ是Altera公司推出的32位RISC嵌入式處理器,能和用戶邏輯相結合,編程至
Altera FPGA中。處理器具有32位指令集,32位數據通道和可配置的指令及數據緩沖,實現成本低,在FPGA中實現成本只要35美分,靈活性大,采用軟核形式,具有完全的可定制特性,設計人員可根據實際需求在多種系統(tǒng)設置組合中進行選擇,達到性能、特性和成本最優(yōu)化,具有超過200DMIP的性能[2]。可以通過下載硬件配置文件到FPGA來實現更新,非常方便。

根據系統(tǒng)的功能要求和NIOS II軟核處理器的高度可配置性,在硬件開發(fā)工具SOPC Builde定制的NIOS II軟核處理器系統(tǒng)如圖1所示,在一塊Altera EP1C12Q240C8 FPGA上實現了NIOSⅡ軟核CPU,OnChip RAM,Timer,UART,Epcs controller等模塊,NIOSⅡ軟核CPU和其它IP模塊之間通過Avalon片上總線相連,該總線規(guī)定了主部件和從部件之間進行連接的端口和通信的時序。

                          

                           圖1定制的NIOSⅡ處理器系統(tǒng)

UART串口通信模塊用于NIOSⅡ處理器和外部的通信,本系統(tǒng)通過串口采集GPS和數字指南針的定位信號,并通過串口將定位信號和報警信號發(fā)給GPRS模塊發(fā)往監(jiān)控中心。On Chip RAM為系統(tǒng)提高片上存儲單元,CY1C12Q240C8提供了239,616 bits的RAM單元,系統(tǒng)無需擴展外部存儲器。Epcs controller模塊用于系統(tǒng)上電時,控制硬件配置文件和程序從串行配置芯片下載到FPGA中。Timer定時器模塊提供系統(tǒng)定時中斷,報警模塊由一個按鈕組成,終端佩帶者遇到緊急情況時通過觸發(fā)按鈕向監(jiān)控中心報警。電源模塊給系統(tǒng)提供系統(tǒng)電源,晶振模塊給系統(tǒng)提供系統(tǒng)時鐘。[!--empirenews.page--]

3 接收終端軟件實現

接收終端軟件開發(fā)在集成開發(fā)環(huán)境Nios II IDE中進行,主要完成定位數據的采集和與監(jiān)控中心的通信。

3.1 軟件開發(fā)環(huán)境Nios II IDE

Nios II IDE是Nios II軟核處理器的主要開發(fā)工具,它基于開放和可擴展的Eclipse平臺,為軟件開發(fā)提供了一個完整的C/C++設計開發(fā)環(huán)境,它包括一個具有工程管理、源代碼開發(fā)、基于JTAG調試功能的圖形用戶界面(GUI),借助于HAL(Hardware Abstraction Layer,硬件抽象層)可以用類似C語言的庫函數來訪問硬件設備或文件[3],縮短軟件開發(fā)周期。

3.2 HAL系統(tǒng)庫

HAL(Hardware Abstraction Layer,硬件抽象層)系統(tǒng)庫可以為嵌入式軟件開發(fā)人員訪問底層硬件提供簡單的設備驅動接口,NIOS II軟核處理器支持HAL,其為用戶提供了以下支持:與ANSI C集成的標準庫-提供類似C語言的標準庫函數;設備驅動,提供訪問系統(tǒng)中的每個設備的驅動程序;HAL API,提供標準的接口程序如設備訪問、中斷處理等;系統(tǒng)初始化和設備初始化,提供main( )函數之前處理器和系統(tǒng)外圍設備的初始化?;贖AL的系統(tǒng)層次如圖2所示。

3.3 接收終端軟件開發(fā)

根據系統(tǒng)的功能,軟件設計流程圖如3所示。

3.3.1 終端初始化程序設計

終端初始化主要是在系統(tǒng)上電時完成硬件配置文件的下載,系統(tǒng)初始化和設備初始化等。使用main( ) 函數,HAL系統(tǒng)庫能自動初始化系統(tǒng)。但自動初始化屏蔽了底層操作,一些沒有用到的設備驅動程序也進行了初始化,增加了程序代碼長度和降低了系統(tǒng)效率,ANSI C標準提供了一個供用戶自由初始化系統(tǒng)的函數alt_main( ),用戶可以在該函數中自由初始化系統(tǒng)而代替main( )的自動初始化,本系統(tǒng)的alt_main( )函數如下:
int alt_main(void)
{ alt_irq_init (ALT_IRQ_BASE); //允許中斷,初始化中斷
     small_sys_init( ) //初始化設備驅動
alt_io_redirect (ALT_STDOUT, ALT_STDIN, ALT_STDERR); //初始化IO數據流
exit(0);    }       

                                                                                                                                                                                                  

 圖2 基于HAL的系統(tǒng)層次   

            

      圖3 軟件設計流程圖

3.3.2 定位數據的采集程序設計[!--empirenews.page--]

定位數據的采集主要采集GPS和數字指南針的定位數據,采用串口接收中斷的方式。NIOS II中,串口包括6個16位的寄存器,在軟件中對應的數據結構為:

typedef volatile struct
{ int np_uartrxdata;       //接收數據寄存器,只讀
int np_uarttxdata;         //發(fā)送數據寄存器,只寫
int np_uartstatus;           //狀態(tài)寄存器,只讀
int np_uartcontrol;          //控制寄存器,可讀寫
int np_uartdivisor;       // 波特率除數寄存器,可讀寫
int np_uartendofpacket;    // 數據包結束符寄存器,可讀寫
} np_uart;

串口被當成字符設備,對其訪問可以通過標準輸入(stdin)和標準輸出(stdio)來完成,也可以通過打開和寫文件的方式,本系統(tǒng)采用直接訪問寄存器方式,采用系統(tǒng)自動生成的訪問宏,這樣可以采用精簡Newlib C,減少程序代碼長度,并采用串口中斷方式接收數據,NIOS II中使用中斷首先要向系統(tǒng)注冊,并且要打開硬件中斷。中斷采集GPS信號主要程序如下:

IOWR_ALTERA_AVALON_UART_CONTROL(UART2_BASE, 0X80) //向串口2控制寄存器寫命令字,打開串口2接收中斷,0x80為開接收中斷命令字,串口2為與GPS模塊通信串口。
int alt_irq_register (alt_u32  UART2_IRQ,
void* context,
void (*UART2_ISR)(void*, alt_u32));
//向系統(tǒng)注冊中斷,UART2_IRQ為串口2中斷號,中斷號越小優(yōu)先級越高,context為中斷服務程序UART2_ISR ( ) 的一個形參
Static UART2_ISR (void *contex,alt_u32 id)
//中斷服務程序,串口有數據送入引起串口中斷,執(zhí)行該服務程序
{ *[buffer+i]=IORD_ALTERA_AVALON_UART_RXDATA(UART2_BASE)
//從串口2接收GPS定位數據,并存入緩沖。
… …
}

3.3.3 定時器中斷方式程序實現

系統(tǒng)采用定時中斷方式與監(jiān)控中心通信,將定位數據發(fā)往監(jiān)控中心。NIOS II提供了兩種類型的時鐘,HAL系統(tǒng)時鐘(HAL system clock)和基于時標驅動(timestamp driver)的時鐘,后者適用于對時鐘具有高精度的場合。系統(tǒng)時鐘提供了定時的功能,使用定時器和使用中斷方式一樣,首先要通過alt_alarm_start ( )函數向系統(tǒng)注冊一個時鐘中斷,再在時鐘中斷服務程序中實現GPRS發(fā)送,alt_alarm_start ( )函數聲明如下:

alt_alarm_start (&alarm,alt_ticks_per_second( ),GPRS_ISR ( ),NULL)
其中alarm為定時中斷變量,由系統(tǒng)自動初始化,第二個形參為注冊時鐘中斷后多長時間后開始執(zhí)行服務程序,alt_ticks_per_second ( )為每秒系統(tǒng)時鐘的“滴答”數,此處為一秒后開始執(zhí)行,GPRS_ISR ( )為服務程序,NULL為服務程序的形參,此處為空。

定時中斷服務程序完成將定位數據通過GPRS模塊發(fā)往監(jiān)控中心,通過串口向GPRS寫數據實現,通過下條語句實現:IOWR_ALTERA_AVALON_UART_TXDATA(BASE, DATA) //向串口寫數據,BASE為串口基地址,DATA為要寫入數據。
3.4 軟件開發(fā)中應注意的問題

針對NIOS II軟核處理軟件開發(fā)特點,總結以下需要注意的幾點:

(1) HAL系統(tǒng)庫作為NIOSⅡ處理器支持的軟件包,可以給軟件開發(fā)人員提供便利,包括自動初始化系統(tǒng),可以使用ANSI C標準庫等,但這樣是以增加代碼長度為代價的。

(2) 進行NIOSⅡ軟核處理器的嵌入式軟件開發(fā)時可以通過多種方式減少軟件代碼和提高工作效率,包括使用自定義初始化函數alt_main( ),使用精簡Newlib C庫,優(yōu)化軟件編譯參數,自定義指令等,但這樣無疑對軟件開發(fā)人員提出了更高的要求。

(3) 編寫中斷服務程序時要注意防止系統(tǒng)“死鎖”,尤其是使用ANSI C標準庫函數訪問IO設備時。

4 試驗結果

該系統(tǒng)樣機與GPS單一定位的定位系統(tǒng)在武漢徐東地下通道進行了對比試驗。試驗結果如圖5、圖6所示。從對比結果可以看出,GPS單一定位的定位系統(tǒng)在地下通道區(qū)出現了定位盲區(qū),而本系統(tǒng)接收終端在地下通道行走時,監(jiān)控中心地圖上還可以實時顯示軌跡,克服了以往單一GPS定位系統(tǒng)的定位盲區(qū),驗證了該系統(tǒng)的可行性并體現了其優(yōu)越性。

5  總結

   

圖5 GPS單一定位軌跡                  圖6 本系統(tǒng)定位軌跡

本文采用SOPC技術,設計并實現了一種基于NIOSII軟核處理器的便攜式組合定位系統(tǒng),并采用GPS和數字指南針組合定位,克服了單一GPS定位的盲區(qū)。與傳統(tǒng)的便攜式定位產品相比,該系統(tǒng)具有開發(fā)周期短,開發(fā)成本低,產品生命周期長,適用范圍廣等優(yōu)點。該系統(tǒng)體積小,便于攜帶,并可以縫制在衣服、飾物品中。適合于老人、小孩、智障人群佩戴,以便對他們進行監(jiān)控,防止他們走失,也適合一些特殊行業(yè),例如郵政、公安、電力、冶金行業(yè),市場前景可觀。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現自己的想法的感覺真的很棒。所以從大學期間一直到現在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅...

關鍵字: 系統(tǒng)設計 技術選型 需求分析

上海2022年9月16日 /美通社/ --  第五屆中國國際進口博覽會(以下簡稱"進博會")倒計時50天之際,作為進博會醫(yī)療器械專業(yè)委員會副會長單位,美敦力將以"洞悉生命,創(chuàng)見非凡...

關鍵字: 機器人 定位系統(tǒng) IC 導航定位

(全球TMT2022年8月30日訊)近日,在2022英特爾中國數據中心合作伙伴技術峰會上,英特爾與浪潮信息等產業(yè)生態(tài)伙伴聯合發(fā)布了《綠色數據中心創(chuàng)新實踐 -- 冷板液冷系統(tǒng)設計參考》白皮書,分享冷板液冷技術關鍵部件的最...

關鍵字: 系統(tǒng)設計 英特爾 數據中心 生態(tài)系統(tǒng)

北京2022年8月30日 /美通社/ -- 近日,在2022英特爾中國數據中心合作伙伴技術峰會上,英特爾與浪潮信息等產業(yè)生態(tài)伙伴聯合發(fā)布了《綠色數據中心創(chuàng)新實踐 -- 冷板液冷系統(tǒng)設計參考》白皮書,分享冷板液冷技術關鍵部...

關鍵字: 系統(tǒng)設計 英特爾 數據中心 電量

摘要:近年來,受人類活動的影響,各大水域的水質污染問題越來越嚴重,大部分水資源受到嚴重污染,水質處理問題亟需解決。分析水體污染情況對改進水質有著重要意義,目前水質監(jiān)測主要采用人工或無人船的方式。人工監(jiān)測方式工作量大,影響...

關鍵字: 水質監(jiān)測 無人機 系統(tǒng)設計

摘要:根據饒平縣高堂水閘重建工程建設實際需求,對高堂水閘運行管理進行實時在線式監(jiān)控與監(jiān)測,通過閘門控制、視頻監(jiān)控、水情測報、安全監(jiān)測和網絡通信等系統(tǒng)的設計,為高堂水閘的水工建筑物安全、防洪調度和自動化管理提供技術支持,以...

關鍵字: 管理信息系統(tǒng) 水利工程 系統(tǒng)設計

湖州2022年7月26日 /美通社/ -- 近日,浙江省科技創(chuàng)新大會在浙江省人民大會堂隆重舉行。大會正式頒布2021年度浙江省科學技術進步獎,隆重表彰為浙江科技創(chuàng)新事業(yè)和經濟社會發(fā)展做出突出貢獻的科技工作者及團隊。...

關鍵字: 電梯 檢測技術 系統(tǒng)設計 零部件

摘要:簡要介紹了柴油發(fā)電機組和重油發(fā)電機組的構成和主要特點,以某發(fā)電廠重柴油發(fā)電機組系統(tǒng)設計為例,重點分析了重油發(fā)電機組燃油系統(tǒng)、潤滑油系統(tǒng)、循環(huán)冷卻水系統(tǒng)、壓縮空氣系統(tǒng)的設計要點,以提高柴油、重油發(fā)電機組的運行效率和運...

關鍵字: 重油發(fā)電機組 特性 系統(tǒng)設計

摘要:針對一種小型消費級水下機器人,分析了其系統(tǒng)總體設計及各關鍵子系統(tǒng)(推進系統(tǒng)、通信系統(tǒng)、控制系統(tǒng)及其他系統(tǒng)等)設計的要點和方法,舉例介紹了一種五推進器小型消費級水下機器人。經驗證,該設計方法可以用于同類型水下機器人的...

關鍵字: 推進器 系統(tǒng)設計 五推進器

摘要簡述了一般礦井用定位系統(tǒng)存在的缺陷,在此基礎上,以寸草塔二礦為例,介紹了KJ133定位系統(tǒng)的原理組成、功能、接口協(xié)議以及升級后KJ133系統(tǒng)的擴展功能和優(yōu)點。KJ133定位系統(tǒng)已經在神東集團得到廣泛應用,是數字化礦山...

關鍵字: KJ133 定位系統(tǒng) 接口協(xié)議

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉