《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > CAN總線到Ethernet網(wǎng)的網(wǎng)關(guān)研究實現(xiàn)
CAN總線到Ethernet網(wǎng)的網(wǎng)關(guān)研究實現(xiàn)
摘要: CAN總線是一種開放式、數(shù)字化、多點通信的控制系統(tǒng)局域網(wǎng)絡,是當今自動化領(lǐng)域中最具有應用前景的技術(shù)之一。由于CAN總線具有通信速率高、開放性好、報文短、糾錯能力強以及控制簡單、擴展能力強、系統(tǒng)成本低等特點,越來越受到人們的關(guān)注。以太網(wǎng)具有快速、靈活、方便、可靠的特長,如果把現(xiàn)場總線與以太網(wǎng)互聯(lián)的話,可實現(xiàn)過程控制中從設備層到管理層的一體化,使得企業(yè)可以廣泛地應用如互聯(lián)網(wǎng)、無線通信、智能設備和決策支持系統(tǒng)等新技術(shù),以達到提高效率和降低成本的目的。
Abstract:
Key words :

引言

CAN總線是一種開放式、數(shù)字化、多點通信的控制系統(tǒng)局域網(wǎng)絡,是當今自動化領(lǐng)域中最具有應用前景的技術(shù)之一。由于CAN總線具有通信速率高、開放性好、報文短、糾錯能力強以及控制簡單、擴展能力強、系統(tǒng)成本低等特點,越來越受到人們的關(guān)注。以太網(wǎng)具有快速、靈活、方便、可靠的特長,如果把現(xiàn)場總線與以太網(wǎng)互聯(lián)的話,可實現(xiàn)過程控制中從設備層到管理層的一體化,使得企業(yè)可以廣泛地應用如互聯(lián)網(wǎng)、無線通信、智能設備和決策支持系統(tǒng)等新技術(shù),以達到提高效率和降低成本的目的。

硬件設計

硬件選擇

要實現(xiàn)現(xiàn)場總線設備接入Internet,關(guān)鍵就是要實現(xiàn)TCP/IP 協(xié)議、以及傳輸信息介質(zhì)的選擇。筆者用SX52微控制器作為處理器,以太網(wǎng)驅(qū)動芯片RTL8019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入以太網(wǎng),配有RS232和CAN總線兩個擴展接口,可以將具有RS232接口的設備或采用CAN總線協(xié)議通信的設備連到以太網(wǎng)上。RS232接口采用MAX232CPE芯片,CAN總線控制器采用Philips公司的SJA1000芯片,CAN收發(fā)器采用PCA82C250芯片。硬件結(jié)構(gòu)框圖見圖1。
 

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

工作原理為:當以太網(wǎng)中發(fā)送數(shù)據(jù)和請求,通過RJ45送到RTL8019AS,RTL8019AS 負責將處理后的以太網(wǎng)幀送入SX52的TCP/IP協(xié)議棧,由協(xié)議棧對數(shù)據(jù)報進行解析,得到原始的請求和控制信息。請求和控制信息再經(jīng)過SJA1000進行CAN協(xié)議格式的數(shù)據(jù)封裝,然后和現(xiàn)場的CAN總線設備進行通信。請求和控制的回復信息到局域網(wǎng)的過程與上面正好相反。

硬件電路圖

在CAN到Ethernet網(wǎng)關(guān)的硬件設計中,在確保通信功能順利實現(xiàn)的同時,充分利用了SX52芯片I/O口靈活配置的特點,最大程度地節(jié)約了微控制器SX52的硬件資源。其電路簡圖見圖2。
 


                                                       圖2  電路簡圖

