Nios系统同键盘、LED和LCD显示器、汽车中控系统以及GPS系统等外部设备的连接比较简单,GSM系统的连接较为复杂,如图4所示。
整个系统的工作过程是:来自汽车中控系统和GPS系统的信息可以显示在LED和LCD显示器上,也可以通过GSM系统进行无线发送。用户可以通过键盘对系统进行控制,也可以通过GSM系统对汽车中控系统进行远程无线控制。
2 系统软件组成
系统软件主要由主程序、GPS管理子程序和GSM管理子程序等部分组成。
主程序完成系统的初始化,以及键盘、LED、LCD显示器和汽车中控系统的操作管理等。
GPS管理子程序主要负责从GPS系统接收时间和位置信息。
请求GPS系统返回ASCII时间位置信息的二进制命令为:
@@EqmC
其中,m为0时,输出响应信息(查询),m为1~255时,每1~255 s输出响应信息(连续);C为校验和(Eqm按字节“异或”);
命令的响应信息为:
@@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
日期:mm是月(01~12),dd是日(01~31),yy是年(99~19)。
世界时间(UTC):hh是时(00~23),mm是分(00~59),ss是秒(00~59)。
纬度:dd是度(00~9
0),mm.mmmm是分(00~59.9999),n是方向(N是北,S是南)。
经度:ddd是度(000~180),mm.mmmm是分(00~59.9999),w是方向(W是西,E是东)。
信息长度是96字节。
int eq[8]={'@','@','E','q',1,'C',0x0d,0x0a};
void gps_txd(int data[], int n) {
volatile int m,sum=0;
for(m=0;m
//等待发送准备好
if(m!=n-3) {
sum^=data[m];//计算校验和
na_uart_0->np_uarttxdata=data[m];//发送数据
}else
na_uart_0->np_uarttxdata=sum; //发送校验和
}
}
int gps,gps_buf[46];//定义全局变量
void gps_rxd(int context) {//接收中断服务程序
gps_buf[gps]=na_uart_0->np_uartrxdata; //接收数据
if(gps_buf[gps++]=='q') gps="0"; //数据定位
if(gps>46) gps="46";//忽略无用数据
}
GSM管理子程序主要负责GSM系统的数据收发管理。
GSM系统的数据收发以短信形式进行,选择短信格式的AT命令为AT+CMGF,收发短信的AT命令分别为AT+CMGR和AT+CMGS,对应的管理子程序为:
cmgf[20]={'A','T','+','C','M','G','F','=','1',0x0d};//短信格式void GSM_txd(int data[], int n) {
volatile int m;
for(m=0;m
//等待发送准备好na_uart_1->np_uarttxdata=data[m]; //发送数据
&nbs
p; }
}
int gsm="2",gsm_buf[18]={'A','T'};
void gsm_rxd(int context) {
//接收中断服务程序
gsm_buf[gsm]=na_uart_1->np_uartrxdata; //接收数据
if(gsm_buf[gsm]=='T') gsm="1";
//数据定位
if(++gsm==18) gsm="2";
}
3 设计调试方法和设计结果
在Quartus II中使用SignalTapII嵌入式逻辑分析仪可以实时观测系统中节点的信号数据。被观察的信号可以多进制数值显示也可以用波形显示,但它需要占用芯片更多的资源,因此在对某个模块的测试结束后,可以在设置中把SignalTapII嵌入式逻辑分析仪取消,并重新编译生成以减少LE资源占用量。
实际试用结果表明:基于SoPC的汽车安全监控系统运行正常,定位准确,数据传输可靠,操作管理方便。如果再配备上GIS(地理信息系统),整个系统将如虎添翼。
参考文献
1 郭书军,王玉花,葛纫秋.嵌入式处理器原理及应用.北京:清华大学出版社,2004
2 Motorola. M12 Oncore Users Guide Supplement, 2000
3 Siemens. TC35 Siemens Cellular Engines Hardware Interface Description, 2001
4 Siemens. TC35 Siemens Cellular Engines AT Command Set, 2002
5 EP1C12 datasheet https://www.dzsc.com/datasheet/EP1C12_527237.html.
6 memory datasheet https://www.dzsc.com/datasheet/memory_1082507.html.
郭书军:副教授,主要研究方向为数据通信及其信号处理和嵌入式系统。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。