機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
基于ATMEGA128的CAN-GPRS網(wǎng)關(guān)設(shè)計(jì)
基于ATMEGA128的CAN-GPRS網(wǎng)關(guān)設(shè)計(jì)
 更新時(shí)間:2009-11-25 16:04:05  點(diǎn)擊數(shù):0
【字體: 字體顏色

在很多CAN的應(yīng)用中需要將CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)的數(shù)據(jù)傳輸至遠(yuǎn)程技術(shù)控制中心,通過(guò)GPRS無(wú)線傳輸可以很好的滿足系統(tǒng)遠(yuǎn)程傳輸數(shù)據(jù)的要求。本文介紹了一種基于ATMEGA128和ETPro++ GPRS模塊的CAN-GPRS網(wǎng)關(guān)的設(shè)計(jì)方法和實(shí)現(xiàn)過(guò)程。
關(guān)鍵詞:ATMEGA128;CAN;GPRS;網(wǎng)關(guān)
1. 引言
CAN(Controller Area Network)即控制器局域網(wǎng),屬于工業(yè)現(xiàn)場(chǎng)總線的范疇。CAN總線與一般的通信總線相比,數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,其應(yīng)用范圍已擴(kuò)展到自動(dòng)控制、航空航天、機(jī)械工業(yè)及傳感器等領(lǐng)域。
GPRS(General Packet Radio Service)是通用分組無(wú)線業(yè)務(wù)的簡(jiǎn)稱(chēng)。相對(duì)原來(lái)GSM的撥號(hào)方式的電路交換數(shù)據(jù)傳送方式,它是一種基于第二代移動(dòng)通信系統(tǒng)GSM的無(wú)線分組交換技 術(shù),提供端到端的、廣域的無(wú)線IP連接。具有“實(shí)時(shí)在線”、“按量計(jì)費(fèi)”、“快捷登錄”、“高速傳輸”的優(yōu)點(diǎn)。
隨著GPRS移動(dòng)通信技術(shù)的成熟,通過(guò)CAN-GPRS網(wǎng)關(guān)將CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)和遠(yuǎn)程技術(shù)控制中心聯(lián)系起來(lái),使遠(yuǎn)程技術(shù)控制中心具備了對(duì)CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)的即時(shí)反應(yīng)、遠(yuǎn)程監(jiān)測(cè)以及遠(yuǎn)程診斷的能力。
2. CAN-GPRS網(wǎng)關(guān)硬件電路設(shè)計(jì)
2.1  系統(tǒng)硬件結(jié)構(gòu)框圖

 

圖 1 CAN-GPRS網(wǎng)關(guān)原理框圖
 CAN-GPRS網(wǎng)關(guān)由CAN收發(fā)器、CAN控制器、微控制器、RS-232接口、GPRS模塊組成。原理如圖1所示。微控制器對(duì)CAN和RS-232接口的數(shù)據(jù)進(jìn)行處理與轉(zhuǎn)發(fā)實(shí)現(xiàn)網(wǎng)關(guān)的功能。
在 本文的應(yīng)用中,CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)包括CAN主控器和CAN設(shè)備,網(wǎng)絡(luò)通信包含三種數(shù)據(jù),CAN主控器發(fā)送的命令數(shù)據(jù),CAN設(shè)備發(fā)送的設(shè)備數(shù)據(jù)和心跳數(shù) 據(jù)。CAN-GPRS網(wǎng)關(guān)對(duì)CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)的數(shù)據(jù)進(jìn)行****,對(duì)CAN設(shè)備發(fā)往CAN主控器的心跳數(shù)據(jù)和CAN主控器發(fā)往CAN設(shè)備的命令數(shù)據(jù)進(jìn)行過(guò) 濾,而只讓CAN設(shè)備發(fā)送的設(shè)備數(shù)據(jù)通過(guò)GPRS網(wǎng)絡(luò)傳輸至遠(yuǎn)程技術(shù)控制中心。遠(yuǎn)程技術(shù)控制中心則通過(guò)GPRS網(wǎng)絡(luò)將命令數(shù)據(jù)轉(zhuǎn)發(fā)至CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)。
2.2  系統(tǒng)硬件電路設(shè)計(jì)
本 文采用ATMEGA128作為系統(tǒng)微控制器,ATmega128為基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS微控制器,具有128K字節(jié)的系統(tǒng)內(nèi)可編程Flash,4K字節(jié)的內(nèi)部SRAM,4K字節(jié)的內(nèi)部EEPROM,使得系統(tǒng) 無(wú)需外擴(kuò)ROM和RAM即可實(shí)現(xiàn)網(wǎng)關(guān)的功能。CAN控制器采用應(yīng)用非常廣泛的PHILIPS半導(dǎo)體的獨(dú)立CAN控制器SJA1000。CAN收發(fā)器采用 PHILIPS的TJA1040,在功能上TJA1040是PCA82C250/251高速CAN收發(fā)器的后繼產(chǎn)品。ATMEGA128與SJA1000 以外部總線方式連接。SJA1000的8位數(shù)據(jù)/地址復(fù)用總線、控制總線分別與ATMEGA128的數(shù)據(jù)/地址復(fù)用總線、控制總線連 接;ATMEGA128高8位地址總線的A8位經(jīng)74F04反向后連接至SJA1000的片選引腳;SJA1000的中斷輸出引腳是開(kāi)漏輸出,通過(guò)上拉電 阻連接至ATMEGA128的INT0引腳。ATMEGA128與SJA1000接口電路圖如下圖所示:

 

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

 

