《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > SoPC+GPS/GSM實現(xiàn)汽車狀態(tài)監(jiān)控系統(tǒng)
SoPC+GPS/GSM實現(xiàn)汽車狀態(tài)監(jiān)控系統(tǒng)
中電網
摘要: 基于SoPC的汽車安全監(jiān)控系統(tǒng)采用Altera公司最新的SoPC(可編程片上系統(tǒng))解決方案——Nios處理器軟核為核心,配合GPS和GSM系統(tǒng),對汽車的停放和運行狀態(tài)進行監(jiān)控。
Abstract:
Key words :

引 言:

基于SoPC的汽車安全監(jiān)控系統(tǒng)采用Altera公司最新的SoPC(可編程片上系統(tǒng))解決方案——Nios處理器軟核為核心,配合GPSGSM系統(tǒng),對汽車的停放和運行狀態(tài)進行監(jiān)控。

基于SoPC的汽車安全監(jiān)控系統(tǒng)可廣泛應用于汽車的防盜、日常維護和交通事故的處理,為車輛故障提供有效的測試手段。

1 系統(tǒng)硬件組成

設計采用Altera公司的SoPC開發(fā)工具。系統(tǒng)的開發(fā)包括硬件和軟件兩大部分。使用SoPC Builder生成Nios嵌入式處理器,Nios嵌入式處理器開發(fā)工具允許用戶配置一個或多個Nios CPU,從標準庫中添加外圍設備,綜合處理自定義系統(tǒng),與Quartus II設計軟件一起編譯系統(tǒng)。軟件開發(fā)的步驟是:利用SoPC Builder生成的軟件文件,用文本編輯器編寫匯編語言或C/C++源程序,用GNUPro軟件開發(fā)工具進行程序設計、連編和調試。GNUPro將源程序連編(包括匯編/編譯和連接)成可執(zhí)行程序,通過下載電纜對可執(zhí)行程序進行調試和運行。Quartus II設計軟件提供全面有效的設計環(huán)境,將設計、綜合、布局和驗證以及第三方EDA工具接口集成在一個無縫的環(huán)境中。利用集成在Quartus II 3.0中的SoPCbuilder可以創(chuàng)建自己的Nios CPU系統(tǒng)。Nios是Altera公司開發(fā)的16/32位嵌入式處理器軟核。

校科研基金項目“基于SOPC的汽車安全監(jiān)控系統(tǒng)”資助。 Altera公司推出了新一代多種系列FPGA,本設計選用低成本的Cyclone系列器件EP1C12,其具有12 060個邏輯單元,52個M4K RAM塊,239 616個RAM位和2個鎖相環(huán),最大用戶I/O引腳249。

系統(tǒng)硬件組成框圖由Nios系統(tǒng)和外部設備兩部分組成,如圖1所示。



Nios系統(tǒng)包括CPU(Nios)、存儲器(memory)、定時器(timer)、總線和并/串行接口(key_pio、led_pio、lcd_pio、ccs_pio、uart_0和uart_1)等,并/串行接口分別實現(xiàn)與鍵盤、LED和LCD顯示器、汽車中控系統(tǒng)以及GPS和GSM系統(tǒng)等外部設備的連接。Nios系統(tǒng)設計和設計結果分別如圖2和圖3所示。





Nios系統(tǒng)同鍵盤、LED和LCD顯示器、汽車中控系統(tǒng)以及GPS系統(tǒng)等外部設備的連接比較簡單,GSM系統(tǒng)的連接較為復雜,如圖4所示。

GSM系統(tǒng)

整個系統(tǒng)的工作過程是:來自汽車中控系統(tǒng)和GPS系統(tǒng)的信息可以顯示在LED和LCD顯示器上,也可以通過GSM系統(tǒng)進行無線發(fā)送。用戶可以通過鍵盤對系統(tǒng)進行控制,也可以通過GSM系統(tǒng)對汽車中控系統(tǒng)進行遠程無線控制。



2 系統(tǒng)軟件組成

系統(tǒng)軟件主要由主程序、GPS管理子程序和GSM管理子程序等部分組成。

主程序完成系統(tǒng)的初始化,以及鍵盤、LED、LCD顯示器和汽車中控系統(tǒng)的操作管理等。

GPS管理子程序主要負責從GPS系統(tǒng)接收時間和位置信息。

請求GPS系統(tǒng)返回ASCII時間位置信息的二進制命令為:

@@EqmC

其中,m為0時,輸出一次響應信息(查詢),m為1~255時,每1~255 s輸出一次響應信息(連續(xù));

C為校驗和(Eqm按字節(jié)“異或”);

為回車(十六進制0d);

為換行(十六進制0a);

命令長度為8字節(jié)。

命令的響應信息為:

@@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~90),mm.mmmm是分(00~59.9999),n是方向(N是北,S是南)。

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

信息長度是96字節(jié)。

對應的管理子程序為:

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

while(~na_uart_0->np_uartstatus & 0x40);

/等待發(fā)送準備好

if(m!=n-3) {

sum^=data[m];/計算校驗和

na_uart_0->np_uarttxdata=data[m];/發(fā)送數(shù)據(jù)

}else

na_uart_0->np_uarttxdata=sum; /發(fā)送校驗和

}

}

int gps,gps_buf[46];/定義全局變量

void gps_rxd(int context) {/接收中斷服務程序

gps_buf[gps]=na_uart_0->np_uartrxdata; /接收數(shù)據(jù)

if(gps_buf[gps++]=="q") gps=0; /數(shù)據(jù)定位

if(gps>46) gps=46;/忽略無用數(shù)據(jù)

}

GSM管理子程序主要負責GSM系統(tǒng)的數(shù)據(jù)收發(fā)管理。

GSM系統(tǒng)的數(shù)據(jù)收發(fā)以短信形式進行,選擇短信格式的AT命令為AT+CMGF,收發(fā)短信的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

while(~na_uart_1->np_uartstatus & 0x40);

/等待發(fā)送準備好na_uart_1->np_uarttxdata=data[m]; /發(fā)送數(shù)據(jù)

}

}

int gsm=2,gsm_buf[18]={"A","T"};

void gsm_rxd(int context) {

/接收中斷服務程序

gsm_buf[gsm]=na_uart_1->np_uartrxdata; /接收數(shù)據(jù)

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

/數(shù)據(jù)定位

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

}

3 設計調試方法和設計結果

實際試用結果表明:基于SoPC的汽車安全監(jiān)控系統(tǒng)運行正常,定位準確,數(shù)據(jù)傳輸可靠,操作管理方便。如果再配備上GIS(地理信息系統(tǒng)),整個系統(tǒng)將如虎添翼。

 

此內容為AET網站原創(chuàng),未經授權禁止轉載。