色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x

基于CAN總線技術(shù)的嵌入式網(wǎng)關(guān)設(shè)計(jì)

發(fā)布時(shí)間:2010-4-8 12:47    發(fā)布者:我芯依舊
1 引言

作為當(dāng)今最具發(fā)展前途的網(wǎng)絡(luò)技術(shù),自20世紀(jì)70年代末出現(xiàn)以來,以超出所有人預(yù)期的速度迅猛發(fā)展,現(xiàn)在己滲透進(jìn)科學(xué)技術(shù)的方方面面。在測控系統(tǒng)應(yīng)用網(wǎng)絡(luò)技術(shù)將極大提高系統(tǒng)的性能,計(jì)算機(jī)測控技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合已是大勢所趨。如今,互聯(lián)網(wǎng)應(yīng)用正在轉(zhuǎn)到以嵌入式設(shè)備為中心。IA(Internet Appliance)概念現(xiàn)在甚為流行,這表明互聯(lián)網(wǎng)應(yīng)用進(jìn)入嵌人式互聯(lián)網(wǎng)的時(shí)代已經(jīng)來臨。本文設(shè)計(jì)了一個(gè)嵌入式網(wǎng)關(guān)用于Ethernet之間的互連。

2 系統(tǒng)硬件分析與設(shè)計(jì)

系統(tǒng)使用嵌入式微控制器作為處理器,以太網(wǎng)驅(qū)動(dòng)芯片RTLS019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入以太網(wǎng),可以將采用CAN總線協(xié)議通信的設(shè)備連到以太網(wǎng)上。CAN總線控制器采用SJAl000芯片.CAN收發(fā)器則采用了PCA82C250。

為適應(yīng)上網(wǎng)需求.嵌入式微控制器不僅要能執(zhí)行傳統(tǒng)的控制功能,還要能執(zhí)行與連接因特網(wǎng)相關(guān)的功能.而SX52芯片能比較容易地實(shí)現(xiàn)TCP/IP協(xié)議,所以我們選擇它作為微控制器。實(shí)現(xiàn)嵌入式設(shè)備接入Internet,從原則上來講最關(guān)鍵的就是要實(shí)現(xiàn)TCP/IP協(xié)議,還有一個(gè)關(guān)鍵的問題就是傳輸信息媒質(zhì)的選擇嵌入式系統(tǒng)應(yīng)用最廣泛的網(wǎng)絡(luò)驅(qū)動(dòng)芯片就是NE2000兼容系列網(wǎng)絡(luò)芯片,它具有接El方便、驅(qū)動(dòng)簡單、占用資源少等優(yōu)點(diǎn),特別適合嵌入式系統(tǒng)。我們選用RTL8019AS芯片。

2.1 CAN總線網(wǎng)絡(luò)設(shè)備接口設(shè)計(jì)

CAN總線網(wǎng)絡(luò)設(shè)備接口設(shè)計(jì)較網(wǎng)關(guān)設(shè)計(jì)簡單。它是在完成設(shè)備功能的基礎(chǔ)上加入一個(gè)CAN通信控制器接口芯片,實(shí)現(xiàn)與CAN總線網(wǎng)絡(luò)的連接。

2.2 網(wǎng)關(guān)設(shè)計(jì)

嵌入式透明網(wǎng)關(guān)設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的核心。它由CAN控制器協(xié)議轉(zhuǎn)換模塊和以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊兩部分組成。網(wǎng)關(guān)硬件中微處理器起核心作用。

數(shù)據(jù)的流向?yàn)椋赫埱蠛涂刂菩畔木钟蚓W(wǎng)中來,通過RJ45送到RTL8019AS,RTL8019AS負(fù)責(zé)將以太網(wǎng)幀的首部和尾部信息剝離,將處理后的數(shù)據(jù)包送人TCP/IP協(xié)議棧,由協(xié)議棧對數(shù)據(jù)報(bào)進(jìn)行解析,得到原始的請求和控制信息。請求和控制信息再經(jīng)過SJA1000進(jìn)行CAN協(xié)議格式的數(shù)據(jù)封裝,再和現(xiàn)場的CAN總線設(shè)備進(jìn)行通信。請求和控制的回復(fù)領(lǐng)先局域網(wǎng)的過程與上面正好相反。如圖1。


圖1硬件結(jié)構(gòu)框圖