SX52有5個I/O口共40個引腳,在設計中利用SX52的C口的RC0~RC7連接RTL8019AS的數(shù)據(jù)口SD0~SD7,SX52的B口兼顧選址和讀寫控制功能,在開發(fā)中用它與RTL8019AS 的地址及讀寫控制引腳連接。RTL8019AS 基地址選擇引腳IOS0~ IOS3接地,此時I/O基地址為300H,即001100000000,所以地址線SA9、SA8接+ 5V。又因為寄存器地址偏移量為00H~1FH 共32個,對應地址從300H到31FH,所以只需將地址線SA0~SA4接SX52 的RB0~RB4,其余地址線接地即可。芯片IORB、IOWB引腳為讀寫信號線,接SX52的RB6、RB5讀寫控制引腳。RTL8019AS 可以兼容8位和16位操作。圖2中IOCS16是16位I/O的選擇腳,當RTL8019AS上電復位的時候,如果這個腳為低電平,選擇8位模式,為高電平選擇16位模式。由于SX52是8位的數(shù)據(jù)總線,因此要用8位總線模式,所以將這個腳接地。RTL8019AS有3種工作方式,筆者采用第一種工作方式,此時JP 引腳接高電平。AUI引腳決定使用AUI還是BNC接口。高電平時使用AUI 接口,低電平時使用BNC接口,支持8線雙絞線或同軸電纜。設計中采用雙絞線為通信介質(zhì),將該引腳接地。RTL8019AS 使用引腳TPIN+ 、TPIN- 、TPOUT+和TPOUT-連接耦合隔離濾波器HR61101G,通過RJ45插頭實現(xiàn)與以太網(wǎng)的連接。SJA1000是獨立的CAN 通信控制器,支持CAN2.0B協(xié)議。它的AD0~AD7為地址數(shù)據(jù)復用線,與SX52的D口RD0~RD7相連。當遠程用戶通過Web服務器查詢現(xiàn)場的CAN總線數(shù)據(jù)時,SJA1000將現(xiàn)場控制單元的CAN 總線數(shù)據(jù)解析,發(fā)送到SX52,再傳到Internet。PCA82C250對總線提供發(fā)送能力并對CAN控制器提供接收能力,它支持1Mbps的速度。為保證SX52與SJA1000協(xié)同工作,在硬件設計中將兩個芯片共用一個硬件復位線,以確保SX52與SJA1000硬件同步復位。MAX232CPE完成232電平與TTL電平轉(zhuǎn)換。用于提供一個本地接口,為調(diào)試和維護提供方便。TXD接SX52的RA2腳,RXD接SX52的RA3腳,RS—RXD和RS—TXD是RS232電平,為標準串口電平。數(shù)據(jù)可以從串口輸入到單片機SX52,SX52再把數(shù)據(jù)送到RTL8019AS。

網(wǎng)關(guān)的軟件設計

整個互聯(lián)系統(tǒng)的軟件設計可以分為3個部分:CAN總線設備接口通信程序、網(wǎng)關(guān)協(xié)議轉(zhuǎn)換程序和基于以太網(wǎng)的TCP/IP協(xié)議的程序?qū)崿F(xiàn)。

網(wǎng)關(guān)協(xié)議轉(zhuǎn)換程序

網(wǎng)關(guān)協(xié)議轉(zhuǎn)換程序的整體設計思路為:當以太網(wǎng)應用層有數(shù)據(jù)要發(fā)送到CAN節(jié)點時,首先,數(shù)據(jù)發(fā)送到網(wǎng)關(guān),由以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊從UDP數(shù)據(jù)報文中解析出完整的CAN 協(xié)議數(shù)據(jù)包,存放在數(shù)據(jù)緩沖區(qū)A,再調(diào)用CAN 控制器協(xié)議模塊將它發(fā)送到CAN 總線上。反過來,當CAN 設備有數(shù)據(jù)要發(fā)送到用戶層時,首先數(shù)據(jù)發(fā)送到網(wǎng)關(guān),由CAN控制器協(xié)議模塊將完整的CAN 協(xié)議數(shù)據(jù)包存放在數(shù)據(jù)緩沖區(qū)B,再調(diào)用以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊將完整的CAN協(xié)議數(shù)據(jù)包作為應用層數(shù)據(jù)封裝發(fā)送到以太網(wǎng)應用層。

