<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)TMEGA128的CAN-GPRS網(wǎng)關(guān)設

基于A(yíng)TMEGA128的CAN-GPRS網(wǎng)關(guān)設

作者: 時(shí)間:2012-01-07 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 引言

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

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

隨著(zhù)移動(dòng)通信技術(shù)的成熟,通過(guò)-將CAN現場(chǎng)設備網(wǎng)和遠程技術(shù)控制中心聯(lián)系起來(lái),使遠程技術(shù)控制中心具備了對CAN現場(chǎng)設備網(wǎng)的即時(shí)反應、遠程監測以及遠程診斷的能力。

2. CAN-GPRS硬件電路設計

2.1 系統硬件結構框圖

圖 1 CAN-GPRS原理框圖

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

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

2.2 系統硬件電路設計

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

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

圖3 ATMEGA128與MAX3232接口電路圖

3. CAN-GPRS網(wǎng)關(guān)軟件程序設計

3.1 引入μC/OS-II實(shí)時(shí)操作系統

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

3.2 CAN的初始化

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

INT8U SJA1000Init(void) www.51kaifa.com

{

if( SJA1000_CREATE_COMMUNATION() )

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

if( SJA1000_ENTER_RETMODEL() )

return FALSE; //SJA1000進(jìn)入復位模式出錯,返回

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; //訪(fǎng)問(wèn)中斷使能寄存器

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

return (0);

}

3.3 GPRS模塊的初始化

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

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

3.4 CAN接收數據處理任務(wù)

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

圖4 CAN接收數據處理任務(wù)流程圖

3.5 GPRS接收數據處理任務(wù)

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

4. 結束語(yǔ)

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

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

參考文獻:

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

[2] 饒運濤,鄒繼軍,鄭勇蕓.現場(chǎng)總線(xiàn)CAN 原理與應用技術(shù)[M].北京航空航天大學(xué)出版社, 2003

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

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

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



關(guān)鍵詞: ATMEGA128 CAN GPRS 網(wǎng)關(guān)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>