基于SOPC技術的便攜式定位系統設計
3 接收終端軟件實現
接收終端軟件開發在集成開發環境Nios II IDE中進行,主要完成定位數據的采集和與監控中心的通信。
3.1 軟件開發環境Nios II IDE
Nios II IDE是Nios II軟核處理器的主要開發工具,它基于開放和可擴展的Eclipse平臺,為軟件開發提供了一個完整的C/C++設計開發環境,它包括一個具有工程管理、源代碼開發、基于JTAG調試功能的圖形用戶界面(GUI),借助于HAL(Hardware Abstraction Layer,硬件抽象層)可以用類似C語言的庫函數來訪問硬件設備或文件[3],縮短軟件開發周期。
3.2 HAL系統庫
HAL(Hardware Abstraction Layer,硬件抽象層)系統庫可以為嵌入式軟件開發人員訪問底層硬件提供簡單的設備驅動接口,NIOS II軟核處理器支持HAL,其為用戶提供了以下支持:與ANSI C集成的標準庫-提供類似C語言的標準庫函數;設備驅動,提供訪問系統中的每個設備的驅動程序;HAL API,提供標準的接口程序如設備訪問、中斷處理等;系統初始化和設備初始化,提供main( )函數之前處理器和系統外圍設備的初始化。基于HAL的系統層次如圖2所示。
3.3 接收終端軟件開發
根據系統的功能,軟件設計流程圖如3所示。
3.3.1 終端初始化程序設計
終端初始化主要是在系統上電時完成硬件配置文件的下載,系統初始化和設備初始化等。使用main( ) 函數,HAL系統庫能自動初始化系統。但自動初始化屏蔽了底層操作,一些沒有用到的設備驅動程序也進行了初始化,增加了程序代碼長度和降低了系統效率,ANSI C標準提供了一個供用戶自由初始化系統的函數alt_main( ),用戶可以在該函數中自由初始化系統而代替main( )的自動初始化,本系統的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的系統層次
圖3 軟件設計流程圖
3.3.2 定位數據的采集程序設計
評論