《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Nios II及GPS/GSM的汽車(chē)狀態(tài)監(jiān)控系統(tǒng)設(shè)計(jì)
基于Nios II及GPS/GSM的汽車(chē)狀態(tài)監(jiān)控系統(tǒng)設(shè)計(jì)
摘要: 基于SoPC的汽車(chē)安全監(jiān)控系統(tǒng)采用Altera公司最新的SoPC(可編程片上系統(tǒng))解決方案——Nios處理器軟核為核心,,配合GPS和GSM系統(tǒng),,對(duì)汽車(chē)的停放和運(yùn)行狀態(tài)進(jìn)行監(jiān)控。系統(tǒng)監(jiān)測(cè),、記錄和儲(chǔ)存汽車(chē)在行駛過(guò)程中的各種數(shù)據(jù),,一旦出現(xiàn)安全問(wèn)題,立即采用GSM無(wú)線通信方式通知相關(guān)人員和單位,,并隨時(shí)發(fā)送通過(guò)GPS獲得的汽車(chē)位置等數(shù)據(jù),,為問(wèn)題的解決提供及時(shí)、準(zhǔn)確和可靠的信息,,必要時(shí)通過(guò)GSM對(duì)汽車(chē)進(jìn)行遠(yuǎn)程控制,。 基于SoPC的汽車(chē)安全監(jiān)控系統(tǒng)可廣泛應(yīng)用于汽車(chē)的防盜,、日常維護(hù)和交通事故的處理,為車(chē)輛故障提供有效的測(cè)試手段,。
Abstract:
Key words :

引 言:

    基于SoPC的汽車(chē)安全監(jiān)控系統(tǒng)采用Altera公司最新的SoPC(可編程片上系統(tǒng))解決方案——Nios處理器軟核為核心,,配合GPSGSM系統(tǒng),對(duì)汽車(chē)的停放和運(yùn)行狀態(tài)進(jìn)行監(jiān)控,。系統(tǒng)監(jiān)測(cè),、記錄和儲(chǔ)存汽車(chē)在行駛過(guò)程中的各種數(shù)據(jù),一旦出現(xiàn)安全問(wèn)題,,立即采用GSM無(wú)線通信方式通知相關(guān)人員和單位,,并隨時(shí)發(fā)送通過(guò)GPS獲得的汽車(chē)位置等數(shù)據(jù),為問(wèn)題的解決提供及時(shí),、準(zhǔn)確和可靠的信息,,必要時(shí)通過(guò)GSM對(duì)汽車(chē)進(jìn)行遠(yuǎn)程控制。

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

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

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

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

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

系統(tǒng)硬件組成框圖由Nios系統(tǒng)和外部設(shè)備兩部分組成

 

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

Nios系統(tǒng)設(shè)計(jì)

Nios系統(tǒng)設(shè)計(jì)結(jié)果

 

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

Nios系統(tǒng)同鍵盤(pán),、LED和LCD顯示器、汽車(chē)中控系統(tǒng)以及GPS系統(tǒng)等外部設(shè)備的連接

 

    整個(gè)系統(tǒng)的工作過(guò)程是:來(lái)自汽車(chē)中控系統(tǒng)和GPS系統(tǒng)的信息可以顯示在LED和LCD顯示器上,,也可以通過(guò)GSM系統(tǒng)進(jìn)行無(wú)線發(fā)送,。用戶可以通過(guò)鍵盤(pán)對(duì)系統(tǒng)進(jìn)行控制,也可以通過(guò)GSM系統(tǒng)對(duì)汽車(chē)中控系統(tǒng)進(jìn)行遠(yuǎn)程無(wú)線控制,。

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

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

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

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

請(qǐng)求GPS系統(tǒng)返回ASCII時(shí)間位置信息的二進(jìn)制命令為:

@@EqmC

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

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

為回車(chē)(十六進(jìn)制0d);

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

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

命令的響應(yīng)信息為:

@@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)。

世界時(shí)間(UTC):hh是時(shí)(00~23),,mm是分(00~59),,ss是秒(00~59)。

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

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

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

對(duì)應(yīng)的管理子程序?yàn)椋?/p>

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ā)送準(zhǔn)備好

if(m!=n-3) {

sum^=data[m];/計(jì)算校驗(yàn)和

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

}else

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

}

}

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

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

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

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

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

}

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

GSM系統(tǒng)的數(shù)據(jù)收發(fā)以短信形式進(jìn)行,,選擇短信格式的AT命令為AT+CMGF,收發(fā)短信的AT命令分別為AT+CMGR和AT+CMGS,,對(duì)應(yīng)的管理子程序?yàn)椋?/p>

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ā)送準(zhǔn)備好na_uart_1->np_uarttxdata=data[m]; /發(fā)送數(shù)據(jù)

}

}

 

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

void gsm_rxd(int context) {

/接收中斷服務(wù)程序

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 設(shè)計(jì)調(diào)試方法和設(shè)計(jì)結(jié)果

   在Quartus II中使用SignalTapII嵌入式邏輯分析儀可以實(shí)時(shí)觀測(cè)系統(tǒng)中節(jié)點(diǎn)的信號(hào)數(shù)據(jù),。被觀察的信號(hào)可以多進(jìn)制數(shù)值顯示也可以用波形顯示,但它需要占用芯片更多的資源,,因此在對(duì)某個(gè)模塊的測(cè)試結(jié)束后,,可以在設(shè)置中把SignalTapII嵌入式邏輯分析儀取消,并重新編譯生成以減少LE資源占用量,。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。