<b id="nqvhe"><source id="nqvhe"><menu id="nqvhe"></menu></source></b>

    1. <source id="nqvhe"></source><xmp id="nqvhe"></xmp>
      1. <b id="nqvhe"></b>
        <u id="nqvhe"></u>
      2. <b id="nqvhe"><address id="nqvhe"><ol id="nqvhe"></ol></address></b>
      3. <source id="nqvhe"></source>
        <xmp id="nqvhe"><video id="nqvhe"></video></xmp>
          <b id="nqvhe"></b>
          <u id="nqvhe"></u>
        1. 1
          關注中國自動化產業發展的先行者!
          2024中國自動化產業年會
          2023
          2023年工業安全大會
          OICT公益講堂
          當前位置:首頁 >> 案例 >> 案例首頁

          案例頻道

          基于SoPC的汽車安全監控系統設計
          • 企業:控制網     領域:機器視覺     行業:金融/保險    
          • 點擊數:1205     發布時間:2005-11-04 11:29:06
          • 分享到:
          介紹基于Altera公司SoPC的汽車安全監控系統,利用嵌入在FPGA中的Nios處理器軟核CPU,配合GPS和GSM系統,對汽車的停放和運行狀態進行監測和控制。文中詳細介紹系統的硬件組成,并給出對GPS和GSM的C語言管理程序。



            引 言

            基于SoPC的汽車安全監控系統采用Altera公司最新的SoPC(可編程片上系統)解決方案――Nios處理器軟核為核心,配合GPS和GSM系統,對汽車的停放和運行狀態進行監控。系統監測、記錄和儲存汽車在行駛過程中的各種數據,一旦出現安全問題,立即采用GSM無線通信方式通知相關人員和單位,并隨時發送通過GPS獲得的汽車位置等數據,為問題的解決提供及時、準確和可靠的信息,必要時通過GSM對汽車進行遠程控制。

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

            1. 系統硬件組成

            設計采用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的汽車安全監控系統”資助。

            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所示。
                
                          



          圖1系統硬件組成框圖


          圖2Nios系統設計




          圖3Nios系統設計結果

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

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

            2 系統軟件組成

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

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

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

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

            @@EqmC<CR><LF>

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

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

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

            <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><LF>

            日期: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字節。

            對應的管理子程序為:

            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<n;m++) {
            while(~na_uart_0->np_uartstatus & 0x40);
            //等待發送準備好
            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<n;m++) {
            while(~na_uart_1->np_uartstatus & 0x40);
            //等待發送準備好na_uart_1->np_uarttxdata=data[m]; //發送數據
            }
            }
            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;
            }
           
                          



          圖4TC35i GSM系統連接圖

            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

            郭書軍:副教授,主要研究方向為數據通信及其信號處理和嵌入式系統。

          熱點新聞

          推薦產品

          x
          • 在線反饋
          1.我有以下需求:



          2.詳細的需求:
          姓名:
          單位:
          電話:
          郵件:

            <b id="nqvhe"><source id="nqvhe"><menu id="nqvhe"></menu></source></b>

            1. <source id="nqvhe"></source><xmp id="nqvhe"></xmp>
              1. <b id="nqvhe"></b>
                <u id="nqvhe"></u>
              2. <b id="nqvhe"><address id="nqvhe"><ol id="nqvhe"></ol></address></b>
              3. <source id="nqvhe"></source>
                <xmp id="nqvhe"><video id="nqvhe"></video></xmp>
                  <b id="nqvhe"></b>
                  <u id="nqvhe"></u>
                1. 国产精品高清视亚洲精品