CAN 控制器協(xié)議模塊
CAN 控制器協(xié)議轉(zhuǎn)換模塊程序主要由SJA1000的寄存器讀、寫程序,初始化程序和發(fā)送、接收程序5 個子程序組成。之所以要編寫單獨的SJA1000寄存器讀、寫子程序,這是由SX52 芯片只有I/O端口的特點所決定的。

(1) 讀SJA1000 寄存器子程序CANRead()其過程為:Re引腳設為輸出;CS片選清零;Rd引腳設為輸出;輸出地址;置位ALE;延時20 ns ;ALE位清零;Rd 引腳設為輸入;/Read 位清零;讀入數(shù)據(jù);延時20ns ;/Read 位置位;CS片選置位;返回。

(2) 寫SJA1000寄存器子程序CANWrite()其過程為:Re引腳設為輸出;CS片選清零;置位ALE;Rd 引腳設為輸出;輸出地址;ALE位清零;/wr位清零;輸出數(shù)據(jù);延時20ns;CS片選置位; 返回。

(3) SJA1000初始化子程序CANInit()選用CAN2.0A協(xié)議構(gòu)建CAN總線控制網(wǎng)絡,對SJA1000的初始化主要完成控制寄存器CR、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR、總線定時寄存器BTR0,1和輸出控制寄存器OCR的設置。

(4) 發(fā)送接收子程序txdsub(),rxdsub()發(fā)送子程序負責節(jié)點報文的發(fā)送,由CAN控制器SJA1000獨立完成。主控制器SX52只需將數(shù)據(jù)緩沖區(qū)A中已按CAN2.0A協(xié)議格式組合成的一幀報文送入SJA1000 發(fā)送緩沖區(qū)中,然后將命令寄存器里的發(fā)送請求標志置位,即可發(fā)送報文。

接收子程序負責節(jié)點報文的接收。SJA1000自動接收發(fā)往該節(jié)點的數(shù)據(jù)并將收到的數(shù)據(jù)放到它的接收緩沖器中。SJA1000 的報文接收主要有兩種方式:中斷接收方式和查詢接收方式。該系統(tǒng)采用查詢接收方式。可以發(fā)送給主控制器SX52的接收信息由狀態(tài)寄存器的接收緩沖器狀態(tài)標志RBS和接收中斷標志RI 標出。SX52將會把這一幀數(shù)據(jù)包存入數(shù)據(jù)緩沖區(qū)B中,然后釋放接收緩沖器,再通知總調(diào)度程序,由總調(diào)度程序調(diào)用以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊轉(zhuǎn)發(fā)。

以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊
以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊主要負責從UDP數(shù)據(jù)包中解析出完整CAN協(xié)議報文,存入數(shù)據(jù)緩沖區(qū)A。同時,將數(shù)據(jù)緩沖區(qū)B中的完整CAN協(xié)議報文封裝成UDP數(shù)據(jù)報后發(fā)送到以太網(wǎng)上。采用UDP協(xié)議是考慮到CAN 協(xié)議數(shù)據(jù)報為短幀形式(每個數(shù)據(jù)幀最多為8個字節(jié)),因為TCP協(xié)議要進行3次握手建立連接,這對網(wǎng)絡來說無疑是一種資源的浪費。而UDP是無連接的傳輸,這樣可以提高網(wǎng)絡傳輸效率,同時,也減輕網(wǎng)關(guān)的處理任務。當然,UDP是不可靠的傳輸協(xié)議。為了提高通信的可靠性,在應用層建立回傳校驗機制,通過實驗
測試表明這種方式是行之有效的。以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊主要由若干個ARP、UDP協(xié)議的API函數(shù)組成。

