<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 科伟奇电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=323 </link><title>基于SoPC的汽车安全监控系统设计</title><author>billzhang</author><pubDate>2009/12/7 9:54:20</pubDate><description><![CDATA[引 言 　　基于SoPC的汽车安全监控系统采用Altera公司最新的SoPC(可编程片上系统)解决方案&mdash;&mdash;Nios处理器软核为核心，配合GPS和GSM系统，对汽车的停放和运行状态进行监控。系统监测、记录和储存汽车在行驶过程中的各种数据，一旦出现安全问题，立即采用GSM无线通信方式通知相关人员和单位，并随时发送通过GPS获得的汽车位置等数据，为问题的解决提供及时、准确和可靠的信息，必要时通过GSM对汽车进行远程控制。 　　基于SoPC的汽车安全监控系统可广泛应用于汽车的防盗、日常维护和交通事故的处理，为车辆故障提供有效的测试手段。 1 系统硬件组成 　　设计采用Altera公司的SoPC开发工具。系统的开发包括硬件和软件两大部分。使用SoPC Builder生成Nios<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260150198913="35"><font color="#0033cc">嵌入式</font></a>处理器，Nios<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260150198913="36"><font color="#0033cc">嵌入式</font></a>处理器开发工具允许用户配置一个或多个Nios CPU，从标准库中添加外围设备，综合处理自定义系统，与Quartus II设计软件一起编译系统。软件开发的步骤是：利用SoPC Builder生成的软件文件，用文本编辑器编写汇编语言或C/C++源程序，用GNUPro软件开发工具进行程序设计、连编和调试。GNUPro将源程序连编（包括汇编/编译和连接）成可执行程序，通过下载电缆对可执行程序进行调试和运行。Quartus II设计软件提供全面有效的设计环境，将设计、综合、布局和验证以及第三方EDA工具接口集成在一个无缝的环境中。利用集成在Quartus II 3.0中的SoPCbuilder可以创建自己的Nios CPU系统。Nios是Altera公司开发的16/32位<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260150198913="37"><font color="#0033cc">嵌入式</font></a>处理器软核。 * 校科研基金项目&ldquo;基于SOPC的汽车安全监控系统&rdquo;资助。 　　Altera公司推出了新一代多种系列FPGA，本设计选用低成本的Cyclone系列器件EP1C12，其具有12 060个逻辑单元，52个M4K RAM块，239 616个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所示。 <img border="0" src="/news/upload/2005_12/051212141544891.jpg" alt="" /> <img border="0" src="/news/upload/2005_12/051212141544892.jpg" alt="" /> <img border="0" src="/news/upload/2005_12/051212141544893.jpg" alt="" /> Nios系统同键盘、LED和LCD显示器、汽车中控系统以及GPS系统等外部设备的连接比较简单，GSM系统的连接较为复杂，如图4所示。 　　整个系统的工作过程是：来自汽车中控系统和GPS系统的信息可以显示在LED和LCD显示器上，也可以通过GSM系统进行无线发送。用户可以通过键盘对系统进行控制，也可以通过GSM系统对汽车中控系统进行远程无线控制。 2 系统软件组成 　　系统软件主要由主程序、GPS管理子程序和GSM管理子程序等部分组成。 　　主程序完成系统的初始化，以及键盘、LED、LCD显示器和汽车中控系统的操作管理等。 　　GPS管理子程序主要负责从GPS系统接收时间和位置信息。 　　请求GPS系统返回ASCII时间位置信息的二进制命令为： @@EqmC<cr></cr><lf></lf> 其中，m为0时，输出一次响应信息（查询），m为1&quot;255时，每1&quot;255 s输出一次响应信息（连续）； C为校验和（Eqm按字节&ldquo;异或&rdquo;）； <cr></cr>为回车（十六进制0d）； <lf></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,CCC<cr></cr><lf></lf> 日期：mm是月（01&quot;12），dd是日（01&quot;31），yy是年（99&quot;19）。世界时间（UTC）：hh是时（00&quot;23），mm是分（00&quot;59），ss是秒（00&quot;59）。纬度：dd是度（00&quot;90），mm.mmmm是分（00&quot;59.9999），n是方向（N是北，S是南）。经度：ddd是度（000&quot;180），mm.mmmm是分（00&quot;59.9999），w是方向（W是西，E是东）。信息长度是96字节。对应的管理子程序为： int eq[8]={&quot;@&quot;,&quot;@&quot;,&quot;E&quot;,&quot;q&quot;,1,&quot;C&quot;,0x0d,0x0a}; void gps_txd(int data[], int n) { volatile int m,sum=0; for(m=0;mnp_uartstatus %26;amp; 0x40); //等待发送准备好 if(m!=n-3) { sum^=data[m];//计算校验和 na_uart_0-&gt;np_uarttxdata=data[m];//发送数据 }else na_uart_0-&gt;np_uarttxdata=sum; //发送校验和 } } int gps,gps_buf[46];//定义全局变量 void gps_rxd(int context) {//接收中断服务程序 gps_buf[gps]=na_uart_0-&gt;np_uartrxdata; //接收数据 if(gps_buf[gps++]==&quot;q&quot;) gps=0; //数据定位 if(gps&gt;46) gps=46;//忽略无用数据 } GSM管理子程序主要负责GSM系统的数据收发管理。 GSM系统的数据收发以短信形式进行，选择短信格式的AT命令为AT+CMGF，收发短信的AT命令分别为AT+CMGR和AT+CMGS，对应的管理子程序为： cmgf[20]={&quot;A&quot;,&quot;T&quot;,&quot;+&quot;,&quot;C&quot;,&quot;M&quot;,&quot;G&quot;,&quot;F&quot;,&quot;=&quot;,&quot;1&quot;,0x0d};//短信格式void gsm_txd(int data[], int n) { volatile int m; for(m=0;mnp_uartstatus %26;amp; 0x40); //等待发送准备好na_uart_1-&gt;np_uarttxdata=data[m]; //发送数据 } } int gsm=2,gsm_buf[18]={&quot;A&quot;,&quot;T&quot;}; void gsm_rxd(int context) { //接收中断服务程序 gsm_buf[gsm]=na_uart_1-&gt;np_uartrxdata; //接收数据 if(gsm_buf[gsm]==&quot;T&quot;) gsm=1; //数据定位 if(++gsm==18) gsm=2; } <img border="0" src="/news/upload/2005_12/051212141544894.jpg" alt="" /> 3 设计调试方法和设计结果 　　在Quartus II中使用SignalTapII<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260150198913="38"><font color="#0033cc">嵌入式</font></a>逻辑分析仪可以实时观测系统中节点的信号数据。被观察的信号可以多进制数值显示也可以用波形显示，但它需要占用芯片更多的资源，因此在对某个模块的测试结束后，可以在设置中把SignalTapII<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260150198913="39"><font color="#0033cc">嵌入式</font></a>逻辑分析仪取消，并重新编译生成以减少LE资源占用量。 　　实际试用结果表明：基于SoPC的汽车安全监控系统运行正常，定位准确，数据传输可靠，操作管理方便。如果再配备上GIS（地理信息系统），整个系统将如虎添翼。
<script type="text/javascript">
function ImgZoom(Id)//重新设置图片大小 防止撑破表格
{
var w = $(Id).width;
var m = 650;
if(w < m){return;}
else{
var h = $(Id).height;
$(Id).height = parseInt(h*m/w);
$(Id).width = m;
}
}
window.onload = function()
{
var Imgs = $("content").getElementsByTagName("img");
var i=0;
for(;i<Imgs.length;i++)
{
ImgZoom(Imgs[i]);
}
}
       </script>]]></description></item></channel></rss>