圖中AT24C64為8K EEPROM主要是用來保存嵌入式透明SX-52網(wǎng)關(guān)的配置信息,如網(wǎng)關(guān)IP地址、MAC地址和SJAl000的功網(wǎng)絡(luò)標(biāo)示符、網(wǎng)絡(luò)掩碼MAR和總線定時(shí)(BTR0,BTR1)等.這樣.我們就能夠靈活方便地修改網(wǎng)關(guān)參數(shù),適應(yīng)不同環(huán)境。同時(shí)也考慮到以后的擴(kuò)展。硬件電路圖如圖2所示:


圖2硬件電路

3 系統(tǒng)軟件設(shè)計(jì)

整個(gè)系統(tǒng)的軟件設(shè)計(jì)可以分為三個(gè)部分:CAN總線設(shè)備接口通信模塊、透明網(wǎng)關(guān)協(xié)議轉(zhuǎn)換模塊和以太網(wǎng)層應(yīng)用模塊。

3.1 協(xié)議轉(zhuǎn)換模型

透明網(wǎng)關(guān)協(xié)議轉(zhuǎn)換模型的設(shè)計(jì)整體思路為:當(dāng)以太網(wǎng)應(yīng)用層有數(shù)據(jù)要發(fā)送到CAN節(jié)點(diǎn)時(shí),首先,數(shù)據(jù)發(fā)送到透明網(wǎng)關(guān)由以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊從傳輸層數(shù)據(jù)報(bào)文中解析出完整的CAN協(xié)議數(shù)據(jù)包.存放在數(shù)據(jù)緩沖區(qū)A,再通知總調(diào)度模塊,由它調(diào)用CAN控制器協(xié)議模塊將它發(fā)送到CAN總線上。反過來,當(dāng)CAN設(shè)備有數(shù)據(jù)要發(fā)送到用戶層時(shí),首先,數(shù)據(jù)發(fā)送到透明網(wǎng)關(guān)由CAN控制器協(xié)議模塊將完整的CAN協(xié)議數(shù)據(jù)包存放在數(shù)據(jù)緩沖區(qū)B,再通知總調(diào)度模塊,由它調(diào)用以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊將完整的CAN協(xié)議數(shù)據(jù)包作為應(yīng)用層數(shù)據(jù)封裝起來.再發(fā)送到以太網(wǎng)的應(yīng)用層。其模型結(jié)構(gòu)圖如圖3所示


圖3透明網(wǎng)關(guān)協(xié)議轉(zhuǎn)換模型結(jié)構(gòu)圖

3.2 CAN控制器協(xié)議驅(qū)動(dòng)模塊

CAN控制器協(xié)議轉(zhuǎn)換模塊稃序主要由SJAl000的寄存器讀程序CANRead().寫程序CANWrite(),初始化程序CANWrite()、總線狀態(tài)查詢CANStatus()和發(fā)送、接收程序txdsub(),rxdsub()組成。之所以要編寫單獨(dú)的.SJAl000的寄存器讀、寫子程序,這是由SX52芯片只有I/O端口的特點(diǎn)決定的。

3.2.1以太網(wǎng)控制器協(xié)議驅(qū)動(dòng)模塊

要將系統(tǒng)接入以太網(wǎng).就要對RTL801A9S進(jìn)行編程.完成以太網(wǎng)幀的數(shù)據(jù)收發(fā).相當(dāng)于實(shí)現(xiàn)PC機(jī)中網(wǎng)卡的驅(qū)動(dòng)程序功能。以太網(wǎng)控制器驅(qū)動(dòng)程序用于設(shè)置RTL8019AS的工作狀態(tài)和工作方式.分配收發(fā)數(shù)據(jù)的緩沖區(qū).通過對地址及數(shù)據(jù)口的讀寫來完成以太網(wǎng)幀的接收與發(fā)送。首先要對RTLS019AS進(jìn)行復(fù)位,并將其設(shè)置為跳線模式:然后對RTL8019AS的工作參數(shù)進(jìn)行設(shè)置,以使其開始工作;接下來就讀寫RTL8019AS的RAM以完成數(shù)據(jù)包的接收和發(fā)送。程序流程如圖4所示。


圖4 RTL8019AS工作流程

