当前位置:首页 > EDA > 电子设计自动化
[导读]随着GPS(Global Positioning System)全球定位系统的不断改进,应用领域正在不断地开拓,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。当前基于GPS定位产品体积一般较大,且处理核心大多采用单片机,单

随着GPS(Global Positioning System)全球定位系统的不断改进,应用领域正在不断地开拓,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。当前基于GPS定位产品体积一般较大,且处理核心大多采用单片机,单板机等,产品开发周期长,开发成本高,产品升级不方便,生命周期短。

超大规模集成电路技术的发展,尤其是PLD和FPGA技术的发展,使得在一块可编程芯片上实现整个的嵌入式系统成为可能。SOPC(System on a programmable chip)技术将CPU,存储器,I/O接口等系统设计所必须的模块集成在一片FPGA上,具有设计灵活,可裁减、可扩充、可升级、软硬件在系统可编程的功能[1]。
本文设计了一种基于SOPC技术的便携式定位系统,并针对GPS在城市高楼和地下停车场等地方容易出现定位盲区的问题,提出采用GPS/数字指南针组合定位的解决方案。本文首先介绍了系统组成和硬件实现,再对软件开发作了详细分析,并给出了源程序,最后对试验样机进行了试验,验证了系统的可行性。

1 系统基本结构

基于NIOSⅡ的便携式组合定位系统由两部分组成:接收终端和监控中心。接收终端接收GPS/数字指南针组合定位信号,并通过GPRS模块发往监控中心,监控中心将接收到的组合定位信号进行数据融合,采用基于模糊模式识别技术的地图匹配法,借助GIS电子地图库中的高精度道路信息作为分类模板来进行模式识别,根据识别结果来提高GPS接收数据的定位精度,实现数据与电子地图的实时匹配,实时地显示接收终端佩戴者所在的位置,授权用户也可以通过Internet随时随地查看终端佩戴者的位置。一旦发生紧急情况,终端佩带者可以触发终端上的报警按钮,由监控中心实时进行相应处理。

2 接收终端硬件设计

系统接收终端硬件由一块FPGA芯片和GPS模块,GPRS模块,数字指南针模块,报警模块等组成,在FPGA芯片中主要实现NIOSⅡ软核处理器,片上存储器和数字接口电路的功能。
NIOSⅡ是Altera公司推出的32位RISC嵌入式处理器,能和用户逻辑相结合,编程至
Altera FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令及数据缓冲,实现成本低,在FPGA中实现成本只要35美分,灵活性大,采用软核形式,具有完全的可定制特性,设计人员可根据实际需求在多种系统设置组合中进行选择,达到性能、特性和成本最优化,具有超过200DMIP的性能[2]。可以通过下载硬件配置文件到FPGA来实现更新,非常方便。

根据系统的功能要求和NIOS II软核处理器的高度可配置性,在硬件开发工具SOPC Builde定制的NIOS II软核处理器系统如图1所示,在一块Altera EP1C12Q240C8 FPGA上实现了NIOSⅡ软核CPU,OnChip RAM,Timer,UART,Epcs controller等模块,NIOSⅡ软核CPU和其它IP模块之间通过Avalon片上总线相连,该总线规定了主部件和从部件之间进行连接的端口和通信的时序。

                          

                           图1定制的NIOSⅡ处理器系统

UART串口通信模块用于NIOSⅡ处理器和外部的通信,本系统通过串口采集GPS和数字指南针的定位信号,并通过串口将定位信号和报警信号发给GPRS模块发往监控中心。On Chip RAM为系统提高片上存储单元,CY1C12Q240C8提供了239,616 bits的RAM单元,系统无需扩展外部存储器。Epcs controller模块用于系统上电时,控制硬件配置文件和程序从串行配置芯片下载到FPGA中。Timer定时器模块提供系统定时中断,报警模块由一个按钮组成,终端佩带者遇到紧急情况时通过触发按钮向监控中心报警。电源模块给系统提供系统电源,晶振模块给系统提供系统时钟。

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

定位数据的采集主要采集GPS和数字指南针的定位数据,采用串口接收中断的方式。NIOS II中,串口包括6个16位的寄存器,在软件中对应的数据结构为:

