基于SoPC的汽车安全监控系统设计-基础电子_第1页
基于SoPC的汽车安全监控系统设计-基础电子_第2页
基于SoPC的汽车安全监控系统设计-基础电子_第3页
基于SoPC的汽车安全监控系统设计-基础电子_第4页
基于SoPC的汽车安全监控系统设计-基础电子_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于SoPC的汽车安全监控系统设计-基础电子基于SoPC的汽车安全监控系统采用Altera公司的SoPC(可编程片上系统)解决方案——Nios处理器软核为,配合GPS和GSM系统,对汽车的停放和运行状态进行监控。系统监测、记录和储存汽车在行驶过程中的各种数据,一旦出现安全问题,立即采用GSM无线通信方式通知相关人员和单位,并随时发送通过GPS获得的汽车位置等数据,为问题的解决提供及时、准确和可靠的信息,必要时通过GSM对汽车进行远程控制。

基于SoPC的汽车安全监控系统可广泛应用于汽车的防盗、日常维护和交通事故的处理,为车辆故障提供有效的测试手段。

1系统硬件组成

设计采用Altera公司的SoPC开发工具。系统的开发包括硬件和软件两大部分。使用SoPCBuilder生成Nios嵌入式处理器,Nios嵌入式处理器开发工具允许用户配置一个或多个NiosCPU,从标准库中添加外围设备,综合处理自定义系统,与QuartusII设计软件一起编译系统。软件开发的步骤是:利用SoPCBuilder生成的软件文件,用文本编辑器编写汇编语言或C/C++源程序,用GNUPro软件开发工具进行程序设计、连编和调试。GNUPro将源程序连编(包括汇编/编译和连接)成可执行程序,通过电缆对可执行程序进行调试和运行。QuartusII设计软件提供全面有效的设计环境,将设计、综合、布局和验证以及第三方EDA工具接口集成在一个无缝的环境中。利用集成在QuartusII3.0中的SoPCbuilder可以创建自己的NiosCPU系统。Nios是Altera公司开发的16/32位嵌入式处理器软核。*校科研基金项目“基于SOPC的汽车安全监控系统”资助。

Altera公司推出了新一代多种系列FPGA,本设计选用低成本的Cyclone系列器件EP1C12,其具有12060个逻辑单元,52个M4KRAM块,239616个RAM位和2个锁相环,用户I/O引脚249。

系统硬件组成框图由Nios系统和外部设备两部分组成,如图1所示。Nios系统包括CPU(Nios)、存储器(memory)、定时器(timer)、总线和并/串行接口(key_pio、LED_pio、lcd_pio、ccs_pio、uart_0和uart_1)等,并/串行接口分别实现与键盘、LED和LCD显示器、汽车中控系统以及GPS和GSM系统等外部设备的连接。Nios系统设计和设计结果分别如图2和图3所示。Nios系统同键盘、LED和LCD显示器、汽车中控系统以及GPS系统等外部设备的连接比较简单,GSM系统的连接较为复杂,如图4所示。整个系统的工作过程是:来自汽车中控系统和GPS系统的信息可以显示在LED和LCD显示器上,也可以通过GSM系统进行无线发送。用户可以通过键盘对系统进行控制,也可以通过GSM系统对汽车中控系统进行远程无线控制。

2系统软件组成

系统软件主要由主程序、GPS管理子程序和GSM管理子程序等部分组成。

主程序完成系统的初始化,以及键盘、LED、LCD显示器和汽车中控系统的操作管理等。

GPS管理子程序主要负责从GPS系统接收时间和位置信息。

请求GPS系统返回ASCII时间位置信息的二进制命令为:

@@EqmCCRLF

其中,m为0时,输出响应信息(查询),m为1~255时,每1~255s输出响应信息(连续);

C为校验和(Eqm按字节“异或”);

CR为回车(十六进制0d);

LF为换行(十六进制0a);

命令长度为8字节。

命令的响应信息为:

@@Eq,mm,dd,yy,hh,mm,ss,dd,mm.mmmm,n,ddd,mm.mmmm,w,shhhhh.h,sss.s,hhh.h,m,t,dd.d,nn,rrrr,aa,CCCCRLF

日期:mm是月(01~12),dd是日(01~31),yy是年(99~19)。世界时间(UTC):hh是时(00~23),mm是分(00~59),ss是秒(00~59)。

纬度:dd是度(00~90),mm.mmmm是分(00~59.9999),n是方向(N是北,S是南)。

经度:ddd是度(000~180),mm.mmmm是分(00~59.9999),w是方向(W是西,E是东)。

信息长度是96字节。

对应的管理子程序为:

inteq[8]={'@','@','E','q',1,'C',0x0d,0x0a};

voidgps_txd(intdata[],intn){volatileintm,sum=0;

for(m=0;mn;m++){

while(~na_uart_0-np_uartstatus0x40);

//等待发送准备好

if(m!=n-3){

sum^=data[m];//计算校验和

na_uart_0-np_uarttxdata=data[m];//发送数据

}else

na_uart_0-np_uarttxdata=sum;//发送校验和

}

}

intgps,gps_buf[46];//定义全局变量

voidgps_rxd(intcontext){//接收中断服务程序

gps_buf[gps]=na_uart_0-np_uartrxdata;//接收数据

if(gps_buf[gps++]=='q')gps=0;//数据定位

if(gps46)gps=46;//忽略无用数据

}

GSM管理子程序主要负责GSM系统的数据收发管理。

GSM系统的数据收发以短信形式进行,选择短信格式的AT命令为AT+CMGF,收发短信的AT命令分别为AT+CMGR和AT+CMGS,对应的管理子程序为:

cmgf[20]={'A','T','+','C','M','G','F','=','1',0x0d};//短信格式

voidgsm_txd(intdata[],intn){

volatileintm;

for(m=0;mn;m++){

while(~na_uart_1-np_uartstatus0x40);

//等待发送准备好na_uart_1-np_uarttxdata=data[m];//发送数据

}

}

intgsm=2,gsm_buf[18]={'A','T'};

voidgsm_rxd(intcontext){

//接收中断服务程序

gsm_buf[gsm]=na_uart_1-np_uartrxdata;//接收数据

if(gsm_buf[gsm]=='T')gsm=1;

//数据定位

if(++gsm==18)gsm=2;

}

3设计调试方法和设计结果

在QuartusII中使用SignalTapII嵌入式逻辑分析仪可以实时观测系统中节点的信号数据。被观察的信号可以多进制数值显示也可以用波形显示,但它需要占用芯片更多的资源,因此在对某个模块的测试结束后,可以在设置中把SignalTapII嵌入式逻辑分析仪取消,并重新编译生成以减少LE资源占用量。

实际试用结果表明:基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论