以太網(wǎng)控制器RTLS019AS工作在網(wǎng)絡(luò)中的數(shù)據(jù)鏈路層,對于它的應(yīng)用主要有3個(gè)基本函數(shù),即RTL8019AS初始化,狀態(tài)檢測函數(shù)、數(shù)據(jù)幀發(fā)送和接收函數(shù)。其中狀態(tài)檢測函數(shù)用來監(jiān)測是否有數(shù)據(jù)幀到達(dá)以及總線占用狀態(tài)。RTLS019AS有兩個(gè)DMA通道,一個(gè)是本地DMA,用做緩沖RAM與FIFO之間的數(shù)據(jù)交換,具有較高優(yōu)先級,遠(yuǎn)程DMA用作外部存儲(chǔ)器與RTL8019AS內(nèi)部緩沖RMA之間的數(shù)據(jù)交換。SX52通過遠(yuǎn)程DMA將一個(gè)數(shù)據(jù)幀放入RTC8019AS內(nèi)部的緩沖區(qū)RAM中后,利用加方式將發(fā)送起始地址送到TPRS.幀長度送到TBRC然后將命令寄存器RC中TXR置位開始一個(gè)數(shù)據(jù)幀的發(fā)送。當(dāng)網(wǎng)絡(luò)上有數(shù)據(jù)到達(dá)RTL8019AS時(shí)。它的CURR將不等于BNRY,如果采用中斷方式。則RTL8019AS將會(huì)自動(dòng)通知MCU。然后可采用包發(fā)送將緩沖環(huán)中的數(shù)據(jù)取出,這里我們采用查詢方式來處理。

3.2.2 CAN-Ethemel協(xié)議轉(zhuǎn)換模塊

主程序工作流稗圖如圖5所示,單片機(jī)首先初始化網(wǎng)絡(luò)設(shè)備。網(wǎng)卡IP地址和物理地址存于單片機(jī)的EEPROM中,單片機(jī)復(fù)位后首先讀取這些數(shù)據(jù)以初始化網(wǎng)卡。

網(wǎng)卡初始化完成以后.當(dāng)有數(shù)據(jù)從RJ45過來時(shí),單片機(jī)對數(shù)據(jù)包進(jìn)行分析.如果是ARP(物理地址解析協(xié)議)數(shù)據(jù)包,則程序轉(zhuǎn)入ARP處理程序。如果足IP(網(wǎng)間協(xié)議)數(shù)據(jù)包且傳輸層使用UDP(用戶數(shù)據(jù)報(bào)協(xié)議).端口正確,則認(rèn)為數(shù)據(jù)報(bào)正確,數(shù)據(jù)解包后.送入數(shù)據(jù)緩沖區(qū)A,最后把數(shù)據(jù)部分通過CAN接口輸出。反之.如果單片機(jī)從CAN接口收到數(shù)據(jù).則將數(shù)據(jù)按照UDP協(xié)議格式打包,送人數(shù)據(jù)緩沖區(qū)B,由RTL8019AS將數(shù)據(jù)輸出到局域網(wǎng)中。


圖5 主程序工作流程圖

這里,我們在通信傳輸層采用UDP協(xié)議是考慮到CAN協(xié)議數(shù)據(jù)報(bào)為短幀形式(每個(gè)數(shù)據(jù)幀最多為8個(gè)字節(jié))如果采用TCP傳輸協(xié)議,我們要傳輸8個(gè)字節(jié)CAN協(xié)議數(shù)據(jù),就要先通過3次握手建立連接,再傳輸數(shù)據(jù),之后還要通過握手釋放連接,這樣傳輸效率對有限的網(wǎng)絡(luò)資源來說無疑是一種浪費(fèi)。而UDP是無連接的傳輸.這樣可以提高網(wǎng)絡(luò)傳輸效率.同時(shí),也減輕網(wǎng)關(guān)的處理任務(wù)。當(dāng)然.UDP傳輸協(xié)議是不可靠的,對于控制網(wǎng)絡(luò)來說.這是不允許的。

以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊主要由以太網(wǎng)卡驅(qū)動(dòng)、ARP、ICMP、UDP、TCP協(xié)議的若干個(gè)API函數(shù)組成。

本文作者創(chuàng)新點(diǎn):本文設(shè)計(jì)了一個(gè)嵌入式多協(xié)議CAN網(wǎng)關(guān),選用8位微控制器作為核心控件,通過控制以太網(wǎng)控制芯片和CAN總線控制芯片與CAN總線相連。

本項(xiàng)目經(jīng)濟(jì)效益為125萬元。


作者:鐘家民,王國才      來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第3-2期
本文地址:http://www.54549.cn/thread-10247-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表