圖3  ATMEGA128與MAX3232接口電路圖
3.CAN-GPRS網(wǎng)關(guān)軟件程序設(shè)計(jì)
3.1  引入μC/OS-II實(shí)時(shí)操作系統(tǒng)
CAN- GPRS網(wǎng)關(guān)對(duì)系統(tǒng)的實(shí)時(shí)性和可靠性要求較高,在系統(tǒng)中嵌入μC/OS-II將增強(qiáng)系統(tǒng)的實(shí)時(shí)性和可靠性。采用μC/OS-II 實(shí)時(shí)操作系統(tǒng)簡(jiǎn)化了設(shè)計(jì)過(guò)程,把應(yīng)用程序代碼分割成單獨(dú)的任務(wù),所有時(shí)間占重要地位的事件可以盡可能快和有效的得到處理。系統(tǒng)包括初始化和任務(wù)兩大部分。 系統(tǒng)初始化又包括微控制器初始化、CAN初始化、GPRS模塊初始化。任務(wù)包含CAN接收數(shù)據(jù)處理、GPRS接收數(shù)據(jù)處理兩個(gè)任務(wù)。
3.2  CAN的初始化
由于需要****CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)所有節(jié)點(diǎn)發(fā)送的數(shù)據(jù),所以對(duì)SJA1000的驗(yàn)收屏蔽寄存器(AMR)所有位置位以保證可以接收總線上的所有數(shù)據(jù)。下面給出這部分的源代碼:
INT8U   SJA1000Init(void)
{
if( SJA1000_CREATE_COMMUNATION() )
return FALSE;   //SJA1000接口出錯(cuò),返回
if( SJA1000_ENTER_RETMODEL() )
return FALSE;   //SJA1000進(jìn)入復(fù)位模式出錯(cuò),返回
SJA1000_SET_OUTCLK(0xaa,0xc8);   //Pelican 模式
SJA1000_SET_BANDRATE(ByteRate_125k);  //設(shè)置波特率為125Kbps
SJA1000_SET_OBJECT(0,0xff);   //設(shè)置驗(yàn)收代碼寄存器、驗(yàn)收屏蔽寄存器 
SJA1000_SET_MOD();   //單濾波器模式
if( BCAN_QUIT_RETMODEL() )
return FALSE;   //SJA1000退出復(fù)位模式出錯(cuò),返回
 
SJA1000_BCANAdr = (INT8U *)REG_IER;       //訪問(wèn)中斷使能寄存器
*SJA1000_BCANAdr = 0xFD;      //使能接收中斷
 return (0);              
}
3.3  GPRS模塊的初始化
ETPro++ GPRS模塊有兩種工作模式,一種是命令模式,一種是SerialNET模式。在命令模式下的通信,期間需要用命令進(jìn)行干預(yù)。而在SerialNET模式下一旦配置好該模式的參數(shù),進(jìn)入該模式后,就可以直接按設(shè)定的參數(shù)進(jìn)行數(shù)據(jù)傳輸,而無(wú)需再進(jìn)行干預(yù)了。
在 本設(shè)計(jì)中采用的是SerialNET模式。GPRS模塊的初始化首先通過(guò)UART0發(fā)送三個(gè)’+’退出在線模式,之后大約等待15秒左右,收到 I/ERROR (056)<CR>之后即可以向模塊發(fā)送命令。發(fā)送AT+IUP<CR>命令上線并建立一個(gè)PPP Internet連接開(kāi)始Internet會(huì)話,收到I/ONLINE<CR>后即成功上線。再發(fā)送AT+I!SNMD<CR> 激活SerialNET長(zhǎng)連接模式,收到I/DONE<CR>即進(jìn)入serialNET模式,此時(shí)則可進(jìn)行數(shù)據(jù)傳輸。(源代碼略)
3.4  CAN接收數(shù)據(jù)處理任務(wù)
CAN數(shù)據(jù)的接收與處理通過(guò)外部中斷0來(lái)實(shí)現(xiàn),當(dāng)數(shù)據(jù)接收完成時(shí)產(chǎn)生中斷,在中斷程序中發(fā)送CAN信號(hào)量通知CAN接收數(shù)據(jù)處理任務(wù)對(duì)收到的數(shù)據(jù)進(jìn)行處理。其流程圖如下(源代碼略):

 