TCP/IP應用層程序設計
基于以太網(wǎng)的高層通信協(xié)議一般采用TCP/IP協(xié)議。這里采用流行的SOCKET套接字編程,傳輸層協(xié)議選擇UDP(用戶數(shù)據(jù)報協(xié)議),通過VisualC++編寫應用層程序。WinSock提供了對UDP的支持,通過UDP協(xié)議可以向指定IP 地址的網(wǎng)關(guān)發(fā)送CAN 協(xié)議數(shù)據(jù),同時也可以從它接收CAN協(xié)議數(shù)據(jù),發(fā)送和接收方處于相同的地位沒有主次之分。利用CAsyncSocket類操縱無連接的數(shù)據(jù)發(fā)送較簡單,首先生成一個本地套接口,然后利用int CAsyncSocket : : SendTo ( constvoid 3 1pBuf , int nBufLen , UINT nHostPort , LPCTSTR1pszHostAddress = NULL ,int nFlags = 0) 發(fā)送數(shù)據(jù),intCAsyncSocket : : ReceiveFrom ( void 3 1pBuf , int nBufLen ,CString & rSocketAddess ,UINT & rSocketPort , intnFlags = 0) 接收數(shù)據(jù)。利用UDP 協(xié)議發(fā)送和接收都可以是雙向的,即管理主機和SX52網(wǎng)關(guān)都可以發(fā)送和接收數(shù)據(jù)。在程序設計中,創(chuàng)建了一個CAsyncSocket 派生類CCanSocket ,該派生類CCanSocket 有若干成員函數(shù),通過這些類成員函數(shù),可以很方便地實現(xiàn)CAN總線到Internet 的通信。

