你现在位置:首页>技术论文>行业应用>汽车制造>正文
基于SoPC的汽车安全监控系统设计
日期:2008-11-11 23:44:25 来源:中国自动化网  
点击: 作者:
点击【】放大字体.
引 言
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

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

  1 系统硬件组成
WWW_PLCJS_COM-PLC-技.术_网

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

  Altera公司推出了新一代多种系列FPGA,本设计选用低成本的Cyclone系列器件EP1C12,其具有12 060个逻辑单元,52个M4K RAM块,239 616个RAM位和2个锁相环,最大用户I/O引脚249。
WWW_PL※CJS_COM-PLC-技.术_网

  系统硬件组成框图由Nios系统和外部设备两部分组成,如图1所示。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  Nios系统包括CPU(Nios)、存储器(memory)、定时器(timer)、总线和并/串行接口(key_pio、led_pio、lcd_pio、ccs_pio、uart_0和uart_1)等,并/串行接口分别实现与键盘、LED和LCD显示器、汽车中控系统以及GPS和GSM系统等外部设备的连接。Nios系统设计和设计结果分别如图2和图3所示。
W1WW_P4LCJS_COM-PLC-技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

  Nios系统同键盘、LED和LCD显示器、汽车中控系统以及GPS系统等外部设备的连接比较简单,GSM系统的连接较为复杂,如图4所示。
WW.W_PLCJS_COM-PLC-技.术_网

P.L.C.技.术.网——可编程控制器技术门户

  整个系统的工作过程是:来自汽车中控系统和GPS系统的信息可以显示在LED和LCD显示器上,也可以通过GSM系统进行无线发送。用户可以通过键盘对系统进行控制,也可以通过GSM系统对汽车中控系统进行远程无线控制。
W1WW_P4LCJS_COM-PLC-技.术_网

  2 系统软件组成
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

  系统软件主要由主程序、GPS管理子程序和GSM管理子程序等部分组成。
WWW.PLCJS.COM——可编程控制器技术门户

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

  GPS管理子程序主要负责从GPS系统接收时间和位置信息。
plcjs.技.术_网

  请求GPS系统返回ASCII时间位置信息的二进制命令为:
WWcW_PLCJS_COM-PLC-技.术_网

  @@EqmC
WWW.PLCJS.COM——可编程控制器技术门户

  其中,m为0时,输出一次响应信息(查询),m为1~255时,每1~255 s输出一次响应信息(连续);
WW.W_PLCJS_COM-PLC-技.术_网

  C为校验和(Eqm按字节“异或”);
WWW_PLCJS_COM-PLC-技.术_网

  为回车(十六进制0d);
WWW_PLCJS@_COM%-PLC-技.术_网

  为换行(十六进制0a);
W1WW_P4LCJS_COM-PLC-技.术_网

  命令长度为8字节。
WWW_PLC※JS_COM-PmLC-技.术_网

  命令的响应信息为:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  @@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,CCC
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  日期:mm是月(01~12),dd是日(01~31),yy是年(99~19)。
plcjs.技.术_网

  世界时间(UTC):hh是时(00~23),mm是分(00~59),ss是秒(00~59)。
W1WW_P4LCJS_COM-PLC-技.术_网

  纬度:dd是度(00~90),mm.mmmm是分(00~59.9999),n是方向(N是北,S是南)。
P.L.C.技.术.网——可编程控制器技术门户

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

  信息长度是96字节。
P.L.C.技.术.网——可编程控制器技术门户

  对应的管理子程序为:
WW.W_PLCJS_COM-PLC-技.术_网

  int eq[8>={@,@,E,q,1,C,0x0d,0x0a};
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  void gps_txd(int data[>, int n) {
WWW_P※LCJS_COM-PLC-)技.术_网

  volatile int m,sum=0;
P.L.C.技.术.网——可编程控制器技术门户

  for(m=0;m
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

while(~na_uart_0->np_uartstatus & 0x40);
WWW.PLCJS.COM——可编程控制器技术门户

  //等待发送准备好
WWW_PL※CJS_COM-PLC-技.术_网

  if(m!=n-3) {
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  sum^=data[m>;//计算校验和
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  na_uart_0->np_uarttxdata=data[m>;//发送数据
——可——编——程——控-制-器-技——术——门——户

  }else
WWW_PLCJS@_COM%-PLC-技.术_网

  na_uart_0->np_uarttxdata=sum; //发送校验和
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  }
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  }
WWW.PLCJS.COM——可编程控制器技术门户

  int gps,gps_buf[46>;//定义全局变量
P.L.C.技.术.网——可编程控制器技术门户

  void gps_rxd(int context) {//接收中断服务程序
WWW_P※LCJS_COM-PLC-)技.术_网

  gps_buf[gps>=na_uart_0->np_uartrxdata; //接收数据
WWW_PLCJS_COM-PLC-技.术_网

  if(gps_buf[gps++>==q) gps=0; //数据定位
WWW_PLCJS_COM-PLC-技.术_网

  if(gps>46) gps=46;//忽略无用数据
WWW_PLCJS_COM-PLC-技.术_网

  }
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  GSM管理子程序主要负责GSM系统的数据收发管理。
WWW_PLCJS@_COM%-PLC-技.术_网

  GSM系统的数据收发以短信形式进行,选择短信格式的AT命令为AT+CMGF,收发短信的AT命令分别为AT+CMGR和AT+CMGS,对应的管理子程序为:
WWW_PL※CJS_COM-PLC-技.术_网

  cmgf[20>={A,T,+,C,M,G,F,=,1,0x0d};//短信格式void gsm_txd(int data[>, int n) {
WWW_PLCJS@_COM%-PLC-技.术_网

  volatile int m;
——可——编——程——控-制-器-技——术——门——户

  for(m=0;m
WWW_PL※CJS_COM-PLC-技.术_网

  while(~na_uart_1->np_uartstatus & 0x40);
WWW_PLC※JS_COM-PmLC-技.术_网

  //等待发送准备好na_uart_1->np_uarttxdata=data[m>; //发送数据
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  }
WWW_PLCJS_COM-PLC-技.术_网

  }
WWW_P※LCJS_CO※M-PLC-技-.术_网

  int gsm=2,gsm_buf[18>={A,T};
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  void gsm_rxd(int context) {
——可——编——程——控-制-器-技——术——门——户

  //接收中断服务程序
WWW_PL※CJS_COM-PLC-技.术_网

  gsm_buf[gsm>=na_uart_1->np_uartrxdata; //接收数据
WW.W_PLCJS_COM-PLC-技.术_网

  if(gsm_buf[gsm>==T) gsm=1;

本新闻共2页,当前在第11 2  
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行