typedef volatile struct
{ int np_uartrxdata;       //接收数据寄存器,只读
int np_uarttxdata;         //发送数据寄存器,只写
int np_uartstatus;           //状态寄存器,只读
int np_uartcontrol;          //控制寄存器,可读写
int np_uartdivisor;       // 波特率除数寄存器,可读写
int np_uartendofpacket;    // 数据包结束符寄存器,可读写
} np_uart;

串口被当成字符设备,对其访问可以通过标准输入(stdin)和标准输出(stdio)来完成,也可以通过打开和写文件的方式,本系统采用直接访问寄存器方式,采用系统自动生成的访问宏,这样可以采用精简Newlib C,减少程序代码长度,并采用串口中断方式接收数据,NIOS II中使用中断首先要向系统注册,并且要打开硬件中断。中断采集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));
//向系统注册中断,UART2_IRQ为串口2中断号,中断号越小优先级越高,context为中断服务程序UART2_ISR ( ) 的一个形参
Static UART2_ISR (void *contex,alt_u32 id)
//中断服务程序,串口有数据送入引起串口中断,执行该服务程序
{ *[buffer+i]=IORD_ALTERA_AVALON_UART_RXDATA(UART2_BASE)
//从串口2接收GPS定位数据,并存入缓冲。
… …
}

3.3.3 定时器中断方式程序实现

系统采用定时中断方式与监控中心通信,将定位数据发往监控中心。NIOS II提供了两种类型的时钟,HAL系统时钟(HAL system clock)和基于时标驱动(timestamp driver)的时钟,后者适用于对时钟具有高精度的场合。系统时钟提供了定时的功能,使用定时器和使用中断方式一样,首先要通过alt_alarm_start ( )函数向系统注册一个时钟中断,再在时钟中断服务程序中实现GPRS发送,alt_alarm_start ( )函数声明如下:

alt_alarm_start (&alarm,alt_ticks_per_second( ),GPRS_ISR ( ),NULL)
其中alarm为定时中断变量,由系统自动初始化,第二个形参为注册时钟中断后多长时间后开始执行服务程序,alt_ticks_per_second ( )为每秒系统时钟的“滴答”数,此处为一秒后开始执行,GPRS_ISR ( )为服务程序,NULL为服务程序的形参,此处为空。

定时中断服务程序完成将定位数据通过GPRS模块发往监控中心,通过串口向GPRS写数据实现,通过下条语句实现:IOWR_ALTERA_AVALON_UART_TXDATA(BASE, DATA) //向串口写数据,BASE为串口基地址,DATA为要写入数据。
3.4 软件开发中应注意的问题

针对NIOS II软核处理软件开发特点,总结以下需要注意的几点:

(1) HAL系统库作为NIOSⅡ处理器支持的软件包,可以给软件开发人员提供便利,包括自动初始化系统,可以使用ANSI C标准库等,但这样是以增加代码长度为代价的。

(2) 进行NIOSⅡ软核处理器的嵌入式软件开发时可以通过多种方式减少软件代码和提高工作效率,包括使用自定义初始化函数alt_main( ),使用精简Newlib C库,优化软件编译参数,自定义指令等,但这样无疑对软件开发人员提出了更高的要求。

(3) 编写中断服务程序时要注意防止系统“死锁”,尤其是使用ANSI C标准库函数访问IO设备时。

4 试验结果

该系统样机与GPS单一定位的定位系统在武汉徐东地下通道进行了对比试验。试验结果如图5、图6所示。从对比结果可以看出,GPS单一定位的定位系统在地下通道区出现了定位盲区,而本系统接收终端在地下通道行走时,监控中心地图上还可以实时显示轨迹,克服了以往单一GPS定位系统的定位盲区,验证了该系统的可行性并体现了其优越性。

5  总结

   

图5 GPS单一定位轨迹                  图6 本系统定位轨迹

本文采用SOPC技术,设计并实现了一种基于NIOSII软核处理器的便携式组合定位系统,并采用GPS和数字指南针组合定位,克服了单一GPS定位的盲区。与传统的便携式定位产品相比,该系统具有开发周期短,开发成本低,产品生命周期长,适用范围广等优点。该系统体积小,便于携带,并可以缝制在衣服、饰物品中。适合于老人、小孩、智障人群佩戴,以便对他们进行监控,防止他们走失,也适合一些特殊行业,例如邮政、公安、电力、冶金行业,市场前景可观。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