結(jié) 論

  隨著Internet技術(shù)的日益成熟測控系統(tǒng)網(wǎng)絡和以太網(wǎng)將漸漸融合。CAN總線到Internet的互聯(lián)網(wǎng)關(guān)的設計研究是一項具有重要意義的工作,它有非常廣闊的應用前景。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产清纯| 亚洲视频导航| 国产精品理论片| 欧美精品v日韩精品v韩国精品v| 亚洲一区制服诱惑| 日韩视频久久| 亚洲开发第一视频在线播放| 亚洲国产婷婷| 一区二区三区我不卡| 狠狠色香婷婷久久亚洲精品| 国语精品中文字幕| 国内精品久久久久影院 日本资源| 欧美激情小视频| 欧美波霸影院| 欧美大胆人体视频| 欧美精品激情在线| 欧美多人爱爱视频网站| 老司机67194精品线观看| 久久综合电影一区| 欧美jizzhd精品欧美喷水| 欧美高清在线视频观看不卡| 欧美精品日韩一本| 欧美三级电影一区| 欧美性大战xxxxx久久久| 国产精品成人国产乱一区| 国产精品久久久久久久一区探花| 久久久水蜜桃av免费网站| 久久久久一区二区| 欧美成人午夜激情在线| 另类激情亚洲| 欧美国产亚洲另类动漫| 欧美理论大片| 国产精品久久久免费| 国产欧美视频一区二区| 黄色小说综合网站| 亚洲黄色性网站| 一本色道婷婷久久欧美| 午夜在线成人av| 亚洲国产婷婷香蕉久久久久久| 亚洲在线视频| 亚洲免费在线视频| 欧美一区二区三区另类| 亚洲国产欧美日韩| 亚洲破处大片| 欧美午夜激情视频| 香蕉久久精品日日躁夜夜躁| 久久精品国产精品亚洲| 欧美v日韩v国产v| 国产精品国产三级国产aⅴ9色| 久久久99爱| 欧美精品免费观看二区| 国产精品爽黄69| 国内精品国产成人| 亚洲精选一区| 性欧美xxxx视频在线观看| 最新亚洲一区| 亚洲免费中文字幕| 久久全国免费视频| 欧美日韩国产一区二区三区| 国产日韩欧美自拍| 亚洲精品一区二区网址| 小处雏高清一区二区三区| 亚洲精品视频在线观看网站| 亚洲欧美日韩一区二区三区在线观看| 日韩网站在线看片你懂的| 亚洲一区二区在线看| 久久香蕉国产线看观看网| 欧美日韩一区二区三区在线观看免| 欧美v日韩v国产v| 国产精品久久国产精麻豆99网站| 欧美日韩在线观看一区二区| 国产精品一区二区久久久| 亚洲国产日韩欧美| 午夜精品一区二区三区四区| 亚洲精品国产精品国自产观看浪潮| 亚洲欧洲视频在线| 午夜精品国产更新| 欧美国产精品人人做人人爱| 国产区二精品视| 日韩亚洲成人av在线| 久久se精品一区精品二区| 一区二区黄色| 免费在线观看成人av| 国产精品蜜臀在线观看| 亚洲国产精品一区二区久| 亚洲欧洲av一区二区| 亚洲美女淫视频| 久久精品最新地址| 国产精品区一区二区三| 亚洲精品国偷自产在线99热| 亚洲二区在线| 久久成人国产| 国产精品久久久久久久久久免费| 国产欧美日韩精品一区| 亚洲精品之草原avav久久| 久久亚洲不卡| 9l国产精品久久久久麻豆| 亚洲国产精品久久久久婷婷884 | 国产精品亚洲激情| 最近中文字幕日韩精品| 久久精品国产精品| 欧美亚洲三区| 国产精品家庭影院| 亚洲韩国青草视频| 亚洲国产美女精品久久久久∴| 日韩一区二区免费看| 久久精品噜噜噜成人av农村| 国产精品久久久久久久午夜| 99国产精品久久久久久久久久| 中国av一区| 一区二区三区欧美在线| 美女黄网久久| 国语自产偷拍精品视频偷| 午夜精品一区二区三区在线视| 亚洲精品久久久久久久久久久久久| 夜久久久久久| 欧美黄色aa电影| 亚洲欧洲在线一区| 亚洲另类在线视频| 欧美成人高清视频| 亚洲成人在线免费| 亚洲精品韩国| 欧美美女bb生活片| 亚洲欧洲日产国产网站| 亚洲精品在线看| 欧美精品aa| 99国内精品久久| 亚洲一区二区黄| 国产精品久久久久久久久久ktv | 一区二区欧美在线| 日韩系列在线| 欧美日韩免费一区二区三区视频| 国产亚洲一二三区| 午夜精品福利视频| 久久久噜噜噜久噜久久 | 亚洲免费婷婷| 国产精品igao视频网网址不卡日韩| 国产有码一区二区| 欧美亚洲自偷自偷| 久久免费观看视频| 在线观看三级视频欧美| 亚洲精品在线免费| 欧美午夜www高清视频| 亚洲一区二区成人在线观看| 欧美一区二区三区四区在线观看地址 | 国产精品美女久久久久aⅴ国产馆| 欲色影视综合吧| 亚洲激情视频在线观看| 欧美理论在线播放| 亚洲无限av看| 久久午夜电影网| 在线精品视频免费观看| 99国产精品久久久久久久成人热 | 国产精品乱码一区二区三区| 亚洲在线电影| 免费观看亚洲视频大全| 99视频精品全部免费在线| 亚洲一区尤物| 国产在线不卡视频| 日韩视频在线观看| 国产精品美女黄网| 亚洲国产欧美一区二区三区久久| 新67194成人永久网站| 国产主播精品在线| 亚洲精品一区中文| 国产精品视频网| 亚洲国产欧美一区二区三区同亚洲| 久久九九久精品国产免费直播| 欧美午夜剧场| 欧美一区二区视频免费观看| 免费成人性网站| 中文一区字幕| 久久综合成人精品亚洲另类欧美 | 亚洲精品欧美一区二区三区| 欧美视频一区二| 欧美在线观看视频在线 | 欧美日韩国产综合网| 亚洲视频一区在线| 麻豆精品精品国产自在97香蕉| 激情校园亚洲| 亚洲图片欧洲图片日韩av| 国产一区视频在线看| 日韩一区二区精品葵司在线| 国产欧美精品一区二区三区介绍| 亚洲天堂久久| 麻豆精品在线视频| 亚洲欧美区自拍先锋| 欧美精品在线视频| 亚洲欧美日韩综合一区| 欧美大片免费观看| 欧美一级淫片播放口| 欧美日韩午夜在线| 亚洲国产成人av| 国产精品日韩欧美大师| 亚洲精品自在在线观看| 国产一区在线看| 亚洲欧美日韩在线高清直播| 亚洲国产天堂久久综合| 久久夜色精品国产欧美乱| 亚洲午夜精品久久久久久浪潮 |