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 定位数据的采集程序设计