圖4  CAN接收數(shù)據(jù)處理任務(wù)流程圖
3.5  GPRS接收數(shù)據(jù)處理任務(wù)
GPRS數(shù)據(jù)的接收與處理通過(guò)UART0接收中斷來(lái)實(shí)現(xiàn),在UART0接收中斷程序中發(fā)送UART0信號(hào)量通知GPRS接收數(shù)據(jù)處理任務(wù)對(duì)收到的數(shù)據(jù)進(jìn)行處理。不同的是通過(guò)UART0將數(shù)據(jù)轉(zhuǎn)發(fā)到CAN接口上,就不再贅述。
3. 結(jié)束語(yǔ)
本文設(shè)計(jì)的CAN-GPRS網(wǎng)關(guān)電路簡(jiǎn)單可靠, 使用方便。現(xiàn)已應(yīng)用于某工程當(dāng)中,實(shí)際運(yùn)行狀況良好,數(shù)據(jù)傳輸穩(wěn)定可靠,很好的達(dá)到了預(yù)期設(shè)計(jì)的效果。
本文作者創(chuàng)新點(diǎn):采用GPRS模塊將CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)通過(guò)GPRS與遠(yuǎn)程技術(shù)控制中心聯(lián)系起來(lái),實(shí)現(xiàn)了遠(yuǎn)程技術(shù)控制中心對(duì)CAN現(xiàn)場(chǎng)設(shè)備網(wǎng)的即時(shí)反應(yīng)、遠(yuǎn)程監(jiān)測(cè)以及遠(yuǎn)程診斷。
參考文獻(xiàn):
[1] 陳嘯吶,賀前華,蘇勇.基于LPC2119的RS485-CAN總線轉(zhuǎn)換器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,5-2:20-22
[2] 饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場(chǎng)總線CAN 原理與應(yīng)用技術(shù)[M].北京航空航天大學(xué)出版社, 2003
[3] Labrosses Jean J, 袁勤勇等譯.嵌入式系統(tǒng)構(gòu)件[M].機(jī)械工業(yè)出版社, 2002
[4] Labrosses Jean J, 邵貝貝等譯.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS II[M].北京航空航天大學(xué)出版社,2003
[5] 耿德根,宋建國(guó),馬潮,葉勇建.AVR高速嵌入式單片機(jī)原理與應(yīng)用[M].北京航空航天大學(xué)出版社, 2001
作者簡(jiǎn)介:
黎  華(1978-),男(瑤族),湖南人,桂林電子科技大學(xué)電子工程學(xué)院在讀碩士,主要從事自動(dòng)控制系統(tǒng)研究.
莫  瑋(1956-),男(漢族),廣西人,中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究所教授,博士生導(dǎo)師,主要從事電子技術(shù)標(biāo)準(zhǔn)化研究.
王寶友(1970-),男(漢族),山東人,中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究所高工,博士,主要從事電子技術(shù)標(biāo)準(zhǔn)化研究.
通信地址:桂林電子科技大學(xué)電子工程學(xué)院研E6   黎華

  • 上一篇: AVR單片機(jī)在腐蝕性介質(zhì)溫度動(dòng)態(tài)測(cè)量中的應(yīng)用
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1