新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ATMEGA128的CAN-GPRS網關設

        基于ATMEGA128的CAN-GPRS網關設

        作者: 時間:2012-01-07 來源:網絡 收藏

        1. 引言

        (Controller Area Network)即控制器局域網,屬于工業(yè)現場總線的范疇。總線與一般的通信總線相比,數據通信具有突出的可靠性、實時性和靈活性,其應用范圍已擴展到自動控制、航空航天、機械工業(yè)及傳感器等領域。

        (General Packet Radio Service)是通用分組無線業(yè)務的簡稱。相對原來GSM的撥號方式的電路交換數據傳送方式,它是一種基于第二代移動通信系統(tǒng)GSM的無線分組交換技術,提供端到端的、廣域的無線IP連接。具有“實時在線”、“按量計費”、“快捷登錄”、“高速傳輸”的優(yōu)點。www.51kaifa.com

        隨著移動通信技術的成熟,通過-將CAN現場設備網和遠程技術控制中心聯(lián)系起來,使遠程技術控制中心具備了對CAN現場設備網的即時反應、遠程監(jiān)測以及遠程診斷的能力。

        2. CAN-GPRS硬件電路設計

        2.1 系統(tǒng)硬件結構框圖

        圖 1 CAN-GPRS原理框圖

        CAN-GPRS網關由CAN收發(fā)器、CAN控制器、微控制器、RS-232接口、GPRS模塊組成。原理如圖1所示。微控制器對CAN和RS-232接口的數據進行處理與轉發(fā)實現網關的功能。

        在本文的應用中,CAN現場設備網包括CAN主控器和CAN設備,網絡通信包含三種數據,CAN主控器發(fā)送的命令數據,CAN設備發(fā)送的設備數據和心跳數據。CAN-GPRS網關對CAN現場設備網的數據進行監(jiān)聽,對CAN設備發(fā)往CAN主控器的心跳數據和CAN主控器發(fā)往CAN設備的命令數據進行過濾,而只讓CAN設備發(fā)送的設備數據通過GPRS網絡傳輸至遠程技術控制中心。遠程技術控制中心則通過GPRS網絡將命令數據轉發(fā)至CAN現場設備網。www.51kaifa.com

        2.2 系統(tǒng)硬件電路設計

        本文采用作為系統(tǒng)微控制器,ATmega128為基于AVR RISC結構的8位低功耗CMOS微控制器,具有128K字節(jié)的系統(tǒng)內可編程Flash,4K字節(jié)的內部SRAM,4K字節(jié)的內部EEPROM,使得系統(tǒng)無需外擴ROM和RAM即可實現網關的功能。CAN控制器采用應用非常廣泛的PHILIPS半導體的獨立CAN控制器SJA1000。CAN收發(fā)器采用 PHILIPS的TJA1040,在功能上TJA1040是PCA82C250/251高速CAN收發(fā)器的后繼產品。與SJA1000 以外部總線方式連接。SJA1000的8位數據/地址復用總線、控制總線分別與的數據/地址復用總線、控制總線連接;ATMEGA128高8位地址總線的A8位經74F04反向后連接至SJA1000的片選引腳;SJA1000的中斷輸出引腳是開漏輸出,通過上拉電阻連接至ATMEGA128的INT0引腳。ATMEGA128與SJA1000接口電路圖如下圖所示:www.51kaifa.com

        ETPro++ GPRS模塊是一款內嵌TCP/IP協(xié)議的GPRS Modem,通常適用于不具備TCP/IP協(xié)議棧的單片機系統(tǒng)。ETPro++ GPRS模塊的硬件接口為RS-232接口。ATMEGA128的UART0經MAXIM3232電平轉換后與ETPro++ GPRS模塊的RS-232接口連接。具體接口電路圖如下圖所示:www.51kaifa.com

        圖3 ATMEGA128與MAX3232接口電路圖

        3. CAN-GPRS網關軟件程序設計

        3.1 引入μC/OS-II實時操作系統(tǒng)

        CAN-GPRS網關對系統(tǒng)的實時性和可靠性要求較高,在系統(tǒng)中嵌入μC/OS-II將增強系統(tǒng)的實時性和可靠性。采用 μC/OS-II 實時操作系統(tǒng)簡化了設計過程,把應用程序代碼分割成單獨的任務,所有時間占重要地位的事件可以盡可能快和有效的得到處理。系統(tǒng)包括初始化和任務兩大部分。系統(tǒng)初始化又包括微控制器初始化、CAN初始化、GPRS模塊初始化。任務包含CAN接收數據處理、GPRS接收數據處理兩個任務。

        3.2 CAN的初始化

        由于需要監(jiān)聽CAN現場設備網所有節(jié)點發(fā)送的數據,所以對SJA1000的驗收屏蔽寄存器(AMR)所有位置位以保證可以接收總線上的所有數據。下面給出這部分的源代碼:

        INT8U SJA1000Init(void) www.51kaifa.com

        {

        if( SJA1000_CREATE_COMMUNATION() )

        return FALSE; //SJA1000接口出錯,返回

        if( SJA1000_ENTER_RETMODEL() )

        return FALSE; //SJA1000進入復位模式出錯,返回

        SJA1000_SET_OUTCLK(0xaa,0xc8); //Pelican 模式

        SJA1000_SET_BANDRATE(ByteRate_125k); //設置波特率為125Kbps

        SJA1000_SET_OBJECT(0,0xff); //設置驗收代碼寄存器、驗收屏蔽寄存器

        SJA1000_SET_MOD(); //單濾波器模式

        if( BCAN_QUIT_RETMODEL() )

        return FALSE; //SJA1000退出復位模式出錯,返回

        SJA1000_BCANAdr = (INT8U *)REG_IER; //訪問中斷使能寄存器

        *SJA1000_BCANAdr = 0xFD; //使能接收中斷

        return (0);

        }

        3.3 GPRS模塊的初始化

        ETPro++ GPRS模塊有兩種工作模式,一種是命令模式,一種是SerialNET模式。在命令模式下的通信,期間需要用命令進行干預。而在SerialNET模式下一旦配置好該模式的參數,進入該模式后,就可以直接按設定的參數進行數據傳輸,而無需再進行干預了。www.51kaifa.com

        在本設計中采用的是SerialNET模式。GPRS模塊的初始化首先通過UART0發(fā)送三個’+’退出在線模式,之后大約等待15秒左右,收到I/ERROR (056)CR>之后即可以向模塊發(fā)送命令。發(fā)送AT+IUPCR>命令上線并建立一個PPP Internet連接開始Internet會話,收到I/ONLINECR>后即成功上線。再發(fā)送AT+I!SNMDCR> 激活SerialNET長連接模式,收到I/DONECR>即進入serialNET模式,此時則可進行數據傳輸。(源代碼略)

        3.4 CAN接收數據處理任務

        CAN數據的接收與處理通過外部中斷0來實現,當數據接收完成時產生中斷,在中斷程序中發(fā)送CAN信號量通知CAN接收數據處理任務對收到的數據進行處理。其流程圖如下(源代碼略):

        圖4 CAN接收數據處理任務流程圖

        3.5 GPRS接收數據處理任務

        GPRS數據的接收與處理通過UART0接收中斷來實現,在UART0接收中斷程序中發(fā)送UART0信號量通知GPRS接收數據處理任務對收到的數據進行處理。不同的是通過UART0將數據轉發(fā)到CAN接口上,就不再贅述。

        4. 結束語

        本文設計的CAN-GPRS網關電路簡單可靠, 使用方便。現已應用于某工程當中,實際運行狀況良好,數據傳輸穩(wěn)定可靠,很好的達到了預期設計的效果。

        本文作者創(chuàng)新點:采用GPRS模塊將CAN現場設備網通過GPRS與遠程技術控制中心聯(lián)系起來,實現了遠程技術控制中心對CAN現場設備網的即時反應、遠程監(jiān)測以及遠程診斷。

        參考文獻:

        [1] 陳嘯吶,賀前華,蘇勇.基于LPC2119的RS485-CAN總線轉換器設計[J].微計算機信息,2006,5-2:20-22

        [2] 饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN 原理與應用技術[M].北京航空航天大學出版社, 2003

        [3] Labrosses Jean J, 袁勤勇等譯.嵌入式系統(tǒng)構件[M].機械工業(yè)出版社, 2002www.51kaifa.com

        [4] Labrosses Jean J, 邵貝貝等譯.嵌入式實時操作系統(tǒng)μC/OS II[M].北京航空航天大學出版社,2003

        [5] 耿德根,宋建國,馬潮,葉勇建.AVR高速嵌入式單片機原理與應用[M].北京航空航天大學出版社, 2001



        關鍵詞: ATMEGA128 CAN GPRS 網關

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 农安县| 那坡县| 东山县| 资溪县| 高安市| 丰都县| 博罗县| 永泰县| 定结县| 海淀区| 平和县| 册亨县| 图片| 巴彦淖尔市| 新绛县| 五寨县| 松原市| 阿城市| 满洲里市| 武城县| 东阿县| 常山县| 门源| 聂拉木县| 松滋市| 洮南市| 晋宁县| 黄山市| 河津市| 庆阳市| 兴业县| 苏尼特右旗| 本溪| 苍溪县| 金秀| 佳木斯市| 普安县| 玉树县| 文水县| 濉溪县| 东莞市|